或說發熱狀況也越來越沒有感覺,不知道是同時有跟著開省點模式的原因嗎?!
不解!雖然省電模式是節省CPU部分

Jamlu39178 wrote:
沒開GPU渲染,我覺...(恕刪)
看过太多似是而非甚至完全错误的解释,干脆写一个帖子说明一下自己比较常用的开发者选项的含义,先从误解最多的“强制进行GPU绘制”开始。
(一)强制进行GPU绘制
了解Android开发的应该都清楚,Android的UI界面是通过Android开发框架库里面的Canvas(http://developer.android.com/reference/android/graphics/Canvas.html)绘制出来的。在1.x和2.x时代,Canvas的内部实现使用的是Skia图形库(https://code.google.com/p/skia/),它完全使用CPU进行绘制,也就是说UI界面每一个像素的颜色都是CPU计算出来的。
从3.x开始,Android通过hwui模块,为Canvas增加了另外一个实现 - OpenGLRenderer,顾名思义,就是通过OpenGL实现2D绘图,但是为了兼容性考虑,原来基于Skia的实现仍然被保留。
从4.x开始,在一个应用启动时,为应用创建的Canvas到底内部是使用OpenGL还是Skia,是按这样的规则决定的,针对4.x开发的应用默认使用OpenGL,针对2.x开发的应用默认使用Skia,但是应用在初始化的时候可以声明自己要使用硬件加速,也就是使用OpenGL。
也就是说一个针对2.x开发的应用可以在启动时自己开启硬件加速,但是如果它没有自己开启的话,默认是关闭的,而“强制进行GPU绘制”这个选项的意义就是“针对2.x开发的应用强制使用OpenGL”。
(二) 停用HW叠加层
这个选项主要是影响Android窗口混合器SurfaceFlinger的行为。在Android 1.x和2.x时代,SurfaceFlinger是使用OpenGL ES1进行窗口混合。
何谓窗口,何谓窗口混合,举个简单的例子,当应用弹出软键盘进行输入的时候,应用本身有一个窗口,软键盘又是另外一个窗口,叠加在应用的窗口之上,将这两个窗口进行叠加最后输出到屏幕上就是所谓的窗口混合。
为了提高窗口混合的效率和减少GPU的开销,Android 3.x引入hwcompser,硬件窗口混合器,这个模块的接口是由Android制定的,但是实现是由SoC厂商提供的,SurfaceFlinger在进行窗口混合时,先会询问SoC是否支持硬件混合器,如果支持,则使用硬件混合器,如果不支持,则沿用原来的自己的OpenGL混合器。
而“停用HW叠加层”选项的含义则是强制使用OpenGL混合器,不再使用SoC提供的硬件混合器,它主要是用来帮助判断SoC提供的硬件混合器是否有问题。一般而言,SoC提供的硬件混合器会提供更好的性能和更省电。
硬件混合器介绍:
https://wiki.mozilla.org/Platform/GFX/hwcomposer
使用硬件混合器的优势
What are the wins of using HWComposer over an OpenGL compositor?
Lower Power consumption(省电)
Chipset vendors could use simple HW layout to fullfill the needs of HWComposer, compared to GPU complex layout. Therefore, HWComposer could have the following benefits.
Offer all GPU resource for application(减少GPU占用)
Offload GPU task for screen composition
(三)显示GPU视图更新
这个选项很简单,就是应用如果使用了硬件加速,当它的当前窗口更新时,就是加一层红色的蒙版。
因为是否开启硬件加速实际上是针对窗口的,如果应用创建了多个窗口,它可以选择有些窗口开启硬件加速,有些窗口不开启,所以这个选项只用来判断当前应用的当前窗口是否开启硬件加速。
(四)显示硬件层更新
为了提升一些UI界面动画的效率,应用可以选择先把动画的部分区域先缓存起来,缓存到一个硬件图层(HW Layer),然后在动画过程中就直接绘制这个已经缓存的图层,减少动画过程中的绘制开销,从而保证60帧的动画效果。
开启这个选项就可以看到UI界面的哪些部分创建了硬件图层,这些区域会被加上一层绿色的蒙版
內文搜尋
X



























































































