AndroidP 兼容适配重点

2018/04/27 Blog

AndroidP 兼容适配重点

参见 csdn,

直接调用 dex2oat,或者使用不支持 / 不正确的方式编译 dex 文件

原因:

从一开始,dex2oat 就被设计为系统内部使用的编译部署工具,Android 从来都未支持过开发者直接调用 dex2oat 的场景。我们会持续而不定期地对这个工具进行优化,而很多时候其行为变更 (如: 生成的文件及其格式) 都是与之前不兼容的。在大多数情况下,标准的类加载器 (BaseDexClassLoader / DexClassLoader / PathClassLoader) 无法找到或使用由直接调用 dex2oat 生成的文件。

此外请注意,从 Android O 开始,BaseDexClassLoader 和 DexClassLoader 构造函数中的 “optimizedDirectory” 参数已废弃,并在加载 dex 文件时不起作用。

建议:

如果您需要从内存中加载 dex 文件,而不愿在存储中留下痕迹,请使用 Android O 中新增的加载器 InMemoryDexClassLoader。

突破Android P的非公开API限制

参见我的上两篇文章

Search

    Table of Contents