2016-02-25 27 views
0

我看着谷歌UniversalMusic播放器代碼示例製作一個共同的APK有一個共同的代碼庫,以支持從手機到電視的所有設備類型,在這裏給出: https://github.com/googlesamples/android-UniversalMusicPlayer任何方式在手機上製作適用於API-15 +和電視上的API-21 +的普通APK?

我的要求是有一個單獨的APK支持不同手機和電視分鐘API版本 - 分鐘API-15移動和最小API-21電視

(由於Android電視只能從API-21開始),我怎麼可以這樣用最少的代碼複製(即,如果決策。一個單獨的移動和電視模塊,那麼我必須複製這兩個模塊中的代碼)? 謝謝!

+0

好,最簡單的解決辦法是讓一個APK用'minSdkVersion'設置爲15。我不知道有什麼好處是使你的生活更加複雜,必須有兩個獨立的'minSdkVersion'兩個單獨的APK文件值。無論誰陳述這個「要求」,都應該詳細解釋爲什麼這個「要求」存在,因爲這可能會對解決方案產生影響。 – CommonsWare

+0

我想,第一個 - 但是有錯誤,因爲Leanback的API是僅適用於API-21開始......發現這個線程SO ... http://stackoverflow.com/questions/28075533/is-that-leanback-庫支持-API級-19-Android的換電視應用 –

+0

「但是有錯誤,因爲Leanback的API是僅適用於API-21開始」 - 依賴的API。有些人從API 17級開始工作。除此之外,無論如何,你將有單獨的啓動器活動(一個用於移動設備,一個用於電視)。只要您沒有移動設備嘗試啓動電視活動,您就不會有任何問題。這不是'minSdkVersion'的問題;這是一個確保您爲用戶的外觀因素提供正確用戶界面的問題。 – CommonsWare

回答

2

我認爲最好的解決方案是創建兩個APK。

您可以爲移動設備和電視創建一個項目,它們將位於不同的模塊中,但是在同一個項目中,您可以創建一個通用模塊,您將放置兩個都將使用的模塊,以避免重複的代碼。

創建通用模塊後,只需添加到移動和電視gradle:compile project(':common')

然後,您將擁有通用模塊中的所有可用於移動設備和電視的代碼。 因此,您將爲移動設備和電視擁有不同的gradle文件(以及不同的sdk版本),並且您將擁有一個通用模塊,您可以保留兩者都將使用的代碼。

我覺得這是最好的方法,因爲你可以把你需要在電視上所有的控制(如遠程控制,查看對焦控制等)的電視項目,它不會有移動產生任何影響。

要發佈APP,您可以關注this,以便您可以在相同的Play商店項目中發佈這兩個APK。

相關問題