Android项目包结构

时间:2011-04-02 21:05:41

标签: android project packages

我想知道如何为Android应用程序创建灵活的包结构,以便它易于扩展和管理。我的第一个想法是将每个应用程序组件放在单独的包中,例如:

spk.myapp.main。(主要活动中使用的所有类) spk.myapp.processor。(处理器提供程序使用的所有类)

......等等。但是,我不喜欢的方面是,类和包命名约定可能很快与其他完全限定名称(例如提供者权限)不一致(在这种情况下,我宁愿将这些命名为 spk.myapp.processor < / em>比 spk.myapp.processor.processor 一样,类包路径会建议)。

我做过一些研究,但大多数页面都解释了初始项目目录结构,而不是建议更大的项目。

我的问题可能听起来很愚蠢,但我喜欢从一开始就在我的项目中订购,这样进一步管理和扩展它们就不会涉及不必要的重构或清理。另外,我没有太多Java经验,我希望从一开始就学好习惯。

是否有一个良好可靠的项目包结构和Android项目的命名约定?

1 个答案:

答案 0 :(得分:5)

Java包上的

Wikipedia has useful notes。包主要有两个原因:

  1. 包为其包含的类型提供唯一的命名空间。
  2. 同一个包中的类可以访问彼此的包访问成员。
  3. 第一点意味着您可以按逻辑功能对项目进行分组。活动可以位于活动包下,也可以位于服务包下。

    第二点非常重要,经常被忽视。包访问允许您做一些聪明的事情。例如,您可以拥有一个“构建器”类,它可以构建和填充具有包访问属性的模型,而无需添加大量的setter方法或使用公共属性。这可以使对象创建非常简单直观,而对象在包外保持不变。

    这个原则的一个很好的例子可以在Romain Guy的Shelves应用程序中找到。 BookStore class可以创建Book对象并修改其成员,而不会将这些字段暴露给其他类(在其他包中)。