你好,游客 登录 注册 搜索
背景:
阅读新闻

Android.mk常用模板

[日期:2017-03-07] 来源:Linux社区  作者:thestrals [字体: ]

此文列出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)

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

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

linux
相关资讯       Android.mk  Android.mk常用模板 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款