有什么方法可以为手机上的 API-15+ 和电视上的 API-21+ 制作通用 APK?
Any way to make common APK for API-15+ on mobile and API-21+ on TV?
我查看了 Google UniversalMusic Player 代码示例,用于制作具有通用代码库的通用 APK,以支持从手机到电视的所有设备类型,如下所示:
https://github.com/googlesamples/android-UniversalMusicPlayer
我的要求是让单个 APK 在移动设备和电视上支持不同的最小 API 版本 - 移动设备最小 API-15,电视最小 API-21(因为Android 电视只从 API-21)
开始
我如何以最少的代码重复来做到这一点(即,如果制作一个单独的移动和电视模块,那么我必须在两个模块中复制代码)?
谢谢!
我认为最好的解决方案是创建两个 APK。
您可以为手机和电视创建一个项目,它们将在不同的模块中,但在同一个项目中,然后您可以创建一个通用模块,您将放置两者都将使用的所有内容,以避免重复代码。
创建通用模块后,只需添加到手机和电视即可gradle:compile project(':common')
。
然后您将拥有可用于移动设备和电视的公共模块中的所有代码。
因此,对于手机和电视,您将拥有不同的 gradle 文件(以及不同的 SDK 版本),并且您将拥有一个通用模块,您可以保留两者都将使用的代码。
我认为这是最好的方法,因为您可以将电视上需要的所有控件(如遥控器,视图焦点控制等)放在电视项目中,它不会对移动产生任何影响。
要发布 APP,您可以关注 this,这样您就可以在同一个 Play 商店项目中发布这两个 APK。
我查看了 Google UniversalMusic Player 代码示例,用于制作具有通用代码库的通用 APK,以支持从手机到电视的所有设备类型,如下所示: https://github.com/googlesamples/android-UniversalMusicPlayer
我的要求是让单个 APK 在移动设备和电视上支持不同的最小 API 版本 - 移动设备最小 API-15,电视最小 API-21(因为Android 电视只从 API-21)
开始我如何以最少的代码重复来做到这一点(即,如果制作一个单独的移动和电视模块,那么我必须在两个模块中复制代码)? 谢谢!
我认为最好的解决方案是创建两个 APK。
您可以为手机和电视创建一个项目,它们将在不同的模块中,但在同一个项目中,然后您可以创建一个通用模块,您将放置两者都将使用的所有内容,以避免重复代码。
创建通用模块后,只需添加到手机和电视即可gradle:compile project(':common')
。
然后您将拥有可用于移动设备和电视的公共模块中的所有代码。 因此,对于手机和电视,您将拥有不同的 gradle 文件(以及不同的 SDK 版本),并且您将拥有一个通用模块,您可以保留两者都将使用的代码。
我认为这是最好的方法,因为您可以将电视上需要的所有控件(如遥控器,视图焦点控制等)放在电视项目中,它不会对移动产生任何影响。
要发布 APP,您可以关注 this,这样您就可以在同一个 Play 商店项目中发布这两个 APK。