Android.mk超全详细用法
16lz
2021-01-26
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_yeselse do_noendififeq/ifneq:根据判断条件执行相关编译
更多相关文章
- Android(安卓)Studio AIDL创建案例(解决自动生成java问题)
- 在Windows7上用Android(安卓)Studio编译Tensorflow_Android_Demo
- Android(安卓)Package Name vs. Application ID
- Android(安卓)模拟器运行编译后的源码
- android编译源码+在源码中build工程方法(紧支持jdk1.5)
- 《Android(安卓)Studio实战 快速、高效地构建Android应用》--二
- 编译可在Nexus5上运行的CyanogenMod13.0 ROM(基于Android6.0)
- Android下可用的wide char 函数库
- Android中应用的快捷方式的创建