Android 首次开机优化 |
您所在的位置:网站首页 › android系统启动优化 › Android 首次开机优化 |
为了解决Android首次开机速度过慢这个问题,需要首先了解Android首次开机的时间都消耗在什么地方. 优化工具我们可以借助 Bootchart工具进行分析,Using Bootchart on Android 总结起来步骤如下: 在/system/core/init 下的mk中添加INIT_BOOTCHART:=true 编译控制命令在BootChart.h中修改# define BOOTCHART 1 这个宏,这个是宏功能开关用make bootimage 来编译boot,init会编译在boot中,编译成功后,fastboot烧入手机中。用adb shell echo 120(或者别的数字) > /data/bootchart-start 创建一个/data/bootchart-start文件并写入值,控制采集开始用adb shell echo 1 > /data/bootchart-stop 来控制Bootchart功能关 优化之前bootchart 优化之后bootchart 在使用bootchart过程中可能会出错(draw.py,parsing.py,samples.py),尤其是bootchart自带的某些Python文件,可以使用本文结尾的附件进行替换,或者对比进行修改! 优化方向 裁剪不常用的资源 语言 –> build/target/product/languages_full.mk铃声 –> frameworks/base/data/sound/字体 –> frameworks/base/data/font/ –> external/xxxx-font –> build/core/*.mk 中调用的一些ttf资源裁减掉一些不常用的APP资源 –> LOCAL_OVERRIDES_PACKAGES使用这个属性进行控制预加载类 和 预加载资源部分 frameworks/base/preloaded-classes 具体代码实现 frameworks/base/core/java/com/android/internal/os/ZygoteInit.java注:以上绝大部分是可以通过一个统一的mk进行管理的(常见的/device/vendor/product/product.mk) patch oat & ODEX优化首次开机消耗的绝大部分时间实在PMS中的dex2oat过程中;因此我们考虑在编译过程中就将apk转化成为odex,这样首次开机过程中PMS就不在进行dex2oat的动作,进而可以提升首次开机时间! 在mk文件中添加如下选项(可以考虑在choosecombo的时候设置标志位,使用宏控)! WITH_DEXPREOPT := true TH_DEXPREOPT=true WITH_ART_SMALL_MODE=true WITH_ART_USE_OPTIMIZING_COMPILER=true ADDITIONAL_BUILD_PROPERTIES += ro.xxxx=1 original link: http://blog.csdn.net/peng_cao/article/details/50038971 bootchart usage: http://blog.csdn.net/sckgenius/article/details/23265073 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |