App工程结构搭建几种常见Android代码架构分析.docxVIP

App工程结构搭建几种常见Android代码架构分析.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
App 工程结构搭建:几种常见 Android 代码架构分析 关于 Android 架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角度,看到整齐的代码, 优美的分层总是一种舒服的享受的。 从艺术的角度看,其实我们是在追求一种美。 本文先分析几个当今比较流行的 android 软件包,最后我们汲取其中觉得优秀的部分,搭建我们自己的通用 android 工程模板。 微盘 微盘的架构比较简单,我把最基本,最主干的画了出来: 第一层:com.sina.VDisk:com.sina(公司域名)+app(应用程序名称) 。 第二层:各模块名称(主模块 VDiskClient 和实体模块 entities) 第三层:各模块下具体子包,实现类。 从图中我们能得出上述分析中一个最简单最经典的结构,一 般在应用程序包下放一些全局的包或者类,如果有多个大的 模块,可以分成多个包,其中包括一个主模块。 在主模块中定义基类,比如 BaseActivity 等,如果主模块下还有子模块,可以在主模块下建立子模块相应的包。说明一 点,有的时候如果只有一个主模块,我们完全可以省略掉模 块这一层,就是BaseActivity.java 及其子模块直接提至第二层。 在实体模块中,本应该定义且只定义相应的实体类,供全局 调用(然而实际情况可能不是这样,后面会说到)。在微盘应 用中,几乎所有的实体类是以 xxx+info 命名的,这种命名也是我赞成的一种命名,从语义上我觉得 xxxModel.java 这种命名更生动更真实,xxxModel 给我一种太机 械太死板的感觉,这点完全是个人观点,具体操作中以个人习惯为主。还 有一点,在具体的 xxxInfo,java 中有很多实体类中是没有get/set 的方 法,而是直接使用 public 的字段名。这一点, 我是推荐这种方式的,特别是在移动开发中,get/set 方法很多时候是完全没有必要的,而且是有性能消 耗的。当然如果需要对字段设置一定的控制,get/set 方法也是可以酌情使用的。 久忆日记 相比于微盘的工程结构,久忆日记的结构稍微复杂了一些。 如下图: 第一层和前面微盘一样的. 第二层则没有模块分类,直接把需要的具体实现类都放在下面,主要日记的一些日记相关的 Activity。 第二层的实体包命令为 model 包,里面不仅存放了实体类 xxx.java,而且存放了更高一级的实体类的相关类,比如xxxManager.java,xxxFactory.java.关于这一点,我们可以参考一下 android.jar 中结构,我们发 现,Activity.java 和ActivityManager.java,View.java 和 ViewManager.java, Bitmap.java 和 BitmapFactory.java 等等 N 多类似的一对类都在同一个包下,我个人觉得实体 包下存放实体类相应的Manager 和 Factoty 类也是正确的,是我们应该采纳的一种结构。这里就打破了前面微盘中说的实体包下存放且只存放实体类的 说法了。在现实中,从灵活和合理的角度,久忆日记的这种实体包中存放对象内容更加实用。 第二层中增加了前面微盘中没有涉及到的 config, constant 和common 包。第一,其中 config 中存储一些系统配置,比如名称,应 用参数等系统级的常量或者静态变量,当然,如果你有其他大模块的配置,比如如果拥有复杂 的用户管理模块的话,完全可以增加一个 UserConfig.java 中存储用户的一些配置信息等等。第二,constant 包,此包下存放的都是 public static final 常量,定义状态,类型等等。出于性能考虑,android 开发中我不推荐使用枚举。common 包中定义一个公用库,这里因为应用单一,无法很 好的说明common 包内容结构。 5).common 包要涉及后面多个软件比较后我们再得出结论。通过久忆日记的分析,借鉴到了不少的东西,使我们的架构 更丰满更强大了。 网易新闻 网易新闻确实做的不错,从应用的角度看,是我最欣赏的应 用之一。它的工程结构是怎么样的呢? 网易新闻的工程结构和前面 2 各 app 又有很多的不同,它并没有按照模块来分,而是主要按照组件的类型来分的,然后 把此类型所有的类全部放在其下。那么这种把所有 activity 全部放在activity 包下的分法的确在android 开发中比较普遍。1).第一层被分成了两层,可以看出来,这里肯定是采用了公用包 jar,如此说来,我们开发公用包的时候也应该按照公司域名+公用模块名称组合方式来命名比较好。 第三层(绿色层)中 activity 和service 包下都

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体 阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档