关于Google将“完整”硬件加速功能纳入Android 4.0 Ice Cream Sandwich的热烈欢迎。这是有充分理由的-与竞争对手的OS相比,Android 2.x中的2D软件渲染所带来的流畅体验明显不足。虽然在操作系统中包含更大范围的硬件加速是一件很了不起的事情,但围绕它带来的好处还有很多误解。首先,多年来,Android具有诸如窗口合成之类的任务的硬件加速元素。这意味着所有窗口动画也始终是硬件加速的。

与窗口合成不同,窗口内部的绘制传统上是由Android 2.x及更低版本中的CPU完成的。但是,在Android 3.0 Honeycomb中,只要将android:hardwareAccelerated =“ true”放置在应用程序清单中,就可以将这些功能卸载到设备的GPU中 。与Android 4.0的唯一区别是,只要定位到API级别14或更高,ICS就会默认打开硬件加速。因此,ICS中的硬件加速不比Honeycomb中的“完整”。(注意:您可以 通过开发人员选项设置窗格强制ICS中的所有应用程序在4.0中使用硬件加速,这是我在Honeycomb中想要的八个月。)
好。现在,默认情况下 ,API 14+应用程序中的硬件加速处于打开状态,并且我们有一种方法可以在所有应用程序中强制执行硬件加速,而不管清单的内容如何。都是肉汁吧?不幸的是,事实并非如此。对于Nexus S甚至Google的新旗舰中使用的PowerVR驱动程序而言,在任何进程中简单地启用硬件加速都会占用8 MB的内存-每个进程!尽管单独占用的空间并不多,但此处的8 MB和那里的8 MB会导致更高的内存消耗,也可能导致多任务处理慢得多。因此,Android团队投入了大量精力来精确调整Android UI的哪些部分将在Nexus S上使用GPU渲染。
长话短说?与Android 2.x相比,ICS对硬件加速的依赖增加了其强大的功能。但是,除了默认情况下处于打开状态之外,不能将ICS的硬件加速视为比Honeycomb中已有的任何“完整”功能。此外,硬件加速并不是许多人认为的魔术,但肯定会有所帮助!

