2022年VRE开发入门 .pdf

上传人:Che****ry 文档编号:34240289 上传时间:2022-08-15 格式:PDF 页数:35 大小:1.69MB
返回 下载 相关 举报
2022年VRE开发入门 .pdf_第1页
第1页 / 共35页
2022年VRE开发入门 .pdf_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《2022年VRE开发入门 .pdf》由会员分享,可在线阅读,更多相关《2022年VRE开发入门 .pdf(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、VRE开发入门沃勤网络科技(上海)有限公司2009/4/15V1.24名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 2 页版本记录版本日期作者更改说明1.242009/4/14杨祖斌创建名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 35 页 - - - - -

2、- - - - VRE 开发入门2009-4-17 第 3 页目录1概述 . 61.1开发 VRE 应用的步骤 . 61.2一个简单的示例程序 . 61.3更多知识 . 62工具和环境 . 72.1开发工具 . 72.2基础概念 . 72.2.1VREAPIs. 72.2.2事件处理 . 72.3资源 . 73创建我的应用程序: HelloVRE . 83.1通过 VRE IDE AppWizard创建 VRE 工程 . 83.2VRE 模拟器 . 113.3增加资源 . 123.4编写源码 . 133.4.1在模拟器屏幕的正中间显示“Hello VRE ” . 133.4.2在模拟器屏幕正中

3、绘制一个白色矩形,并可通过触摸使其放大缩小.173.4.3导入并绘制一张gif 图,并通过上下左右方向键使其移动;.194接下来做什么 . 234.1通过 DEMO 学习 VRE 开发 . 234.2VRE 技术交流途径 . 234.2.1VRE论坛 . 234.2.2VRE技术交流 QQ 群 . 235与后续版本的兼容问题 . 236VRE 应用开发常见问题整理( FAQ) . 246.1SDK 安装 . 246.1.1安装 VRESDK对操作系统有什么要求?. 246.1.2请问安装时出现以下讯息,该如何处理 ,. 246.1.3安装SDK 的时候没有找到DEVENV.EXE ,DEVEN

4、V.EXE文件有什么作用?246.1.4SDK安装到 IDErm.dll.100%的时候卡住,是什么原因?.246.1.5VRE安装成功后,找不到VREManager。 . 246.1.6卸载老版本后,无法安装新版本?. 246.2程序框架 . 246.2.1程序退出后,手机背景灯一直高亮,手机不进入待机模式。.246.2.2通过资源外部化加载资源时失败,vm_load_resource 返回 NULL。.256.2.3如何处理来电、短信、USB接入移除、电源不足等外部事件?.256.3系统接口 . 256.3.1如何获取系统时间?. 256.3.2如何获取系统启动到现在流经的毫秒数?. 25

5、6.3.3如何产生随机数?. 256.3.4在 VRE上如何发送短信、呼出电话?. 256.3.5模拟器上如何模拟发送短信和呼出电话?. 256.3.6当在应用中呼出电话时,系统界面紊乱是怎么回事?. 256.4图形图像 . 266.4.1VRE支持哪些图片格式?. 26名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 4 页6.4.2有几种创建画布的方法?. 266.4.3如何去加载图片

6、资源?. 266.4.4如何大致计算图片资源解码后在内存中占用的空间大小?.266.4.5VRE支持动画吗?. 266.4.6VRE支持把图片直接设置成手机墙纸吗?. 266.5字符 . 266.5.1如何获取的字符高度、宽度?. 266.6文件 . 276.6.1创建的文件保存到哪里?. 276.6.2VRE如何模拟手机的磁盘?. 276.6.3应用、游戏创建的文件如存档,保存的目录有什么要求?.276.6.4创建目录、文件失败,有哪些原因?VRE无法一次性创建多级目录?.276.6.5VRE目录需要自己创建吗?. 276.6.6程序中日志如何设置?. 276.6.7如何调出系统输入框输入字

7、符?. 286.6.8调用VRE 系统输入法输入完成后,点击“确定”后如何获取刚输入的字符串?286.6.9VRE上可以设置字体大小吗?. 286.6.10在手机上对应用名字字数有限制吗?. 286.6.11vm_file_rmdir 当文件夹下存在文件,是删除所有文件,还是什么都不做? .286.6.12文件路径支持/ 分割符吗 ?. 286.6.13vm_find_first 怎么判断是目录还是文件呢?. 286.7内存 . 286.7.1VRE上内存分配可以调用标准C的 malloc()/reallco() 吗? .286.7.2VRE对应用的大小有什么限制?. 286.7.3如何确定内

8、存访问时是否正确对齐?. 296.8网络 . 296.8.1VRE支持 HTTP吗? . 296.8.2VRE上最多能建立多少个HTTP或 SOCKET 连接? . 296.8.3当在VRE 上传输大文件或数据时,必须把文件数据分成小包发送吗?若要分,这个工作是由VRE完成,还是由应用自己完成?. 296.8.4VRE上的 SOCKET 支持阻塞吗?. 296.8.5VRE里能显示 WAP 页面吗 ?. 296.8.6当数据来时会触发http_callback ,我想问下,是所有数据到了一次触发,还是部分数据的多次触发?. 306.8.7如果要在HTTP发送中文给服务器,如何搞呢?. 306.

9、8.8vm_asyn_http_req 是如何运行的?. 306.8.9如果文件太大了,需不需要分块下载?. 306.9音频 . 306.9.1模拟器上播放MIDI 没声音,是什么原因?. 306.9.2播放 MIDI 文件失败, vm_midi_play 返回 1。 . 306.9.3VRE支持哪些音频格式?. 316.9.4VRE可以自己设定声音大小吗?. 316.9.5应用能否在同一时间播放多个音频文件?. 316.10计费 . 316.10.1游 戏 中 调 用vm_quick_charge计 费 失 败 , 在 真 机 上 返 回ERROR_CHARGE_RET_VXP_FILE_E

10、RROR. 316.11窗口 . 316.12辅助 . 316.12.1VRE里面如何进行ansii to unicode 的字符串转换?. 31名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 5 页6.12.2VRE有字符串大小写转化的接口吗?. 326.12.3如何在 VRE上实现开方? . 326.13编译调试 . 326.13.1怎么样编译最终在真机上运行的文件?. 326.13

11、.2如何把编译好的程序放置到真机上运行?. 326.13.3如何在模拟器和真机上进行调试?. 326.13.4如何在模拟器上模拟真机上低空间的环境?. 326.13.5MAKE 时 MACRO窗口提示static initialisation of f using address of a maycauselink failure ropi 。是否 VRE对常量的使用有限制?. 326.13.6Macro 中有提示 Error: C3028E:implicit cast of pointerto non equal pointer ,是怎么回事?. 336.13.7向工程里面加了一些c 文件,

12、点 make 后只编译了原来工程里的文件,是什么原因? . 336.13.8如何把已有的.a 库文件添加到工程里?. 336.13.9VRE模拟器中 MAKE 时是否支持编译汇编代码?. 346.13.10MAKE时 MACRO窗口里提示: contains invalid call from USESV6function toRWPI function malloc. 是怎么回事?. 346.13.11Make 时提示: Packresource failed! . 346.13.12MAKE时提示 Fatal error: L6000U: Out of memory. . 346.14其他

13、 . 346.14.1哪里可以得到装有VRE的手机? . 346.14.2主要需要做哪些屏幕大小的APP/Game?. 346.14.3Vre 中字体大小是多少?. 346.14.4VMWSTRvm_ucs2_string(VMSTRs)函数有问题?. 346.14.5UTF 8 如何转换成GB2312格式? VRE函数接口是?. 35名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 6

14、页1 概述本文描述了如何在沃勤Virtual Runtime Environment(以下简称VRE )上开发应用。通过本文, 您将了解到如何使用VRE SDK构建一个简单的应用程序和VRE 技术交流途径,以及使用VRE SDK开发应用时常见问题的解答。1.1 开发 VRE 应用的步骤可以通过如下过程来构建一个VRE应用程序:1)使用 VREIDE AppWizard 创建 VRE应用工程。 VREIDEAppWizard 在安装完VRESDK后,加载在Microsoft Visual C+中。工程中包含一个Hello World 应用;2)通过 VREManager 配置应用程序所需资源,包

15、括模拟器设置、设备编译参数设置、用户设置、资源以及工程中的文件。可设定程序所需图片、设备屏幕大小、设备最大内存数等。3)编辑、编译通过VREIDEAppWizard 生成的源代码文件,生成可在模拟器执行的VRE应用程序文件;注意:为了向上兼容,请不要在VRE1.2x 版本中使用窗口系统4)调试或执行编译通过的VRE程序,启动VRE模拟器,测试应用。5)通过 Make Target 工具,生成可在预装了VRE的手机上运行的后缀名为.axf 的文件;6)将.axf 文件拷贝至手机系统盘或存储卡根目录下,执行。注意: VRE后续版本中,将可执行应用扩展名改为vxp,若某些机器上axf 文件无法识别或

16、启动,请将扩展名改为vxp。1.2 一个简单的示例程序为了介绍 VRE的相关知识,如SDK工具的使用、VRE API、事件处理等,本文包含了一个简单的VRE应用程序构建过程的详细说明。1.3 更多知识VRESDK中还附带了如下文档:VREGraphicDevelopment GuideVREIDEUserGuideVREPaymentGuideVRESDKUser GuideVRESimulator GuideAPIGuide这些文档也可以登录VRE 论坛下载,文档中详细介绍了相关的知识。对本文档中描述的 VRESDK相关的内容,如有疑问请阅读如上文档,或登录VRE论坛: 寻求帮助。名师资料总

