總結系列 硬體加速

2021-07-04 19:59:43 字數 1511 閱讀 1078

android從3.0(api level 11)開始,在繪製view的時候支援硬體加速,充分利用gpu的特性,使得繪製更加平滑,但是會多消耗一些記憶體。

開啟或關閉硬體加速:

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

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級別開啟硬體加速。

檢測當前是否啟用了硬體加速:

//

方法一//

此方法返回true,如果myview掛在乙個開啟了硬體加速的window之下,

//也就是說,它在繪製的時候不一定使用了硬體加速,getdrawingcache

myview.ishardwareaccelerated();

//方法二

//返回true,如果canvas在繪製的時候啟用了硬體加速

//盡量採用此方法來判斷是否開啟了硬體加速

canvas.ishardwareaccelerated();

理解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開發者文件來寫的,具體細節可以參考這

硬體加速 Pr開始支援A卡硬體加速

上週,amd正式推出旗下針對專業工作站平台的高效能處理器執行緒系列者pro系列,而聯想p620台式工作站更是對該系列處理器進行了首發。不過,該工作站配備的是英偉達顯示卡。由於amd顯示卡也是從近兩年才開始翻身,因此在專業軟體的支援方面稍顯落後。以如今使用最為廣泛的premiere pro軟體為例,其...

Android 硬體加速

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

GPU硬體加速

了解什麼是gpu硬體加速,需要先了解什麼是gpu gpu graphic processing unit 圖形處理晶元 它是顯示卡的 心臟 也就相當於cpu在電腦中的作用,它決定了該顯示卡的檔次和大部分效能,同時也是2d顯示卡和3d顯示卡的區別依據 2d顯示晶元在處理3d影象和特效時主要依賴cpu的...