




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、主要内容 MTK手机MMI程序的基础知识 1、MMI程序模块的添加 2、资源的添加 3、字符串资源 4、菜单的添加 本节课所要达到的目的: 在工具箱菜单下显示一个我们自己定义 的菜单 程序模块的添加(1) 1、目录:MTK6225_08Aplutommimmi 2、在文件夹mmi中新建文件夹,取名为FirstApp 3、在文件夹FirstApp下新建文件夹: FirstAppInc /存放程序的头文件(.h文件) FirstAppSrc /存放程序的源文件(.c文件) 4、在文件夹FirstAppInc中新建4个头文件: FirstAppDefs.h /程序模块资源ID FirstAppPro
2、t.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文件)/指明所要编译的源文件目录 现在依次打开这三个文件,
3、将我们新增文件添加到编译配置文件: mmi_app.lis末尾: plutommimmiFirstAppFirstAppSrcFirstAppSrc.c mmi_app.inc末尾:plutommimmiFirstAppFirstAppInc mmi_app.pth末尾:plutommimmiFirstAppFirstAppSrc 程序模块的添加(2) 7、为新增模块增加编译开关 强烈推荐:开发人员为自己的模块增加一个宏开关,这样 可以在不需要自己的模块的时候,可以关闭它,减少编译后Bin 文件的大小,节省空间。 开关添加有两种方式: 1)打开MTK6225_08AmakeOption.mak
4、,在末尾 添加:COM_DEFS += _MMI_FIRSTAPP_ 2)打MTK6225_08AplutommiCustomerCustResource PLUTO_MMIMMI_features_switchPLUTO.h ,在末 尾添加宏:#define _MMI_FIRSTAPP_ 一般情况下,我们选择第一种方式为程序添加开关 现在打开 MTK6225_08AmakeOption.mak,末尾处添加: COM_DEFS += _MMI_FIRSTAPP_ (注意:两边均是两个下划线,中间是一个下划线) 资源的添加(1) 8、为新增程序FirstApp添加资源相关文件,为后续添加资源做准
5、备 (1)什么是资源? 在MTK平台中常见的资源包括字符串、图像、菜单、字库、声音、主 题等,在开发过程中,最受关注的有3种:字符串、图像和菜单 (2)资源文件的目录? MTK6225_08AplutommiCustomercustResourcePLUTO_MMIRes_MMI (3)对我们FristApp程序来说,添加资源文件的具体步骤? 第1步:资源目录(上面标红的)下新建.c文件:Res_FirstApp.c 第2步:用Source Insight加载新增文件并打开Res_FirstApp.c,添加如下 代码 #include MMI_features.h #include Custo
6、mCfg.h #ifdef FIRST_PASS #include BuildCfg.h #endif #include ComposeRingToneDefs.h #include FirstAppDefs.h #ifdef DEVELOPER_BUILD_FIRST_PASS #include PopulateRes.h void PopulateFirstAppRes(void) #endif 资源的添加(2) 第3步:用记事本打开MTK6225_08AplutommiCustomerReGeneratorMakefile,添加代码: -I ././MMI/FirstApp/FirstA
7、ppInc (说明:Makefile文件用于资源装载的预编译,添加我们的头文件目录,目录包括 了与资源文件定义有关的FirstAppDefs.h) 第4步:修改PopulateRes.c文件,该文件作用是调取各模块资源加载函数 1)在Source Insight中打开PopulateRes.c文件,合适位置(暂定:PopulateCCARes) 添加如下代码: #ifdef _MMI_FIRSTAPP_ extern void PopulateFirstAppRes(void); /声明 #endif 2)找到函数void PopulateResData(void),添加如下代码: /1649
8、行 #ifdef _MMI_FIRSTAPP_ PopulateFirstAppRes(); /调用 #endif 至此,我们已经为新增的程序模块做好了基本的资源框架,接下来就是添加具体资源, 在添加前还需要做些资源ID定义的规定,下面接着看) 资源的添加(3) 第5步:打开文件MTK6225_08AplutommimmiincMMIDataType.h,该文件用基础 ID的统一定义和包装 1)在Source Insight中打开MMIDataType.h,添加如下代码: /802 #ifdef _MMI_FIRSTAPP_ RESOURCE_BASE_RANGE(FIRSTAPP, 50),
9、 #endif 2)按照源代码格式,添加如下宏定义: /1114行 #ifdef _MMI_FIRSTAPP_ #define FIRSTAPP_BASE (U16)RESOURCE_BASE_FIRSTAPP) #define FIRSTAPP FIRSTAPP_BASE #define FIRSTAPP_BASE_MAX (U16)RESOURCE_BASE_FIRSTAPP_END) RESOURCE_BASE_TABLE_ITEM(FIRSTAPP) #endif 第6步:打开文件FirstAppDefs.h,添加如下代码: #ifndef _FIRSTAPPDEFS_H #defin
10、e _FIRSTAPPDEFS_H #include MMI_features.h #include PixtelDataTypes.h typedef enum SCR_FIRSTAPP_MAIN = FIRSTAPP_BASE + 1 /定义我们程序的屏幕ID SCREENID_LIST_FIRSTAPP; #endif 资源的添加(4) 第7步:打开文件FirstAppSrc.c,添加我们之前的代码,并修改屏幕ID为刚定义的屏幕ID SCR_FIRSTAPP_MAIN,代码如下: #include MMI_features.h #include PixtelDataTypes.h #in
11、clude Unicodexdcl.h #include gdi_include.h #include wgui.h #include gui.h #include Globaldefs.h #include CustDataRes.h #include wgui_categories.h #include wgui_categories_util.h #include wgui_softkeys.h #include HistoryGprot.h #include OrganizerDef.h #include FirstAppDefs.h #include FirstAppTypes.h
12、#include FirstAppProt.h #include FirstAppGprot.h void EntryFirstAppScreen(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
13、(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,按如下
14、格式添加代码: STR_FIRSTAPPundefined20FirstAppFirstApp第一個程序第一个程序 STR_FIRSTAPP_HELLOundefined20HelloMTKHelloMTK你好,MTK你好,MTK 注意事项:用Tab键打开空格,严格按照格式 第2步:确定字符串ID,在文件FirstAppDefs.h中,添加如下代码: typedef enum STR_FIRSTAPP = FIRSTAPP_BASE + 1, STR_FIRSTAPP_HELLO, STR_FIRSTAPP_TOTAL STR_ID_FIRSTAPP_ENUM; 字符串添加(2) 第3步:字符
15、串装载,打开文件Res_FirstApp.c,添加如下代码: ADD_APPLICATION_STRING2(STR_FIRSTAPP,FirstApp1,Name of FirstApp); ADD_APPLICATION_STRING2(STR_FIRSTAPP_HELLO,HelloMTK1,A simple string); 第4步:修改FirstAppSrc.c中的函数,使用系统API读取字符串ID void EntryFirstAppScreen(void) EntryNewScreen(SCR_FIRSTAPP_MAIN,NULL,EntryFirstAppScreen,NULL
16、); 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,
17、KEY_EVENT_UP); 至此,字符串资源,我们添加完毕,下面添加我们的菜单: 菜单添加(1) 10、为新增程序FirstApp添加菜单,实现Organizer下面有FirstApp菜单项 (1)什么是菜单? 这个显而易见,我就不多说啊 (2)具体添加步骤 第1步:在Source Insight中打开文件GlobalMenuItems.h,添加代码:/2248 #ifdef _MMI_FIRSTAPP_ ORGANIZER_FIRSTAPP_MENU, #endif 第2步:打开文件Res_MainMenu.h,添加如下代码: /200 /246 #ifdef _MMI_FIRSTAPP_
18、 ORG_ENUM_FIRSTAPP, #endif 第3步:还是该文件Res_MainMenu.h,添加如下代码: /637 /1912 #if defined (_MMI_FIRSTAPP_) ORGANIZER_FIRSTAPP_MENU, #endif 菜单添加(2) 第4步:在文件Res_FirstApp.c中,添加如下代码: ADD_APPLICATION_MENUITEM( ORGANIZER_FIRSTAPP_MENU, /菜单ID MAIN_MENU_ORGANIZER_MENUID, /父菜单ID 0, /因为没有子菜单,故设置为0 SHOW, /显示 SHORTCUTABLE, /转移属性 DISP_LIST, /列表显示 STR_FIRSTAPP, /菜单字符串ID 0 /没有图标 ); 至此,添加菜单的工作,我们就该完成了,接下来。 菜单添加(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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5《自己的事情自己做》 教学设计-2024-2025学年心理健康(1、2年级)粤教版
- 23月迹(教学设计)-2024-2025学年统编版语文五年级上册
- 九年级化学上册 3.2 溶液组成的定量表示教学设计1 (新版)鲁教版
- 2023六年级英语下册 Unit 3 Who's That Man第1课时教学设计 陕旅版(三起)
- 2023九年级数学上册 第2章 一元二次方程2.1 一元二次方程教学设计 (新版)湘教版
- 18 文言文二则 囊萤夜读(教学设计)-2023-2024学年统编版语文四年级下册
- 清洁安全培训
- Unit 4 school days further study教学设计 -2024-2025学年译林版七年级英语上册
- Unit 5 The colourful world Part A Letters and sounds大单元整体教学设计表格式-2024-2025学年人教PEP版(2024)英语三年级上册
- 《第三单元 欣赏 春江花月夜》教学设计 -2023-2024学年初中音乐人教版七年级下册
- jgj180-2009建筑施工土石方工程安全技术规范
- 脑卒中高危风险筛查流程
- TPM培训讲义课件
- DB45∕T 2149-2020 公路边坡工程技术规范
- 如何运用ABC法则(销售沟通)课件
- 建筑施工企业安全生产标准化自评表
- 楔状缺损的修复课件
- 浙江省消防技术规范难点问题操作技术指南2023年
- 我国经皮冠状动脉介入治疗指南
- 《义务教育数学课程标准(2022年版)》文字版
- 《实数》单元作业设计
评论
0/150
提交评论