Android.mk
2016-05-12 20:23
447 查看
LOCAL_PATH:= $(call my-dir) 用于返回当前路径
include $(CLEAR_VARS) 编译模块开始
include $(BUILD_XXX) 编译模块结束
include $(BUILD_PACKAGE) 编译生成apk
include $(BUILD_STATIC_LIBRARY) 编译成静态库
include $(BUILD_SHARED_LIBRARY) 编译成动态库
include $(BUILD_EXECUTABLE) 编译成可执行程序
LOCAL_MODULE_TAGS := optional
user: 指该模块只在user版本下才编译
eng: 指该模块只在eng版本下才编译
tests: 指该模块只在tests版本下才编译
optional: 指该模块在所有版本下都编译
LOCAL_PACKAGE_NAME := Settings
apk的名字
LOCAL_CERTIFICATE := platform
LOCAL_CERTIFICATE 后面是签名文件的文件名,说明Settings.apk是一个需要platform key签名的APK
用于指定签名时使用的KEY,如果不指定,默认使用testkey,LOCAL_CERTIFICATE可设置的值如下:
LOCAL_CERTIFICATE := platform
LOCAL_CERTIFICATE := shared
LOCAL_CERTIFICATE := media
而在Android.mk中的这些配置,需要在APK源码的AndroidManifest.xml文件中的manifest节点添加如下内容:
android:sharedUserId="android.uid.system"
android:sharedUserId="android.uid.shared"
android:sharedUserId="android.media"
LOCAL_MODULE_PATH 和 LOCAL_UNSTRIPPED_PATH 指定最后的目标安装路径
TARGET_ROOT_OUT:表示根文件系统。
TARGET_OUT:表示 system文件系统。
TARGET_OUT_DATA:表示 data文件系统。
用法如:LOCAL_MODULE_PATH :=$(TARGET_ROOT_OUT)
$(call all-java-files-under, <src>) 获取指定目录下的所有 Java 文件。
$(call all-c-files-under, <src>) 获取指定目录下的所有 C 语言文件。
$(call all-Iaidl-files-under, <src>) 获取指定目录下的所有 AIDL 文件。
$(call all-makefiles-under, <folder>) 获取指定目录下的所有 Make 文件。
#编译一个apk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files) # 所有子目录下的java文件
LOCAL_PACKAGE_NAME := LocalPackage # APK的名字
LOCAL_MODULE_TAGS := optional
include $(BUILD_PACKAGE)
#编译一个c/c++动态库
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := # 源文件
LOCAL_MODULE := name # 库的名字
LOCAL_SHARED_LIBRARIES := # 依赖的库
include $(BUILD_SHARED_LIBRARY)
#编译一个java库 会生成Hello.jar
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := Hello.java
LOCAL_MODULE := Hello
include $(BUILD_JAVA_LIBRARY)
include $(CLEAR_VARS) 编译模块开始
include $(BUILD_XXX) 编译模块结束
include $(BUILD_PACKAGE) 编译生成apk
include $(BUILD_STATIC_LIBRARY) 编译成静态库
include $(BUILD_SHARED_LIBRARY) 编译成动态库
include $(BUILD_EXECUTABLE) 编译成可执行程序
LOCAL_MODULE_TAGS := optional
user: 指该模块只在user版本下才编译
eng: 指该模块只在eng版本下才编译
tests: 指该模块只在tests版本下才编译
optional: 指该模块在所有版本下都编译
LOCAL_PACKAGE_NAME := Settings
apk的名字
LOCAL_CERTIFICATE := platform
LOCAL_CERTIFICATE 后面是签名文件的文件名,说明Settings.apk是一个需要platform key签名的APK
用于指定签名时使用的KEY,如果不指定,默认使用testkey,LOCAL_CERTIFICATE可设置的值如下:
LOCAL_CERTIFICATE := platform
LOCAL_CERTIFICATE := shared
LOCAL_CERTIFICATE := media
而在Android.mk中的这些配置,需要在APK源码的AndroidManifest.xml文件中的manifest节点添加如下内容:
android:sharedUserId="android.uid.system"
android:sharedUserId="android.uid.shared"
android:sharedUserId="android.media"
LOCAL_MODULE_PATH 和 LOCAL_UNSTRIPPED_PATH 指定最后的目标安装路径
TARGET_ROOT_OUT:表示根文件系统。
TARGET_OUT:表示 system文件系统。
TARGET_OUT_DATA:表示 data文件系统。
用法如:LOCAL_MODULE_PATH :=$(TARGET_ROOT_OUT)
$(call all-java-files-under, <src>) 获取指定目录下的所有 Java 文件。
$(call all-c-files-under, <src>) 获取指定目录下的所有 C 语言文件。
$(call all-Iaidl-files-under, <src>) 获取指定目录下的所有 AIDL 文件。
$(call all-makefiles-under, <folder>) 获取指定目录下的所有 Make 文件。
#编译一个apk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files) # 所有子目录下的java文件
LOCAL_PACKAGE_NAME := LocalPackage # APK的名字
LOCAL_MODULE_TAGS := optional
include $(BUILD_PACKAGE)
#编译一个c/c++动态库
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := # 源文件
LOCAL_MODULE := name # 库的名字
LOCAL_SHARED_LIBRARIES := # 依赖的库
include $(BUILD_SHARED_LIBRARY)
#编译一个java库 会生成Hello.jar
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := Hello.java
LOCAL_MODULE := Hello
include $(BUILD_JAVA_LIBRARY)
相关文章推荐
- Android重写返回按钮退回桌面(根据源码查看)
- Android实现高仿QQ附近的人搜索展示
- Android GestureDetector方法详解
- AndroidAnnotation常用注解使用说明
- Android的编程初体验--布局管理器
- Android 线程创建与销毁
- android animation——动画的基本属性
- 关于Android事件派发流程的理解
- 解决Android软键盘和表情面板切换界面闪动问题
- Android开发常用的adb命令整理
- Android手机之间Socket通信
- Android中如何将清除数据变为管理空间进行自定义数据清除
- 在Android Studio中使用git的总结
- 使用Toast(android中的一种提醒方式) & 建立监听 --4
- android获取屏幕的宽高
- AndroidStudio--Terminal的使用
- Android控件HorizontalScrollView/listview去掉滚动条
- Android匹配Uri工具类UriMatcher
- Android Json解析工具类
- Android学习笔记五:文件夹创建