2013-08-06 30 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

這個必須被接受。 –