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:根据判断条件执行相关编译

 

 

 

你可能感兴趣的:(Android,脚本,编译,五花八门)