MTK资源模块添加_第1页
MTK资源模块添加_第2页
MTK资源模块添加_第3页
MTK资源模块添加_第4页
MTK资源模块添加_第5页
免费预览已结束,剩余9页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MTK资源模块添加,主要内容,MTK手机MMI程序的基础知识1、MMI程序模块的添加2、资源的添加3、字符串资源4、菜单的添加本节课所要达到的目的:在工具箱菜单下显示一个我们自己定义的菜单,程序模块的添加(1),1、目录:MTK6225_08Aplutommimmi2、在文件夹mmi中新建文件夹,取名为FirstApp3、在文件夹FirstApp下新建文件夹:FirstAppInc/存放程序的头文件(.h文件)FirstAppSrc/存放程序的源文件(.c文件)4、在文件夹FirstAppInc中新建4个头文件:FirstAppDefs.h/程序模块资源IDFirstAppProt.h/函数声明,只提供给本程序代码调用FirstAppGprot.h/函数声明,提供给外部程序代码调用FirstAppTypes.h/一般书写自定义类型5、在文件夹FirstAppSrc中新建1个源文件:FirstAppSrc.c/实现程序功能的代码6、目录:MTK6225_08Amakeplutommimmi_app,有3个编译配置文件mmi_app.lis(.lis文件)/指明MMI所要编译的具体的源文件mmi_app.inc(.inc文件)/指明源文件所需头文件的目录mmi_app.pth(.pth文件)/指明所要编译的源文件目录现在依次打开这三个文件,将我们新增文件添加到编译配置文件:mmi_app.lis末尾:plutommimmiFirstAppFirstAppSrcFirstAppSrc.cmmi_app.inc末尾:plutommimmiFirstAppFirstAppIncmmi_app.pth末尾:plutommimmiFirstAppFirstAppSrc,程序模块的添加(2),7、为新增模块增加编译开关强烈推荐:开发人员为自己的模块增加一个宏开关,这样可以在不需要自己的模块的时候,可以关闭它,减少编译后Bin文件的大小,节省空间。开关添加有两种方式:1)打开MTK6225_08AmakeOption.mak,在末尾添加:COM_DEFS+=_MMI_FIRSTAPP_2)打MTK6225_08AplutommiCustomerCustResourcePLUTO_MMIMMI_features_switchPLUTO.h,在末尾添加宏:#define_MMI_FIRSTAPP_一般情况下,我们选择第一种方式为程序添加开关现在打开MTK6225_08AmakeOption.mak,末尾处添加:COM_DEFS+=_MMI_FIRSTAPP_(注意:两边均是两个下划线,中间是一个下划线),资源的添加(1),8、为新增程序FirstApp添加资源相关文件,为后续添加资源做准备(1)什么是资源?在MTK平台中常见的资源包括字符串、图像、菜单、字库、声音、主题等,在开发过程中,最受关注的有3种:字符串、图像和菜单(2)资源文件的目录?MTK6225_08AplutommiCustomercustResourcePLUTO_MMIRes_MMI(3)对我们FristApp程序来说,添加资源文件的具体步骤?第1步:资源目录(上面标红的)下新建.c文件:Res_FirstApp.c第2步:用SourceInsight加载新增文件并打开Res_FirstApp.c,添加如下代码#includeMMI_features.h#includeCustomCfg.h#ifdefFIRST_PASS#includeBuildCfg.h#endif#includeComposeRingToneDefs.h#includeFirstAppDefs.h#ifdefDEVELOPER_BUILD_FIRST_PASS#includePopulateRes.hvoidPopulateFirstAppRes(void)#endif,资源的添加(2),第3步:用记事本打开MTK6225_08AplutommiCustomerReGeneratorMakefile,添加代码:-I././MMI/FirstApp/FirstAppInc(说明:Makefile文件用于资源装载的预编译,添加我们的头文件目录,目录包括了与资源文件定义有关的FirstAppDefs.h)第4步:修改PopulateRes.c文件,该文件作用是调取各模块资源加载函数1)在SourceInsight中打开PopulateRes.c文件,合适位置(暂定:PopulateCCARes)添加如下代码:#ifdef_MMI_FIRSTAPP_externvoidPopulateFirstAppRes(void);/声明#endif2)找到函数voidPopulateResData(void),添加如下代码:/1649行#ifdef_MMI_FIRSTAPP_PopulateFirstAppRes();/调用#endif至此,我们已经为新增的程序模块做好了基本的资源框架,接下来就是添加具体资源,在添加前还需要做些资源ID定义的规定,下面接着看),资源的添加(3),第5步:打开文件MTK6225_08AplutommimmiincMMIDataType.h,该文件用基础ID的统一定义和包装1)在SourceInsight中打开MMIDataType.h,添加如下代码:/802#ifdef_MMI_FIRSTAPP_RESOURCE_BASE_RANGE(FIRSTAPP,50),#endif2)按照源代码格式,添加如下宏定义:/1114行#ifdef_MMI_FIRSTAPP_#defineFIRSTAPP_BASE(U16)RESOURCE_BASE_FIRSTAPP)#defineFIRSTAPPFIRSTAPP_BASE#defineFIRSTAPP_BASE_MAX(U16)RESOURCE_BASE_FIRSTAPP_END)RESOURCE_BASE_TABLE_ITEM(FIRSTAPP)#endif第6步:打开文件FirstAppDefs.h,添加如下代码:#ifndef_FIRSTAPPDEFS_H#define_FIRSTAPPDEFS_H#includeMMI_features.h#includePixtelDataTypes.htypedefenumSCR_FIRSTAPP_MAIN=FIRSTAPP_BASE+1/定义我们程序的屏幕IDSCREENID_LIST_FIRSTAPP;#endif,资源的添加(4),第7步:打开文件FirstAppSrc.c,添加我们之前的代码,并修改屏幕ID为刚定义的屏幕IDSCR_FIRSTAPP_MAIN,代码如下:#includeMMI_features.h#includePixtelDataTypes.h#includeUnicodexdcl.h#includegdi_include.h#includewgui.h#includegui.h#includeGlobaldefs.h#includeCustDataRes.h#includewgui_categories.h#includewgui_categories_util.h#includewgui_softkeys.h#includeHistoryGprot.h#includeOrganizerDef.h#includeFirstAppDefs.h#includeFirstAppTypes.h#includeFirstAppProt.h#includeFirstAppGprot.hvoidEntryFirstAppScreen(void)EntryNewScreen(SCR_FIRSTAPP_MAIN,NULL,EntryFirstAppScreen,NULL);entry_full_screen();clear_screen();gui_set_text_color(gui_color(255,0,0);gui_move_text_cursor(58,120);gui_print_text(LHello,MTK);gui_BLT_double_buffer(0,0,UI_device_width-1,UI_device_height-1);SetKeyHandler(GoBackHistory,KEY_RSK,KEY_EVENT_UP);,字符串添加(1),9、为新增程序FirstApp添加字符串资源(1)为什么要使用字符串资源?字符串资源主要是为了让程序转换成其他语言或者要实现多过语言时更加方便而设置的(2)字符串资源存储的文件?MTK6225_08AplutommiCustomerCustResourcePLUTO_MMIref_list.txt(3)添加字符串资源的具体步骤是?第1步:打开文件ref_list.txt,按如下格式添加代码:STR_FIRSTAPPundefined20FirstAppFirstApp第一個程序第一个程序STR_FIRSTAPP_HELLOundefined20HelloMTKHelloMTK你好,MTK你好,MTK注意事项:用Tab键打开空格,严格按照格式第2步:确定字符串ID,在文件FirstAppDefs.h中,添加如下代码:typedefenumSTR_FIRSTAPP=FIRSTAPP_BASE+1,STR_FIRSTAPP_HELLO,STR_FIRSTAPP_TOTALSTR_ID_FIRSTAPP_ENUM;,字符串添加(2),第3步:字符串装载,打开文件Res_FirstApp.c,添加如下代码:ADD_APPLICATION_STRING2(STR_FIRSTAPP,FirstApp1,NameofFirstApp);ADD_APPLICATION_STRING2(STR_FIRSTAPP_HELLO,HelloMTK1,Asimplestring);第4步:修改FirstAppSrc.c中的函数,使用系统API读取字符串IDvoidEntryFirstAppScreen(void)EntryNewScreen(SCR_FIRSTAPP_MAIN,NULL,EntryFirstAppScreen,NULL);entry_full_screen();clear_screen();gui_set_text_color(gui_color(255,0,0);gui_move_text_cursor(58,120);/gui_print_text(LHello,MTK);gui_print_text(UI_string_type)GetString(STR_FIRSTAPP_HELLO);gui_BLT_double_buffer(0,0,UI_device_width-1,UI_device_height-1);SetKeyHandler(GoBackHistory,KEY_RSK,KEY_EVENT_UP);至此,字符串资源,我们添加完毕,下面添加我们的菜单:,菜单添加(1),10、为新增程序FirstApp添加菜单,实现Organizer下面有FirstApp菜单项(1)什么是菜单?这个显而易见,我就不多说啊(2)具体添加步骤第1步:在SourceInsight中打开文件GlobalMenuItems.h,添加代码:/2248#ifdef_MMI_FIRSTAPP_ORGANIZER_FIRSTAPP_MENU,#endif第2步:打开文件Res_MainMenu.h,添加如下代码:/200/246#ifdef_MMI_FIRSTAPP_ORG_ENUM_FIRSTAPP,#endif第3步:还是该文件Res_MainMenu.h,添加如下代码:/637/1912#ifdefined(_MMI_FIRSTAPP_)ORGANIZER_FIRSTAPP_MENU,#endif,菜单添加(2),第4步:在文件Res_FirstApp.c中,添加如下代码:ADD_APPLICATION_MENUITEM(ORGANIZER_FIRSTAPP_MENU,/菜单IDMAIN_MENU_ORGANIZER_MENUID,/父菜单ID0,/因为没有子菜单,故设置为0SHOW,/显示SHORTCUTABLE,/转移属性DISP_LIST,/列表显示STR_FIRSTAPP,/菜单字符串ID0/没有图标);至此,添加菜单的工作,我们就该完成了,接下来。,菜单添加(2),(O(_)O哈哈)接下来,我们重点讲解宏ADD_APPLICATION_MENUITEM的原理和使用:宏ADD_APPLICATION_MENUITEM用来装载菜单资源,其参数解释如下:第1个参数:新加菜单ID第2个参数:父菜单ID第3个参数:此菜单的子菜单的总个数第4个和第4+X个参数:分别为子菜单的ID第4+X+1个参数:隐藏属性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论