Android 包结构最佳实践 [关闭]

Posted

技术标签:

【中文标题】Android 包结构最佳实践 [关闭]【英文标题】:Android Package Structure Best Practice [closed] 【发布时间】:2011-09-30 19:37:30 【问题描述】:

我对应用程序包结构的最佳做法有疑问。

我观看了 Reto Meier 的 Google I/O 2011 演示文稿"android Protips: Advanced Topics for Expert Android Developers”并阅读了他的博文“A Deep Dive Into Location”并注意到他的应用程序包结构:

com. ... .content_providers com。 ... .receivers com。 ... .服务 com。 ... .UI com。 ... .UI.fragments com。 ... .utils com。 ... .utils.base

这是包的首选结构吗?有更好的结构吗?

【问题讨论】:

真的很喜欢这类问题。也很想知道其他人对此的看法 不完全一样,但是这个问题在更一般的意义上可能有用***.com/questions/5525872/… 我喜欢这种方式,我也根据其中类的主要功能对我的包进行分类。像 *.activities -- 不过这是主观的。 我已经解释了Pros and cons of different package structures in Android apps。这可能很有用。 【参考方案1】:

打包类的主要目的是简化源代码的导航。这对于开源应用程序尤其重要。在我看来,一个易于导航的包结构包括以下几个包:

com.example.main - 包含您的主要驱动功能,例如您的主要活动、您的应用程序类(如果有的话)等

com.example.conf - 包含您的配置文件,例如那些包含常量(静态最终变量)的配置文件

com.example.net - 与网络相关的类,例如发出 http 请求的类

com.example.util - 实用程序类,例如服务、BroadcastReceivers 或其他后台进程

【讨论】:

这是包的目的之一,但不一定是主要目的。二是妥善隐藏关注领域。例如,您可以将所有 UI 代码放在 .ui 包中,将所有类 pkg 设为私有,而不将它们暴露给代码的任何其他层。 我看到很多项目都是以这种方式构建的(我认为即使是 Google IO 2012 也是如此)。我喜欢我的项目按主题分组(打包):(com.apps.player 与 PlayerActivity、PlayerListView、PlayerListAdapter、com.apps.sync 与 SyncService、SyncHelper 等)我发现以这种方式更易于导航和理解代码.此外,如果我处理特定功能,我手头有所有课程。我不明白为什么有人将在其名称中指示其功能的类(例如 PlayerActivity)放入指示其类功能(例如 com.apps.activities)的包中。

以上是关于Android 包结构最佳实践 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

(Java)包组织有最佳实践吗? [关闭]

Android:在 Activity 中声明 View 组件的最佳实践是啥? [关闭]

Android strings.xml 最佳实践? [关闭]

Django项目工作目录结构的最佳实践[关闭]

组织 Javascript 库和 CSS 文件夹结构的最佳实践 [关闭]

打包结构化 Spring 项目的最佳实践是啥?