Android组件化

研究主流的组件化后,优化了下自己搭建的组件化架构,项目实现以kotlin+mmvm+协程+组件化+composingBuild,看网上很多用buildSrc的方式依赖库,其实也没啥改变,某个依赖改版本整个都要同步,用composingBuild方式就是将版本依赖的配置全部放置到另一个module中,它以插件库的代码形式与项目根文件夹同级。

想说下注意事项
1.用composingBuild的依赖初始搭建时经常依赖不成功,配置脚本写错等,实在是经常爆红。。。那么其实也别担心,来回就是那几板斧。

  • a.注意脚本文件的配置settings.gradle,这里需要配置module,因为组件太多的使用其实不应该和功能库module同级,我就把它套了层文件夹coreLib,每次创建新的module都需要修改此文件;

  • b.修改同级项目根的build.gradle,这里统一配置组件化是集成模式library还是组件化单独运行com.android.application,我的As版本是3.6.3,会有apply
    plugin: 'kotlin-android-extensions’升级的4自行替换高版本;

  • c.当出现依赖找不到,先看库有没正常依赖写好,然后不行关闭As,到项目的文件夹中将缓存生成的文件手动删除,包括
    /build,/.gradle,/.idea,*iml,包括versions库也要删除;

  • d.依赖库下载问题是头疼的,因为公司外网都在被墙的基础上又限制了一拨,普通的等待下载依赖库基本失败,在项目根gradle.properties文件内设置代理的端口,我是用免费代理软件https://s3.amazonaws.com/psiphon/web/mjr4-p23r-puwl/zh/index.html;在设置–本地代理端口–随机写固定的端口就行,文件gradle.properties要应用此端口的/Http/https
    64991 ; SOCKS 64990;

    2.组件化中都会有组件引用Application的问题,我研究下网上的做法都是反射获取,可问题app壳组件在非集成模式是没法获取module组件的代码类引用,所以非集成模式下会爆红,但是集成下就正常此时我们就一般在versions库设置isDebug=false,如果同步后爆红请退出As重启就行。(同步按图标大象,sync project with gradle files)

    3.这里没有用databing,牛油刀,这两个我确实不想用在xml文件下写代码读码时非常难受,至于jetpack其实liferecycle,viewmodel,livedata,room,workmanager,paging,navigation用过都差不多,可是老项目也没太多必要。至于数据存储结构响应界面变化,一般做法都是数据库room管理用Repository处理每张数据表的操作函数,然后viewModel又对应复写Repository的数据管理并关联livedata响应界面,我觉得架构很清晰,大家可以玩下,我这里只用mmkv封装了下保存参数。
    项目组件化架构
    项目代码:https://github.com/1006245347/component_android
    记录下~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值