UI系統(tǒng)的底層功能一般包括:
1)圖形顯示
2)鼠標(biāo),鍵盤事件處理
3)窗口管理
android
2D圖形庫采用SKIA,簡(jiǎn)稱SGL(skia graphics library)
3D圖形庫采用了OPENGL ES.
2D圖形庫上層類庫包括:
android.graphics
android.view
android.widget
3D圖形庫上層類庫包括:
android.opengl
android的底層圖形接口為EGL,直接訪問FrameBuffer.
android沒有采用X Server,但是其采用的也是Client/Server結(jié)構(gòu),Server就是SurfaceFlinger.其主要由C++代碼編寫而成。
客戶端既包括JAVA庫,也包括C++寫的底層庫。
android圖形系統(tǒng)應(yīng)用接口的基本處理對(duì)象和重要線索和概念是Surface.
View及其子類(TextView,Button)都要畫在Surface上。
每個(gè)surface創(chuàng)建一個(gè)Canvas對(duì)象(但屬性時(shí)常改變),用來管理view在surface上的繪圖操作,如畫點(diǎn)畫線。每個(gè)canvas對(duì)象對(duì)應(yīng)一個(gè)bitmap,存儲(chǔ)畫在surface上的內(nèi)容。
每個(gè)Surface通常對(duì)應(yīng)兩個(gè)buffer,一個(gè)front buffer, 一個(gè)back buffer。 其中,back buffer就是canvas繪圖時(shí)對(duì)應(yīng)的bitmap。