功能实现
前面已经分析清晰了,只需要在 processDebugResources
Task
添加一个 dotLast
的 Action
对应去重丶压缩丶混淆丶修改 resources.arsc
就 OK
了。
w
去重资源
其实美团技术团队,提出过这种去重的方案,当时我不明白这些大厂的程序员只喜欢说理论不喜欢给一个代码实例吗?大体方案如下:
resources-debug.ap_
是一个ZIP
文件,遍历里面的每个文件,查找每个文件的crc
值(这个值能判断出文件是否相同,有点类似文件的MD5
值),记录重复的文件。- 删除
resources-debug.ap_
记录的重复文件。 - 通过 android-chunk-utils 修改
resources.arsc
,把这些重复的资源都重定向到同一个文件上.
为啥要修改
resources.arsc
文件呢?我前面都说过了,因为 <