如何提高你的网站的粘性/免费的客户资源怎么找
今天在更新本地代码后,单编framework时 发现编译并不是更新framework .jar文件,且framework .jar只有1KB,
编译信息提示也显示 install :out/target/product/xxxxx/system/framework/arm/boot.art ,因为是在framework 修改功能,不便于每次修改后都整编,或是remake 项目,因为那样速度太慢,这问题纠结了我半天,现解决方案分享给大家:
ART深入浅出3--了解Boot.art和boot-*.art :https://blog.csdn.net/doon/article/details/76034383
在Android7.0及以后,boot.art和boot.oat被分成了以boot-<packagename>.oat/art方式的多个库。当有一个库被更新,不至于整个boot.art/boot.oat被更新。
当然,你有时也看不到这些被分开的boot.art/boot.oat库,这是因为,Android7.0可以通过参数来控制。
为了简便,我们只讨论所有bootclasspath包作成一个boot.art/boot.art的情况。
除此之外,如果在编译ROM时,选择打开ODEX,那么,编译程序就会生成boot.oat/boot.art,连同system/app, system/priv-app下面的程序,都会生成它们的oat文件。一般boot.oat/boot.art(可能是boot-.oat, boot- .art) 会放在 /system/framework/arm64 或者 /system/framework/arm下面。在系统初始化时,这些预编译好的oat/art文件会被拷贝到/data/dalvik-cache下面。在android7.0上,则会直接读取它们,不用再拷贝了。
LOCAL_DEX_PREOPT
我们也可以控制单个APP是否需要预先优化.如果我们的APP是通过Google play 来进行升级的,或者为了平衡空间问题,我们可以在app的Android.mk 中设置如下属性.
LOCAL_DEX_PREOPT :=false // 不进行预先优化
LOCAL_DEX_PREOPT :=true // 进行预先优化
WITH_DEXPREOPT
这个变量的使能导致整个system image中的所有东西都被提前优化(pre-optimized)。这可能导致system image非常大。
WITH_DEXPREOPT := true
我们可以在BoardConfig.mk里定义
WITH_DEXPREOPT := true
这样整个system image 就会被预先优化. 由于在启动时不再需要进行app的dex文件进行优化(dex2oat操作)从而提升其启动速度.