android gpu 2d加速,强制使用GPU加速 对Android设备加速画面显示有效吗

强制使用GPU加速之后,原本那些并未设定的应用程序,在2D画面的显示效能上会获得改进,特别是在滑动画面的顺畅感,使用者能够明显感觉到。但这也不是万灵丹,有些装置有用、有些装置没什么差别,请看小编的实测。

自从Android 3.0之后,2D画面的显示管线就做了些调整,使其能够更完整的支援硬件加速功能,只要程序设计师在程序码里设定硬件加速参数即可:

上述的设定方法是整个程序的全域设定,Android还有Activity、Window、View不同执行阶段的硬件加速使用方法,不过这不是本篇重点,仅点到为止。

强制开启硬件加速

如果程序开发人员忘记在程序当中开启硬件加速怎么办?难道要眼睁睁看着煮熟的鸭子飞走吗?在Android 4.0之后的版本之中,在设定页面的开发人员选项中,有个「强制使用GPU转译」的选项可以勾选,可以让全部的应用程序一律使用GPU硬件加速显示2D画面,就算是在程序码中将android:hardwareAccelerated设定为false也不例外。

强制使用GPU转译这个名称翻译的有点奇怪,好像叫GPU把程序码相互转换、编译,其实英文原本是显示为force GPU rendering,如果翻译成「强制使用GPU绘制画面」,可能比较多人看得懂。

硬件加速并非完美

强制使用GPU加速之后,原本那些并未设定的应用程序,在2D画面的显示效能上会获得改进,特别是在滑动画面的顺畅感,使用者能够明显感觉到。

既然有这么好用的东西,为什么厂商不将它设定成预设值,而是放在开发人员选项呢?这其实有个很简单的原因:不是每个绘图指令都可以使用硬件加速。在Android开发者网站上就有列出不支援硬件加速的指令,像是Canvas分类下的这几种指令就不支援:

clipPath()

clipRegion()

drawPicture()

drawTextOnPath()

drawVertices()

如果程序中有使用到这几项指令,而又强制开启硬件加速,容易造成画面显示不正常,如以下的附图就是其中一个例子。

加速程度依装置而定

使用HTC J、Samsung Galaxy Note 2、Nexus 7测试「强制使用GPU转译」开启或关闭有些什么影响。

b05461913fc6f757c237c29f43fa0ac1.png

▲HTC J使用Quadrant Standard的测试结果,有没有开启选项的分数都差不多,画面也都正常。

958a57fd038be8111e26dab8599df487.png

▲Galaxy Note 2的Quadrant Standard跑分结果,开启与否的分数皆在伯仲之间,画面均正确。

271364bda55178fa7a079753dc31dd93.png

▲Nexus 7的跑分结果,可以注意到2D子项目的分数较其它2台装置低,但是画面正常显示。

64fb82cc0016d49a0b6d8578e695d262.png

▲Nexus 7开启强制GPU转译之后,2D子项目的分数暴增,但偶尔会遇到显示错误问题。目前大部分的测试对于强制使用GPU转译的选项无任何感觉,在测试中只有Quadrant Standard的分数有变,而且分数提升的现象只发生在Nexus 7身上,其中2D项目的分数从关闭时的251分,开启之后跳到1000分,进步幅度相当惊人。但在最后分数长条图​​的画面显示错误,还好这种情况并不常见,大约10次里有1次机会。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值