美文网首页
Android组件化记录,持续更新

Android组件化记录,持续更新

作者: 苏煌强 | 来源:发表于2019-05-10 16:44 被阅读0次

项目修改为组件化,记录一些注意事项,后续总结。

- 项目抽离baselib,每个组件依赖baselib。这边项目的baselib主要集成了一写基本的第三方库,使用的主要框架是MVPArms,详见github

- 屏幕适配采用的是MVPArms的作者的autosize。

- 组件化在config.build中使用  isWebApplication =false  作为开关控制。Android组件化开发实践和案例分享 这边文章介绍很详细,帮助很大。

- 关于组件初始化:组件化的一个问题就是每个组建的单独初始化,这边项目中我把application放在baselib中,这样每个组件单独运行时不需要拥有application,只需要处理入口的Activity。但是不想在baselib中初始化每个组件需要的配置,这样会让其他组件导入不必要的文件,增加编译的时间。项目现在使用的是谷歌官方的auto-service。auto

这里参考了

组件化之AutoService使用与源码解析

使用AutoService初始化组件,在baselib中定义的组件初始化的接口,需要有初始化操作的组件继承并实现里面的init方法即可。

- 路由采用的是ARouter,每个组件下需要新建一个统一的路由字典,需要统一到baselib中,方便调用。

- 组件化微信支付和分享的问题:因为微信回调需要在包名下的文件,目前的方案是通过ARouter暴露服务,在baselib中有微信支付和分享的服务接口,在app模块中实现该接口;需要的地方使用ARouter的方法调用,回调方法的接收目前使用的是EventBus。

- 组件化中使用ButterKnife问题:组件化中使用ButterKnife的话,需要使用R2,在点击事件中只能用if-else。还有一个问题就是,当组件作为一个module的使用使用R2,但是作为application运行的时候又要使用R。现在的做法就直接不使用ButterKnife。网上有说过使用kotlin就不会有这个问题,打算接下来使用kotlin写几个模块试试。

暂时记录,后续更新

相关文章

网友评论

      本文标题:Android组件化记录,持续更新

      本文链接:https://www.haomeiwen.com/subject/ovzeottx.html