hardware acceleration硬件加速

hardware acceleration硬件加速

ID:15609751

大?。?07.00 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2018-08-04

hardware acceleration硬件加速_第1頁(yè)
hardware acceleration硬件加速_第2頁(yè)
hardware acceleration硬件加速_第3頁(yè)
hardware acceleration硬件加速_第4頁(yè)
hardware acceleration硬件加速_第5頁(yè)
資源描述:

《hardware acceleration硬件加速》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、HardwareAcceleration硬件加速HardwareAcceleration從Android3.0(APIlevel11)開始,Android2D渲染管線能更好的支持硬件加速。硬件加速通過(guò)GPU執(zhí)行各種繪畫操作。因?yàn)橛布铀傩枰母嗟馁Y源,所以你的App需要更多的RAM。開啟硬件加速最簡(jiǎn)單的方法是在整個(gè)應(yīng)用全局設(shè)置。如果應(yīng)用只使用標(biāo)準(zhǔn)的View和Drawable,全局設(shè)置不會(huì)產(chǎn)生不利的影響。然而,因?yàn)橛布铀俨恢С炙械?D繪制操作,開啟會(huì)影響一些自定義View或者繪制調(diào)用。問(wèn)題顯示為不可見(jiàn)的元素、異常,或者錯(cuò)誤渲染

2、像素。為了補(bǔ)救這些,Android提供給你選項(xiàng)開啟或者關(guān)閉硬件加速在以下幾個(gè)層面:·Application·Activity·Window·View如果你的應(yīng)用執(zhí)行自定義繪制,開啟硬件加速,測(cè)試應(yīng)用在實(shí)際的硬件設(shè)備上去查找問(wèn)題??刂朴布铀倌憧梢栽谝韵聦用婵刂朴布铀佟pplication·Activity·Window·ViewApplication層在你的Androidmanifest文件里,添加以下屬性到標(biāo)簽里,針對(duì)整個(gè)應(yīng)用開啟硬件加速:

3、elerated="true"...>Activity層如果整個(gè)應(yīng)用開啟硬件加速表現(xiàn)的不穩(wěn)定,你也可以針對(duì)單個(gè)Activity進(jìn)行控制。在Activity層開啟或者關(guān)閉硬件加速,你可以使用android:hardwareAccelerated屬性在標(biāo)簽內(nèi)。下面是單個(gè)Activity中關(guān)閉硬件加速的例子:

4、Window層如果你需要更細(xì)致的控制,可以在獲得的Window里開啟硬件加速:getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);·注:在window層不能取消硬件加速。View層通過(guò)下面代碼,你可以在運(yùn)行時(shí)關(guān)閉硬件加速:myView.setLayerType(View.LAYER_TYPE_SOFTWA

5、RE,null);注:你不能在view層開啟硬件加速。View面板有其他方法關(guān)閉硬件加速。更多詳細(xì)內(nèi)容請(qǐng)看View面板。判斷View是否已經(jīng)硬件加速有時(shí)候,知道一個(gè)應(yīng)用當(dāng)前是否硬件加速是非常有用的,尤其像自定義View。這非常有用,當(dāng)你的應(yīng)用做大量的自定義繪制并且不是所有操作都支持新的渲染管道。有兩個(gè)方法查看應(yīng)用是否硬件加速:·View.isHardwareAccelerated()?如果View附屬于硬件加速的窗體,將會(huì)返回true。·Canvas.isHardwareAccelerated()?如果Canvas已硬件加速,將會(huì)返

6、回true。如果你一定要在繪制代碼中進(jìn)行這個(gè)查看,請(qǐng)盡可能用Canvas.isHardwareAccelerated()代替View.isHardwareAccelerated()。當(dāng)一個(gè)View附屬于硬件加速窗體,它仍可以通過(guò)非硬件加速的Canvas來(lái)繪制。這種情況,在實(shí)例化時(shí),繪制一個(gè)View到bitmap中,為了緩存目的。Android繪畫模型當(dāng)開啟硬件加速,新的繪畫模型利用顯示列表在界面上渲染你的應(yīng)用。為了完全理解顯示列表和對(duì)你的應(yīng)用有怎樣的影響,知道Android不通過(guò)硬件加速怎么樣繪制View也很重要。下面的篇章闡述基于

7、軟件和基于硬件的繪畫模型?;谲浖睦L畫模型在軟件繪畫模型中,View通過(guò)以下兩個(gè)步驟被繪制:·使層次失效·繪制層次每當(dāng)應(yīng)用需要更新部分UI時(shí),調(diào)用invalidate()(或者它的變形)在任意需要改變內(nèi)容的view里。這些失效信息被傳播始終在view層,計(jì)算需要重繪的界面區(qū)域。然后,Android系統(tǒng)繪制任意view在這些區(qū)域。不幸的是,這種模型有兩個(gè)缺點(diǎn):·第一,這種模型需要執(zhí)行的大量的代碼在每一次繪畫。比如,如果你的應(yīng)用在按鈕里調(diào)用了invalidate()?,而且這個(gè)按鈕在另外一個(gè)view之上,此時(shí)Android系統(tǒng)會(huì)重繪這

8、個(gè)view,即時(shí)它沒(méi)有發(fā)生改變?!さ诙€(gè)問(wèn)題是繪畫模型會(huì)隱藏你應(yīng)用的錯(cuò)誤。從Android系統(tǒng)開始重繪view,當(dāng)他們與臟區(qū)域融合時(shí),你改變的view的內(nèi)容可能會(huì)被重繪即時(shí)invalidate()沒(méi)有被調(diào)用。此時(shí),你依賴于另外一個(gè)vi

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。