
当相对开放的 Android 平台与严格封闭的 iOS 系统相比的时候,一个重要的不同就是 iOS 的应用运行起来更加流畅。这是 Android 自出生以来一直在追求的一点。日前 Google 工程师 Dianne Hackborn 在 Google+ 邮件中阐述了 Android 硬件加速技术的一些情况,由此大家可以看到,Android 硬件加速技术并没有大家想象的那么完美,这也许正是其用户体验不及 iOS 的一个主要原因。
现状:描绘新元素才启用硬件加速
与我们以往听到的完全不一样了吧?Android 在1.0版本之后就开始对 2D UI 进行一些硬件加速。每天我们看到的许多 Android 动画效果就是硬件加速技术的体现。比如,菜单弹出对话框和通知栏都是这样的。
Android 系统所有的“窗口合成”都是基于硬件加速的 GPU 渲染产生,我们可以这样理解,在屏幕上描绘任何新的元素,都会启用硬件加速。如果没有发生重绘变换,比如按钮本身高亮或者按下状态,这些变化就是通过软件渲染。但我们点击一个菜单按钮,所产生的覆盖效果是就由 GPU 完成的。 
图:比肩 iOS 的 3D 游戏效果是每一个 Android 粉丝的期待
创新:“完整”的硬件加速技术
那新的 Android 冰淇淋三明治(ICS)又有哪些不同呢?Hackborn 透露,我们将会在 Android 4.0 中看到“完整”的硬件加速技术,所有的 UI 元素和第三方的应用程序都将可以通过 GPU 渲染。尽管 Android 3.0 拥有相同的技术,但现在开发者可以指定硬件渲染的目标,由此推动4.0的功能更进一步。Google 正鼓励开发者更新应用程序,加入硬件加速标签,从而完全支持新的硬件加速特性。
这很可能会让开发者花费一些时间去调整应用以适应新的 ICS 系统,但谷歌也设计了相应的设置选项来应对硬件渲染。Hackborn 警告说,在程序未经测试前,有可能会在一些方面造成影响。这也成为 Android 硬件加速首先要应对的问题。
众所周知,GPU 渲染应用程序的动画效果和 UI 时,系统肯定会消耗一定内存。比如渲染一个进程加载 OpenGL 驱动大概需要 2MB 系统内存,但运行时就会达到 8MB。RAM 有限这时就成为了一个大问题,当运行的应用程序不断增加,系统将不得不关闭更多的后台任务去节省内存。这样的结果可不是开发人员和用户愿意看到的。 
图:花哨的 UI 界面如何更好的节省内存一直是个大问题
未来:硬件提升将带来流畅体验
开发人员应当注意到,Android 在硬件加速技术的开发上有很多的特殊技巧。首先是界面的独立窗口可以复制到一个统一渲染层实现更高效的 GPU 访问。Andriod 也会将背景渲染成一张大的位图,这样在用户滚动屏幕时不需要重新渲染。
同时,还应当注意到,目前的移动设备硬件在面临严重的 GPU 渲染负担时,会使整体性能出现下滑。但我们放眼未来,伴随着 GPU 和显存带宽的不断升级,Android 必然会很快的超过 60FPS,并有望在用户操作体验上超越 IOS。