eleme / Amigo

A hotfix library for Android platform, and not just this...
Other
1.37k stars 213 forks source link

优化 dex opt/oat流程 #224

Closed FtheGFW closed 7 years ago

FtheGFW commented 7 years ago

5.0 以上系统原生支持 multidex,可以节省释放 dex 逐个优化的流程,直接优化 patch apk 4.x dalvik 版本上,增加逐个检查补丁包 dex 是否和 host 包里的 dex 产生了变化,如果没有,则可以利用 multidex 已经优化好了的 secondary-dexes 里的 odex 文件 ? ==update== 没有发生变化的 so,避免释放,降低磁盘占用

FtheGFW commented 7 years ago

@JackCho

JackCho commented 7 years ago

5.0以上优化不知道支不支持未安装的apk,你测试一下看。4.x优化好的dex,感觉靠谱。

FtheGFW commented 7 years ago

5.0上我昨天试了,没问题,只是4.x 的不确定,secondary-dexes 的需要amigo 适配一下,他们用的是zip,里面包含了 classes.dex entry, 我们的是 裸的 classes[x].dex

FtheGFW commented 7 years ago

顺便提一下,以前遇到的开启 minSdkVersion = 21 后,导致eleme app 在5.0上启动不了的问题,谷歌 官方解答过,说是 lollipop 上不支持超过100个 dex

JackCho commented 7 years ago

嗯,4.x严格按照MultiDex的执行逻辑来适配。 不超过100个dex, 你把链接发一下

FtheGFW commented 7 years ago

https://code.google.com/p/android/issues/detail?id=194950 最后一行

FtheGFW commented 7 years ago

screen shot 2017-03-10 at 12 12 45 pm
https://android.googlesource.com/platform/art/+/lollipop-release/runtime/dex_file.cc#303