注:
本文是从该文摘抄而来的。简单的说,就是阅读了该文,然后,再自己复述,复制形成该文。
 
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. 2017-2018-2 20172314 『Java程序设计』课程 结对编程练习_四则运算

    相关过程截图 截图为我负责的部分关于计算的测试 关键代码解释 根据代码中的部分解释,这部分代码实现了结果的整数和分数的输出,如果算出的结果为一个真分数,就输出真分数的形式,如果结果为整数,就输出整数形 ...

  2. Java语法基础课后作业

    1.动手动脑 运行它EnumTest.java,分析运行结果 s和t分别引用的是SMALL和LARGE,枚举类型不是原始数据类型,s和u的赋值方式不同,但结果一样,列出它的所有值:SMALL,MEDI ...

  3. iOS开发多线程编程2 - NSOperation

    1.简介 NSOperation实例封装了需要执行的操作和执行操作所需的数据,并且能够以并发或非并发的方式执行这个操作. NSOperation本身是抽象基类,因此必须使用它的子类,使用NSOpera ...

  4. python Django框架接入微信公众平台

    1.在接入微信公众平台之前,需要在微信公众平台配置好基本信息,如下: 这个时候点击“提交”按钮,会提示“Token校验失败”,不要着急,这是必然会出现的现象,先不要退出页面,保留各项输入的数据,按第二 ...

  5. /var/redis/run/redis_6379.pid exists, process is already running or crashed的解决办法

    命令:service redis start /var/redis/run/redis_6379.pid exists, process is already running or crashed 引 ...

  6. 内存交换空间(swap)的构建

    一.使用物理分区构建swap 1.先进行分区的行为. [root@iZ255cppmtxZ ~]# fdisk /dev/xvdb Welcome to fdisk (util-linux ). Ch ...

  7. subprocess模块详解

    subprocess是Python与系统交互的一个库,该模块允许生成新进程,连接到它们的输入/输出/错误管道,并获取它们的返回代码. 该模块旨在替换几个较旧的模块和功能: os.system os.s ...

  8. springboot 在tomcat中启动两次

    我开始以为眼花了,tomcat启动的时候, .   ____          _            __ _ _ /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \( ...

  9. 【题解】Atcoder ARC#83 E-Bichrome Tree

    哈哈~自己做出来的E题!(虽然这题被机房大佬强D极水).最开始神经错乱,写了个完全不对的贪心,竟然只错了4个点(。•ˇ‸ˇ•。) 可以发现,一个节点的子树内部和他颜色相同的节点权值和 是固定的,那么不 ...

  10. 51NOD 1565:模糊搜索——题解

    http://www.51nod.com/onlineJudge/questionCode.html#problemId=1565&noticeId=445588 有两个基因串S和T,他们只包 ...