注:
本文是从该文摘抄而来的。简单的说,就是阅读了该文,然后,再自己复述,复制形成该文。
 
1.罗列Android项目的分包规则
 
微盘使用分包规则
 
如下:
 
 
1).第一层com.sina.VDisk:com.sina(公司域名)+app(应用程序名称)。使用公司域名+应用程序名称。
2).第二层,各模块名称(包含实体模块)。若一个模块(主模块)下,还有子模块,那么,在主模块中定义对应的基类,如BaseActivity。VDiskClient是一个功能模块;VDiskServer是一个功能模块。
实体模块下定义相应的实体类,供全局调用。实体类的命名XXX+Info。
 
3).第三层,某一具体模块再分包,或者包含具体类。
 
 
 
网易新闻的分包规则
 
按照组件类型来划分,相同类型的组件放在同一个包下。比如,activity包下,存放的主要是Activity类型的类。
 
 
 
 
 
1).第一层,com.netease,使用公司域名。
2).第二层,分块,一块是newsreader,这一块下面的东西是网易新闻的内容。mobileanalysis,是估计是一个公用的包。
3).第三层,绿色部分,按照组件类型进行分包,activity,service,appwidget,db,bean这些包下存放对应的类型的类。
“往往activity相关的类如监听器,线程,适配器等非常多的类,这些不好直接丢在activity包下,而是直接写在相应的activity中以 匿名或者内部类形式定义,否则activity包和service包看上去会比较杂乱。”
 
 
 
集合上述分包规则优点的分包规则
 
 
适合多应用开发
 
 
reader,frind,life,这三个包,表示对应的应用。com.tianxia是第一层,用公司名称限定。
“其中common包为这三个应用共用,config,oauth为可选,view存放一些最通用的自定义view,比如对话框,定制的列表等”,common是从这三个应用中提取得到的,可以在这三个应用中共享使用。
common是一个jar包。
 
考虑到多个应用会引用一个库工程(Adnroid Library),使用如下分包:
 
 
"

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

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

"
 
 
第三层,列出该项目中,你要划分的几部分,功能模块module;配置部分config;common部分,这里的common只是对该应用通用,存放该应用中常用的功能和类。
 
某个应用下面,按照模块划分,也就是第四层,按照功能模块划分:
如下,在module包下,划分了blog,bbs,person三个功能模块,widget是特殊功能模块,BaseActivity是该模块下通用的基类。
 
 
 
 
再细一层:
在某一个具体模块下,还可以按照组件类型进行分包(比如,按照activity,service这两大组件类型进行分包)。
 
 
 
 
 
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
最后总结:
 
对于开发一个应用来说,我会对网易新闻的分包规则做修改,然后使用。如下:
第一层,使用com+公司域名;
第二层是应用的名称。
第三层按照组件类型来划分,比如,Activity类型的放在activity包下;Serveice类型的放在service包下。然后,某个activity用到的Adapter,Listener作为该activity的内部类。
命名规则:实体类,则按照xxxInfo;activity,service,receiver组件,则按照xxxActivity,xxxService命名;
然后,该应用可以引用库工程(Android Library)。
 
 
 
如果是多个应用管理,开发,则使用上文中[集合上述分包规则优点的分包规则]来分包。
 
 
 
参考文章:

