关于 Android 插件化开发 dex 分包 热修复 Tinker 的思考 (一)
发布时间
阅读量:
阅读量
插件化开发
优点:
一. 方便地将个人应用进行分割, 其中部分功能可以通过插件实现, 需要时下载即可, 并不需要进行安装操作. 当新增新功能时, 可以通过预留插件管理模块的方式动态更新个人应用, 该功能需要进一步优化或扩展, 更新插件即可完成改进, 无需频繁地重新安装或卸载(可能会让用户体验变得不佳).
二. 针对同源应用,在常规引流策略中用户会被引导至新应用的下载与部署环节;而采用插件式开发模式,则能够完全绕开这一过程;关闭插件功能操作简便快捷,无需进行应用程序的安装与卸载流程,从而实现了精准触达效果.
三. 通过突破常规的技术限制,模块化架构有助于提升系统的可管理性.
基本实现原理:
- 通过dexClassLoader工具加载尚未安装的应用包文件。
- 基于代理模式,在Proxy类中执行Activity时会触发APK的行为,并根据具体情况动态加载相应的生命周期组件。
- 在资源管理模块中,通过Reflection API调用AssetManager类的方法获取插件所需的资源路径。
插件化开发简单来说就是ClassLoader在应用程序A中动态加载应用B中的类,并用于调用应用B的方法。
dex分包
当一个app的功能模块变得愈发复杂,并非没有可能在未来某一天突然出现某些问题
- 生成的apk在2.3以前的机器无法
全部评论 (0)
还没有任何评论哟~
