正文
android组件化开发,android组件化开发框架
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
组件化开发,module和app的注意点
1,app compile project加入module后,module的权限,资源文件,权限,依赖引入,application属性权限,注意冲突,
application属性权限主包没引入的,module不能引入,超权限控制无法编译,
依赖引入,要是module已经引入所需依赖,主包不需引入,避免冲突
多module开发,其中的一个为入口module,其他module为独立的“应用”(library)
1.在原有的项目导入另外个项目的module为主项目的次module,即在A项目中添加一个启动B项目的入口
1)右击B项目的module,选择copy path;
2)右击A项目,New—Module—Import Gradle Project,把上一步拷贝的路径粘贴,一直到完成;
2.build.gradle文件
1)主module配置为 apply plugin: 'com.android.application',次module为 apply plugin: 'com.android.library';
2)次module不需要applicationId
3)dependencies依赖需放入到次module
4)都加上 multiDexEnabled true
5)主module导入次module :compile project(path: ':module2')
6).build.gradle中设置的compileSdkVersion buildToolsVersion minSdkVersion targetSdkVersion统一
3.AndroidManifest.xml文件
1)主module 在application上加上tools:replace="android:name,allowBackup,icon,theme,label"
同时在顶端加上xmlns:tools="";主要是避免多module的name,icon,theme等冲突
2)次module把application下的android:name,android:icon,android:label删除,否则安装后,在桌面上会有多个图标;
3)次module去掉activity的主过滤器 intent-filter
4.资源文件的冲突
jar包的冲突,检查是否重复,在module中都存在了;
类名、文件名等,重复可去修改其中一个,避免重复,资源索引出问题。
基本上就是这些,主要是rebuild后看报的什么错,具体的问题具体去分析处理。
什么是Android插件开发
插件化开发和组件化开发略有不用,插件化开发时将整个app拆分成很多模块,这些模块包括一个宿主和多个插件,每个模块都是一个apk(组件化的每个模块是个lib),最终打包的时候将宿主apk和插件apk分开或者联合打包。
开源的插件化框架
Qihoo360/DroidPlugin
CtripMobile/DynamicAPK
mmin18/AndroidDynamicLoader
singwhatiwanna/dynamic-load-apk
houkx/android-pluginmgr
bunnyblue/ACDD
wequick/Small
……
目前开源的这几个框架有宿主和插件分离的也有融合在一起的,每个框架的详细介绍和demo在github里都可以查看到。插件化demo运行起来比较简单,但是真正将它用到实际项目中还是要考虑很多小细节的,目前我也正处于研究阶段。
什么是Android组件化,为什么要组件化
手机硬件现在都是固定的,不像台式电脑可以组装,如果组件化了你就可以根据自己需求买各种硬件组装到一起,就像某个手机性能好像素也好,可你就打游戏几乎不照相,就得多花钱,要是自己选就要好性能,相机差不多的就行。