此文列出Android.mk的常用模板(部分内容源于多篇他人博客,这里不具体指出),如有错漏,还请在评论中指出,后期持续更新

 
#链接第三方动态库,在和部分android源码的编译中验证不过
LOCAL_PATH := $(call my-dir)  
include $(CLEAR_VARS)  
LOCAL_MODULE := foo-prebuilt  
LOCAL_SRC_FILES := libfoo.so  
include $(PREBUILT_SHARED_LIBRARY)
 
#预编译第三方提供的apk,将其加入到编译结果中
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)   
LOCAL_MODULE := LocalModuleName
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)   
include $(BUILD_PREBUILT)
 
#编译子目录下的源码为静态jar包
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) 
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_JAVA_LIBRARIES := android.test.runner
LOCAL_MODULE := sample
include $(BUILD_STATIC_JAVA_LIBRARY)
#以下这条则是编译为动态jar包
include $(BUILD_JAVA_LIBRARY)
 
#预编译静态jar包
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libname:lib/needimport.jar  
include $(BUILD_MULTI_PREBUILT)
 
#构建一个被platform key签名的apk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := LocalPackage   
LOCAL_JAVACFLAGS := -encoding GBK  #指定代码字符集(可选),用于处理 unmappable character for encoding UTF-8
LOCAL_CERTIFICATE := platform   #注意这行
include $(BUILD_PACKAGE)
 
#编译apk依赖某个jar包
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_STATIC_JAVA_LIBRARIES := static-library
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := LocalPackage
include $(BUILD_PACKAGE)
 
#编译静态库
include $(CLEAR_VARS)
LOCAL_MODULE := foo
LOCAL_SRC_FILES := foo/foo.c
LOCAL_EXPORT_LDLIBS := -llog
include $(BUILD_STATIC_LIBRARY)
#编译动态库
include $(CLEAR_VARS)
LOCAL_MODULE := bar
LOCAL_SRC_FILES := bar.c
LOCAL_STATIC_LIBRARIES := foo
include $(BUILD_SHARED_LIBRARY)
 
#拷贝文件到out相应的类型下,在部分第三方提供的源码编译中未实现
LOCAL_MODULE := test.xml
LOCAL_MODULE_TAGS := optional 
LOCAL_MODULE_CLASS := ETC 
LOCAL_SRC_FILES := $(LOCAL_MODULE) 
LOCAL_MODULE_PATH := $(TARGET_OUT) 
include $(BUILD_PREBUILT)
 
#链接第三方动态库,静态库,jar包
include $(CLEAR_VARS)
LOCAL_PREBUILT_LIBS := libabc:libaaa.so
include $(BUILD_MULTI_PREBUILT)
......
LOCAL_STATIC_LIBRARIES := libabc
 
链接第三方shared或static库时, makefile在r4及r5b的寫法有點不一樣
--------------------------For r4 ------------------------

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
#for Android log
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
LOCAL_SRC_FILES:= src/Test.c
#Load static library (*.a) for ndk version 4
LOCAL_LDFLAGS := $(LOCAL_PATH)/lib/lib1.a
LOCAL_LDFLAGS += $(LOCAL_PATH)/lib/lib2.a
#Set library name as Test
LOCAL_MODULE := Test
#Export shared library
include $(BUILD_SHARED_LIBRARY)

--------------------------For r5b ------------------------

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := LIB1
LOCAL_SRC_FILES := lib/lib1.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := LIB2
LOCAL_SRC_FILES := lib/lib2.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
LOCAL_MODULE := Test
LOCAL_SRC_FILES:= src/Test.c
LOCAL_STATIC_LIBRARIES := LIB1 LIB2
include $(BUILD_SHARED_LIBRARY)

#apk中包含jni库
include $(CLEAR_VARS)  
LOCAL_PACKAGE_NAME := LocalPackage   
LOCAL_CERTIFICATE := platform
LOCAL_SRC_FIELS := $(call all-subdir-java-files)
LOCAL_JNI_SHARED_LIBRARIES := libXXX
LOCAL_REQUIRED_MODULES := libXXX
include $(BUILD_PACKAGE)

