在上一篇中,我们探讨了数字电视/机顶盒软件架构的现状与未来,分享了数字家庭软件平台未来的发展趋势和特点(如何将Android带入互联网数字家庭? 第一篇)。在本篇中,我们将一起来探讨为什么Android能够成为未来数字家庭软件平台的选择之一;而我们又如何才能将原本为手持设备量身定做的Android移植到电视/机顶盒平台?
1. 首先,我们需要回答的第一个问题就是: Why Android?为什么Android能够成为未来数字家庭软件平台的有力竞争者?
先来看看Android自身的天然的优势:
这些都是需要考虑的问题同时也是风险所在。由于成为GoogleTV Leading Partner有很高门槛,同时GoogleTV开源的时间仍然很难确认,对于希望开发Android TV/STB的合作伙伴,我们建议在软件架构设计和定制时,考虑到未来兼容GoogleTV的可能性;因为有很多定制和移植工作,即便在GoogleTV开源后,仍然是需要的。
图一描述了Google已经发布的针对的不同的目标设备的Android版本。
图一 Google发布的针对不同设备的Android版本
从图一我们可以看出GoogleTV是以Android为基础的一个分支;根据Google最新的路线图,未来的Android主线会演化成适用于手机,平板和电视三类设备。
2. 那么, 如何才能将Android移植到电视或机顶盒平台呢?要说清楚这个问题, 首先我们必须明确将Android移植到电视或机顶盒平台上需要面对哪些挑战?
接下来我们将来讨论如何应对这五大挑战。由于篇幅关系,本篇将重点讨论挑战1。 在第三篇和第四篇中,我们会依次对其他挑战展开讨论。
首先我们将挑战1中面临的问题分为两类:
第一类:图形图像显示相关的问题:
针对上述问题,需要至少对下列模块进行修改或集成,如图二所示:
图二 应对挑战1的第一类问题需要涉及的模块
第二类: 用户交互模式相关的问题:
针对这类问题,需要对Android中的下列模块进行修改,具体请参见图三:
图三 应对挑战1的第二类问题需要涉及的模块
3. 2D和3D图形的性能是Android TV整体性能的关键点;在Android中,我们可以通过优化Skia和SurfaceFlinger来加速2D性能。
图四说明了上述优化可能发生在Skia架构中的哪些模块?
图四 Skia优化可能涉及的模块
<android:hardwareAccelerated=“true”>来启动硬件加速2D;
在下篇中, 我们将继续探讨如何将Android移植到电视/机顶盒平台; 同时也会重点介绍GoogleTV以及GoogleTV与AndroidTV之间的对比。
(第二篇完)