一、插件化来由
随着apk越来越大,各种业务逻辑越来越繁杂,会达到apk开发的一个瓶颈;从业务上说,业务的繁杂会导致代码急剧的膨胀,当代码中的方法数超过65535时,就无法再容纳创建新的方法。插件化时将 apk 分为宿主和插件部分,插件在需要的时候才加载进来。
二、插件化要解决的问题
1.动态加载apk
会有一个宿主程序,会到SD卡中去加载apk,会通过一个代理的Activity去执行。
2.资源加载
通过AssetsManager这个类里面隐藏的方法可以添加资源。可以加载独立资源,也可以加载共用资源。
3.代码加载
代码加载是使用Java中的类加载机制,需要先绑定到相关联的Activity生命周期,通过生命周期的反射方法来进行相应的回调。
反射是在程序运行时获取类的方法、属性,可以在运行时实例化这个对象,调用方法。
DexClassLoader可以通过反射加载apk中的字节码,PathClassLoader只能加载文件目录下的apk。
网友评论