Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存。

**开启或关闭硬件加速:**

由于硬件加速自身并非完美无缺,所以Android提供选项来打开或者关闭硬件加速,默认是关闭。可以在4个级别上打开或者关闭硬件加速:

Application级别:

Activity级别:

Window级别:

getWindow().setFlags(

WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,

WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

注意:目前为止,Android还不支持在Window级别关闭硬件加速。

View级别:

myView.setLayerType(View.LAYER_TYPE_HARDWARE, null);

注意:目前为止,Android还不支持在View级别开启硬件加速。

**检测当前是否启用了硬件加速**:

[[图片上传失败...(image-216db4-1584188536557)]](javascript:void(0);)

// 方法一

// 此方法返回true,如果myView挂在一个开启了硬件加速的Window之下,

// 也就是说,它在绘制的时候不一定使用了硬件加速,getDrawingCache

myView.isHardwareAccelerated();

// 方法二

// 返回true,如果canvas在绘制的时候启用了硬件加速

// 尽量采用此方法来判断是否开启了硬件加速

canvas.isHardwareAccelerated();

[[图片上传失败...(image-f8a9db-1584188536557)]](javascript:void(0);)

**理解View的绘制模型:**

1.没有硬件加速:invalidate the view hierarchy ------> draw the view hierarchy

2.有硬件加速:invalidate the view hierarchy ------> record and update the display list ------> draw the display list

**硬件加速的限制:**

目前,Android对硬件加速的支持并非完美,有些绘制操作在开启硬件加速的情况下不能正常工作(具体的列表可以参考Android开发者文档)。

不过Android可以保证内置的组件和应用支持硬件加速。因此,如果应用中只使用了标准UI组件,可以放心开启硬件加速。

随着Android的版本升级,相信一段时间之后,硬件加速可以得到完美的支持。

**开启硬件加速之后的异常反应:**

1.某些UI元素没有显示:可能是没有调用invalidate

2.某些UI元素没有更新:可能是没有调用invalidate

3.绘制不正确:可能使用了不支持硬件加速的操作, 需要关闭硬件加速或者绕过该操作

4.抛出异常:可能使用了不支持硬件加速的操作, 需要关闭硬件加速或者绕过该操作

android硬件加速默认,Android的硬件加速相关推荐

  1. android硬件加速默认,android 硬件加速

    这两天发现,小米1+上,图文详情老是闪退,好吧,商品详情问题还是挺多的 报错信息是: 07-24 09:59:08.601: W/crash_handler(6887): Caught a crash ...

  2. android虚拟按键挤压布局和硬件加速

    在 别挤压的activity中的清单文件中配置 属性 android:windowSoftInputMode="adjustPan" 在 android studio中默认是开启硬 ...

  3. android关闭硬件动画加速器,Android中的硬件加速

    从Android 3.0开始,Android的2D渲染管线可以更好的支持硬件加速.硬件加速使用GPU进行View上的绘制操作. 硬件加速可以在一下四个级别开启或关闭: Application Acti ...

  4. Android多媒体支撑库OpenCore视频硬件加速

    转载:http://my.unix-center.net/~Simon_fu/?p=748 Android2.2之前版本的视频音频的播放默认支撑库为OpenCore.OpenCore功能非常强大,可以 ...

  5. android开启加速功能,Android硬件加速开发简介

    从 Android 3.0(API Level 11)开始,Android 2D 渲染管线被设计为能更好地支持硬件加速功能. 硬件加速功能将所有在 View 组件的 Canvas 上执行的绘制操作都交 ...

  6. 如何用 GPU 硬件层加速优化 Android 系统的游戏流畅度

    作为一款VR实时操作游戏App,我们需要根据重力感应系统,实时监控手机的角度,并渲染出相应位置的VR图像,因此在不同 Android 设备之间,由于使用的芯片组和不同架构的GPU,游戏性能会因此受到影 ...

  7. 如何用 GPU硬件层加速优化Android系统的游戏流畅度—应用性能管理

    作为一款VR实时操作游戏App,我们需要根据重力感应系统,实时监控手机的角度,并渲染出相应位置的VR图像,因此在不同 Android 设备之间,由于使用的芯片组和不同架构的GPU,游戏性能会因此受到影 ...

  8. 通过硬件层提高Android动画的性能

    通过硬件层提高Android动画的性能 转自http://www.devtf.cn/?p=1195 曾有许多人问我为什么在他们开发的应用中,动画的性能表现都很差.对于这类问题,我往往会问他们:你们有尝 ...

  9. 智能硬件市场异常火热 移动互联网公司加速布局智能领域

    您好,欢迎来到中国报告大厅! [登陆] [注册] 设为首页 收藏夹 帮助中心 联系我们 快捷导航 通信电脑数码软件 家电日用礼品玩具 医药保键医疗器械 化工塑料纤维石油 涂料橡胶树脂染料 机械电子汽电 ...

  10. android悬浮球代码,Android 仿360悬浮球与加速球

    先来看一张动态图 昨天跟着视频学了如何自定义View并做成仿360悬浮球与加速球的样式 可以看出来,做成的效果有: 点击按钮后退出Activity,呈现一个圆形的悬浮球,可以随意拖动并会自动依靠到屏幕 ...

最新文章

  1. 如何设计日志采集系统?不妨看看这篇文章
  2. 【Java Web前端开发】Response笔记
  3. 阿里云mysql安装
  4. sql in转换为join_同一个SQL语句,为啥性能差异咋就这么大呢?(1分钟系列)
  5. C语言中的fopen函数
  6. html5 字母索引,jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
  7. PyTorch | torch.randperm()使用方法
  8. xml的应用与dtd约束
  9. EF/SQL/新闻中分页应用
  10. tasm报错illegal memory reference的解决办法
  11. active mq topic消费后删除_RabbitMQ重复消费,顺序消费,消息丢失如何解决
  12. SSh三大框架的作用
  13. 超级好用的TXT分本分割工具
  14. 工业汽轮机调节系统的模糊PID控制器
  15. python实现学生教务系统之自动教师评价
  16. 除夕最炫烟花代码----跨年必备合集
  17. iOS SDK开发系列一之Cocoapods原理,Xcode的配置,动态库和静态库介绍
  18. 互联网晚报 | 1月27日 星期四 | 微信推出“拜年红包”功能;快手推出蓝领招聘平台“快招工”;B站正式登陆PS5平台...
  19. 大数据、快速数据和数据湖概念
  20. 程序员必读:“五险一金”详解!

热门文章

  1. 前端js十六进制格式的颜色和rgba格式颜色互转
  2. 如何用html绘制图表动画,10个经典实用的HTML5图表动画应用
  3. U大师安装系统后,Chrome主页被7654导航劫持解决方法
  4. 关于 Chrome Console 查看DOM详情细节的奇思淫巧
  5. python:NBA比赛数据分析
  6. 点击微信公众号菜单发送图片或文本
  7. 机器学习系列2---经验风险最小化原则和结构风险最小化原则与VC维问题
  8. archlinux设置屏幕亮度
  9. 全球时区 简称 缩写 简介 PST EST GMT CST EDT UTC 等
  10. 软件开发的8大主流方法介绍