Android项目分包---总结-------直接使用的更多相关文章

  1. 在Android项目中使用Java8

    前言 在过去的文章中我介绍过Java8的一些新特性,包括: Java8新特性第1章(Lambda表达式) Java8新特性第2章(接口默认方法) Java8新特性第3章(Stream API) 之前由 ...

  2. 使用ant优化android项目编译速度,提高工作效率

    1.Android项目编译周期长,编译项目命令取消困难 2.在进行Android项目的编译的同时,Eclipse锁定工作区不能进行修改操作 3.在只进行资源文件的修改时,Eclipse对资源文件的修改 ...

  3. (转)Android项目重构之路:界面篇

    在前一篇文章<Android项目重构之路:架构篇>中已经简单说明了项目的架构,将项目分为了四个层级:模型层.接口层.核心层.界面层.其中,最上层的界面,是变化最频繁的一个层面,也是最复杂最 ...

  4. Android——eclipse下运行android项目报错 Conversion to Dalvik format failed with error 1解决

    在eclipse中导入android项目,项目正常没有任何错误,但是运行时候会报错,(clean什么的都没用了.....)如图: 百度大神大多说是jdk的问题,解决: 右键项目-Properties如 ...

  5. eclipse — 导入android项目后识别成java项目的问题及解决

    最近在eclipse导入android项目的时候遇到了奇葩问题,再此记录 遇到的问题就是:将完好的android项目导入到eclipse的时候,原本这是一个很容易的事情,但是导入成功后发现,,,靠ec ...

  6. 用Kotlin创建第一个Android项目(KAD 01)

    原文标题:Create your first Android project using Kotlin (KAD 01) 作者:Antonio Leiva 时间:Nov 21, 2016 原文链接:h ...

  7. Android之什么是Activity和常用的ADB命令以及Android项目结构的认识

    总结一下之前学习Android的一些内容 一:  Android常用的ADB命令(adb android调试桥)      1.adb devices   查看模拟器设备并重新连接. 2.adb ki ...

  8. eclipse将android项目生成apk并且给apk签名

    转载:http://www.cnblogs.com/tianguook/archive/2012/09/27/2705724.html 生成apk最懒惰的方法是:只要你运行过android项目,到工作 ...

  9. Android开发学习——Android项目的目录结构

    Android项目的目录结构: 资源文件夹: 清单配置文件: Android的四大组件在使用前全部需要在清单文件中配置 <?xml version="1.0" encodin ...

随机推荐

  1. iOS-开发将文本复制到剪切板

    下面方法可以将文本复制到剪切板 UIPasteboard *pboard = [UIPasteboard generalPasteboard]; pboard.string = @"邀请码& ...

  2. epoll&ext4文件系统

    1.第一个终端运行nesttest,nesttest首先fork一个子进程,然后父进程退出,子进程首先打开一个txt普通文件对应fd为3,然后创建一个epfd,对应fd为4 lybxin@Inspir ...

  3. hibernate映射表

    <?xml version="1.0"?>   <!DOCTYPE hibernate-mapping PUBLIC        "-//Hibern ...

  4. WebExtensions & tabs.executeScript()

    tabs.executeScript() https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs ...

  5. 【Python】爬虫与反爬虫大战

    爬虫与发爬虫的厮杀,一方为了拿到数据,一方为了防止爬虫拿到数据,谁是最后的赢家? 重新理解爬虫中的一些概念 爬虫:自动获取网站数据的程序反爬虫:使用技术手段防止爬虫程序爬取数据误伤:反爬虫技术将普通用 ...

  6. UDP发送的数据 以数据包形式发送

    UDP发送的数据 以数据包形式发送

  7. 【刷题】BZOJ 2539 [Ctsc2000]丘比特的烦恼

    Description 随着社会的不断发展,人与人之间的感情越来越功利化.最近,爱神丘比特发现,爱情也已不再是完全纯洁的了.这使得丘比特很是苦恼,他越来越难找到合适的男女,并向他们射去丘比特之箭.于是 ...

  8. [NOIP2017]宝藏 子集DP

    题面:[NOIP2017]宝藏 题面: 首先我们观察到,如果直接DP,因为每次转移的代价受上一个状态到底选了哪些边的影响,因此无法直接转移. 所以我们考虑分层DP,即每次强制现在加入的点的距离为k(可 ...

  9. UVA.540 Team Queue (队列)

    UVA.540 Team Queue (队列) 题意分析 有t个团队正在排队,每次来一个新人的时候,他可以插入到他最后一个队友的身后,如果没有他的队友,那么他只能插入到队伍的最后.题目中包含以下操作: ...

  10. bzoj3810: [Coci2015]Stanovi(记忆化搜索)

    实际上切出来的矩阵在原矩阵上的位置是不重要的...重要的只有矩阵的大小和上下左右是否在边界上. 于是我们可以设f[x][y][l][r][u][d]表示x*y的矩阵上下左右是不是边界的最小代价. 记忆 ...