Android的硬體加速
Android從3.0(API Level 11)開始,在繪製View的時候支援硬體加速,充分利用GPU的特性,使得繪製更加平滑,但是會多消耗一些記憶體。
開啟或關閉硬體加速:
由於硬體加速自身並非完美無缺,所以Android提供選項來開啟或者關閉硬體加速,預設是關閉。可以在4個級別上開啟或者關閉硬體加速:
Application級別:<applicationandroid:hardwareAccelerated="true" ...>
Activity級別:<activity android:hardwareAccelerated="false" ...>
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開發者文件來寫的,具體細節可以參考這裡http://developer.android.com/guide/topics/graphics/hardware-accel.html
轉自:http://www.cnblogs.com/frydsh/archive/2012/10/23/2733581.html
相關文章
- Android 4.0硬體加速的使用Android
- 理解Android硬體加速的小白文Android
- Android硬體加速(二)-RenderThread與OpenGL GPU渲染AndroidthreadGPU
- # HenCoder Android 自定義 View 1-8 硬體加速AndroidView
- 自定義View的硬體加速問題View
- android4.0 開啟硬體加速後應用執行出錯 android4.0 開啟硬體加速後應用執行出錯...Android
- 硬體3D加速指南(轉)3D
- 如何用 GPU硬體層加速優化Android系統的遊戲流暢度GPU優化Android遊戲
- 硬體加速gpu計劃開還是不開 win10硬體加速gpu計劃有用嗎GPUWin10
- 視訊工具箱和硬體加速
- win10關閉硬體加速怎麼關閉_win10禁用顯示卡硬體加速怎麼操作Win10
- win10硬體加速沒有gpu計劃 強制開啟win10硬體加速gpu計劃的方法Win10GPU
- windows10系統關閉硬體加速的方法Windows
- win10硬體加速怎麼調高_win10硬體加速如何設定成最高效能Win10
- 在 CSS 動畫中使用硬體加速(翻譯)CSS動畫
- Android中GPU硬體加速控制及其在2D圖形繪製上的侷限AndroidGPU
- 學習通過CSS硬體加速提升你網站的效能CSS網站
- 微軟推送Windows 10照片UWP更新:新增硬體加速功能微軟Windows
- WPF概述(硬體加速及解析度無關性)
- Android硬體點陣圖填坑之獲取硬體畫布Android
- win10系統下如何開啟顯示卡硬體加速Win10
- Win7系統怎麼設定顯示卡硬體加速Win7
- 全同態加密的硬體加速:讓機器學習更懂隱私保護加密機器學習
- Android獲取硬體裝置資訊Android
- Android的硬體抽象層模組編寫規範Android抽象
- XCKU115硬體加速卡學習資料儲存:基於Xilinx XCKU115的半高PCIe x8 硬體加速卡
- Windows10系統中edge怎麼設定硬體加速GPUWindowsGPU
- Android 平臺開啟硬體解碼logAndroid
- Android硬體程式設計學習資料Android程式設計
- Android Things 專題 2 硬體介紹Android
- 業界 | 谷歌開源DeepLearn.js:可在網頁上實現硬體加速的機器學習谷歌JS網頁機器學習
- 深度學習的異構硬體加速:TPU 特性與資料中心的 ASIC 應用(概述篇)深度學習
- 英特爾想要比特幣挖礦硬體“加速器”專利比特幣
- 谷歌全面開源 MLIR 及生態聯盟,全球 95% 的加速器硬體都在使用谷歌
- Android硬體抽象層(HAL)模組編寫規範Android抽象
- 曝蘋果計劃推出硬體訂閱服務;Linux 5.17 釋出;Firefox 將支援 AV1 硬體加速 | 思否週刊蘋果LinuxFirefox
- 計算機的硬體與軟體計算機
- [android]android自動化測試七之動態AVD硬體引數Android