miniui
//android提供了一個(gè)庫(kù)minui用于簡(jiǎn)單的UI輸出,源碼在bootable/recovery/minui中,
//gr_init()和gr_font_size()為minui庫(kù)提供方法,gr_init()為UI輸出作準(zhǔn)備,gr_font_size()獲得字體大小
gr_init();
//res_create_surface()為minui庫(kù)中提供,用于將一張圖片生成一個(gè)surface
1、gr_init()初始化圖形設(shè)備,分配Pixelflinger庫(kù)渲染的內(nèi)存
2、gr_font_size() 將字體對(duì)應(yīng)的surface長(zhǎng)寬賦值給char_width和char_height
intgr_init(void);/*初始化圖形顯示,主要是打開(kāi)設(shè)備、分配內(nèi)存、初始化一些參數(shù)*/
voidgr_exit(void);/*注銷(xiāo)圖形顯示,關(guān)閉設(shè)備并釋放內(nèi)存*/
intgr_fb_width(void);/*獲取屏幕的寬度*/
intgr_fb_height(void);/*獲取屏幕的高度*/
gr_pixel*gr_fb_data(void);/*獲取顯示數(shù)據(jù)緩存的地址*/
voidgr_flip(void);/*刷新顯示內(nèi)容*/
voidgr_fb_blank(boolblank);/*清屏*/
voidgr_color(unsignedcharr,unsignedcharg,unsignedcharb,unsignedchara);/*設(shè)置字體顏色*/
voidgr_fill(intx,inty,intw,inth);/*填充矩形區(qū)域,參數(shù)分別代表起始坐標(biāo)、矩形區(qū)域大小*/
intgr_text(intx,inty,constchar*s);/*顯示字符串*/
intgr_measure(constchar*s);/*獲取字符串在默認(rèn)字庫(kù)中占用的像素長(zhǎng)度*/
voidgr_font_size(int*x,int*y);/*獲取當(dāng)前字庫(kù)一個(gè)字符所占的長(zhǎng)寬*/
voidgr_blit(gr_surfacesource,intsx,intsy,intw,inth,intdx,intdy);/*填充由source指定的圖片*/
unsignedintgr_get_width(gr_surfacesurface);/*獲取圖片寬度*/
unsignedintgr_get_height(gr_surfacesurface);/*獲取圖片高度*/
/*根據(jù)圖片創(chuàng)建顯示資源數(shù)據(jù),name為圖片在mk文件指定的相對(duì)路徑*/
intres_create_surface(constchar*name,gr_surface*pSurface);
voidres_free_surface(gr_surfacesurface);/*釋放資源數(shù)據(jù)*/
主程序通過(guò)dlopen()加載一個(gè).so的動(dòng)態(tài)庫(kù)文件, 然后動(dòng)態(tài)庫(kù)會(huì)自動(dòng)運(yùn)行 _init() 初始化函數(shù), 初始化函數(shù)打印一個(gè)提示信息, 然后調(diào)用主程序的注冊(cè)函數(shù)給結(jié)構(gòu)體重新賦值, 然后調(diào)用結(jié)構(gòu)體的函數(shù)指針, 打印該結(jié)構(gòu)體的值. 這樣就充分的達(dá)到了主程序和動(dòng)態(tài)庫(kù)的函數(shù)相互調(diào)用和指針的相互傳遞.
voidres_free_surface(gr_surfacesurface);/*釋放資源數(shù)據(jù)*/
總結(jié)
- 上一篇: 钻山风糖浆_功效作用注意事项用药禁忌用法
- 下一篇: Docker入门二