Android项目:如何最好地组织文件

时间:2013-08-06 03:18:56

标签: android code-organization

我正在构建我的第一个Android应用程序,它已经变得有点混乱了。我正在使用List / detail模式,因为它们适合环境,但因为我正在开发移动设备和平板电脑,所以它有点失控。对于每个屏幕(列表/细节是一个屏幕),创建四个文件。 ListActivity,ListFragment,DetailActivity,DetailFragment。到目前为止有四个屏幕,从字面上开始项目,我有12个文件,还有一个数据库表的三个帮助文件。

我问的是,组织这个的最佳方法是什么?我正在使用Android Studio,似乎我无法将文件排序到文件夹中而不将它们放在单独的包中。所以我会做一些像com.domain.app.screen1。(片段|活动),com.domain.app.screen2。(片段|活动)等等?或者我忍受了吗?或者有更好的方法吗?

如果我不清楚,请告诉我,我会尝试清除它

2 个答案:

答案 0 :(得分:30)

@Eric Oestrich的好解释

编写中型到大型Android应用程序需要具有代码结构。在创建我们最新的Android开发项目时,我遇到了一个帮助我的结构。

Java代码:

  • com.example

    • <强>活动

      包含所有活动。类最后都以Activity命名。这样,您可以在阅读Java代码时立即知道它是什么 没有完整的包裹名称。

    • <强>适配器

    包含所有适配器。

    • 认证器

    包含与签署用户相关的任何类。我创建一个本地帐户并将所有相关的类放在一起非常方便。

    • 数据

    包含与数据管理相关的所有类,如ContentProvider和SQLiteHelper。

    • data.migrations

    包含我的所有SQLite迁移。

    • 片段

    包含所有碎片。

    • 助手

    包含帮助程序类。帮助程序类是放置在多个位置使用的代码的地方。我有一个DateHelper。大多数方法都是静态的。

    • 接口

    包含所有接口。

    • 模型

    包含所有本地模型。从HTTP API同步时,我使用Jackson将JSON解析为这些Java对象。我也将Cursor行拉入这些模型中。

    • 偏好

    包含自定义首选项的所有类。创建首选项时,我需要自定义PreferenceDialog以及自定义PreferenceCategory。他们住在这里。

    • 同步

    包含与同步相关的所有类。我使用SyncAdapter从HTTP API中提取数据。除了SyncAdapter之外,还需要SyncService,因此我创建了一个包。

布局:

  • 活动布局名称以活动_
  • 开头
  • 适配器布局行名称以行_
  • 开头
  • 片段布局名称以片段_
  • 开头

答案 1 :(得分:11)

据我所知,没有惯例,但这里有一个如何将文件放入包中的例子:

  • mainPackage
    • LauncherFragment
    • LauncherActivity
    • 所有MyApplication
  • uiPackage
    • DetailsFragment
    • DetailsActivity
    • OtherTabletFragment
  • viewPackage
    • 自定义视图
  • databasePackage
    • MainContentProvider
    • MainDBHelper
    • SecondContentProvider
    • SecondDBHelper
  • dataPackage
    • CustomAdapter
  • utilsPackage
    • xmlUtils
    • 文本实用程序

还有很多其他人。您可以在GitHub上搜索android项目并查看。