安卓编译进阶<Android:boot art+oat>功能的打包与取消及追溯代码思路历程

本文详述了Android编译系统中关于ART和OAT的打包与取消过程,通过追溯代码思路,深入理解Android运行时环境的构建。同时,文章提及了Android政策框架的相关内容。
摘要由CSDN通过智能技术生成

====
[欢迎转载,保留链接] 安卓编译进阶<Android:boot art+oat>功能的打包与取消及追溯代码思路历程
####

http://blog.csdn.net/rancec/article/details/77450450


点击打开:安卓编译进阶功能的打包与取消及追溯代码思路历程


****


====
 导读:
####
之前接手了新平台,是5.x版本的系统,可以说算是很旧的了,2015年出品就用过,不过跳转产品后系统变得很旧,多数时间还是kitkat的,这个有行业的准则影响;
发现本题目,是因为在更改FW的时候,居然没有正常的android.policy.jar生成,故此追溯代码,做个基本的小研究,更深入的了解编译的局部原理;
****


====

####

一、

****
首先,用如下命令导入shell环境变量的配置(. ./build/envsetup.sh 亦可)并编译安卓全局项:


source ./build/envsetup.sh && lunch aosp_xxx-userdebug && make propclean / installclean && make -j8 


编译说明:
    make -j8 -- 抛出八个线程并行编译,可以有效利用CPU/DDR性能,如果不知道合适的参数,可以用-j,系统会根据硬件配置自动匹配最佳的,但太多了会较卡,普通电脑推荐-j4,服务器-j8;
    make propclean  -- propclean是用来删除build.prop的快捷方法,不必寻找target做匹配;
    make installclean -- propclean是用来删除system的,某些需要删除才能强制更新的文件,需求执行此步骤,如/system/etc下面的配置文件等;


一般来说编译完整个安卓后,才能比较好的做局部调试,原因是安卓各个部件之间可能存在依赖关系,比如out/target/product目录下面大部分都需要out/host/的工具支持:
ls -d out/target/*
out/target/common  out/target/product
ls -d out/host/* 
out/host/common  out/host/linux-x86  out/host/windows-x86
还有一些是需要依赖于下面路径的资源
ls -d out/target/product/xxx/system/framework/*.apk
out/target/product/xxx/system/framework/framework-res.apk
(当然,完整编译很耗时,每次切换环境都很麻烦,有精力可以做提取,只要保证基本的依赖组件是完整存在)


然后,以上准备完成,才进入今天的主题。
mmm -B ./frameworks/base/policy/




====

二、

mmm -B ./frameworks/base/policy/
####
cd ./frameworks/base/policy/ 
mm -B
****


简单介绍一下,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值