PDA下应用EVB开发的几点问题(转)

Posted on 2010-10-18 10:41  sl2008  阅读(441)  评论(0编辑  收藏  举报

PDA下应用EVB开发的几点问题

一.操作系统:
       1.存储方式:WinCE操作系统中,其数据内容都是存储在内存中。在内存中的存储方式又有不同,其中一部分断电后内容仍可持续,操作系统自带的应用程序以及用EVB打包工具生成的安装盘安装后也是存放在这部分中;而另外一部分是RAM,断电后内容丢失,通常应用程序的数据库就是存放在这部分,所以要注意经常将数据库或者其他有用的文件及时地备份到PC上。
       PDA上的目录也是树状的,它只有一个根结点,由于没有“盘符”的概念,所以它的根目录就是一个斜杠(\),其下的子目录和PC上的习惯相同。还有一点要提醒大家注意的就是存储的容量,用惯了PC可能对存储的数量级的第一印象是G,但在PDA上是M数量级的,比如Symbol的2700的存储容量是16M,较新的型号2800也只有32M,而且应用程序和数据文件都是存放在这区区几十兆的空间内的。
       2.与PC的通讯:在PDA上可以对文件进行修改、删除、粘贴、拷贝等操作,但是不能把文件转移到PC上。要将数据备份到PC上,就得了解PDA如何与PC通讯,完成二者的通讯需要先安装一个名为ActiveSync同步(synchronization)。在PDA上可以对文件进行修改、删除、粘贴、拷贝等操作,但是不能把文件转移到PC上。同步程序进行后会在任务栏出现一个图标,它定时查询COM口,当PDA通过COM口与PC相连接后,点击同步程序的图标并选择Explorer,就会出现风格与Windows操作系统基本相同的界面,PDA上的文件以树状结构显示在其中,但是在这个界面里我们只能对文件进行删除、拷贝、粘贴及查看文件属性等操作,不能直接运行可执行文件或查看文件内容。
       要手工完成PDA与PC间文件的移动可以直接拖放文件,或先拷贝然后再粘贴,这两种方式都是双向的,也就是说可以从PDA向PC也可以是从PC到PDA。
       同步程序可以自动处理两者间文件的一致性,我的习惯是不使用自动同步,同步需要在每次PDA与PC连接后进行校验,速度较慢。

       3.文件格式:为什么不能直接在PC上运行PDA的可执行文件或查看PDA上文件的内容呢?究其原因是PC上的文件存储格式和PDA上不同,以Access库文件为例,从PC转移到PDA上会明显变大,对于纯文本等格式简单的文件变化相对较小。每当文件在两种不同操作平台移动时,同步程序都在后台进行着数据格式的转换。
       4.WinCE的操作:
       以Symbol2700为例,它上面是液晶显示屏,下面是一个数字键盘,主要的操作都是通过触摸屏和屏幕上的软键盘来完成的。软键盘在屏幕最下方,平时是最小化的,点击后弹出,其布局与普通PC键盘大体相同,可以用笔选取数字或字母,还可以实现数字、字母的手写输入,但识别率不高。PDA上的输入要经常在切换键盘并且键盘很小,选择时也很不方便,因此在开发时应尽量减少用户的输入,尤其是字母的输入。
       删除、拷贝、粘贴等操作无法用键盘完成,触摸屏又没办法支持右键,所以在这方面的操作上与PC的习惯不同,要对文件操作时,用触笔对准文件长按就可以弹出类似PC的右键菜单从而进行操作。
       5.操作系统:
Symbol2700/2800的操作系统为Windows CE 3.0,微软把整个CE 3.0的产品线分成三种:PocketPC(主要用于掌上型装置),Handheld PC(用于类似次笔记型电脑与终端机型态的周边,体积要大了许多,内建有键盘与一个PCMCIA的扩充槽等)与Mobile Phone(智慧型手机系统),三种产品都使用Windows CE 3.x操作系统。Symbol的2700/2800系列PDA隶属于PocketPC。
       PDA上广泛应用的操作系统还有老牌的Palm OS,它的操作系统是DR-Dos。Palm系统上主要开发工具是Code Warrior――C++的一种。Code Warrior支持图形界面的应用程序,但开发过程中较繁琐,要先用图形界面工具画好界面,然后在代码编辑工具中输入代码,但在代码输入工具中却不能查看界面,其操作的方便性与WinCE下的可视化开发平台不可同日而语。


二.与VB的区别:
       EVB无论是语法上还是RAD环境都脱胎于VB,因而更多的是与VB的相同点,下面主要叙述开发过程中要注意的不同点。
1.语法:
  WinCE是微软用来挑战Palm操作系统的,它秉承了微软的一贯风格,就是在技术尚未完成成熟时就开始推向市场,EVB同样不可避免地感染了不成熟这个缺点。最明显的就表现在语法和开发环境间的不协调。
EVB的语法有一小部分专门针对WinCE的,但基本上可以看成是VB的子集,大部分是VB原有的。我们       要注意的问题是:EVB的开发环境也有Visual Studio中的智能提示、自动列举函数参数,自动完成关键字等,但有些语法在代码窗口输入时会出现智能提示,而实际EVB却不支持,运行时会提示“找不到关键字”。比如:String,Space等函数就存在上述问题。所以不能过于相信开发环境中的提示,不要认为开发环境中有智能提示的就一定是正确的语法。另外EVB中不支持类型(Type)的定义。

2.工程类型:主要有两种,一种是有窗体的工程,这和VB中的普通标准Exe一样,另一种叫做Formless工程,即工程中只有代码而不包含窗体,类似于VB中的以Main函数启动的工程。
  EVB的应用程序编译后生成的是.vb文件,并不是.Exe文件,在PDA上.vb文件是与EVB的解释程序PVBLoad.Exe关联的,由后者装载并解释执行。

3.窗体机制:EVB中窗体的机制与VB有诸多不同,这里只列举一部分。
4.Load事件:窗体在应用程序中只会被Load一次,并且EVB没有Unload方法。也就是说只在第一次显示时会触发Form_Load事件,之后就只能将窗体隐藏(.Hide),而无法将窗体Unload,窗体直到应用程序退出(End)才会从内存中清除。窗体每次显示时都要进行的初始化等工作不能象VB中那样写到Form_Load事件中。

5.大小:窗体在设计时可以指定其大小,但运行时不论设计时指定的大小如何窗体都是全屏显示的。
6.事件:WinCE的窗体没有ControlBox,代替它们的是在右上角有一个圆形的OK按钮,这个按钮的对应事件是Form_OKClick(??),必须在此过程中书写代码才能实现窗体关闭等功能。
7.控件:EVB中的控件较VB少,相对来说使用时会繁琐一些。
比如菜单,在EVB中就要用控件来实现,而不象VB中那么方便。菜单条目的加入以及各条目对应的代码都要手工完成。
如果想在Symbol的2700/2800等不同机型上实现描码条码功能,必须安装与机型对应的控件。该控件外观和文本框(Textbox)相同,可以完成文本框的功能,当光标处于该控件中时,按动PDA上的扫描按钮就可以扫描条码,如果扫描成功,伴随着“嘀”响声条码就显示在该控件中。

8.API调用:首先,WinCE操作系统下API主要在名为Coredll.dll的动态链接库中;其次,前面语法部分提到了EVB不支持Type结构,当引用的API的参数是Type结构时需要进行特殊的处理。具体的处理方式是把参数中的结构类型按其每个成员的类型长度将它们转化成十六进制字符串传递给API,同样道理如果API返回值是Type结构,那么它也是以十六进制的字符串的形式来体现的,要想得到所需的结果还得反向的“翻译”才能得到最终的结果。

9。安装程序制作:EVB应用程序的安装盘制作也有一个Setup Wizard,按照提示可以方便的生成安装程序包,所不同的是程序在安装时有两部分工作,一部分是在PC上运行安装程序,另一部分是,当安装程序运行到一定步骤后会提示用户在PDA上按提示继续进行安装。在安装过程中PC和PDA要处理联接状态中。

Copyright © 2024 sl2008
Powered by .NET 8.0 on Kubernetes