《当插件化遇上Android P.pdf》由会员分享,可在线阅读,更多相关《当插件化遇上Android P.pdf(28页珍藏版)》请在三个皮匠报告上搜索。
1、当插件化遇到 Android P京东商城目录CONTENTSAndroid P 禁令01Android App Bundles02路在何方03京东架构升级和重构04解密关键技术点05目录CONTENTSAndroid P 禁令01Android App Bundles02路在何方03京东架构升级和重构04解密关键技术点05Android P 时间表发布“禁止调用非SDK接口”消息发布官方动态框架 Android App bundles四月五月六月七月DP1Google IO 开发者大会&DP2DP3DP4DP5三月正式版Q3禁止调用非SDK接口三个名单逐步推进名名单单影响影响说明说明浅灰名浅灰
2、名单单targeSDK=9.0:警告Android P 中还可继续工作在后续版本可能会被移到深灰名单或黑名单深灰名深灰名单单targeSDK=9.0:不允许调用targeSDK 9.0:警告在未来的 Developer Preview 版本中将不可访问开发者需要整改这些接口,或者申请加入浅灰名单黑名黑名单单所有三方应用不允许调用深灰名单和浅灰名单之外的所有非SDK接口目录CONTENTSAndroid P 禁令01Android App Bundles02路在何方03京东架构升级和重构04解密关键技术点05Android App BundlesAndroid App BundlesBase A
3、PK是首次安装的APK提供应用的基本功能,并包含其它splite APKs可以访问的公共代码和资源manfest文件会包含所有的四大组件,权限,SDK版本以及依赖关系的完整声明Configuration APKs包含特定的屏幕密度、CPU架构和语言的资源当用户下载Base APK或者Dynamic feature Apk的时候,只需要下载其对应的特定资源Dynamic feature APKs包含的是首次安装的时候不需要的代码和资源可以使用 Play Core Library 动态下载和安装AAB的整体流程GooglePlayBaseConfigurationDynamicBaseConfig
4、urationDynamicBaseConfigurationDynamicConfigurationDynamicBaseConfigurationDynamicConfigurationConfigurationDynamicDynamicAAB 总结01优点02限制03成本1.IDE 需要升级到 Android Studio 3.22.需要集成 Play Core Library3.可以加入 SplitCompat 库以支持 6.0 以下的手机热更新 Dynamic feature apk4.所有模块必须位于同一个工程5.如果之前的 Library 想改造成Dynamic Feature
5、Module 必须手动改造1.官方支持2.减小了APK体积:去除与用户机型不匹配的代码和资源;动态下发首次不需安装的部分1.只能通过 Google Play 发布2.处于测试阶段:需要申请加入 Google 的 dynamic feature betaprogram3.最低支持的版本是 Android 5.0(API level 21)4.只是单纯的减小了包体积,不能通过动态下发来修复Bug和增加之前未预算的新功能,也不能增加base apk的manifest中没有的四大组件目录CONTENTSAndroid P 禁令01Android App Bundles02路在何方03京东架构升级和重构
6、04解密关键技术点05实现插件化的黑科技Hook App运行的关键点ActivityThread.mInstrumentationActivityThread.mHLoadedApk.mApplicationLoadedApk.mClassLoaderContextThemeWrapper.mBase加载插件中的类通过反射插入到BaseDexClassLoader的pathList中或是通过delegateClassLoader找到插件对应的classLoader进行加载加载插件中的资源反射调用AssetManag