Android P 加载 dex 失败


对本知识点有任何问题,可加我的个人微信:kymjs666

dex2oatART 虚拟机必备的一个组件,主要用来把安装的 apk 和动态加载的 dex 等文件转换成 oat 文件.

主要是由于从一开始, dex2oat 就被设计为系统内部使用的编译部署工具.所以在高版本上生成格式发生了变化.所以再去用 BaseDexClassLoader或者是DexClassLoaderPathClassLoader等加载的时候就会出错.
由于 Android 上各种插件化以及各种黑科技项目,经常会直接调用到 dex2oat, 在 Android O 之后, Google 推荐从内存中加载 dex 文件时,使用 Android O 新增的一个类加载器InMemoryDexClassLoader.