而对于 Module 中有些资本不想被外部拜访的,我们可以创建 res/values/public.xml,添加到 public.xml 中的 resource 则可被外部拜访,未添加的则视为私有:
- <resources>
- <public name="new_house_settings" type="string"/>
- </resources>
模块化的过程中我们经常会碰到反复依附的问题,如不雅是经由过程 aar 依附, gradle 会自动帮我们找出新版本,而摈弃老版本的反复依附。如不雅是以 project 的方法依附,则在打包的时刻会出现反复类。对于这种情况我们可以在 build.gradle 中将 compile 改为 provided,只在最终的项目中 compile 对应的 library ;
其实袈溏年面的安居客模块化设计图上能看出来,我们的设计筹划能必定程度上规避反复依附的问题。比如我们所有的第三方库的依附都邑放到 OpenSoureLibraries 中,其他须要用到相干类库的项目,只须要依附 OpenSoureLibraries 就好了。
模块化过程中的建议
对于大年夜型的贸易项目,在重构过程中可能会碰到营业耦合严重,难以拆分的问题。我们须要先理清营业,再着手拆分营业模块。比如可以先在本来的项目中根据营业分包,在必定程度大将各营业解耦后拆分到不合的 package 中。比如之前新房和二手房因为同属于 app module,是以他们之前是经由过程隐式的 intent 跳转的,如今可以先将他们改为经由过程 Router 来实现跳转。又比如新房和二手房中公用的模块可以先下放到 Business Component Layer 或者 Basic Component Layer 中。在这一系列工作完成后再将各个营业拆分成多个 module 。
模块化重构须要渐进式的┞饭开,弗成一触而就,不要想着将全部项目颠覆重写。线上成熟稳定的营业代码,是经由了时光和大年夜量用户考验的;全部颠覆重写往往费时辛苦,实际的效不雅平日也很不睬想,各类问题层出不穷得不偿掉。对于这种项目标模块化重构,我们须要一点点的改进重构,可以分散到每次的营业迭代中去,慢慢镌汰掉落陈腐的代码。
各营业模块间肯定会有公用的部分,按照我前面的设计图,公用的部分我们会根据营业相干性下放到营业组件层(Business Component Layer)或者基本组件层(Common Component Layer)。对于太小的公有模块不足以构成零丁组件或者模块的,我们先放到类似于 CommonBusiness 的组件中,在后期赓续的重构迭代中视情况进行进一步的拆分。过程中完美主义可以有,切记弗成过度。
debug 模式下的 AndroidManifest.xml :
以上就是我在模块化摸索实践方面的一些经验,不住之处还望大年夜家指出。
【编辑推荐】
- 如安在Android App上高效显示位图
- Android动态代劳以及应用动态代劳实现ServiceHook
- Android仿华为气象绘制刻度盘
- Android中的IPC机制
- 一个简单实用的Android调试应用技能
推荐阅读
【51CTO.com原创稿件】提到Linux,我们就会想到红帽,就跟提到Windows就会想到微软一样。作为一家专注于架构平>>>详细阅读
本文标题:Android模块化探索与实践
地址:http://www.17bianji.com/lsqh/35300.html
1/2 1