Android效能最佳化Google課程翻譯

來源:互聯網
上載者:User

標籤:效能最佳化   android   opengl   硬體   

Context:

我自己寫下Google關於Android效能最佳化的視頻課程的翻譯,希望轉載者不要刪除我的部落格地址http://blog.csdn.net/zhjali123

術語:

1.texture、meshes。舉個例子,做一個飛機模型,你要先雕刻出立體的飛機模型(mesh),但是模型還沒有上色,這是你要用張紙把它包起來,在上面畫迷彩,這層有迷彩的紙就是(texture,中文叫紋理)。


Lesson1:Render(渲染)

1.Android裝置通常16ms 更新下Activity,具體取決於手機硬體。這意味著你要在16ms內處理你所有的繪畫邏輯。如果你錯過了這個16ms,頁面不會繪製,這就叫做 dropped frame。然而動畫的運算並不會停止,所以呈現給使用者的就是在平滑性上發生了跳躍。這就叫做laggy或者janky體驗。

2.Android的渲染通道分為兩個關鍵地區:CPU和GPU。

CPU(measure測量-->layout布局--->record記錄--->execute執行)---->GPU(rasterization光柵化:計算每一個像素點的值)

CPU的問題:不必要的layout,視圖層次(View Hierachy)中無意義的計算、拆分(torn down)、重建(rebuilt)

XML轉換到螢幕顯示的原理過程:

XML----轉換---->Screen,核心步驟:rasterization光柵化()。Rasterization是非常的消耗資源,所以上個世紀90年代引入了單獨的影像處理單元GPU。GPU使用一些指定的基礎指令集(set of primitive: polygons多邊形,textures 文理,images 映像),而CPU在畫東西到螢幕前,會給GPU輸入這些指令(a set of primitive)。這一過程通常使用的API就是Android的OpenGL ES。

這意味著如果畫一個button,他會在CPU中先轉化為polygons多邊形、texture紋理((computer graphics) An image applied to a polygon to create the appearance of a surface:映像被添加到一個多邊形上來創造事物的外觀)------------》傳遞給GPU進行rasterization光柵化。

其中有兩處耗時操作:

1.在CPU中將button等事物 轉換成相應的形狀(polygons),繪製它的表面(texture)

2.CPU將資料傳送GPU

對應措施:

你要減少CPU中繪製的事物和CPU往GPU上傳資料,而OpenGL ES提供了向GPU上傳資料和儲存資料的API。所以,當你下次繪製一個button時,你只需要在GPU中引用它(也就是在GPU中完成polygons、texture),告訴OpenGL如何進行繪製它。一條經驗之談就是:最佳化渲染的效能意味著,儘可能快的上傳資料到GPU和在GPU上儘可能長的保留資料。

從HoneyComb版本開始,整個View的渲染就在GPU中,並不斷最佳化,所以你不用關心這個。例如:任何你的theme提供的資源如Bitmaps、Drawables等,被整合到一個單獨的texture(感覺就是事物表面的意思)中,然後使用meshes上傳到GPU像是點9圖。這樣每次你需要繪製這些資源時,你就不用做任何轉換,他們已經儲存在GPU中了。

然而隨著UI事物更加先進,繪製流程也更加複雜。例如繪製一個image,這意味著上傳Image到CPU再到GPU。使用Path則完全不同,你需要在CPU中建立一連串的polygons多邊形,甚至在GPU中建立masking texture(蒙版紋理)來定義path。繪製字元,首先你必須在CPU中將繪製image---》上傳到GPU---》在螢幕上繪製每一個字串中字元的正方形,這些都被Android系統所處理。而這存在程式員都會遇的GPU問題OverDraw(過度繪製)


今天晚上在繼續翻譯吧!


Android效能最佳化Google課程翻譯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.