Android TV Study 1-1

寿浩言
2023-12-01
总体和手机端和pad 端的开发是一样的,但是交互的方式是有本质的区别的.


TV apps use the same structure as those for phones and tablets. This approach means you can create new TV apps based on what you already 


know about building apps for Android, or extend your existing apps to also run on TV devices. However, the user interaction model for TV 


is substantially different from phone and tablet devices. In order to make your app successful on TV devices, you must design new 


layouts that can be easily understood from 10 feet away, and provide navigation that works with just a directional pad and a select 


button.




adb connect 192.168.1.102   (192.168.199.102是电视的IP地址)
adb install C:\apk\tv.apk




user experience  用户体验


TV端的开发和手机端的开发很类似,我们可以修改现成的app 让它可以在TV设备上面运行或者重新创建一个app


TV端支持的媒体格式:
See the following documentation for information about the codecs, protocols, and formats supported by Android TV.


Supported Media Formats
DRM
android.drm
ExoPlayer
android.media.MediaPlayer


创建TV 项目:
这里要讲的就是怎么修改现成的项目成TV项目,或者信件一个新的app项目
首先 必须要有一个TV的activity,这个时要运行在tv端的
然后需要TV的支持包.这个是可选的,


前提条件:
电视端的开发有特殊的要求:
Before you begin building apps for TV, you must:


Update your SDK tools to version 24.0.0 or higher 
The updated SDK tools enable you to build and test apps for TV.
Update your SDK with Android 5.0 (API 21) or higher 
The updated platform version provides new APIs for TV apps.
Create or update your app project 
In order to access new APIs for TV devices, you must create a project or modify an existing project that targets Android 5.0 (API level 


21) or higher.


1: SDK Tools 必须要更新到24.0.0或者更高(这样更新后的SDK Tools 可是 使我们在TV上创建和测试app)
2:更新 SDK 到 Android 5.0 也就是API21 或者更高(更新后的 平台版本 提供了新的APIs和TV应用)
3:创建或者更新你的app项目(为了可以在TV设备上面访问新的API,我们必须创建或者修改现成的项目的目标Android 版本为5.0 就是API 21或者更高)


声明一个TV的Activity
一个应用如果想要运行在TV端,必须要声明一个专门给TV的launcher activity,在清单文件中使用CATEGORY_LEANBACK_LAUNCHER 的intent 过滤。
这个过滤表明了你的应用已经可以应用于TV了,同时,也被要求i的应用将会在G哦oglePlay 上面被看作是一个TV应用。
声明这个intent 同时也会表示当用户选择了在TV主界面的图标的时候会运行哪一个activity
<intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>


注意:如果你没有将CATEGORY_LEANBACK_LAUNCHER intent filter 包含在你的应用中,那么这个应用将不会出现在TV 设备的Google Play 商店中。
同时如果你没有包含这个过滤器filter当你使用开发工具将这个加载到TV设备的时候,这个app 不会出现在TV的用户界面上面。


如果你正在修改一个存在的app让它运行在TV上面,你的app不应该使用和手机端和平板端相同的activity。用户TV应用的界面应该提供一个简单的界面,这


个界面可以通过遥控器(couch)来进行远程的控制。对于开发TV端的app 请查看TV Desing guide。**************,
注意这里有一个TV Design Guide*******。跟多的关于实现TV的界面布局要求请查看Building TV Layouts


声明Leanback 支持
Android TV 需要声明我们的应用使用Leanback 用户界面。
如果你正在开发一个应用,运行在手机端,可穿戴,平板上面,同时也运行在TV上面,那么设置required 属性为false。
如果设置required 属性为true,你的应用将会只运行在使用Leanback UI的设备上面。
<manifest>
    <uses-feature android:name="android.software.leanback"
        android:required="false" />
    ...
</manifest>


声明 touchscreen 不需要not required
需要运行在TV设备上面的应用程序不需要依靠触摸屏幕来进行输入。为了让这个更明确,在清单文件中必须要声明一个 特征feature就是
android.hardware.touchscreen,要声明android.hardware.touchscreen 是not required。这个设置指出了你的应用将要在TV设备上面运行,
同时也是你的应用在Google Play 上面被看作是TV应用的。(也就是说Google Play)会检测应用里面有没有这个属性,如果有这个属性就是TV的应用。
<manifest>
    <uses-feature android:name="android.hardware.touchscreen"
              android:required="false" />
    ...
</manifest>


注意:必须要声明这个属性,不然在Google Play 上面不会显示在TV 应用里面的。


提供一个主界面条幅(banner)
如果一个应用包含了Leanback launcher intent filter 那么这个应用程序必须提供一个主界面条幅给每一个地方。
这个条幅是应用的启动点,这个启动点就是该应用出现在主界面的位置,应用程序和游戏的行列面。
<application
    ...
    android:banner="@drawable/banner" >


    ...
</application>


可以在《application》里面使用android:banner 属性标签来支持一个默认的条幅给应用程序的所有activities,或者在<activity> 标签里面设置一个特


定的activity的属性。
可以在TV design 里面看到这个Banner 相关的内容


改变启动的颜色:
当一个TV 应用启动了,系统会展示一个动画,这个动画里面组装了扩展的圆形,就是我们平时加载的那个吧。
为了自定义这个颜色,可以设置TV 应用的或者activity的android:colorPrimary 属性来指定一个特定的颜色
你也需要设置两个附加的转化重叠属性为true,
<resources>
    <style ... >
      <item name="android:colorPrimary">@color/primary</item>
      <item name="android:windowAllowReturnTransitionOverlap">true</item>
      <item name="android:windowAllowEnterTransitionOverlap">true</item>
    </style>
</resources>




添加TV 支持库
Android SDK 已经包含使用TV 应用的支持库,这些支持库提供了API和用户界面小工具,这些库如下:
v17 leanback library。提供TV应用的用户界面小工具,特别的是那些需要用到媒体playback的应用
v7 recyclerview library。提供了可以管理展示长列表的类 以一个内存高效的方式。同时v17库里面的一些也是需要用到这个库里面的内容的。
v7 cardview library。提供了用户界面小工具来展示消息卡片,例如媒体项的图片和描述。
注意:可以不使用上面的库,但是我们强烈建议使用。


如果你决定使用v17 leanback 库到你的应用中,那么你应该注意这个是依赖v4支持库的。
也就是说应用程序如果使用leanback 支持库 就应该包含
v4 supprt libray
v7 recyclerview support library
v17 leanback support library




v17 leanback 库包含资源,这个资源需要我们进行一些特殊的步骤来弄


创建TV Apps
当你完成了上面描述的步骤偶,现在就可以给TV创建应用了。
Building TV Playback Apps
Helping Users Find Your Content on TV
Building TV Games
Building Live TV Apps


Building TV Playback Apps  TV电视是就是为了娱乐,所以Andoir 提供了一个用户界面工具和小工具集合给创建TV 应用,同时可以播放视频和音乐,让


用户浏览他们想要看的内容
Helping Users Find Your Content on TV  用户的指尖操作的所有键,帮助他们找到他们甘心去的
Building TV Games
Building Live TV Apps













































































































































































 类似资料: