如何使apk既可用于移动电视又可用于android电视?

如何使apk既可用于移动电视又可用于android电视?,android,android-tv,Android,Android Tv,现在我正在为移动和android-TV开发一个应用程序。根据,这是可能的 出于某些原因,我分别开发了两个应用程序。  它只是简单地合并两个应用程序的源来归档吗?或者有什么需要注意的吗?是的,手机和电视特定的代码都可以打包在同一个APK中。事实上,大部分非UI代码理论上可以在两者之间共享。在Android清单中,你必须以稍微不同的方式装饰你的应用程序活动和电视活动: 下面是你如何装饰你的应用程序活动 <activity android:name=".player.app.Launch

现在我正在为移动和android-TV开发一个应用程序。根据,这是可能的

出于某些原因,我分别开发了两个应用程序。 


它只是简单地合并两个应用程序的源来归档吗?或者有什么需要注意的吗?

是的,手机和电视特定的代码都可以打包在同一个APK中。事实上,大部分非UI代码理论上可以在两者之间共享。

在Android清单中,你必须以稍微不同的方式装饰你的应用程序活动和电视活动:

下面是你如何装饰你的应用程序活动

<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_启动器的类别意图
还要确保限制和不需要的功能

<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" >