MMI 练习之 新增模块步骤

本文介绍在MOCOR平台中新增模块的步骤,包括建立source和resource目录,修改makefile,编译平台,以及添加代码。详细讲述了如何在指定目录下创建文件夹,将文件添加到makefile,编译过程,以及如何初始化新模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

本人所有文章,暂时只作为个人闲暇之余的爱好,如偶有客官路过,权当我是打酱油的吧。

 

一、建立相关文件夹,包括source和resource两部分。

  比如source为 MOCOR\\MS_MMI\source\mmi_app\app\ 目录下新建一个名为 sparrow 的目录,其内再分别创建 c 和 h 子目录,分别存放c 文件和h文件;

  resource为 MOCOR\MS_MMI\source\resource\mmi_res_240x320\ 目录下新建一个名为 sparrow的目录,其内创建MMI_RES_DEFAULT,再在MMI_RES_DEFAULT下创建ANIM, DATA, IMAGE 三个目录,分别存放动画、数据和图片资源。

 

二、将文件加入makefile。

  1,在app.mk文件中添加新模块的头文件和代码文件目录,如下:

ifeq ($(strip $(MMI_MOCOR_SPARROW)), TRUE)
 MINCPATH		+=	MS_MMI/source/mmi_app/app/sparrow/h
endif
ifeq ($(strip $(MMI_MOCOR_SPARROW)), TRUE)
 MSRCPATH		+=	MS_MMI/source/mmi_app/app/sparrow/c
endif

 2,在app.mk文件中添加要新建的代码文件,我们先添加一个文件 sparrow_main.c 到 c 目录下,如下:

ifeq ($(strip $(MMI_MOCOR_SPARROW)), TRUE)
 SOURCES	+= sparrow_main.c
endif

 3,添加资源文件,在文件resource.mk中添加目录和文件,如下:

ifeq ($(strip $(MMI_MOCOR_SPARROW)), TRUE)
 SRCPATH +=	MS_MMI/source/mmi_app/app/sparrow/h
endif

只需要添加一个文件 sparrow_mdu_def.h即可,所有该模块新添加的会用到的资源文件(字符串除外)都需要在该文件内声明。

ifeq ($(strip $(MMI_MOCOR_SPARROW)), TRUE)
 SOURCES		+=	sparrow_mdu_def.h
endif 

 

当然,上面添加的文件是需要自己创建的,包括sparrow_main.c、sparrow_mdu_def.h,其中sparrow_mdu_def.h必须命名成 "模块名_mdu_def.h“。

 

三、编译

1,首先编译平台,在工程目录下执行:

如果是第一次编译,需要执行:    

    make p=*** new

    make p=*** m=simulator

否则执行

    make p=*** update

    make p=*** m=resource

    make p=*** m=simulator

2,之后,会在build/***_builder/win目录下生成VC工程simulator.dsw

用VC6.0打开该工程,选择msdevkernel为Active project,编译。

3,编译结束后,点击运行

第一次运行的时候,会让我们选择可执行文件,选择build\yithe_fp_builddir\win\bin目录下的MSDev.exe即可,通常情况下,模拟器会自动选择其他配置文件(比如sim卡信息、skin等),如下图所示:

 第一次运行

    选择好 msdev.exe 后,点击OK,弹出如下模拟器画面。

 

等待startup

  开机方法可以是长按开机键,像普通手机开机一样,或者直接在模拟器上点击右键,在弹出菜单中单击start即可。

==至此,模拟器的开发环境搭建完成了。

 

我们自己添加的模块,因为没有编写任何代码,所以当前环境下是没有任何体现的,接下来我们添加一个最简单的窗口来体现自己添加的模块吧。

 

四、添加代码

Mocor平台的菜单中,除了主菜单外,各级菜单没有区别,我的代码中,为了方便,把sparrow模块放到了我自己的一个应用中。

1、添加基本代码

    要添加一个新的模块,除了在app和resource目录下新建相关文件夹(sparrow, c, h等),还有一些基本的代码需要添加,包括:

    1.1  在mmi_res_prj_def.h 中声明新模块

RES_ADD_MODULE(MMI_MODULE_SPARROW, \\sparrow\\sparrow_mdu_def.h)

    这个语句的主要作用是,编译resource时添加 sparrow 的相关资源。

    1.2 初始化模块
    主要是把相关id注册到系统中,包括 win_id 和 menu_id,即窗口Id和菜单Id。

    在sparrow_main.c中添加初始化代码:

/******************************************************************************
 * MMIAPISPARROW_InitModule - 初始化模块
 * DESCRIPTION: - 
 *		注册Menu、WinId等。 
 * Input: 
 * Output: 
 * Returns: 
 * 
 * modification history
 * --------------------
 * 01a, 14sep2011,  written
 * --------------------
 ******************************************************************************/
PUBLIC void MMIAPISPARROW_InitModule(void)
{
	//	注册菜单
	MMISPARROW_RegMenuGroup();
	//	注册窗口
	MMISPARROW_RegWinIdNameArr();
}


(关于菜单、窗口id如何组织到一起的,请查看本blog中文章。)

 

未完待续。

 

 

 




 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值