17、结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 7 页2 工具和环境2.1 开发工具在开发 VRE应用程序前,需要安装:Microsoft Visual C+6.0ARM Development suite(ADS ) 1.2VRESDKVRESDK及其安装方法,可登录VRE论坛获取。注意:安装 SDK前必须安装Microsoft Visual C+6.0和 ADS1.2。 如果重新安装了Micr

18、osoftVisual C+6.0,则必须重新安装VRESDK 。2.2 基础概念2.2.1 VRE APIs VREAPI包含在 VRESDK中,分成不同的功能模块。所有API头文件以“vm”开头, API以“vm_”开头。 SDK中的APIGuide文档列出了所有API,以及每个API的详细功能。2.2.2 事件处理VRE 应用程序是基于事件驱动模型的,程序的执行过程中通过响应事件完成相应的功能。 VRE的事件包括:1)系统事件(如VM_MSG_PAINT 、VM_MSG_ACTIVE 、VM_MSG_INACTIVE等) ,通过vm_reg_sysevt_callback接口注册此类事件

19、的处理函数;2)按键事件(如VM_KEY_EVENT_UP 、VM_KEY_EVENT_DOWN等),通过vm_reg_keyboard_callback接口注册此类事件的处理函数;3)触笔事件(如VM_PEN_EVENT_TAP、VM_PEN_EVENT_RELEASE等) ,通过vm_reg_pen_callback接口注册此类事件处理函数;注意: VRE事件处理过程要求能较快的完成,在一个事件处理完之前,不会收到下一个事件。因此,某个事件的长时处理会导致程序对其他事件不能及时响应。2.3 资源应用程序可通过VREManager管理应用所需的资源,所有应用需要的图片、声音等资源都可以添加到

20、Resources中。在生成可执行程序时,会将添加过的资源打包进可执行程序,作为程序文件的一部分。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 8 页3 创建我的应用程序: HelloVRE 下面将使用VREIDE AppWizard创建一个 VRE工程,名为HelloVRE,然后增加以下功能:1)在模拟器屏幕的正中间显示“Hello VRE ” ;2)在模拟器屏幕正中绘制一个白色矩形

21、,并可通过触摸使其放大缩小;3)导入并绘制一张gif 图,并通过左右软键使其移动。3.1 通过 VRE IDE AppWizard创建 VRE 工程VREIDEAppWizard用于创建VRE 应用程序工程,并提供了某些应用属性的选项。此向导会自动生成Microsoft Visual C+ 项目文件,应用程序源代码文件,以及VRE应用的若干配置文件。为了创建VRE工程,需按如下步骤:1)启动 Visual C+6.0,选择“File”菜单中的“New ” ,弹出New对话框后,选择“Projects”选项卡:2)在列表内选中 “VREIDEAppWizard” ,在“Project Name:

22、”中输入“HelloVRE” ,“Location:”中指定工程的存储位置。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 9 页3)单击OK,进入目标手机和应用属性设置页:Screen Size中选择屏幕大小。其中“QCIF”表示大小为176*220,QVGA为240*320,WQVGA为240*400;MemorySize指定目标手机的内存大小;Developer Info中输入开发

23、者名称和应用名称。此例中,ScreenSize选择 QVGA,Memory Size设置为 600KB,开发者名称为vogins,应用名称为HelloVRE ;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 10 页4)单击Finish,进入工程信息确认界面,单击OK即可。至此,工程创建成功。除了VC工程文件之外,VREIDEAppWizard还会自动创建如下文件:HelloVRE.h和

24、 HelloVRE.c源码文件;HelloVRE_dev.ini包含了构建的编译和链接参数,由VREManager 维护;HelloVRE_res.ini包含了项目的资源名称和路径,由VREManager 维护;HelloVRE_user.ini包含了开发信息,由VREManager 维护;Vre_dev.ini包含了目标手机属性信息,由VREManager 维护;可能需要激活VREAdd in 工具栏,方可使用VREManager和Make Target工具。可通过选择菜单项 “Tools Customize ” ,弹出“Customize”对话框, 选择“Add insand Macro

25、Files”标签页:勾取“IDErm.DSAddIn.1”后,单击“Close” , 此时即可看见VREAdd in 工具栏。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 11 页3.2 VRE 模拟器VRE应用程序可通过VRE模拟器调试。在程序编译通过后,可以按F5(debug)或CTRL+F5(execute)运行程序,此时会调出模拟器:其中,左侧的Memory State窗口显

26、示了一些程序运行时的内存使用数据,供调试使用。关于模拟器的使用,请参考SDK中VRESimulator Guide文档。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 12 页3.3 增加资源应用中的图片、声音等资源,可通过VREManager 加入。方法如下:单击 VREAdd in 工具栏中的setting按钮:, 此时弹出VREManager 对话框:左上角的工具栏按钮分别对用“

27、Add” 、 “Modify”和“Delete”操作。选中列表中的“Resources”后,通过工具栏按钮可以执行相应的资源编辑功能。VRE Manager 的使用方法请参考SDK中的VREIDEUserGuide文档。此例中添加了一张gif 图片,名为ICON.gif。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 13 页3.4 编写源码现在我们已经创建了HelloVRE工程,接下

28、来就编写源代码,完成我们希望达到的功能。源码编写按以下步骤进行,完成一步之后就可以编译并通过模拟器查看效果。步骤 1:在模拟器屏幕的正中间显示“Hello VRE ”字符串;步骤 2:在模拟器屏幕正中绘制一个白色矩形,并可通过触摸使其放大缩小;步骤 3:导入并绘制一张gif 图,并通过上下左右方向键使其移动;注意:由于历史原因,VREAppWizard 默认生成的应用,是基于窗口系统的。建议不要使用窗口系统,在后续的VRE 版本中,窗口系统会有比较大的变化,且接口未必与现在的窗口系统兼容。3.4.1 在模拟器屏幕的正中间显示“Hello VRE ”此步骤将通过GDI接口(图形库分为GDI 和

29、2D 库接口)按照如下顺序完成步骤1:1)在 Visual C+ 中打开HelloVRE.c 文件,删除所有与窗口系统相关的代码,只保留vm_main 和 include 部分:这样做是为了去掉原来依赖于窗口系统的应用实现,重新编写基于图形库API的代码。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 14 页2)增加事件处理。在 include 和 vm_main 之间增加事件处理函

30、数声明,在文件的末尾增加事件处理函数的定义:增加了事件处理函数后,通过向VRE注册之,就可以在函数内部处理各类事件,驱动程序的运行。3)在 vm_main 内注册事件处理函数:只有向 VRE注册了事件处理函数,应用程序才可以收到和处理来自VRE的事件。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 15 页4)在 系 统 事 件 函 数cb_event_sys 实 现 体 的 上 方

31、, 编 写 绘 制Hello VRE的 函 数l_drawHelloVRE:添加完后编译,会发现如下编译问题:warning C4013: vm_wstrlenundefined; assuming extern returning int此时,将如下的include 加入的 HelloVRE.c的起始处 include 区的后面就可解决:#include vmstdlib.h此函数先将屏幕背景色填为黑色,然后用白色绘出“Hello VRE ”字样名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -

32、- - 第 15 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 16 页5)改写系统事件函数cb_event_sys 的实现体:其中, screen_byffer 为全局变量,定义如下:/*屏幕缓冲区指针*/static VMUINT8* screen_buffer;此段代码须放置于cb_event_sys 函数实现体之前。完成后编译,会出现4)中类似的编译警告,将如下的include 加入 include 区后就可解决:#include vmddraw.h编译通过后,按F5调试或 F9执行时应可看到如下显示:名师资料总结 - - -精品资料欢迎

33、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 17 页至此,步骤1 就结束了。这个步骤里,剔除了默认生成的源码中的窗口系统部分,增加了 3 类事件(系统、触笔和按键)的处理函数的声明,以及实现(触笔和按键处理函数的实现暂为空) 。通过步骤1,可以了解到VRE系统消息的一般处理形式,以及使用图形库中GDI的字符绘制函数将字符串绘制到屏幕上。注意:相关接口的说明请参考API Guide ,详细的使用说明请参阅VREGrap

34、hicDevelopment Guide中的相关描述。3.4.2 在模拟器屏幕正中绘制一个白色矩形,并可通过触摸使其放大缩小在步骤 1 的基础上,执行以下过程:1)在触笔函数cb_event_pen 实现体的上方,编写绘制矩形的函数:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 18 页2)改写触笔函数cb_event_pen 实现体:完成后,编译通过,调试或执行时,单击模拟器屏幕后

35、,应该能看到如下显示:单击模拟器屏幕,并按住鼠标左键不动时,可看到屏幕中间绘制了一个较大的白色矩形;当松开鼠标左键时,白色矩形区域会缩小。至此,步骤2 已经结束。此步骤内增加了绘制矩形的函数,以及改写了触笔处理函数 cb_event_pen 的实现,着重描述了触笔消息的一般处理模式。注意:相关接口的说明请参考API Guide ,详细的使用说明请参阅VREGraphicDevelopment Guide中的相关描述。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 35

36、页 - - - - - - - - - VRE 开发入门2009-4-17 第 19 页3.4.3 导入并绘制一张gif 图,并通过上下左右方向键使其移动;此步骤将演示通过2d 库接口绘制图片。在步骤 1 和 2 的基础上,执行以下过程:1)导入图片:通过 VREManager 加载 ICON.gif,具体步骤请参照3.3 增加资源 一节中的描述;2)在 include 区下方,增加如下类型以及全局变量的定义:此处定义了Image_t 类型,用于表示一张图片的属性,以及全局变量g_image。3)在按键处理函数cb_event_key 实现体的上方,编写图片装载函数l_loadGif:此函数中

37、将名称为name 的图片资源(须通过VRE Manager 加入)装载进内存,并将指针赋值给image 内。装载成功后获取图片的相关信息,存储于image 内。编写完后编译,会提示类似前文中的warning ,将如下语句加入incude 区:#include vmres.h名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 20 页4)在按键处理函数cb_event_key 实现体的上方,

38、 l_loadGif 函数实现的下方,编写图片绘制函数 l_drawGif:此函数使用2D 库的接口,从指定的起始位置绘制g_image。5)修改系统事件cb_event_sys 处理函数,增加资源回收处理:将如下语句:caseVM_MSG_QUIT:/*应用退出时收到的消息*/break;替换为:caseVM_MSG_QUIT:/*应用退出时收到的消息*/vm_free(g_image.image_gif);break;以及,将如下语句:caseVM_MSG_CREATE:/*应用创建消息*/caseVM_MSG_ACTIVE:/*应用被激活的消息,如来电过后*/vm_initialize_

39、screen_buffer();screen_buffer = vm_graphic_get_buffer();break;改为:caseVM_MSG_CREATE:/*应用创建消息*/caseVM_MSG_ACTIVE:/*应用被激活的消息,如来电过后*/vm_initialize_screen_buffer();vm_dd_initialize_clip_rect ();screen_buffer = vm_graphic_get_buffer();break;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -

40、 - - - - - - 第 20 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 21 页6)改写按键处理函数cb_event_key:此函数中,通过上下左右方向键调整图片的现实位置,OK 键则回归到起始位置。完成后编译,调试或运行后,单击模拟器的OK 键,应该能看到如下画面:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 22 页通过单

41、击上下左右方向键,会使图片按对应的方向移动,在图片可能超过屏幕边界时,会调整图片的显示位置,使其贴着屏幕边框。至此,步骤3 已经结束。此步骤内演示了如何通过2D 库的接口装载和绘制GIF图片,以及按键消息的一般处理模式。注意:相关接口的说明请参考APIGuide ,详细的使用说明请参阅VREGraphicDevelopment Guide中的相关描述。通过完成以上3 个步骤的逐步完成,结束了HelloVRE 的编写和构建过程。在保证模拟器上运行无误后,就可使用Make Target 工具,生成可在手机上运行的axf 文件。关于 Make Target的使用说明,请参阅VREIDEUser Gu

42、ide中的相关描述。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 23 页4 接下来做什么4.1 通过 DEMO 学习 VRE 开发可以下载VRE论坛上的 DEMO 来学习 VRE上各功能模块API的使用。可结合API Guide和其他 SDK自带的文档阅读DEMO 的源代码,对学习VRE应用开发有很大的帮助。4.2 VRE技术交流途径4.2.1 VRE论坛VRE论坛是一个提供VRE

43、的最新进展,相关信息的查询,以及技术交流的web 平台,可以通过登录论坛获取VRE相关的信息,以及和大量的VRE开发者相互沟通,共同成长。进入即可。4.2.2 VRE技术交流 QQ 群可以通过加入VRE技术交流 QQ 群:65603220来和 VRE应用开发者沟通和交流。5 与后续版本的兼容问题VRESDK2.0 是即将发布的有较大变化的新版,相对于VRE1.2x,主要的变化点为:1)窗口系统:变化很大,完全改写了原来的实现,且接口与1.2x 的窗口系统不兼容;2)电话簿: VRE1.25 中增加了电话簿接口,但在2.0 里去掉了;3)图形库: 2.0 里,图形库的实现方面增加了画布的概念。倾

44、向于使用画布和层,取代原来直接使用屏幕缓存进行的操作。接口方面,统一“为vm_graphic_”开头的接口,对于老的 ”vm_dd_ ” 和”vm_graph_ ” 开头的接口也支持,但会有性能损失,建议不用使用此类名称的接口。综上所述,为了使在V1.2x 上开发的应用,能够顺利迁移的V2.0 上,需要注意:1)避免使用窗口系统,所有界面操作都通过图形库完成;即“vmwin.h ”中的接口不要使用。2)不要使用电话簿功能;3)图形库接口的使用方面,推荐使用GDI 接口,即“ vm_graphic_”开头的接口;4)若 GDI 接口不能满足要求,可以使用2D 库,即“ vm_dd_ ”开头的接口

45、;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 35 页 - - - - - - - - - VRE 开发入门2009-4-17 第 24 页6 VRE应用开发常见问题整理(FAQ)6.1 SDK安装安装 VRESDK前请先安装VC6.0和 ADS1.2。 在 VRESDK安装遇到问题时, 建议先查阅VREIDEPre Installer.doc 。6.1.1 安装 VRE SDK 对操作系统有什么要求?A:建议安装在Windows XP系统上。6.1.2 请问安装时

46、出现以下讯息,该如何处理 , The installer can not detect Visual C+6.0 and will stop the installation.A:请先确认已经安装VC6和若已经安装请运行Pre Installer.exe6.1.3 安装 SDK 的时候没有找到DEVENV.EXE ,DEVENV.EXE 文件有什么作用?A: 请先运行 SDK安装包里的ideinstaller.exe,DEVENV.EXE 这个文件无实际作用,只起定位作用。若有 Program FilesMicrosoftVisual StudioCommonIDEIDE98 目录,选目录下任

47、一文件.6.1.4 SDK 安装到 IDErm.dll.100% 的时候卡住,是什么原因?A:确认系统盘是C盘。6.1.5 VRE 安装成功后,找不到VRE Manager 。A: 打开 VC6,点选菜单tools customize add ins and Macro Files 选 IDErm.DSAddin.1。出现图标。6.1.6 卸载老版本后,无法安装新版本? A: 修改注册表里HKEY_LOCAL_MACHINESOFTWAREMicrosoftVisualStudio6.0installDir键 值 设 置 成VC6安 装 目 录 如 “ C:ProgramFilesMicros

48、oftVisualStudioCommonIDEIDE98 ”和上面的格式一样保留CommonIDEIDE986.2 程序框架6.2.1 程序退出后,手机背景灯一直高亮,手机不进入待机模式。A:应用 /游戏对于系统消息VM_MSG_QUIT 未处理。程序收到VM_MSG_QUIT 时,需收回程序占用的所以资源,并使用vm_exit_app 退出。vm_exit_app 内部会对待机模式进行处理。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 35 页 - - - - -

49、 - - - - VRE 开发入门2009-4-17 第 25 页6.2.2 通过资源外部化加载资源时失败,vm_load_resource返回 NULL。A: 首先,确认在VREMANAGER添加资源时的路径是否正确;第二,文件名是否正确;第三,文件名大小写是否正确,资源加载时文件名大小写敏感。第四,资源数据量太大,VRE系统空间资源不足。6.2.3 如何处理来电、短信、 USB 接入移除、电源不足等外部事件?A:有外部事件来时,VRE平台会给上层应用触发VM_MSG_INACTIVE消息。 在此消息到来时,挂起应用,停止刷屏操作。6.3 系统接口6.3.1 如何获取系统时间?A:使用接口V

50、MINT vm_get_time (vm_time_t *time) ,详见 vmsys.h6.3.2 如何获取系统启动到现在流经的毫秒数?A:使用 VMINT vm_get_tick_count(void).详见 vmsys.h6.3.3 如何产生随机数?A:使用标准C接口 rand(),修改随机种子使用srand()。6.3.4 在 VRE 上如何发送短信、呼出电话?A:发送短信通过接口vm_send_sms(),呼出电话通过接口vm_callout() ,详见 vmtel.h 。6.3.5 模拟器上如何模拟发送短信和呼出电话?A:在启动模拟器后,在窗口菜单栏中有CALL/SMS按钮。点击

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