手机游戏加速器推荐

手机硬件加速Android详解

-手机硬件加速怎么关闭 -硬件加速 -android -应用程序

手机硬件加速怎么关闭

在线算命,八字测算命理

最近,我听到我的同事们讨论了硬件加速,但是我一点也不了解。从那时起,百度就来看看。事实证明,从3.0开始,Android开始支持硬件加速,而手机自然也开始支持4.0。一种配置方法是在代码中配置硬件加速。在minifest中,这也分为多个级别。一种方法是在手机的开发人员选项中启用硬件加速,但似乎只有google的联系才具有此选项,其他方法则不会阻止您的手机。

硬件加速的官方文档:http://developer.android.com/guide/topics/graphics/hardware-accel.html

有两种打开硬件加速的主要方法

1.在系统设置“开发人员...”中选中启用GPU加速。

2.在应用程序中启用硬件加速

当前遇到的问题是,启用硬件加速后,WebView的性能会受到一定程度的影响,并且设置背景透明性是无效的。

当前的4.0系统具有硬件加速功能,以前的版本尚不清楚。

让我们看看如何在程序中启用硬件加速

if (VERSION.SDK_INT > VERSION_SDK_ELEVEN) { getWindow().setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED); }

即,激活了窗口级硬件加速。

如果在系统设置中启用了硬件加速,但是硬件加速会给应用程序带来问题,则可以使用以下方法为应用程序级别取消硬件加速。

mView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

这是一篇很棒的文章:

转载时请注明出处和作者的联系信息:http://mogoweb.net/archives/%E2%80%9Dhttp://mogoweb.net%E2%80%9D mogoweb@gmail.com

本文的主要内容来自SDK文章的“硬件加速”。

从Android 3.0开始,Android的2D渲染管道可以更好地支持硬件加速。硬件加速使用GPU在View上进行绘图操作。

可以在以下四个级别中打开或关闭硬件加速:

应用程序活动窗口视图应用程序级别

将以下属性添加到应用程序AndroidManifest.xml文件中的应用程序标记中,以启用整个应用程序的硬件加速:

活动水平

您还可以控制是否为每个活动启用了硬件加速,只需将android:hardwareAccelerated属性添加到活动元素即可。例如,在以下示例中,在应用程序级别打开了硬件加速,但是在活动上关闭了硬件加速。

Window级别

如果需要更细粒度的控制,则可以使用以下代码为特定窗口启用硬件加速:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

注意:当前无法在窗口级别关闭硬件加速。

View级别

您可以使用以下代码在运行时关闭单个视图的硬件加速:

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

注意:您不能在视图级别启用硬件加速

为什么需要这么多控制级别?

显然,硬件加速可以带来性能提升。为什么默认情况下Android有这么多控制级别而不是所有硬件加速?原因是并非所有2D绘图操作都支持硬件加速。如果您在程序中使用自定义视图或绘图调用,则该程序可能无法正常运行。如果您仅在程序中使用标准视图和可绘制对象,请随时打开硬件加速!具体来说,哪些绘图操作不支持硬件加速:

CanvasclipPath() clipRegion() drawPicture() drawPosText() drawTextOnPath() drawVertices() PaintsetLinearText() setMaskFilter() setRasterizer()

此外,在有和没有硬件加速的情况下,都有一些绘制操作,效果是不同的:

CanvasclipRect():XOR,Difference和ReverseDifference裁剪模式将被忽略,并且3D变换将不会应用于裁剪后的矩形。 drawBitmapMesh():忽略颜色数组drawLines():抗锯齿不支持setDrawFilter():可以设置,但不起作用PaintsetDither():忽略setFilterBitmap():始终在setShadowLayer()上进行过滤:仅可以仅用于文本ComposeShaderComposeShader可以包含不同类型的着色器ComposeShader不能包含ComposeShader Android绘图模型

启用硬件加速后,Android框架将采用新的渲染模型。基于软件的渲染模型和基于硬件的渲染模型有什么区别?

基于软件的绘制模型

在软件绘图模型中,通过以下两个步骤绘制视图:

1.使层次结构无效(注意:如何转换层次结构?)

2. Draw the hierarchy

该应用程序调用invalidate()来更新UI的特定部分。无效消息将通过整个视图层传递,以计算需要重绘的每个区域(即脏区域)。然后,Android系统将重绘与脏区重叠的所有视图。显然,此绘制模式具有以下缺点:

1.在每个绘图操作中执行不必要的代码。例如,如果应用程序调用invalidate()来重绘一个按钮,并且该按钮位于另一个视图上,则即使视图未更改,该按钮也会被重绘。