Android.mk模板的更多相关文章

  1. Android.mk模板(持续更新中)

    此文列出Android.mk的常用模板(部分内容源于多篇他人博客,这里不具体指出),如有错漏,还请在评论中指出,后期持续更新   #链接第三方动态库,在和部分android源码的编译中验证不过 LOC ...

  2. Android开发实践:Android.mk模板

    关于Android NDK开发的文章已经比较多了,我的博客中也分享了很多NDK开发相关经验和技巧,今天简单写了一个 Android.mk 的示例模板,供初学者参考. 本模板主要给大家示例 Androi ...

  3. 自动添加需要编译的源文件Android.mk模板

    自动添加需要编译的源文件列表 添加第三方静态库.动态库的依赖   假设我们的项目依赖 libmath.a, libjson.a, libffmpeg.so 这几个第三方库文件,项目包含如下几个模块:a ...

  4. NDK(11)Android.mk编译APK模板

    转自 :  http://hubingforever.blog.163.com/blog/static/1710405792011656434982/ 以下仅是使用Android.mk编译APK程序的 ...

  5. NDK(10)Android.mk各属性简介,Android.mk 常用模板

    参考 : http://blog.csdn.net/hudashi/article/details/7059006 本文内容: Android.mk简介, 各属性表, 常用Android.mk模板 1 ...

  6. Android.mk文件语法规范及使用模板

    Android.mk文件语法详述 介绍:------------这篇文档是用来描述你的C或C++源文件中Android.mk编译文件的语法的,为了理解她们我们需要您先看完docs/OVERVIEW.h ...

  7. NDK(10)Android.mk各属性简介,Android.mk 常用模板--未完

    参考 : http://blog.csdn.net/hudashi/article/details/7059006 1. Android.mk简介 Android.mk文件是GNU Makefile的 ...

  8. Android.mk的用法和基础【转】

    一个Android.mk file用来向编译系统描述你的源代码.具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次.你可以在每一个Android.mk file中定义一个 ...

  9. Android.mk

    Introduction: Android.mk编译文件是用来向Android NDK描述你的C,C++源代码文件的, 这篇文档描述了它的语法.在阅读下面的内容之前,假定你已经阅读了docs/OVER ...

随机推荐

  1. bzoj4006

    斯坦纳树 比之前要求高了一些 其实利用斯坦纳树的dp[i][s]以i为根,S为状态就行了,先跑一遍斯坦纳树,预处理出dp数组,记住每个S的最小值,然后再dp,这里dp必须要求同一种颜色的状态都必须在S ...

  2. 4.1-4.2 基于HDFS云盘存储系统分析及hadoop发行版本

    一.基于HDFS云盘存储系统 如:某度网盘 优点: *普通的商用机器 内存 磁盘 *数据的安全性 操作: *put   get *rm  mv *java api *filesystem 核心: *H ...

  3. c语言中的# ## 可变参数宏 ...和_ _VA_ARGS_ _

    1.#假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串.例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字 ...

  4. APOSE.Cell导入图片

    一:读取EXcel单元格图片 1:读取全部单元格的图片集合  worksheet.pictureCollotion 2:遍历pictureCollotion    (foreach (var  pic ...

  5. 3-8 & 3-9Unicode 编码

    3-9Unicode 编码 主要支持英文字母和一些特殊字符,中文不支持, 为了支持世界上所有的字符集 就是Unicode编码的出现 char c='\u005d';表示十六进制的. c表示一个尖括号:

  6. C#基础:使用Thread创建线程

    Thread类可以创建和控制线程,Thread类的构造函数重载为接受ThreadStart和ParameterizedThreadStart类型的委托参数.下面我们用一个例子来解释怎样用Thread类 ...

  7. [WIP]webpack入门

    创建: 2019/04/09  安装 npm install --save-dev webpack # 最新版 npm install --save-dev webpack@<version&g ...

  8. HDU - 1099 - Lottery - 概率dp

    http://acm.hdu.edu.cn/showproblem.php?pid=1099 最最简单的概率dp,完全是等概率转移. 设dp[i]为已有i张票,还需要抽几次才能集齐的期望. 那么dp[ ...

  9. Two sum(给定一个无重复数组和目标值,查找数组中和为目标值的两个数,并输出其下标)

    示例: nums = [1,2,5,7] target = [6] return [0,2] Python解决方案1: def twoSum(nums, target): ""&q ...

  10. CF 429B B.Working out 四个角递推

    B. Working outtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutpu ...