转:Windows Mobile 开发常见问题集

最近在做一个Windows Mobile的开发,因为是新手,所以找了很多资料自己学习。

下面是我收集的一些入门接的常见问题的处理方法。

1、Q:新建项目的时候选择哪个项目类型才能创建智能设备的应用程序?
A:在Visual Studio的新建项目对话框中选择Visual C#或者Visual Basic项目类型,选择智能设备模板,然后再选择相应的设备SDK,最后选择“Device Application”,就可以创建一个移动设备的应用程序了。


2、Q:托管代码与本地代码有哪些区别?
A:托管代码是指使用.NET Compact Framework开发的程序代码,可执行文件被编译成IL,执行时需要有.NET的运行时环境。而本地代码指用C++等语言开发的程序代码,可执行文件被编译成与CPU指令集有关的机器码,可以直接运行。

3、Q:托管性的代码执行效率怎么样?和使用Visual C++编写的代码相比较。
A:托管代码的执行效率肯定不如本地代码高,但是托管代码也有一些好处是无法取代的。

4、Q:请问如何在模拟器里面配置连接到移动网络?
A:模拟器如果需要连接移动网络的话,必须有专门的硬件提供支持。可以在开发PC的串口上连一个GPRS的模拟器,SDK文档中对此有专门的说明。

5、Q:开发好的程序通过什么方式部署到手机上?对手机有什么要求?
A:开发的程序需要打包成cab文件部署到手机上。除了通过ActiveSync安装外,还可以通过网络下载、存储卡运行等方式来安装应用程序。对手机的要求是,必须和开发程序的目标平台相兼容。比如为Windows Mobile 5开发的应用程序,可能就没办法很好地运行在Windows Mobile2003平台上。

6、Q:用.NET开发Pocket PC程序需要考虑设备具体使用的是哪种CPU吗?
A:不必。无论是在虚拟机上的x86指令集,还是实际设备上的ARM指令集,对.NET Compact Framework程序的运行来说都一样。

7、Q:对开发来说CDMAGPRS的数据传输是透明的吗?
A:对于软件开发来说数据传输是透明的,CDMAGPRS对于上层应用程序来说,只要支持HTTP协议或者TCP/IP协议就可以进行数据传输的操作。

8、Q:在使用.NET Compact Framework 1.0进行开发时,用EVC直接调用Native代码与使用C#通过P/Invoke在性能上有什么差别?在.NET Compact Framework 2.0上,用C++直接调用和用C#通过P/Invoke又如何呢?
A:用EVC調用Native API的效率,会比使用.NET Compact Framework通过P/Invoke调用Native API要高,这是.NET Compact Framework本身的特性。在从托管代码中调用Native API时,其内部会进行一些额外的类型转换动作,这会导致效率的降低。

9、Q:OpenNETCF能运行在.NET Framework 1.1环境下吗?其中的控件可以与.NET Framework 1.1控件混合使用吗?怎样在Visual Studio .NET 2003中加入OpenNETCF控件?
A:当初在设计NET Compact Framework 1.0/1.1时,由于考虑到移动设备的资源有限,所以有些原本.NET Framework 1.1中已经提供的类和控件就被删除了,OpenNETCF Smart Device Framework主要是针对.NET Compact Framework 1.0/1.1中没有的功能,开发出来的类似的类型和额外的功能,以弥补.NET Compact Framework 1.0/1.1不足之处。这套Framework主要是供.NET Compact Framework程序开发所用,除了少部份针对PC与Pocket PC的同步功能所编写的类之外,大部分都是在.NET Compact Framework上执行的,一般不支持.NET Framework。OpenNETCF的Smart Device Framework安装完毕之后,可以在VS 2003左侧的工具箱中看到OpenNETCF的控件,可以直接拖放来使用 

10、Q:请问如何才能保证应用程序能够及时地释放系统资源? 
A:由于.NET Compact Framework所运行的移动设备,受限于CPU、内存、电源,因此其中的Garbage Collection时经过调整的,垃圾回收的速度比.NET Framework更快。通过调用Dispose()方法,可以立即释放掉对象所占用的非托管资源。 

11、Q:使用.Net开发的智能设备程序是否比用C语言开发的程序效率低很多? A:使用.NET开发的程序会比使用C语言开发的本地程序要慢一些,不过对于一般的应用软件来说,下率不会差太多,除非是需要实时处理硬件或I/O的程序,必须要使用C语言进行开发之外,一般的应用程序用.NET Compact Framework开发即可,因为这样可以获得最好的灵活性和可移植性。


12、Q:请问.NET Compact Framework 2.0对于使用不同CPU的移动设备支持好吗?.NET Compact Framework 2.0在GSM应用方面有没有增强? 
A:.NET Compact Framework具有Windows Mobile跨平台的特性,因此开发时不需要考虑底层的OS、CPU和其它硬件因素。目前.NET Compact Framework对常见的CPU都能够支持,例如ARM、MIPS、SH、x86等。另外在GSM应用方面,主要针对Smartphone的应用作了加强。

13、Q:在制作安装程序的时候,如何在start->program菜单中生成程序的快捷方式?
A:在VS 2005中建立Smart Device Cab Project,在File System页面中,可以看到Application Folder,这就是Start->Program的位置,可以先建立Primary Output的快捷方式,然后将此快捷方式移到Programs Folder,并构建Cab文件即可。

14、Q:移动设备内存较小,填充DataSet是否有大小限制? 
A:DataSet在逻辑上并没有对大小的限制。但是DataSet的大小必须小于当前前的可用内存,否则会有内存分配不成功的异常出现。

15、Q:能不能在一些应用中以XML替代SQL的作用? 
A:可以的。XML的查询效率比SQL Mobile要低,但是在数据比较少的情况下不需要安装更多的组件,这是XML的一个优势。

posted on 2009-03-29 22:04  如影如风  阅读(376)  评论(0编辑  收藏  举报