MTK添加項目資源結構

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));

發佈了81 篇原創文章 · 獲贊 6 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章