2014-02-25 23 views
3

當你編寫一個本應該有兩個版本的應用程序,一個免費版本(可能有廣告)和一個高級版本(沒有廣告但功能更多)時,你如何管理這些版本在您的IDE?你把他們當作兩個分開的項目嗎?我認爲這不是一個好主意,因爲每次你改變兩個版本的一部分時,你必須改變它兩次。但是,如果您只開發一個項目,您如何導出這兩個不同的應用程序?應用程序應該有不同的清單文件(可能還有其他差異,至少有一個布爾標誌,告訴程序是免費版還是高級版)。對一個項目來說這是不可能的,不是嗎?同時開發一個免費和高級版本

所以我想知道你是如何專業開發這樣的應用程序。此外,我想知道如何確保安裝高級版本將覆蓋免費版本(如果已安裝)。

+0

把所有你可以放在一個庫項目中,然後創建2個具有相同包名的項目,高級版的版本號至少與免費版一樣高。 – njzk2

+2

爲什麼不考慮在應用內購買優質內容? – michaelcarrano

+1

@ njzk2這隻有在你不打算通過正常渠道發佈它們時纔有效。例如,您不能在Play商店中擁有兩個具有相同包名的應用程序。 – Geobits

回答

2

爲了克服重複的代碼問題,您將大部分代碼放在庫中。使用Eclipse可以很容易地轉換庫中的項目,並且可以重新使用任何組件,包括活動和資源(不是資產)。

安裝一個應用程序的高級版本不會覆蓋免費版,因爲它們是不同的包,並且被視爲不同的應用程序(不不同版本的同一應用程序)

你也可以考慮實施-app購買解鎖優質功能。

2

在許多構建系統(包括Grade,Android Studio的默認設置)中,您可以將構建配置爲具有「風格」或「構建變體」。這種風格可以完成一切,從構建過程中更改庫/常量到更改應用程序的包名。因此,我喜歡做的是配置一個開發版本(大量日誌記錄,這可能會影響性能或泄漏生產版本中的數據),發佈版本以及有時針對不同分銷渠道(Nook vs Play等)的多版本版本。

就免費與付費應用程序而言,我更傾向於獲得免費應用程序嘗試然後付費解鎖以免卸載/安裝的用戶體驗。但是,如果分銷渠道不支持應用內支付,那麼你不能這樣做,我建議使用構建風格來構建多個包。

+0

關於Gradle的信息:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Type-Product-Flavor-Build-Variant Maven:http:// stackoverflow.com/a/4833106/597849 – Turnsole

相關問題