android插件话和hotfix

一、为什么我们要插件话?

        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

四、技术原理

ClassLoader[6]
1. 隔离问题
2. Android ClassLoader
-dalvik.system.DexClassLoader
-dalvik.system.PathClassLoader

五、开源方案

1. DynamicLoadApk
2. AndroidDynamicLoader
3. PluginManager
4. DroidPlugin

你可能感兴趣的:(android,插件化)