MTK添加項目資源結構

來源:互聯網
上載者:User

MTK程式將資料分為動態和待用資料。
動態資料指程式運行時才知道,由程式動態產生的。
待用資料指固定不變的資料,可以在程式編譯時間轉換為位元據存入燒錄檔案中。

待用資料被稱為資源。常見的資源有以下幾種:字串,映像,菜單,字型檔,主題,聲音等。

添加一個資源需要3個步驟:原料,ID,裝載
原料其實就是資料來源,片,字串等。
ID:資源的別名,程式只能通過ID得到資源。
裝載:將原料轉換為位元據,並與ID聯絡起來。

資源裝載先行編譯程式是plutommi/Customer/ResGenerator/mtk_resgenerator.exe,這個程式在每次編譯目標燒入檔案之前臨時編譯產生。

添加資源步驟1:添加增加資源入口:
在plutommi/Customer/CustResource/PLUTO_MMI/Res_MMI添加一個Res_BluetoothUI.c 。
這個程式提供一個如何添加以及添加何種資源的function.

void PopulateBluetoothUIRes(void)
{
}
注意,這個C檔案是先行編譯時提供給先行編譯程式。用來指定怎麼添加以及添加何種資源的。

添加資源步驟2:修改Makefile
在plutommi/Customer/ResGenerator/Makefile中。
-I "plutommi/mmi/MainMenu/MainMenuInc" /
-I "plutommi/mmi/BluetoothUI/BluetoothUIInc" /
注意:此Makefile是資源先行編譯程式mtk_resgenerator.exe的Makefile

添加資源步驟3:修改PopulateRes.c
把PopulateBluetoothUIRes() 添加到PopulateResDate()中。當先行編譯程式mtk_resgenerator.exe運行時,會按照我們提供的介面PopulateBluetoothUIRes()中的內容把資源添加上去。

添加資源步驟4:添加資源ID:
因為每個類型資源的ID都在同一個取值空間。所以不能重複。
plutommi/mmi/Inc/MMIDataType.h
它實際是是提供了每個程式的BASE-ID.

現在以字串資源為例:
1. 在BluetoothUIDefs.h中添加字串ID:
STR_BLUETOOTHUI_STRING = BLUETOOTHUI_BASE+1,
注意:BLUETOOTHUI_BASE是在上面plutommi/mmi/Inc/MMIDataType.h中添加的。

2. 將ID與資源內容對應起來:
plutommi/Customer/CustResource/PLUTO_MMI/ref_list.txt中添加:
STR_BLUETOOTHUI_STRING 3Dijoy 鼎億科技
表示:STR_BLUETOOTHUI_STRING這個ID與3Dijoy(英文) ,鼎億科技(中文對應)

3. 字串裝載:
在plutommi/Customer/CustResource/PLUTO_MMI/Res_MMI/Res_BluetoothUI.c

void PopulateBluetoothUIRes(void)
{
ADD_APPLICATION_STRING2(STR_BLUETOOTHUI_STRING,"3DiJoy", "");
}
第一個參數為:ID
第二個參數為:預設資源(當ref_list.txt中沒有此ID對應的資源時,使用這個)
第三個參數:字串描述,可以忽略

4. 字串讀取:
GetString()可以從ID中讀取資料。

gui_print_text((UI_string_type)GetString(STR_BLUETOOTHUI_STRING));

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.