插件化
插件化产生的原因:app体积越来越大,功能模块越来越多,耦合度高,开发成本大,方法数过多65535,占内存过大。
插件化原理:将一个大的apk按照业务分隔成多个小的apk,既可以独立运行,又可以作为插件运行
插件化中的概念
宿主:主APP,可以用来加载插件,也成为host
插件:插件app,被宿主加载的app,也可以普通app一样的apk文件是跟
插件化:将一个应用按照宿主插件化的方式改造叫做插件化,进行插件化改造后,lib文件夹会多处所有插件的apk包(so文件)
组件化是一种思想,插件化是一种技术
组件化是为了提高代码的复用性,插件化是为了解决应用程序越来越大的问题
处理清单文件:1.将所有的清单文件合并得到一个总的清单文件。2.修改apk构建流程(构建起进行全量marge,Bundle的依赖单独marge,生成bundle的marge manifest,解析各个bundle的mearge manifesr,得到整包的bundleinforlist)
插件化的类加载:宿主apk已经安装过,所有有classload,其他组件没有安装,所有无classlaod,无法加载apk,插件化框架会被每个插件创造一个classloader.并加载pak文件,自定义classloader调用apk中的类
插件化资源加载: