一、什么是插件化:
每个组件业务就是一个独立的apk,然后通过主apk动态加载部署业务组件apk。(例如:微信的某些功能,嘀嘀打车,电影票,金融理财等都是作为独立的apk存在,依附于微信主apk去存在)。
二、插件化的好处:
1、 业务解耦,能够实现业务组件热插拔
2、 更新产品迭代模式,可分为主app和次业务app。
3、改善产品更新过程,可以在不影响用户的情况下实现业务组件更新以及bug的修复。
三、插件化的思想:
主App被系统“安装”调用,这个过程是由系统提供,而插件的Apk并非被系统安装(并不能作为独立的apk被安装),简而言之,需要将插件apk看成一个“非正常apk”文件,只是一个略显复杂的文件。调用插件即用某种特殊的方式打开这个文件。
四、插件化步骤-分析主App
1、主app打包完成后,会形成dex,images,xml等资源
2、Dex靠PathClassLoader加载
3、图片以及xml资源靠Resource加载
五、代码的实现
1、创建DexClassLoader加载插件的代码
2、创建Resource加载资源文件
3、管理插件Activity的生命周期