2013-08-06 25 views
19

我正在构建我的第一个Android应用程序,它已经变得有点混乱。我使用的是列表/细节模式,因为它们适合于环境,但是因为我正在开发移动设备和平板电脑,所以它变得有点失控。对于每个屏幕(列表/细节为一个屏幕),创建四个文件。 ListActivity,ListFragment,DetailActivity,DetailFragment。目前为止有四个屏幕,并且实际上只是启动项目,我有12个文件,另外还有一个数据库表的三个帮助文件。Android项目:如何最好地组织文件

我在问什么是组织这个最好的方法?我使用的是Android Studio,似乎我无法将这些文件放入文件夹中,而无需将它们放入单独的包中。所以我要做一些类似com.domain.app.screen1。(Fragments | Activities),com.domain.app.screen2。(Fragments | Activities)等等?或者我只是忍受它?或者有更好的方法来做到这一点?

如果我是不清楚,只是让我知道,我会尽力把它清除掉

+0

我推荐你甚至不用考虑碎片,除非你只使用活动完成至少几个不同的应用程序。 –

+0

我不会使用片段,但由于我要开始使用平板电脑应用程序,因此除List/Detail流之外,其他任何内容对我而言似乎都很愚蠢。我得到了他们的窍门,即使让他们沟通,但我如何组织他们这就是问题所在。这和Android Studio自动生成片段和活动,所以它不那么难 –

回答

11

据我所知,没有约定的,但这里是你如何把一个例子你文件包:

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

等等。您可以在GitHub上搜索android项目并查看。

+5

[这是一个很好的例子](https://github.com/owncloud/android/tree/master/src/com/owncloud/ android) –

+0

很好的例子,谢谢你的链接 – buzeeg

+0

这是完全错误的/无用的... –

21

好解释由@Eric厄斯特里希:

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

Java代码:

  • com。示例

    • 活动

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

    • 适配器

    包含所有适配器。

    • 认证

    包含与登录用户的任何类。我创建一个本地帐户,并让所有相关的类在一起是非常方便的。

    • 数据

    包含与数据管理等的ContentProvider和SQLiteHelper所有类。

    • data.migrations

    包含了所有我的SQLite迁移。

    • 片段

    包含所有片段。

    • 助手

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

    • 接口

    包含的所有接口。

    • 模式

    包含所有本土车型。从HTTP API进行同步时,我使用Jackson将JSON解析为这些Java对象。我也将光标行拖入这些模型中。

    • 喜好

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

    • 同步

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

布局:

  • 活动布局名称开始activity_
  • 适配器布局行名称与row_开始
  • 片段布局名称开始fragment_
+2

这个必须被接受。 –