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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章