分包是一个开放性的问题,它并没有固定或最优的方案,但是不好的分包策略带来的影响将会一直持续在App的开发迭代周期中,给开发带来一定的麻烦:如:耦合性 ,不易维护,重用难度高
下面介绍一下一种分包策略(按功能模块分包)
如上图所示
1.adapter---->存放封装的通用的adapter,如果是某个Activity仅自己用的adapter,可放到业务模块的包中。
2.base—>存放某些基类,如BaseActivity,BaseFragment等。
3.db—>存放Sqlite数据库相关操作的代码。
4.entity—>存放数据对象实体。
5.image—>存放图片加载、缩放、缓存等一些处理相关功能代码。
6.movie—>存放视频功能模块的相关业务代码,与其相关的所有Activity和Fragment都放到这个包中。
7.music—>存放音乐功能模块的相关业务代码,与其相关的所有Activity和Fragment都放到这个包中。
8.network—>存放网络功能相关代码。
9.news—>存放新闻功能模块的相关业务代码,与其相关的所有Activity和Fragment都放到这个包中。
10.util—>存放相对于业务无关的公用方法和工具类。(utils)
11.widget—>存放自定义View。(views)
…
优点如下:
1.模块化,提高了可读性及可维护性
2.耦合性降低(一个程序模块与其他模块的联系。如果存在联系,就叫做耦合)
3.方便扩展和重用
4.能一眼看出该APP的大概功能
等等