Android插件化
一、插件化的由来
65536/64k
二、插件化要解决的问题
1.动态加载apk
在Android中可以跟java一样实现动态加载jar,但是Android使用德海Dalvik VM,不能直接加载java打包jar的byte code,需要通过dx工具来优化Dalvik byte code。
Android在API中给出可动态加载的有:DexClassLoader 和 PathClassLoader。
DexClassLoader:是一个可以从包含classes.dex实体的.jar或.apk文件中加载classes的类加载器。可以用于实现dex的动态加载、代码热更新等等。
PathClassLoader:提供一个简单的ClassLoader实现,可以操作在本地文件系统的文件列表或目录中的classes,但不可以从网络中加载classes。
2.资源加载
AssertManager()+反射
3.代码加载
绑定关联的Activity生命周期,通过生命周期的反射方法来进行相应的回调