如何将Android带入互联网数字家庭? 第二篇

发布时间:2011-7-18 10:38    发布者:绝对好文
关键词: Android , 数字家庭
作者:章立(Leon Zhang) ,ARM公司家庭软件架构师

在上一篇中,我们探讨了数字电视/机顶盒软件架构的现状与未来,分享了数字家庭软件平台未来的发展趋势和特点(http://bit.ly/jCvlNs)。在本篇中,我们将一起来探讨为什么Android能够成为未来数字家庭软件平台的选择之一;而我们又如何才能将原本为手持设备量身定做的Android移植到电视/机顶盒平台?

1. 首先,我们需要回答的第一个问题就是: Why Android?

为什么Android能够成为未来数字家庭软件平台的有力竞争者?

先来看看Android自身的天然的优势:

    * Android 是一套完整的消费电子设备的软件解决方案,它包括:
          o Linux 内核;
          o 完整的中间件,包括2D/3D图形,多媒体框架,WebKit,Dalvik虚拟机等等;
          o 健壮的可以重用的应用程序框架以及便利实用SDK/NDK开发工具。

    * Android是个开源项目:
          o 可以自由的定制和移植;(有碎片化的风险,本文不做讨论)
          o Android基于Apache2.0 license,方便用于商业用途。

    * Android的生态系统已经建立:
          o Google Market上已经有了超过20万的Android应用
          o 每天有超过40万个Android设备被激活

    * Android中集中了大量ARM架构的优化,在ARM上Android可以获得倍增的性能和用户体验。

除了这些优势,Android移植到电视/机顶盒平台,劣势也很明显:

    * 没有TV/STB相关的API,造成Android TV/STB的应用程序框架的非标准化。
    * Android不是为TV/STB设计的,需要做大量的定制,移植和优化工作。
    * Google完全控制Android,包括新的性能,架构和应用程序框架的变化,路线图等等。 这对于定制和移植Android的厂商有一定的风险。
    * Google官方的GoogleTV 对于AndroidTV的影响:

开发AndroidTV的合作伙伴需要谨慎的考虑GoogleTV对AndroidTV的影响:

          o 如何兼容GoogleTV?
          o GoogleTV开源后,如何快速高效的merge到GoogleTV?
          o 是否可以重用GoogleTV的生态系统?

这些都是需要考虑的问题同时也是风险所在。由于成为GoogleTV Leading Partner有很高门槛,同时GoogleTV开源的时间仍然很难确认,对于希望开发Android TV/STB的合作伙伴,我们建议在软件架构设计和定制时,考虑到未来兼容GoogleTV的可能性;因为有很多定制和移植工作,即便在GoogleTV 开源后,仍然是需要的。

图一描述了Google已经发布的针对的不同的目标设备的Android版本。

1.png
图一 Google发布的针对不同设备的Android版本


从图一我们可以看出GoogleTV是以Android为基础的一个分支;根据Google最新的路线图,未来的Android主线会演化成适用于手机,平板和电视三类设备。

2. 那么, 如何才能将Android移植到电视或机顶盒平台呢?要说清楚这个问题, 首先我们必须明确将Android移植到电视或机顶盒平台上需要面对哪些挑战?

    * 挑战1 :电视用户对于用户界面,图形的性能以及用户交互模式有完全不同于手机用户的体验。这包括:
          o TV的分辨率要求至少720p/1080p以及大于30fps的帧率;
          o TV的OSD要求32位的色彩深度;而android默认的是16bit;
          o TV的用户界面,包括界面上内容的组织方式不同于手机;
          o TV用户使用遥控器而不是触摸屏
          o TV因为是大屏设备,对2D/3D图形的性能有更高的要求,需要硬件加速。

    * 挑战 2 : 适合于大屏的丰富的多媒体影音体验:
          o 更加优化的多媒体框架;
          o 支持更多的音视频文件格式和容器;
          o 支持更多的音视频编解码标准;

    * 挑战 3 : 集成DTV/STB功能:集成数字电视协议栈,
          o 比如DVB-T,DVB-C, ATSC等;
          o 针对数字电视功能扩展API接口;

    * 挑战 4 : 推动应用开发者开发适合于TV的Android应用;

    * 挑战 5 : 内容保护
          o 如何部署CA?
          o 如何部署DRM?

接下来我们将来讨论如何应对这五大挑战。由于篇幅关系,本篇将重点讨论挑战1。 在第三篇和第四篇中,我们会依次对其他挑战展开讨论。

首先我们将挑战1中面临的问题分为两类:

第一类:图形图像显示相关的问题:

          o TV的分辨率要求至少720p/1080p以及大于30fps的帧率;
          o TV的OSD要求32位的色彩深度;而android默认的是16bit;
          o TV因为是大屏设备,对2D/3D图形的性能有更高的要求,需要硬件加速

针对上述问题,需要至少对下列模块进行修改或集成,如图二所示:

2.png
图二 应对挑战1的第一类问题需要涉及的模块


第二类: 用户交互模式相关的问题:

          o TV的用户界面,包括界面上内容的组织方式不同于手机;
          o TV用户使用遥控器而不是触摸屏;

针对这类问题,需要对Android中的下列模块进行修改,具体请参见图三:

3.png
图三 应对挑战1的第二类问题需要涉及的模块


3. 2D和3D图形的性能是Android TV整体性能的关键点;在Android中,我们可以通过优化Skia和SurfaceFlinger来加速2D性能。

    * 如何优化Skia来加速Full HD的2D体验?
          o 重用Skia中大量的Neon优化;或者用Neon进行进一步优化;
          o 利用GPU(OpenGL ES/OpenVG/…)来做Skia的后端在
          o Image Decoder中嵌入硬件decoder。

图四说明了上述优化可能发生在Skia架构中的哪些模块?

4.png
图四 Skia优化可能涉及的模块


    * 如何通过优化SurfaceFlinger加速2D?
          o 在Android1.6(Donut)之前(包含Donut)的版本,需要实现“copybit”的HAL来实现2D硬件加速。
          o Android1.6以后的版本,将“Copybit”封装进了OpenGL ES;通过硬件实现的OpenGL ES 2D API来实现硬件加速。

    * Android3.0(Honeycomb)在2D上增加了新的功能,包括:
          o 通过在AndroidManifest.xml中设置

来启动硬件加速2D;

          o 应用开发者可以控制硬件加速的作用域,是全局的还是某个Activity或者某个View
          o 通过运用GPU可以带来更加流畅的用户体验

在下篇中, 我们将继续探讨如何将Android移植到电视/机顶盒平台; 同时也会重点介绍GoogleTV以及GoogleTV与AndroidTV之间的对比。

(第二篇完)

Leon Zhang, Home Software Architect - Strategic Software Alliance, ARM, Leon has many years of engineer and project leader's experience in a range of products, including DVR, STB, DTV, IPTV and SmartTV(e.g. GoogleTV). Being Home Software Architect, he specializes in the increasingly complex software stacks required to power the next generation of internet connected, smart TV and digital home.And being a member of Strategic Software Alliance, he is helping to build a strong software ecosystem for ARM Home partners. Leon graduated from Tongji University with the degree of Master . He is currently based in Shanghai, China.

章立(Leon Zhang) 是ARM的家庭软件架构师 ,同时他也是ARM战略软件联盟部门的一员. Leon 拥有多年产品开发和项目管理经验, 曾经参与了数字录像机、机顶盒、数字电视,网络电视以及智能电视(如GoogleTV)等产品的开发。作为家庭软件架构师,他专注于下一代互联网智能电视及数字家庭的软件架构. 而作为战略软件联盟的成员,他致力于为ARM家庭应用市场的合作伙伴建立强大的软件生态系统。 Leon 硕士毕业于同济大学。 他的工作地点在中国上海.
本文地址:https://www.eechina.com/thread-70986-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表