(三十五)Android插件化面试问题

一、插件化来由

随着apk越来越大,各种业务逻辑越来越繁杂,会达到apk开发的一个瓶颈;从业务上说,业务的繁杂会导致代码急剧的膨胀,当代码中的方法数超过65535时,就无法再容纳创建新的方法。插件化时将 apk 分为宿主和插件部分,插件在需要的时候才加载进来。

二、插件化要解决的问题

1.动态加载apk

会有一个宿主程序,会到SD卡中去加载apk,会通过一个代理的Activity去执行。

2.资源加载

通过AssetsManager这个类里面隐藏的方法可以添加资源。可以加载独立资源,也可以加载共用资源。

3.代码加载

代码加载是使用Java中的类加载机制,需要先绑定到相关联的Activity生命周期,通过生命周期的反射方法来进行相应的回调。

反射是在程序运行时获取类的方法、属性,可以在运行时实例化这个对象,调用方法。

DexClassLoader可以通过反射加载apk中的字节码,PathClassLoader只能加载文件目录下的apk。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容