【Android系统源码修改】【转】Android.mk分析

特点:

1.支持应用程序编译的资源能够被其它应用使用

2.该APK具有系统权限

3.能够指定一个全局的依赖于LOCAL_BUILT_MODULE的中间目标

#把该Makefile所在的目录设定为当前目录
LOCAL_PATH := $(call my-dir)
#清除编译规则模板使用的变量的值。在./build/core/clear_vars.mk中定义
include $(CLEAR_VARS)
#不是标准的java库
LOCAL_NO_STANDARD_LIBRARIES := true
#设定包名或者生成的apk的名称
LOCAL_PACKAGE_NAME := framework-res
#为APK指定签名具有系统权限
#签名有四种类型:testkey, platform, shared, media 默认为testkey
LOCAL_CERTIFICATE := platform
#告诉应用编译的资源可以被其他应用程序使用

Tell aapt to create “extending (non-application)” resource IDs,

since these resources will be used by many apps.

LOCAL_AAPT_FLAGS := -x
#指定该模块的编译版本为optional
#user: 指该模块只在user版本下才编译
#eng: 指该模块只在eng版本下才编译
#tests: 指该模块只在tests版本下才编译
#optional:指该模块在所有版本下都编译
LOCAL_MODULE_TAGS := optional
#指定模块安装在系统的路径

Install this alongside the libraries.

LOCAL_MODULE_PATH := $(TARGET_OUT_JAVA_LIBRARIES)
#允许app的资源被其它模块使用
#默认为null

Create package-export.apk, which other packages can use to get

PRODUCT-agnostic resource data like IDs and type definitions.

LOCAL_EXPORT_PACKAGE_RESOURCES := true
#执行BUILD_PACKAGE。开始编译APK
#BUILD_PACKAGE定义在config.mk:
#BUILD_PACKAGE:= $(BUILD_SYSTEM)/package.mk
include $(BUILD_PACKAGE)
#定义一个全局的中间目标并且可能依赖于其他模块。
#.PHONY: 指定framework-res-package-target为伪目标

define a global intermediate target that other module may depend on.

.PHONY: framework-res-package-target
framework-res-package-target: $(LOCAL_BUILT_MODULE)
假如需要引用.aar包,该如何添加?
1 编译:放到BUILD_MULTI_PREBUILT中,与jar包的编译一致
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := akcam-release:libs/akcam-release.aar
include $(BUILD_MULTI_PREBUILT)
2 引用
在 BUILD_PACKAGE 中添加下面代码,变量名为“ LOCAL_STATIC_JAVA_AAR_LIBRARIES ”
对比jar包的引用变量名为“ LOCAL_STATIC_JAVA_LIBRARIES ” 多了个"AAR"字眼
LOCAL_STATIC_JAVA_AAR_LIBRARIES:= akcam-release

3 添加下面代码
指定aar的包名
LOCAL_AAPT_FLAGS := --extra-packages com.mezs.work.akcam

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值