如何使一个apk既可以在移动端也可以在android-TV中使用?
Posted
技术标签:
【中文标题】如何使一个apk既可以在移动端也可以在android-TV中使用?【英文标题】:How to make an apk can be used both in mobile and android-TV? 【发布时间】:2015-10-25 01:27:16 【问题描述】:现在我正在为移动和 android-TV 开发一个应用程序。根据android develop guide,可以这样做。
由于某些原因,我单独开发了两个应用程序。
只是简单地合并两个应用程序的源来存档吗?还是有什么需要注意的?
【问题讨论】:
【参考方案1】:在您的 Android Manifest 中,您必须以稍微不同的方式装饰您的 App Activity 和 TV Activity:
这是你如何装饰你的应用活动
<activity
android:name=".player.app.LaunchActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这是你如何装饰你的电视活动
<activity
android:name=".player.tv.TvActivity"
android:theme="@style/Theme.Leanback" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
注意 Leanback 主题的使用和 LEANBACK_LAUNCHER 的类别意图
还要确保限制和不需要的功能
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<uses-feature
android:name="android.hardware.faketouch"
android:required="false" />
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.front"
android:required="false" />
<uses-feature
android:name="android.hardware.bluetooth"
android:required="false" />
<uses-feature
android:name="android.hardware.nfc"
android:required="false" />
<uses-feature
android:name="android.hardware.location.gps"
android:required="false" />
<uses-feature
android:name="android.hardware.microphone"
android:required="false" />
<uses-feature
android:name="android.hardware.sensor"
android:required="false" />
并在您的应用程序声明中添加横幅
<application
android:name=".library.core.MainApplication"
android:allowBackup="true"
android:banner="@drawable/mythtv_logo"
android:icon="@drawable/ic_mythtv"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
【讨论】:
【参考方案2】:是的,移动和电视专用代码都可以打包在同一个 APK 中。事实上,大部分非 UI 代码理论上可以在两者之间共享。
【讨论】:
以上是关于如何使一个apk既可以在移动端也可以在android-TV中使用?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以同时运行两个 apk 并使它们通过 Windows 服务进行通信?