booster icon indicating copy to clipboard operation
booster copied to clipboard

resources.arsc 优化

Open sihaixuan opened this issue 5 years ago • 7 comments

booster-task-compression对resources.asrc的优化,修改了其对应ZipEntry的method,这个对应运行时性能是否有影响? 有讨论resources.arsc压缩会影响性能吗? Google I/O 2016 笔记:APK 瘦身的正确姿势

另外,美团对resources.asrc优化提出其他手段: 1.删除基于ZipEntry.crc的重复资源优化(Booster基于资源名收集重复资源) 2.无用资源优化

后期是否考虑这两个优化点?

我这边基于Booster,实现了这两个优化点,详见RemoveRepeatResourceVariantProcessor

sihaixuan avatar Jun 12 '19 02:06 sihaixuan

关于冗余资源,Booster是基于名字保留density最大的,删除同名的其他不同 density 的资源,冗余 != 相同

johnsonlee avatar Jun 12 '19 03:06 johnsonlee

完全相同的重复资源一般情况下不会太多,之前有做过去除重复的assets,因为大多数项目都用不着,所以没开源,如果这个需要反馈比较强烈可以考虑提高优先级

johnsonlee avatar Jun 12 '19 03:06 johnsonlee

无用资源优化已经在 TODO 里了

johnsonlee avatar Jun 12 '19 03:06 johnsonlee

欢迎 PR 两个优化点 👏,可以做为一个独立的模块

johnsonlee avatar Jun 12 '19 03:06 johnsonlee

大佬无用资源优化 什么时候能开源下呢

ZHOUJJIN avatar Sep 19 '22 09:09 ZHOUJJIN

这个移除无用asset能开源吗 大佬或者提供下思路

ZHOUJJIN avatar Sep 20 '22 11:09 ZHOUJJIN

这个移除无用asset能开源吗 大佬或者提供下思路

编译时计算所有的 assets 的 md5sum 找出相同的,并删除多余的,仅保留一份,将所有相同的 asset path 映射到保留下来的那个 path,然后在字节码层面拦截对 AssetManager 的调用,将对已剔除的 asset 访问转接到保留下来的 asset

johnsonlee avatar Sep 20 '22 14:09 johnsonlee