- Android 系统概述
- 什么是智能手机?智能手机操作系统有哪些?
- Android(安卓)是什么?
- Android 系统架构(图解)
- Android 7 新特性介绍
- Android 开发环境搭建
- Android 开发环境搭建教程(图解)
- Android SDK 是什么?
- 通过 Android Studio 创建 Android 应用程序(附带解析)
- Android Studio 的基本调试
- Android 应用程序结构:Android 组件和资源详解
- Android 四大核心组件:Activity+Service+BroadcastReceiver+ContentProvider
- Android Activity 组件及其生命周期
- Android 资源(res 和 assets 目录)
- AndroidManifest.xml 配置文件详解
- Android App Widgets 组件详解
- Android 系统的进程和线程
- Android GUI(图形用户界面)开发
- Android View 和 ViewGroup
- Android 使用 XML 文件定义用户界面
- Android 五大布局:FrameLayout、LinearLayout、AbsoluteLayout、RelativeLayout 和 TableLayout
- Android 创建 Widget 组件实例详解
- Android Button:按钮控件
- Android CheckBox:多选按钮控件
- Android RadioGroup:单选按钮控件
- Android TextView:文本框控件
- Android EditText:编辑框控件
- Android Spinner:下拉列表控件
- Android AutoCompleteTextView:自动完成文本框控件
- Android DatePicker 和 TimePicker:时间日期选择器
- Android ProgressBar:进度条控件
- Android ScrollView:滚动视图
- Android SeekBar:拖动条控件
- Android RatingBar:评价条控件
- Android ImageView 和 ImageButton:图片视图和图片按钮
- Android ImageSwitcher 和 Gallery:图片切换器和图库
- Android GridView:网格视图
- Android Tab:面板标签控件
- Android 菜单:选项菜单+上下文菜单+子菜单
- Android Bitmap(点阵图像、绘制图像)
- Android 对话框(AlertDialog+ProgressDialog)
- Android 多窗口模式(分屏模式)
- Android 事件监听器和回调方法
- Android 电话短信拍照开发教程
- Android Intent:不同应用程序之间通信的桥梁
- Android 实现拨打电话功能
- Android 实现接收短信和发送短信功能
- Android 调用相机进行拍照
- Android 多媒体开发
- Android Service 生命周期和使用方法
- Android BroadcastReceiver:接收广播
- Android 音频以及音频播放器开发实例
- Android MediaRecorder 录制音频
- Android 视频以及视频播放器实例
- Android Camera 相机以及相机程序开发实例
- Android MediaRecorder 录制视频
- Android 数据存储(SQLite 数据库、Android App 数据备份和恢复 )
- Android 数据存储之 SharedPreferences
- Android 数据存储之文件存储
- Android 使用 SQLite 数据库存数数据
- Android SQLite 数据库操作实例
- Android ContentProvider(内容提供者)
- Android 使用系统提供的 ContentProvider
- Android 自定义 ContentProvider
- Android 使用自定义 ContentProvider
- Google App Engine 是什么?
- Android APP 数据备份与恢复
- Android BackupAgent 实现数据备份与恢复
- Android BackupAgentHelper 实现数据备份与恢复
- Android 网络编程
- 借助 GPE 让 Android APP 和 Google App Engine 通信
- Android HTTP 通信
- Android HttpURLConnection 访问互联网资源
- Android 通过 GET 方式获取互联网资源
- Android 通过 POST 方式获取互联网资源
- Android Socket 编程(附带实例)
- Bluetooth(蓝牙)是什么?
- Android 蓝牙通信开发教程(详解版)
- Android 蓝牙通信开发实例演示
- WIFI(无线局域网)是什么?
- Android WiFi 开发(WiFi 编程)实例演示
- WIFI Direct(WIFI 直连)是什么?
- Android WIFI Direct 开发教程
- Android WIFI Direct 开发实例演示
- NFC(近场通信)是什么?
- Android NFC 开发教程
- Android USB 开发简介
- Android USB 附件模式开发教程
- Android USB 主机模式开发教程
- Android SIP 开发教程
- Android 智能传感器
- LBS(位置服务)和 GPS(全球定位系统)简介
- Android LBS 位置服务开发简介
- Android GPS 定位开发教程
- Google Map API 开发简介
- Android Google Map API Key 详细申请步骤
- Google Map API 开发 Android 地图应用实例
- Android 传感器开发教程
- Android 运动传感器开发教程
- Android 位置传感器开发教程
- Android 环境传感器开发教程
- Android 绘图(2D 绘图、3D 绘图)
- Android 2D 绘图开发简介
- Android 使用自定义 View 绘图
- Android 使用 Bitmap 绘图
- Android 使用 SurfaceView 绘制静态图像
- Android 使用 SurfaceView 绘制动态图像
- Android Drawable 开发简介
- Android 3D 绘图开发简介
- Android 硬件加速开发简介
- Android RenderScript 开发简介
- Android App 的国际化和本地化
- Android 国际化和本地化开发简介
- Android 手机区域设置详细步骤
- Android 未本地化应用开发教程
- Android 本地化应用开发教程
- Android 文本输入与复制粘贴
- Android 剪贴板框架开发简介
- Android 剪贴板数据转文本开发简介
- Android 复制粘贴开发教程
- Android Content Provider 复制复杂数据开发教程
- Android 一键复制粘贴开发实例
- Android 企业级应用开发
- Android 设备管理 API 概述
- Android 开发设备管理 API 应用教程
- Android 文本语音 API 开发教程
- Android TV 应用开发教程
- Android TV 应用开发实例
- Android 可穿戴设备应用开发教程
- Android 应用程序的发布
- Android 应用程序发布的步骤
- Android 为什么要为应用程序签名?
- Android 导出未签名应用程序开发步骤
- Android 生成签名文件开发教程
- Android 应用程序签名开发教程
- zipalign 工具优化应用程序开发简介
- Google Play Store( Android Market)发布简介
Android TV 应用开发教程
电视应用和手机、平板使用相同的结构,这意味着调整已有的应用程序就可以运行在电视设备或安卓应用上。但是需要注意的是,已有的应用程序必须满足一些要求,才能够获得在谷歌应用商店上架的权利。
本节主要描述创建电视应用的开发环境以及如何将现有的应用程序进行最小的修改,使得该应用能够在电视应用上运行。
创建电视应用项目
要建立电视版应用,需要满足以下几点:
- 更新 SDK 工具到 24.0.0 及以上版本。
- 更新 SDK 工具包,启动、创建并测试可穿戴应用。
- 更新安卓 SDK 到安卓 7.0(API 24)及以上版本。
- 更新平台版本,为电视应用提供新的 API。
- 拥有创建或者更新的应用项目。
创建一个能够在电视设备上运行的应用,还需要使用以下元素:
1)应用于电视的活动(Activity for TV)
该元素是必须使用的,需要在应用程序清单上声明一个能够在电视设备上运行的活动。
2)电视支持库(TV Support Libraries)
该元素是可选的,支持库为电视设备建立用户接口的小部件提供支持。
为了能够使用新的电视设备的 API,必须针对 Android N(API 等级 24)及以上版本创建一个新的项目或者修改一个已有的项目。
1)声明一个 TV Activity
运行在电视设备上的应用必须在 Manifest 中为 Activity 匹配 android.intent.category.LEANBACK_LAUNCHER 意图过滤器(Intent Filter)。
添加过滤器的目的主要是为了 Google Play 的识别,没有添加相应过滤器的应用,Google Play 是不允许上架的。
以下代码段用于实现如何使用这个过滤器:
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name="com.example.android.MainActivity" 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="com.example.android.TVActivity" android:label="@string/app_name" android:theme="@style/Theme.Leanback"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
本例中第二个 <activity> 活动应用清单入口声明能够打开一个电视设备的活动。
需要注意的是,如果应用的过滤器中不包括 CATEGORY_LEANBACK_LAUNCHER,那么用户在电视设备上运行谷歌应用商店时是看不到该应用的,同时使用开发者工具加载一个电视设备时,如果该应用没有这个过滤器,这个应用也不会出现在电视用户接口中。
如果修改一个已有的应用在电视应用中使用,电视应用上的布局不同于手机或平板电脑。电视应用的用户接口(或者是已存在的电视应用的一部分)应当提供一个简单的接口,这个接口可以非常简单地使用遥控器进行遥控。
关于设计一个电视应用的指导,请查看 TV Design。关于电视布局最低运行要求的相关信息,请查看 Building TV Layouts。
2)声明 Leanback 技术支持
安卓电视要求应用声明 Leanback 接口。如果开发的应用打算应用在各个移动设备(如手机、可穿戴设备、平板电脑等)上,那么要将 Leanback 的 required 的属性值设置为 false。如果将 required 的属性值设置为 true,应用将只能运行在使用 Leanback 的设备上。其代码如下:
<manifest> <uses-feature android:name="android.software.leanback" android:required="false"/> ... </manifest>
3)声明触摸屏的值为 false
电视设备上的应用不依赖于触摸屏进行输入。为了让大家更加清楚这一点,在电视应用的应用程序清单上,android.hardware.touchscreen 的值设为 false。
false 说明应用能够运行在电视设备上,在谷歌的应用商店才会被视为一个电视应用。以下代码给出了 android.hardware.touchscreen 的用法。
<manifest> <uses-feature android:name="android.hardware.touchscreen" android:required="false"/> ... </manifest>
注意:在应用程序清单中必须像上面的代码中那样,声明应用不需要使用触摸屏,否则应用将不会出现在谷歌应用商店里。
4)提供一个主屏幕 banner
应用必须为每个包含 Leanback 桌面过滤器的本地化提供一个主屏幕 banner。
banner 指出应用运行时将会出现的应用主屏幕和游戏行。在 Manifest 中,banner 的代码如下:
<application> ... android:banner="@drawable/banner"/> ... </application>
<application> 标签中的 android:banner 属性设置了所有应用活动的默认 banner,也可以在 <activity> 标签中应用一个特定活动的 banner。
更多 banners 信息可以在 UI Patterns for TV design guide 中查找。
添加 TV 支持库
为了在电视上使用,安卓 SDK 包括 TV Support Libraries,这些 Support Libraries 提供 API 和用户接口组件,它们被放在 <sdk>/extras/android/support/ 文件夹下。以下是主要的库及其功能。
1)v17 leanback library
该库为电视版应用提供接口组件,尤其为那些媒体回放的应用。
2)v7 recyclerview library
该库提供管理内存中存放的长列表的高效方式的类。在 v17 leanback 库中的类依赖于该库中的类。
3)v7 cardview library
该库为展示信息卡提供用户接口的小部件,比如媒体缩略图和描述等。
注意:电视应用中不是必须使用这些支持库,只是建议大家使用,特别是为提供媒体素材库浏览接口的应用使用。
使用 v17 leanback 库时,需要注意的是,它依赖于 v4 支持库。这意味着使用 leanback 支持库的应用应该包含以下所有的支持库:
- v4 support library
- v7 recyclerview support library
- v17 leanback support library
v17 leanback 包含应用项目中需要特定步骤的资源。
建立 TV 应用
完成前两步之后,就可以开始为大屏幕建立应用了。电视应用分为以下几种:
1)建立电视回放应用
电视是用来娱乐的,所以安卓提供了一系列用户接口工具和小部件,使建立的电视版应用能够欣赏影片和音乐,使用户能够浏览到想要的内容。
2)帮助用户查找内容
因为所有的内容都在用户的手指间,所以帮助他们选择喜欢的内容和提供给他们内容一样重要。这里就是讨论如何在电视设备上找到喜欢的内容。
3)电视游戏
电视设备是非常好的游戏平台。基于 Android TV 的电视游戏具有广阔的发展空间。
运行 TV 应用
运行应用在开发过程中是一个非常重要的过程。
Android SDK 中的 AVD 管理器提供了设备定义,它允许创建虚拟电视设备、运行和测试应用程序。
创建虚拟电视设备需要以下 4 个步骤:
- 打开安卓虚拟设备管理器。
- 在安卓虚拟设备管理器对话框中,点击“设备定义(Device Definitions)”标签。
- 选择一个安卓电视类型,点击“创建安卓虚拟设备(CreateAVD)”。
- 选择模拟器选项,点击 OK 按钮创建安卓虚拟机。
创建电视 AVD 的界面如图 1 所示。注意:为了使电视模拟器设备达到最好的效果,最好能够使用主机的 GPU 选项,这样可以为虚拟设备加速。创建的 TV AVD 如图 2 所示。
图 1 创建 TV AVD
图 2 TV AVD
要测试虚拟设备上的应用,需要两个步骤:
- 在开发环境中编译电视应用。
- 在开发环境中运行应用,选择电视虚拟设备作为目标设备。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论