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

一、插件化来由

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

二、插件化要解决的问题

1.动态加载apk

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

2.资源加载

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

3.代码加载

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

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

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

你可能感兴趣的:((三十五)Android插件化面试问题)