我的应用使用了硬件加速不支持的Canvas方法(clipPath,drawPicture),因此我不启用硬件加速。但是,我开始收到崩溃报告,例如:android.view.GLES20Canvas.drawPicture(GLES20Canvas.java:895)
。
在研究这个问题时,似乎某些设备可以选择在设置中强制硬件加速:“强制gpu渲染,在applciations中使用2d harware加速”。
所以,我在我的manifest.xml中添加了<application android:hardwareAccelerated="false">
,但在选中“强制gpu渲染”设置时仍然会崩溃。
那么,无论如何都要阻止我的应用程序被迫使用硬件加速?
答案 0 :(得分:3)
使用the dev guide中的“查看级别”选项使用这些操作为视图禁用它 - 我希望其他选项会因应用程序上的设置强制而被挫败。
myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
如果不这样做,该链接将描述如何检测硬件加速,并抱怨它。
如果视图附加到硬件加速窗口,View.isHardwareAccelerated()将返回true。
如果Canvas是硬件加速的,Canvas.isHardwareAccelerated()将返回true
答案 1 :(得分:0)
在Android世界中,安全性是关键,忽略用户在系统设置中的设置并不能确保Android安全。我建议你通过一个对话框通知用户,告诉他们为什么硬件加速对你的应用程序不起作用,并提供一种轻松访问设置的方法。