1.罗列Android项目的分包规则

 

微盘使用分包规则


如下:


 

android mvp 分包 安卓分包_分包

 

1).第一层com.sina.VDisk:com.sina(公司域名)+app(应用程序名称)。使用公司域名+应用程序名称。

2).第二层,各模块名称(包含实体模块)。若一个模块(主模块)下,还有子模块,那么,在主模块中定义对应的基类,如BaseActivity。VDiskClient是一个功能模块;VDiskServer是一个功能模块。

实体模块下定义相应的实体类,供全局调用。实体类的命名XXX+Info。

 

3).第三层,某一具体模块再分包,或者包含具体类。

 

 

 

网易新闻的分包规则

 

按照组件类型来划分,相同类型的组件放在同一个包下。比如,activity包下,存放的主要是Activity类型的类。


 

android mvp 分包 安卓分包_分包_02

android mvp 分包 安卓分包_实体类_03

 


 

 

 

1).第一层,com.netease,使用公司域名。

2).第二层,分块,一块是newsreader,这一块下面的东西是网易新闻的内容。mobileanalysis,是估计是一个公用的包。

3).第三层,绿色部分,按照组件类型进行分包,activity,service,appwidget,db,bean这些包下存放对应的类型的类。

“往往activity相关的类如监听器,线程,适配器等非常多的类,这些不好直接丢在activity包下,而是直接写在相应的activity中以 匿名或者内部类形式定义,否则activity包和service包看上去会比较杂乱。”

 

 

 

集合上述分包规则优点的分包规则

 

 

适合多应用开发

 

android mvp 分包 安卓分包_实体类_04


 

reader,frind,life,这三个包,表示对应的应用。com.tianxia是第一层,用公司名称限定。

“其中common包为这三个应用共用,config,oauth为可选,view存放一些最通用的自定义view,比如对话框,定制的列表等”,common是从这三个应用中提取得到的,可以在这三个应用中共享使用。

common是一个jar包。

 

考虑到多个应用会引用一个库工程(Adnroid Library),使用如下分包:

 

android mvp 分包 安卓分包_android mvp 分包_05


 

"

其中BaseApplication做一些所有app都会用到的基础初始化或者配置。之后其他应用的application应该都继承此BaseApplication。

base是一个android库,也是一个完整的android工程,而common只是一个jar文件,当然你也可以根据需要作为android库来开发。其他主工程reader,friend,life应该引用base工程。

"

 

 

第三层,列出该项目中,你要划分的几部分,功能模块module;配置部分config;common部分,这里的common只是对该应用通用,存放该应用中常用的功能和类。

 

某个应用下面,按照模块划分,也就是第四层,按照功能模块划分:

如下,在module包下,划分了blog,bbs,person三个功能模块,widget是特殊功能模块,BaseActivity是该模块下通用的基类。

 

android mvp 分包 安卓分包_android mvp 分包_06


 

 

 

再细一层:

在某一个具体模块下,还可以按照组件类型进行分包(比如,按照activity,service这两大组件类型进行分包)。


 

android mvp 分包 安卓分包_分包_07

 

 

 

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

最后总结:

 

对于开发一个应用来说,我会对网易新闻的分包规则做修改,然后使用。如下:

第一层,使用com+公司域名;

第二层是应用的名称。

第三层按照组件类型来划分,比如,Activity类型的放在activity包下;Serveice类型的放在service包下。然后,某个activity用到的Adapter,Listener作为该activity的内部类。

命名规则:实体类,则按照xxxInfo;activity,service,receiver组件,则按照xxxActivity,xxxService命名;

然后,该应用可以引用库工程(Android Library)。

 

android mvp 分包 安卓分包_分包_08

 

 

如果是多个应用管理,开发,则使用上文中[集合上述分包规则优点的分包规则]来分包。