@
Jobin0528 Android 自带一个叫 DexClassLoader 的类,允许一个应用动态加载 dex
(上架 Google Play 的应用则不被允许做这样的动作,因为违反‘不得从 Google Play 以外的来源获取 /运行二进制代码’)
而对于 Android Runtime
动态加载 dex 意味着在加载时需要生成对应的 odex 文件(包含了原始的 dex 信息和编译成二进制代码的 oat 信息,所以比 dalvik 生成的 odex 慢得多, dalvik 版 odex 只是为了更快运行 dex 而做的以空间换时间的优化)
所以相同的硬件(比方说 Nexus5),在安装应用 /OTA 后第一次启动系统显示正在优化(实际上就是在生成 odex)时, Android 4.4 比 5.0/5.1/6.0 都要快
Google 说它在 5.1 的时候对 dex2oat 做了改进,能进行多线程编译,从而减小编译时间
而负责编译 oat 的是 dex2oat
如 @
VVSE 所说