硬加速

资料

Android开发硬件加速

简介

Android3.0 (API level11)始,Android的2D显示管道设计得更支持硬加速。硬加速用GPU承担所有View之canvas上执行的绘制操作。

minSdkVersion或targetSdkVersion大等14该属性默true,否默false。

启硬加速最简单法即对整应用启硬件速。应用仅用标准View和Drawable则全局启硬加速将不带来任何负面影响。然硬加速并非被所有2D绘制支持,故启或影响自定绘制。所出问题常不可见,或异常、错误地显示像素。

为避这些问题,Android提供以下各级别启或禁硬加速:

  • Application
    清单文件标签添属性<application android:hardwareAccelerated="true" ...>启整应用硬加速。
  • Activity
    应用在全局启硬加速时行为不正确则可对个别Activity单启硬加速。欲Actvity级别启或禁硬加速,可对<activity>元素用android:hardwareAccelerated属性。下例于整应用启硬加速,但对一Activity禁硬加速:
    <application android:hardwareAccelerated="true">
    	<activity android:hardwareAccelerated="false" />
    </application>
    
  • Window
    需高颗粒度控制可用如下代码对一window启硬加速:
    getWindow().setFlags(
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
    
    注:现在还不能对window级别禁止硬加速。
  • View
    开硬件加速
    setLayerType(View.LAYER_TYPE_HARDWARE, mPaint)
    
    关硬件加速
    setLayerType(View.LAYER_TYPE_SOFTWARE, mPaint)
    
    注:View层有除禁硬加速外其它功能。

判View必硬加速否

了解一应用启硬件速否对自定View等尤其重要,应用做一些不被最新管线所支持自定绘制显更重要。两法检应用硬加速否:

  • View.isHardwareAccelerated()
    仅受Application、Activity影响。Activity本身不支持硬件加速返false,否true。
  • Canvas.isHardwareAccelerated()
    受Application、Activity影响。设setLayerType时被setLayerType直接影响。没设setLayerType,Activity支持硬加速返ture,否false。设setLayerType时返值受setLayerType参数影响。

注意

需绘制代码中做这个,应使用Canvas.isHardwareAccelerated()而非View.isHardwareAccelerated()。因当一View附加到一硬加速window时,仍可用非硬加速Canvas绘制操作。如当为高速缓存而把一View画到一Bitmap中。

问题

日志
java.lang.OutOfMemoryError: Failed to allocate a 157286412 byte allocation with 16777216 free bytes and 111MB until OOM
分析

内存溢出

方案

清单文件application标签如下配

android:hardwareAccelerated="false",
android:largeHeap="true"
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

snpmyn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值