注:
本文是从该文摘抄而来的。简单的说,就是阅读了该文,然后,再自己复述,复制形成该文。
 
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. Linux上安装MySQL - 12条命令搞定MySql

    从零开始安装mysql数据库 : 按照该顺序执行 :  a. 查看是否安装有mysql:yum list installed mysql*, 如果有先卸载掉, 然后在进行安装; b. 安装mysql客 ...

  2. oracle数据库之游标的使用

    一.游标概念 为了处理 SQL 语句,ORACLE 必须分配一片叫上下文( context area )的区域来处理所必需的信息,其中包括要处理的行的数目,一个指向语句被分析以后的表示形式的指针以及查 ...

  3. object-oriented第二次作业(1)

    1001.A+B F Format(20) 我的代码 题目看完,感觉挺简单的,就直接开始写代码了. 我把加起来后的数字的每位数用数组存起来,特判一下0和负数的情况,然后再一位位输出,遇到该输逗号的时候 ...

  4. error : Web 项目“RealEstate.Web”的 URL“http://localhost:20000”已配置为将 IIS 用作 Web 服务器,但是当前在 IIS Express W

    error  : Web 项目"RealEstate.Web"的 URL"http://localhost:20000"已配置为将 IIS 用作 Web 服务器 ...

  5. C# .net 获取外网ip

    public string GetIP() { string strUrl = "http://www.ip138.com/ip2city.asp"; //获得IP的网址了 Uri ...

  6. [剑指Offer] 52.正则表达式匹配

    题目描述 请实现一个函数用来匹配包括'.'和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配是指字符串的所有字符匹配整个模式 ...

  7. C#中整型数据类型

    C#中整型数据类型byte是8位的无符号整数,可是它表示的值的范围是0-255才3位啊怎么说是8位啊?谁能帮我解答 全部答案   八位二进制.0000 0000到1111 1111相当于十进制0-25 ...

  8. Vue推荐资料

    推荐博文(我是看过,才敢说的偶): 基础教学: 菜鸟语法教程:https://cn.vuejs.org/v2/guide/syntax.html  http://www.runoob.com/vue2 ...

  9. [zhuan]动态链接库中的.symtab和.dynsym

    http://blog.csdn.net/beyond702/article/details/50979340 原文如下: shared library (.so) "Program Lib ...

  10. memchr函数

    函数原型:extern void *memchr(void *str, char ch, unsigned count) 参数说明:从str所指内存区域的前count个字节查找字符ch.        ...