此文列出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. SQL SERVER2008 打开脚本总是报“未能完成操作,存储空间不足”

    使用用SQLCMD命令行. 1.快捷键:win+R 2.输入cmd​,确定 3.输入命令:sqlcmd -S <数据库服务器名称> -i C:\<脚本文件路径>.sql 如图所 ...

  2. Linux 无法登陆172.***.***.***的子网

    1. sudo dhclient -r 这条命令重复执行几次 2. dhclient - 3.查看ifconfig

  3. CF-798A

    A. Mike and palindrome time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  4. TypeScript完全解读(26课时)_4.TypeScript完全解读-接口

    4.TypeScript完全解读-接口 初始化tslint tslint --init:初始化完成后会生成tslint.json的文件 如果我们涉及到一些规则都会在这个rules里面进行配置 安装ts ...

  5. Flutter实战视频-移动电商-34.列表页_小BUG的修复

    34.列表页_小BUG的修复 当高粱酒的子类没有数据返回的时候就会报错. 解决接口空数据报错的问题 没有数据的时候,给用户一个友好的提示, 我们没有数据的时候还要告诉用户,提示一下他没有数据,在我们的 ...

  6. sqlserver——视图

    数据库中的视图是一个虚拟表.同真实的表一样,视图包含一系列带有名称的列和行数据,行和列数据用来自由定义视图和查询所引用的表,并且在引用视图时动态产生.本篇将通过一些实例来介绍视图的概念,视图的作用,创 ...

  7. 服务器无法在发送 HTTP 标头之后修改 cookie

    隔三差五就碰到VS报错: System.Web.HttpException:“服务器无法在发送 HTTP 标头之后修改 cookie.” 解决后过几天又忘记了. 原因是: 程序为每个页面在config ...

  8. 在linux上部署tomcat服务

    在linux上部署tomcat 1.安装JDK 2.下载tomcat http://tomcat.apache.org/download-70.cgi 3.上传到服务器,并解压 4.上传war包或者已 ...

  9. [Xcode 实际操作]九、实用进阶-(23)多个Storyboard故事板中的页面跳转

    目录:[Swift]Xcode实际操作 本文将演示多个Storyboard故事板中的页面跳转. 使用快捷键[Command]+[N]创建一个新的故事板文件. (在项目文件夹[DemoApp]上点击鼠标 ...

  10. 跳跃表&hash

    汇编刚学跳跃表,发现跳跃表与hash有着数不清的关系 维基百科: 哈希表(哈希映射)是实现关联数组抽象数据类型的数据结构,该结构可以将键映射到值.哈希表使用哈希函数来计算桶或槽阵列的索引,从中可以找到 ...