Android硬體加速的一些問題和錯誤

2021-06-23 09:18:01 字數 1489 閱讀 3563

最近做的程式中遇到了一些奇怪的問題:**未知,只對特定機型出現問題。如果你也遇到了,可以考慮是不是

硬體加速

(hardware acceleration)的錯

從android3.0 (api level 11)開始,android的2d顯示管道被被設計得更加支援硬加速了.硬加速使用gpu承擔了所有在view的canvas上執行的繪製操作。

硬體加速是個好東西,可以讓listview、webview滑動的更流暢,但是也總是會出現莫名其妙的的問題。

問題1:edittext中文字的重疊

這是我之前乙個部落格中解決過的問題,詳見:

在某些4.x的機器中,如果開啟了硬體加速,edittext會出現奇怪的文字重疊的情況。

解決的方法:對edittext關閉硬體加速即可。

問題2:無法顯示

做的程式裡有的時候會需要載入大圖,但是硬體加速中 opengl對於記憶體是有限制的。如果遇到了這個限制,logcat只會報乙個warning: bitmap too large to be uploaded into a texture (587x7696, max=2048x2048)

這時我們就需要把硬體加速關閉了。

但開始我是這樣處理的,我關閉了整個應用的硬體加速:

[html]view plain

copy

<

android:allowbackup

="true"

android:icon

="@drawable/ic_launcher"

android:hardwareaccelerated

="false"

android:label

=android:theme

=>

隨後我就發現,雖然可以顯示了,但是listview和webview等控制項顯得特別的卡,這說明硬體加速對於程式的效能提公升是很明顯的。所以我就改為對於activity的關閉

[html]view plain

copy

<

activity

android:name

="icyfox.webviewimagezoomertest.mainactivity"

android:label

=android:hardwareaccelerated

="false"

這樣問題得到了較好的解決,實際上,我們還可以對每個控制項是否加速進行控制。

寫這篇文章的目的,想讓大家在遇到些奇怪的問題的時候,可以想到這一點,希望對大家有所幫助。

Android 硬體加速

開啟或關閉硬體加速 由於硬體加速自身並非完美無缺,所以android提供選項來開啟或者關閉硬體加速,預設是關閉。可以在4個級別上開啟或者關閉硬體加速 activity級別 window級別 getwindow setflags windowmanager.layoutparams.flag hard...

Android硬體加速

android從3.0 apilevel11 開始,在繪製view的時候支援硬體加速,充分利用gpu的特性,使得繪製更加平滑,但是會多消耗一些記憶體。開啟或關閉硬體加速 由於硬體加速自身並非完美無缺,所以android提供選項來開啟或者關閉硬體加速,預設是關閉。可以在4個級別上開啟或者關閉硬體加速 ...

Android硬體加速

從android3.0 api level 11 開始,支援硬體加速,可充分利用gpu的特性,使得介面渲染更加平滑。但是硬體加速自身並非完美,在某些webview版本上,比如android5初期的一些rom上的webview版本是chrome37 38版本,由於其本身的硬體加速策略的bug,導致 稍...