概述
一、为什么我们要插件话?
1. Dalvik虚拟机有方法数限制:Dex 64k method size limit / LinearAlloc exceeded 5MB capacity, App规模变大时会遇到这个问题。(这是由于虚拟机自己的限制)
2. 模块解耦
3. 动态升级
4. 按需下载
二、概念
1. 插件化-指将一个程序划分为不同的部分,比如App皮肤样式2. 组件化-指通用及复用性较高的构件,比如图片缓存可以看成一个组件被多个 App 共用
3. 动态加载
三、技术点
1. dex拆分和插件dex加载
-Android官方解决方案:multidex support library
2. 插件资源访问
-通过反射,通过调用AssetManager中的addAssetPath方法
3. 插件Activity生命周期
-代理Activity
-Android官方解决方案:multidex support library
2. 插件资源访问
-通过反射,通过调用AssetManager中的addAssetPath方法
3. 插件Activity生命周期
-代理Activity
四、技术原理
ClassLoader[6]
1. 隔离问题
2. Android ClassLoader
-dalvik.system.DexClassLoader
-dalvik.system.PathClassLoader
1. 隔离问题
2. Android ClassLoader
-dalvik.system.DexClassLoader
-dalvik.system.PathClassLoader
五、开源方案
1. DynamicLoadApk2. AndroidDynamicLoader
3. PluginManager
4. DroidPlugin
最后
以上就是热情电话为你收集整理的android插件话和hotfix的全部内容,希望文章能够帮你解决android插件话和hotfix所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复