如何使 apk 既可以在移动设备上使用,也可以在 android-TV 上使用?
How to make an apk can be used both in mobile and android-TV?
现在我正在为移动设备和 android-TV.According 开发一个应用程序到 android develop guide,这是可能的。
由于某些原因,我单独开发了两个应用程序。
它只是简单地合并两个应用程序的源来存档吗?或者有什么需要注意的吗?
是的,移动和电视特定代码可以打包在同一个 APK 中。事实上,很多非UI代码在理论上可以在两者之间共享。
在您的 Android 清单中,您必须以稍微不同的方式装饰您的应用程序 Activity 和电视 Activity:
这是你如何装饰你的应用程序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
<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_LAUNCHER
的 Leanback 主题和类别意图的使用
另外一定要限制和不需要的功能
<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" >
现在我正在为移动设备和 android-TV.According 开发一个应用程序到 android develop guide,这是可能的。
由于某些原因,我单独开发了两个应用程序。
它只是简单地合并两个应用程序的源来存档吗?或者有什么需要注意的吗?
是的,移动和电视特定代码可以打包在同一个 APK 中。事实上,很多非UI代码在理论上可以在两者之间共享。
在您的 Android 清单中,您必须以稍微不同的方式装饰您的应用程序 Activity 和电视 Activity:
这是你如何装饰你的应用程序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
<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_LAUNCHER 的 Leanback 主题和类别意图的使用
另外一定要限制和不需要的功能
<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" >