2013-02-19 106 views
3

我正在考慮嘗試爲遊戲構建複雜的Android應用程序結構,可能或僅僅是出於實踐的原因。林用於在Objective-C代碼,所以我不會在Android中,許多經歷過......Android複雜項目組織

反正在工作中,我們構建在這樣的ios我們的應用程序:

-core框架:處理所有的核心項目,導航,datahandling,機制等,它在我們所有的項目相同

- 項目框架:它的文件大多是依靠(含)的核心框架的文件,擴展/修改它們,並做不同的東西

項目

-skin框架:這包含了所有的資源和圖片,如果我們想要做一個重新皮膚的項目,我們會你必須改變這個

- 主要項目:這包括所有東西都撲在一起到一個應用程序。只是啓動應用程序,沒有更多的,其他任何事情都是由不同的框架完成的

所以我想在android上做類似的結構,但我不確定我甚至能夠做到這一點......我看到有Android項目和庫項目,我可以將它們納入eachother ...但我的問題是:

1:我可以建立一個類似於ios上的結構嗎?我可以舉例說明一個「核心」庫,它包含了機制的基礎知識,另一個庫僅包含資源,第三個庫(或第三個庫可能是實際可運行的項目),什麼可以獲得資源庫中的資源,可以將作業分配到核心庫等等。

3:我可以像我喜歡的那樣組織資源(所以不要將每張圖片都放到可繪製的文件夾根目錄中)。例如有一個字符文件夾(我知道我不能在res文件夾forlders),並將地圖文件映射到地圖文件夾,等等...我唯一的機會來命名他們「正常」? (map_sheet_type_1,map_sheet_type_2,character_sheet_type_1等)(如果它將成爲一個遊戲,它會使用opengl,大量的精靈繪圖等)

或者我應該在單個項目中做所有事情,包,並使用庫僅用於「如何將」A「對象轉碼爲」B「對象」的作業?

謝謝你的答案提前

+0

或者如果有人知道有關架構/結構/建築相當複雜的Android應用程序的一些好書,請告訴我:) – HomeUser 2013-02-19 23:42:14

回答

1

雖然我以前從來沒有開發一個遊戲,而是一個應用程序是一個應用程序:

  1. 你提到你有可執行的項目和庫項目中,圖書館可以使用其他圖書館,而唯一轉到該設備的東西就是可執行項目正在構建的任何東西。注意編譯庫*.jar files資源不能用於您的可執行項目(這就是爲什麼ActionBar Sherlock必須用作庫項目)這一點很重要。爲了使用放置在庫項目中的資源,項目必須在Eclipse中打開完整的源代碼,以便它可以一起編譯。這是因爲在應用程序內部,只有一個R(資源)對象,並且在構建過程中,所有項目的所有資源都放在一起。
  2. 不幸的是沒有。正如你自己提到的那樣,資源不能放在子文件夾中,甚至文件名也被限制,因爲它們只能使用小寫字母,數字和_(下劃線)。只要聰明有條理,寫一個規範或什麼的。
  3. 包是用Java組織單個項目的方式。如果你會使用多個或單個是你的選擇。通常你可以封裝在一個圖書館項目中,這些項目可以很容易地在不同的項目中重複使用,最終的項目將包含特定於該應用程序/遊戲的所有內容。我會舉例說明我工作的地方,我們有一個KicthenLibrary,它是一個我們在每個Android應用程序中使用的庫項目。該庫已經包含了一個優秀的多線程位圖下載和緩存類,在Google發佈他們的MapFragment,簡單的Http GET/POST方法等之前,我們曾經有一個MapFragment(現在已經棄用)。正如你所看到的,所有這些都是東西可以輕鬆地在幾個不同的項目中重複使用。

就像最後一個技巧一樣,http://www.eclipse.org/egit/恕我直言,從Eclipse內部直接使用GIT更容易。

+0

非常感謝你! – HomeUser 2013-02-20 06:48:16

+0

我已經和我們的android開發者協商過了,他給了我一個提示: 他們正在將一些圖像存儲在軟件包中(例如eu.project.images.hdpi),他們得到這樣的結果: holder .itemIcon.setImageDrawable(GUIUtil.getImage(「alert_standard」,context)); alert_standard是一個PNG圖像,GUIUtil.getImage正在檢查緩存中的圖像,如果未找到,則會組裝包名(eu.project.images.hdpi.alert_standard.png),加載它,以及返回一個可繪製的對象... 現在,我只是好奇,如果我可以將這一切都打包到圖書館...我檢查下班後... – HomeUser 2013-02-20 08:31:55

+0

大聲笑,我很愚蠢像地獄:PA很久以前我寫了一個使用SD卡圖像的應用程序...所以我可以編寫一個從卡片讀取圖像到內存的類,如果我需要其他圖片,請刪除一些圖片並閱讀其他圖片...我可以將我的資源文件夾組織爲瘋狂地,因爲我想在SD卡上:D:D:D所以我可以組織,並且始終得到我需要的圖像... :) – HomeUser 2013-02-20 19:02:24

0

這裏有幾個鏈接,可以幫助你開始這個。

http://kasperholtze.com/android/how-to-best-organize-your-android-source/

http://bartinger.at/organization-tips-for-android-projects/

此外,當我在一家初創,我們做了兩個iOS和Android的應用程序。我們開始爲每個應用程序創建本地應用程序,並且結構有所不同。全局信息/變量的處理方式不同,我無法像iOS那樣構造我的文件。也就是說,Android結構並不是非常難以找到,我在我的資產文件夾(針對庫和js等)中創建了大量的子文件夾。是的,你肯定有幾個庫。

至於在一個應用程序中有幾個幾個項目,看到這個鏈接How to create a single application from multiple Android projects

+0

非常感謝! – HomeUser 2013-02-20 06:49:03