最近做的程序中遇到了一些奇怪的问题:来源未知,只对特定机型出现问题。如果你也遇到了,可以考虑是不是硬件加速(Hardware Acceleration)的错
从Android3.0 (API level 11)开始,Android的2D显示管道被被设计得更加支持硬加速了.硬加速使用GPU承担了所有在View的canvas上执行的绘制操作。
硬件加速是个好东西,可以让ListView、WebView滑动的更流畅,但是也总是会出现莫名其妙的的问题。
问题1:EditText中文字的重叠
这是我之前一个博客中解决过的问题,详见:http://blog.csdn.net/icyfox_bupt/article/details/12837093
在某些4.x的机器中,如果打开了硬件加速,EditText会出现奇怪的文字重叠的情况。
解决的方法:对EditText关闭硬件加速即可。
问题2:图片无法显示
做的程序里有的时候会需要加载大图,但是硬件加速中 OpenGL对于内存是有限制的。如果遇到了这个限制,LogCat只会报一个Warning: Bitmap too large to be uploaded into a texture (587x7696, max=2048x2048)
这时我们就需要把硬件加速关闭了。
但开始我是这样处理的,我关闭了整个应用的硬件加速:
- <application
- android:allowBackup="true"
- android:icon="@drawable/ic_launcher"
- android:hardwareAccelerated="false"
- android:label="@string/app_name"
- android:theme="@style/AppTheme">
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:hardwareAccelerated="false" android:label="@string/app_name" android:theme="@style/AppTheme" >
随后我就发现,虽然图片可以显示了,但是ListView和WebView等控件显得特别的卡,这说明硬件加速对于程序的性能提升是很明显的。所以我就改为对于Activity的关闭
- <activity
- android:name="icyfox.webviewimagezoomertest.MainActivity"
- android:label="@string/app_name"
- android:hardwareAccelerated="false"
<activity android:name="icyfox.webviewimagezoomertest.MainActivity" android:label="@string/app_name" android:hardwareAccelerated="false"
这样问题得到了较好的解决,实际上,我们还可以对每个控件是否加速进行控制。
写这篇文章的目的,想让大家在遇到些奇怪的问题的时候,可以想到这一点,希望对大家有所帮助。
转载请注明来自:http://blog.csdn.net/icyfox_bupt/article/details/18732001
相关推荐
使用硬件加速会让动画绘制的更快,因为硬件会把图层缓存在GPU上。 >用法 用法很简单关键方法是View.setLayerType() 1. 在开始动画时调用View.setLayerType(View.LAYER_TYPE_HARDWARE, null) 2. 运行...
android硬件加速离线网页一份
安卓在加载大图的时候经常会出现oom的错误,给大家分享我的一些处理经验。这个版本关闭了硬件加速。
Android2.2、2.3、4.0_中如何使用GPU硬件加速原理和游戏3D性能的提升 实现GPU渲染 介绍。
主要介绍了理解Android硬件加速原理(小白文),详细的介绍了硬件加速的概念和原理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要介绍了浅谈Android硬件加速原理与实现简介,本文尝试从底层硬件原理,一直到上层代码实现,对硬件加速技术进行简单介绍,感兴趣的小伙伴们可以参考一下
Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存。 开启或关闭硬件加速: 由于硬件加速自身并非完美无缺,所以Android提供选项来...
Android开发模拟器加速器,让Android模拟器在PC下运行更加迅速!
Android系统的图形本地框架硬件加速技术优化
Android硬件抽象层从开发到使用有一个清晰的...这个PPT通过一个具体的实例来分析Android硬件抽象层的开发、测试和使用,它在帮助我们理解Android系统架构的同时,也能教会我们如何在Android源代码环境中开发C/C++代码。
android 模拟器加速器,安装了这个 模拟器打开的速度非常快
获取设备的分辨率,型号,API Level,内存大小及CPU型号等。
用于加速Android模拟器的Intel组件,欢迎下载使用~
Android 串口通信权限问题Android 串口通信权限问题Android 串口通信权限问题Android 串口通信权限问题
Android x86 的加速器 模拟器必须要安装,英特尔® 硬件加速执行管理器(英特尔® HAXM)是一款硬件辅助虚拟引擎(管理程序),可通过英特尔® 虚拟化技术 (VT) 来帮助提升在主机上进行 Android 应用模拟的速度。...
android的MediaPlayer播放器迷你案例,简单易懂,包含播放,暂停,停止