2012-09-24 89 views
0

問題定義:我們有一個相當大的應用程序,它有多個用例,它們都是彼此獨立的。例如,假設我們有a1,a2,a3 & a4模塊,它們是獨立的應用程序或用於我們主應用程序「A」的用例。獨立的a1,a2,a3,a4都是可購買的應用程序,用戶可以訪問我們的網站而不是遊戲商店,並通過在我們的網站上支付一些費用來激活a1或a2。組織Android應用程序與多個獨立應用程序的選項

所以基本上應用程序'A'是一個免費的應用程序在遊戲商店,是一種儀表板與按鈕發射a1,a2,a3,a4。當用戶點擊讓我們說a1按鈕,那麼我們將檢查a1是否已經安裝並啓動它,但如果它不存在,則給用戶一個鏈接以下載它。

選項1:有一個主應用程序'A'和a1,a2,a3,a4作爲庫項目。但採用這種方法,主應用程序A的體積太大了。

選項2:讓a1,a2,a3,a4構建爲單獨的.apk文件,然後放入主應用程序'A'的assets文件夾中,然後根據需要安裝它們。主應用程序A的大小再大一些。

選項3:將a1,a2,a3,a4上傳到第三方網站或播放商店,並根據需要從商店下載。這種方式主應用程序保持較輕。

觀察:在所有這些方法中,都會在用戶手機上安裝一個獨立的應用程序圖標。因此,基本上用戶可以從儀表板啓動(最終將從a1應用中的活動啓動一個意圖),或者用戶可以直接啓動應用程序a1。

後續問題:有沒有其他的解決方案,任何人都可以建議來解決這類問題?另一件事是通過這種方法應用程序a1,a2,a3,a4可以開發&彼此獨立測試。

回答

0

對於它的價值,我會選擇3到Play商店。這是最容易管理和最知名的。比非Google網站更可信。 '當然他們喜歡這30%...

爲了您的後續行動,我假設了Eclipse。如果你使用別的東西,做類似的事情。

當您將某物移至生產環境時,請創建一個發行包(文件夾)。封裝中內置:

  1. 的APK
  2. 導出的,其包括的.classpath,源等,這可以被導入作爲項目文件結構。
  3. 任何支持文件,如圖標集,原始數據等
  4. 用於簽名的密鑰庫副本。
  5. 您的最終SD卡圖像的副本。
  6. 放入Play商店的營銷信息的副本。

備份多次到不同的驅動器。我也刻錄DVD。

當您處理下一個版本時,請將您需要的內容複製到新的待發布包中。不要修改當前的發行包。 創建一個新的工作區。 將SD卡複製到SD卡文件夾。 通過重命名當前文件結構,然後使用更改導出文件結構,在開發過程中進行基準測試。

在開發過程中,每天至少一次使用導出複製工作區文件結構。它只需要幾秒鐘。

根據需要添加到此過程。這個想法是,在你發佈到Play商店之前,你要確保所有東西都保存到包含apk的發佈包中。然後對包進行無更改。如果您在生產版本上有錯誤,請開始新版本。

這是所有標準編程實踐。你可能已經知道所有這些了。問題是執行規則。任何人都能更好地瞭解你的環境。你所要做的就是研究可以在發佈包中放置哪些組件,這將允許你在以後複製該envonemnt。然後你必須執行規則。或者讓自己跟着他們。

人們傾向於快速修復或更改源代碼並構建在最後一個生產環境的頂部。沒有人想在凌晨2點遵守規則。你可能不得不採取人身暴力(知道詠春?)。或者可以發送Guido來確保遵守規則。

玩得開心。做一項研究。如果您的硬盤出現故障,請向您的所有員工詢問恢復到原來的狀態。這就是你的發佈包中的內容。 (這也是你應該每天備份的東西。)

嗯,我已經漫步了足夠長的時間,告訴你你已經知道了什麼。希望我引發了一些想法。你會好的,你聽到了。

+0

Ooops。我留下了在開發環境中重命名文件結構的印象。不是我想要的。在目標端重命名文件結構。然後導出到目標。 –

+0

感謝霍華德的回覆。我會和我的團隊討論,而且很可能我們無論如何都傾向於選擇3與遊戲商店。我們只是想確認,我們不是這樣做的,似乎人們已經在做這種方法。 – lazyguy

+0

不客氣。給我一張關於你最終做什麼的筆記... –