android:hardwareAccelerated
实例:
项目中出现异常,就在AndroidManifest.xml中,Application中添加了
android:hardwareAccelerated="false" android:largeHeap="true"
配置,结果导致webView加载的html5页面非常的卡顿。找了n久之后,发现是因为这个设置的问题。告诫以后,需要用到这两个属性的时候,最后设在Activity的小范围内。不然会导致其他的问题。
从Android3.0 (API level11)开始,Android的2D显示管道被被设计得更加支持硬加速了.硬加速使用GPU承担了所有在View的canvas上执行的绘制操作.
介绍:
启用硬加速最简单的的方法是对整个应用启用硬件速.如果你的应用只使用标准的view和Drawable,全局启用硬加速将不会带来任何负面影响.然而,因为硬加速不是被所有的2D绘制所支持,所以启用它时可能对你的自定义绘制产生影响.出现的问题经常是不可见的,也可能是异常,或错误地显示了像素.为了避免这些问题,Android提供了在以下各级别上启用或禁止硬加速的能力:
Application
Activity
Window
View
如果你的应用使用了自定义绘制,需要在真实的设备上启用硬加速进行测试来找出问题."不支持的绘制操作"一节描述了已知的不能被硬加速的绘制操作以及如何避开它们.
控制硬加速
你可以在以下级别上分别控制硬加速:
Application
Activity
Window
View
Application级
在你的manifest文件中,把以下属性添加到<application>标签来对你的整个应用启用硬加速:
<applicationandroid:hardwareAccelerated="true" ...>
Activity级
如果你的应用在全局启用硬加速时行为不正确,你可以对个别activities单独启用硬加速.欲在actvity级别启用或禁止硬加速,你可以对<activity>元素使用android:hardwareAccelerated属性.下面的例子在整个应用中启用了硬加速但对一个activity禁止了硬加速:
<applicationandroid:hardwareAccelerated="true">
<activity... />
<activityandroid:hardwareAccelerated="false" />
</application>
Window级
如果你需要更高颗粒度的控制,你可以使用以下代码为一个window启用硬加速:
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
注:现在你还不能在window级别禁止硬加速.
Viewlevel
你可以在运行时使用以下代码禁止个别的View的硬加速:
myView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
注:当前你不能在View级别启用硬加速.View层有除禁止硬加速之外的其它功能.
判定一个View是否能被硬加速
有时一个应用了解是否启用了硬件速是很有用的,对那些自定义View之类的东西尤其重要.在你的应用做了一些不被最新的管线所支持的自定义绘制时这更加重要.
有两种方法可以检查应用是否被硬加速:
View.isHardwareAccelerated():如果View附加到一个硬加速的window上就返回true.
Canvas.isHardwareAccelerated():如果Canvas被硬加速了就返回true.
如果你必须在你的绘制代码中做这个,应使用Canvas.isHardwareAccelerated()而不是View.isHardwareAccelerated().当一个view附加到一个硬加速的window上,它仍可以使用非硬件速的Canvas进行绘制操作.比如当为了高速缓存而把一个view画到一个bitmap中.
android:hardwareAccelerated相关推荐
- Android 使用HardwareAccelerated硬件加速总结
目录 介绍 一.GPU和CPU: 二.开启方式 三.检测方式 介绍 从Android3.0(API Level 11)开始支持硬件加速,在Target API >= 14时是默认开启的.可充分利 ...
- Android开发权威指南(第2版)新书发布
<Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供 ...
- Android提前加载unity程序,Unity项目嵌入Android App实现过程
1.编写自己的Unity APP,完成后,导出为Android 工程(参数和步骤截图如下),unity版本为:2019.4.16 2.导出的文件夹内容如下截图:我们只使用unityLibrary这个文 ...
- flutter打开android界面,在已有Android项目中使用Flutter
实现效果,在已存在的android项目中接入flutter,即android调用开启flutter页面(使用android打开flutter的指定页面),flutter调用原生android方法 步骤 ...
- Unity 3D:在现有的Android游戏场景中显示AdMob的横幅
2019独角兽企业重金招聘Python工程师标准>>> 关于如何在现有的Android项目现场显示AdMob的横幅,在一个Android项目中使用一个简单的Android JAR文件 ...
- Android 4.0的图形硬件加速及绘制技巧
[51CTO独家特稿]从Android 3.0开始,Android 2D的绘制流程就设计为能够更好地支持硬件加速.使用GPU的View在Canvas上进行画的操作时都会使用硬件加速.在最新的Andro ...
- Android开发精要2--Android组件模型解析
本文的主要内容如下: 2.1 基于Mashup的应用设计 2.2 界面组件Activity解析 2.3 服务组件Service解析 2.4 触发器组件BroadcastReceiver解析 2.5 数 ...
- android display list,从android.view.GLES20DisplayList释放位图
有谁知道如何从 android.view.GLES20DisplayList释放位图. 为什么它会让它们保持活力,即使你清洁,让我们说, ImageView手动? 或许有一种方法可以禁用GLES20D ...
- Android清单文件详解(三)----应用程序的根节点application
<application>节点是AndroidManifest.xml文件中必须持有的一个节点,它包含在<manifest>节点下.通过<application>节 ...
最新文章
- 分享一个基于 Shiro 的权限管理系统,亮点是支持 restful 风格 URL.
- Zabbix3的离线安装
- java多线程系列1:Sychronized关键字
- OpenCV之imgproc 模块. 图像处理(4)直方图均衡化 直方图计算 直方图对比 反向投影 模板匹配
- centos linux 内核升级,Centos系统的升级及Linux 内核升级
- 厦门大学计算机科学与技术学院考研分数线,2020年厦门大学计算机科学与技术考研经验分享...
- 即时通讯软件开发界公认的说法
- Linux常用的基础组件
- 深度学习入门笔记(二十一):经典神经网络(残差网络ResNets)
- 自动驾驶公司如何打造产品市场体系
- 计算机专业辐射,电脑辐射主要来源在哪——专业实测让你弄个明白
- Excel将一个表格的格式复制到其他表格,不用格式刷
- Opencv基础------RGB颜色通道的分量显示和调整
- 单片机调试 — Event Recorder 的使用
- Win10下C:\Users\***修改用户名(完全修改)
- jdk1.6升级jdk1.8踩出的神坑
- nacg python证书_这个nacg证书有用吗?
- ubuntu18.04下YOLOV4测试和训练自己的数据集
- openlayers热力图
- 你还在担心你的 IP 被封吗?