现在的位置: 首页 > 操作系统 > 正文

Android.mk常用模板

2020年02月10日 操作系统 ⁄ 共 2935字 ⁄ 字号 评论关闭

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

#链接第三方动态库,在和部分android源码的编译中验证不过

LOCAL_PATH:=$(callmy-dir) include$(CLEAR_VARS) LOCAL_MODULE:=foo-prebuilt LOCAL_SRC_FILES:=libfoo.so include$(PREBUILT_SHARED_LIBRARY)

#预编译第三方提供的apk,将其加入到编译结果中LOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS) LOCAL_MODULE:=LocalModuleNameLOCAL_SRC_FILES:=$(LOCAL_MODULE).apkLOCAL_MODULE_CLASS:=APPSLOCAL_MODULE_SUFFIX:=$(COMMON_ANDROID_PACKAGE_SUFFIX) include$(BUILD_PREBUILT)

#编译子目录下的源码为静态jar包LOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)LOCAL_SRC_FILES:=$(callall-subdir-java-files)LOCAL_JAVA_LIBRARIES:=android.test.runnerLOCAL_MODULE:=sampleinclude$(BUILD_STATIC_JAVA_LIBRARY)#以下这条则是编译为动态jar包include$(BUILD_JAVA_LIBRARY)

#预编译静态jar包LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES:=libname:lib/needimport.jar include$(BUILD_MULTI_PREBUILT)

#构建一个被platformkey签名的apkLOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)LOCAL_SRC_FILES:=$(callall-subdir-java-files)LOCAL_PACKAGE_NAME:=LocalPackage

LOCAL_JAVACFLAGS := -encoding GBK #指定代码字符集(可选),用于处理 unmappable character for encoding UTF-8LOCAL_CERTIFICATE:=platform #注意这行include$(BUILD_PACKAGE)

#编译apk依赖某个jar包LOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)LOCAL_STATIC_JAVA_LIBRARIES:=static-libraryLOCAL_SRC_FILES:=$(callall-subdir-java-files)LOCAL_PACKAGE_NAME:=LocalPackageinclude$(BUILD_PACKAGE)

#编译静态库include$(CLEAR_VARS)LOCAL_MODULE:=fooLOCAL_SRC_FILES:=foo/foo.cLOCAL_EXPORT_LDLIBS:=-lloginclude$(BUILD_STATIC_LIBRARY)

#编译动态库include$(CLEAR_VARS)LOCAL_MODULE:=barLOCAL_SRC_FILES:=bar.cLOCAL_STATIC_LIBRARIES:=fooinclude$(BUILD_SHARED_LIBRARY)

#拷贝文件到out相应的类型下,在部分第三方提供的源码编译中未实现LOCAL_MODULE:=test.xmlLOCAL_MODULE_TAGS:=optionalLOCAL_MODULE_CLASS:=ETCLOCAL_SRC_FILES:=$(LOCAL_MODULE)LOCAL_MODULE_PATH:=$(TARGET_OUT)include$(BUILD_PREBUILT)

#链接第三方动态库,静态库,jar包include$(CLEAR_VARS)LOCAL_PREBUILT_LIBS:=libabc:libaaa.soinclude$(BUILD_MULTI_PREBUILT)......LOCAL_STATIC_LIBRARIES:=libabc

链接第三方shared或static库时, makefile在r4及r5b的寫法有點不一樣--------------------------For r4 ------------------------

LOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)#forAndroidlogLOCAL_LDLIBS:=-L$(SYSROOT)/usr/lib-llogLOCAL_SRC_FILES:=src/Test.c#Loadstaticlibrary(*.a)forndkversion4LOCAL_LDFLAGS:=$(LOCAL_PATH)/lib/lib1.aLOCAL_LDFLAGS+=$(LOCAL_PATH)/lib/lib2.a#SetlibrarynameasTestLOCAL_MODULE:=Test#Exportsharedlibraryinclude$(BUILD_SHARED_LIBRARY)

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

LOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)LOCAL_MODULE:=LIB1LOCAL_SRC_FILES:=lib/lib1.ainclude$(PREBUILT_STATIC_LIBRARY)include$(CLEAR_VARS)LOCAL_MODULE:=LIB2LOCAL_SRC_FILES:=lib/lib2.ainclude$(PREBUILT_STATIC_LIBRARY)include$(CLEAR_VARS)LOCAL_LDLIBS:=-L$(SYSROOT)/usr/lib-llogLOCAL_MODULE:=TestLOCAL_SRC_FILES:=src/Test.cLOCAL_STATIC_LIBRARIES:=LIB1LIB2include$(BUILD_SHARED_LIBRARY)

更多Android相关信息见Android 专题页面 http://www.xuebuyuan.com/topicnews.aspx?tid=11

本文永久更新链接地址:http://www.xuebuyuan.com/Linux/2017-03/141468.htm

以上就上有关Android.mk常用模板的全部内容,学步园全面介绍编程技术、操作系统、数据库、web前端技术等内容。

抱歉!评论已关闭.