Android开发Android技术知识Android开发

Android组件化的坑

2018-06-22  本文已影响53人  云呆呆

毕业之前准备再做一个独立项目,有兴趣的Star一下~

https://github.com/FortuneDream/PocketExpression

里面涉及了利用Accessibility监控屏幕,组件化,Scrapy爬虫等相关代码~

这下面这个是老项目啦~做了好久了,一直在适配Android最新版本~了解一下?

https://github.com/FortuneDream/PocketMusic

好了,进入正题。

项目结构比较简单(只是尝试做了一下组件化,后续会继续划分模块)

app架构图

(随便画的。)

main:只是一个壳,集成时使用。

app:主体业务,后面会继续分割

auth:登录注册业务,这一块是常用的业务模块

core:核心包,里面包含了各个模块使用的基础属性,比如Theme,BaseApplication,BaseActivity,Color。

tools:这个tools可以脱离项目存在,可以直接移植到其他App中,有点SDK的意思。

组件化的步骤网上也讲了很多,比如

https://blog.csdn.net/guiying712/article/details/55213884

坑点:

1.最好像我的项目中的那样设置一个rootProject.ext,把所有的Version都统一这是成一致的。(具体参考Project.build)

2.组件化不要用ButterKnife,会有手动R和R2的麻烦

组件化的view.getId.因为组件的module的R文件都不是final,只有主moudle的R文件才是Final,所以只能用if else(如果有解决方法也请告知。),另外再集成<-->组件模式的切换中IDEA会提示重新import R文件。。。(如果有解决方法也请告知。)

3.依赖的问题:

implementation A-->B,implementation/api B-->C,那么A无法引用到C的库

但是,如果api A-->B,api B-->C,A可以引用到C的库

在组件化中,一开始可以使用api,之后继续分割项目的时候就多用implementation,可以加快编译速度。

4.Android Studio的Setting的Instant Run,记得打上勾。。有坑。。

5.使用ARouter时,需要被跳转的模块或者说使用了ARouter注解的模块都要加上ARouter_Processor,不然会出现path路径找不到的情况。(只有打个了debug才会有Toast提醒。。)

6.Manifest的各个module的包名一定要设置成不同的!!!不然会在打包的时候爆出BuildConfig错误

上一篇下一篇

猜你喜欢

热点阅读