这几天来了个项目,要做一个PDA用的工业检测系统,具体的需求还没下来,就先忙着熟悉移动开发的一些方法和工具,鉴于实验室一直是使用微软的一套东西进行开发,所以这次开发基本是准备升级到VS2005并用windows mobile 5.0的for Pocket PC的版本进行一些界面设计和基本逻辑功能的实现,这一阵子也赶着学了一点基础知识.
总体来说,只要安装了VS2005就可以进行移动开发了,但是VS2005自带的移动设备应用程序的模版不太好看,调试的虚拟设备也很有限,没有给出按屏幕分辨率和屏幕性质进行分类,而且最重要的是其提供的API多数是从普通应用程序继承而来,显得不够丰富,所以在开发前是需要打上两个SDK的,分别是windows mobile 5.0的for Pocket PC和for SmartPhone版本,前者是提供给使用微软移动平台的普通PDA,掌上电脑等应用程序开发使用,后者是供有电话功能的智能手机开发使用,此外还需要装一个4.0以上版本的Active Sync,不过,如果您仅仅是想玩玩微软新的东西或者进行一些测试工作,那Active Sync可以不安装,这个程序是供给实物PDA或者Smartphone 进行同步时使用的.
做好这些准备工作,开发就可以进行了,总体来说,移动应用程序的开发和本地开发差异不大,VS2005强大的功能让开发者基本不用写代码就可以把完成一些简单的数据库访问,查询等操作的测试程序.值得注意的是,在实物PDA中我进行过一些简单应用程序的部署测试,即使是在程序中使用了Application.Exit()这样的方法,程序运行后仍然会驻留在PDA的内存中,而且windows mobile 5.0自带的一些程序启动后也不会自动退出.可以说明的是在5.0版本中微软移动平台的内存管理进行了一些改进,将执行程序全部放在了ROM中,这样的好处是用户的数据和程序不会因为掉电而丢失,估计在WINCE2003平台上,微软收到了很多消费者在断电数据丢失这样的负面回馈,所以进行了一个改变.同时,将运行程序放在ROM中也加快了程序的运行速度,这在相对处理速度较慢的移动设备中对性能的提升起到了不可忽略的作用.接下来,谈谈这个改变带来的不足,那就是在大型应用程序的编写,对程序员在内存管理方面提出了挑战.从实际的运行情况来来,相同的一个程序,同一个Form我开了若干次,在内存中就保存了若干个该Form的副本,每个副本所带的数据略有不同,这么一来,如果不注意对应用程序运行部件在适当的时候进行内存注销,那么很快内存不足的警告就会出来,这对消费者来说也不是一个好的使用体验.关于这方面管理的实现细则,我将在下周再进行具体的研究和测试.
近期的任务是越来越多了,面对各种不同的技术和平台,我,还要继续...