- Notifications
You must be signed in to change notification settings - Fork1
android-component/AndroidComponent
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Android组件化的过程和文档记录
- 单独开发,单独调试,动态修改gradle配置【done】
- 页面跳转,使用第三方ARouter【done】
- 组件的AndroidManifest.xml,单独调试和发布阶段使用同一个配置,动态删除单独调试的主入口和应用图标。增加应用层调试模块,组件不再单独提供调试功能【done】
- 代码隔离,项目架构向下依赖【done】
- 应用层,依赖复合组件或基础组件,尽量不依赖基础库
- 组件层,基础组件尽量不相互依赖,需要有依赖时,沉淀到基础层;复合组件依赖基础组件,不要依赖同层的复合组件
- 基础层,provider依赖代理库和基础库,代理库依赖基础库
- 资源冲突问题,开发过程中规避此问题,手动添加模块前缀【done】
- 打包AAR,要将依赖都打入包中【todo】
- implementation 模块内使用,其他模块无法访问
- api 参与编译和打包,都可以访问
- compileOnly 只在编译时有效,不会参与打包
- runtimeOnly 只参与打包,编译时不会参与,适合做代码隔离
目标:将多个module的aar或者jar,打包到一个aar。
- android-fat-aar,二三年前更新过,作者不再维护,脚本无法正常运行。
- merge-module,基于fat-aar修改,作者最近半年有更新,项目需求也是对外输出sdk。
- 优点,可以打包依赖AAR中所有资源,满足业务需求。
- 缺点,只支持android gradle 2.2.3,gradle wrap 3.5,不满足高版本gradle需求。
- 测试代码在develop_fat分支
- fat-aar,作者半年前更新过
- 优点,支持android gradle 3.0.1的版本,gradle wrap 4.4
- 缺点,子AAR的资源ID打进去了,但是打包到apk后,子AAR的资源ID变了,运行时找不到
- fataar-gradle-plugin,作者一个月前更新过,Mobbeel公司开源的
- 优点,支持3.1和3.2的gradle版本,可以打包aar和资源id,满足业务需求
- 缺点,无法打包Manifest文件,需要增加patch修复问题
- 测试代码在develop_fataar_plugin分支
- all-in-one
- 简单粗暴办法,将所有子aar拷贝到一个项目中,使用默认的aar打包方式,还是只能生成当前module的aar,不会包含子aar。
- 不能解决将所有aar打包到一个aar的问题
- 综述,建议使用fataar-gradle-plugin进行修改,毕竟是支持高版本的gradle,满足编译速度和业务需求。
About
Android component architecture
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.