Android.mk超全详细用法

Android.mk 是Android提供的一种makefile文件,用来指定诸如编译生成so库名、可执行bin文件以及jar包以及apk

 

最简单的Android.mk

 

 
LOCAL_PATH := $(call my-dir) #定义了当前模块的相对路径 include $(CLEAR_VARS)#清空当前环境变量 LOCAL_MODULE:= test1 #编译生成的目标名称 LOCAL_SRC_FILES := test1.c #编译该模块需要的源文件 include $(BUILD_EXECUTABLE) #编译所生成的目标文件格式

 

 


下面介绍几种常见用法

 

 

1.1、多源码编译

方法一:直接引用多个.c文件

 

LOCAL_SRC_FILES := test1.c\
                   test2.c\
                   test3.c\

方法二:使用系统提供的函数处理
 

 

1.2、编译多个目标文件

 

 
LOCAL_PATH := $(call my-dir) #定义了当前模块的相对路径 include $(CLEAR_VARS)#清空当前环境变量 LOCAL_MODULE:= test1 #编译生成的目标名称 LOCAL_SRC_FILES := test1.c #编译该模块需要的源文件 include $(BUILD_EXECUTABLE) #编译所生成的目标文件格式
include $(CLEAR_VARS)#清空当前环境变量

LOCAL_MODULE:= test2    #编译生成的目标名称

LOCAL_SRC_FILES := test2.c    #编译该模块需要的源文件

include $(BUILD_EXECUTABLE) #编译所生成的目标文件格式

 

 

 

 

 

1.3、编译动态库、静态库

 

将编译动态库:
	编译类型修改为 BUILD_SHARED_LIBRARY
编译静态库:
	编译类型修改为 BUILD_STATIC_LIBRARY

 

1.4、编译jar包,APK

编译apk

  LOCAL_PATH := $(call my-dir)
  include $(CLEAR_VARS)
  LOCAL_SRC_FILES := $(call all-subdir-java-files)
  LOCAL_PACKAGE_NAME := LocalPackage
  include $(BUILD_PACKAGE)

 

编译jar包

 

  LOCAL_PATH := $(call my-dir)
  include $(CLEAR_VARS)
  LOCAL_SRC_FILES := $(call all-subdir-java-files)
  LOCAL_MODULE := com.test.myjar
  include $(BUILD_STATIC_JAVA_LIBRARY):编译成静态jar包
  include $(BUILD_JAVA_LIBRARY):编译生成共享jar包


1.5、Android.mk中的判断语句

 

ifeq($(VALUE), x)	#ifneq
  do_yes
else
  do_no
endif

ifeq/ifneq:根据判断条件执行相关编译

 

 

 

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值