2.它可能掩盖了一些应用程序错误。由于Android系统将重绘与脏区重叠的视图,因此可以在不调用invalidate()的情况下重绘视图的内容。这可能导致一个视图依靠其他视图的失败来获得正确的行为。

基于硬件的绘制模型

Android系统仍然使用invalidate()和draw()绘制视图,但是绘制的处理方式不同。 Android系统将绘图命令记录到显示列表中,而不是立即执行绘图命令。另一个优化是Android系统仅需要记录和更新标记为脏的视图(通过invalidate())。新的绘图模型包括三个步骤:

1. Invalidate the hierarchy

2.记录并更新显示列表

3. 绘制显示列表

从Android 3.0(API级别11)开始,支持硬件加速,可以充分利用GPU的功能来使界面呈现更加流畅。
但是,硬件加速本身并不完美。例如,在某些Webview版本上,早期Android5中某些rom上的Webview版本是chrome37和38版本。由于其自身的硬件加速策略存在错误,因此代码会对硬件造成一些压力。导致渲染问题,例如初始屏幕和屏幕模糊。

硬件加速的好处

硬件加速大大提高了渲染的平滑度。
打开硬件加速后,上下拖动列表的感觉很平滑,而无需跳过框架。如果没有硬件加速,则拖动时可能会感觉到帧掉落。
在窗口切换动画中类似。硬件加速开关对切换动画有很大的影响。
对于视频,画布和webgl,如果没有硬件加速,则无法商业化。没有硬件加速,Android Webview的video标签中的视频将无法查看图片。

硬件加速的代价

硬件加速是一种双缓冲机制,使用视频内存进行页面渲染(使用较少的物理内存),从而导致视频内存操作更加频繁,这可能导致以下现象:
华屏,启动屏,块渲染;
因此,对于开发人员而言,请始终注意减少页面的内存占用空间并释放RAM以进行硬件加速。
具体参考http://ask.dcloud.net.cn/div/12837

硬件加速的开关控制

在5 + App中,可以从两个级别控制硬件加速:

App级别

程序级别开关用于设置整个程序是否使用硬件加速。关闭后,程序中的所有页面将无法使用硬件加速功能。您可以通过以下方式进行操作:

  • HBuilder中的配置方法
    打开应用的manifest.json文件,切换到“代码视图”,在plus->distribute->google节点下添加“hardwareAccelerated”字段:

    要启用硬件加速,请将值设置为true,然后关闭硬件加速以将值设置为false。如果未配置,则默认为自动。
    保存并提交到App云包以生效。
  • 离线打包配置的方法
    打开项目的AndroidManifest.xml文件,切换到代码查看模式,然后在应用程序节点下修改“ android:hardwareAccelerated”属性值:

    要启用硬件加速,请将值设置为true,然后关闭硬件加速以将值设置为false。
    保存后重新编译生效。

Webview窗口级别

除了应用程序级别,您还可以控制是否为单个Webview启用硬件加速。例如,该应用程序关闭了硬件加速,但是某个Web视图打开了硬件加速:

硬件加速的默认自动值的说明,即默认情况下在不同平台上的5+运行时启用或禁用硬件加速的策略

参考:http://ask.dcloud.net.cn/div/12830
您可以检查是否通过5+ API启用了Webview的默认硬件加速
但请注意,此api defauleHardwareAccelerated是我们引擎的默认策略查询。开发人员手动打开硬件加速后,此值将不会更改。
要检查硬件加速是否打开,一方面要查看上下滑动的平滑度,另一种方法是放置视频标签以查看视频是否有图片。

关闭硬件加速后,如果要播放视频,有两种解决方案:

  1. 为单独播放视频的Web视图启用硬件加速。创建此Web视图时,请参考上述方法以启用硬件加速。
  2. 致电外部本地播放器以单独播放视频,http://ask.dcloud.net.cn/question/614

禁用硬件加速度

Android提供了四种禁用硬件加速的方法:

Application

禁用整个应用程序的硬件加速

将以下属性添加到AndroidManifest.xml中的应用程序标记中,以启用或禁用整个应用程序的硬件加速;

<application android:hardwareAccelerated="true"..

Activity

在“活动”选项卡下使用或禁用硬件加速

<activity android:hardwareAccelerated="true/false"

window层级上

支持在窗口级别打开硬件加速,但不关闭硬件加速

getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELAERATE,WindowManager.LayoutParams.FLAG_HARSWARE_ACCELERATED)

View层级上

仅支持关闭硬件加速,不支持打开硬件加速

setLayerType(View.LAYER_TYPE_SOFTWARE,null)

或使用与“视图”节点相对应的布局文件:

android:layerType="software"

本文网址: https://www.gamfc.com/d/2020814103512_5186_1849082021/home