曙海教育集团论坛3G手机技术专区Windows Mobile手机开发 → windows mobile开发常见问题集


  共有6957人关注过本帖树形打印

主题:windows mobile开发常见问题集

美女呀,离线,留言给我吧!
wangxinxin
  1楼 个性首页 | 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:青蜂侠 帖子:1393 积分:14038 威望:0 精华:0 注册:2010-11-12 11:08:23
windows mobile开发常见问题集  发帖心情 Post By:2010-12-4 9:58:46

1、Q:新建项目的时候选择哪个项目类型才能创建智能设备的应用程序?
  A:在Visual Studio的新建项目对话框中选择Visual C#或者Visual Basic项目类型,选择智能设备模板,然后再选择相应的设备SDK,最后选择“Device Application”,就可以创建一个移动设备的应用程序了。
2、Q:托管代码与本地代码有哪些区别?
  A:托管代码是指使用.NET Compact Framework开发的程序代码,可执行文件被编译成IL,执行时需要有.NET的运行时环境。而本地代码指用C 等语言开发的程序代码,可执行文件被编译成与CPU指令集有关的机器码,可以直接运行。
3、Q:能不能简要介绍一下Magneto里面对OTA和MMS的支持?
  A:Magneto对OTA有很好的支持,SDK文档的通讯部分中,有针对OTA的专门介绍。MMS的应用程序基本都是由第三方开发的,因为MMS是基于WAP协议的,而Magneto本身对WAP的支持也很好,具体的协议也可以在SDK文档里找到。
4、Q:请问用Visual Basic .NET开发PDA数据库程序能不能使用ADO.NET?
  A:Visual Basic .NET开发PDA数据库不需要引用System.data.oledb,只需要引用System.Data.SqlServerCe命名空间就可以了。 该命名空间中的数据库操作类和ADO.NET是基本一致的。可以用它们来开发针对SQL Server CE的应用程序。
eveloper获得。
5、Q:使用.Net开发的智能设备程序是否比用C语言开发的程序效率低很多?
  A:使用.NET开发的程序会比使用C语言开发的本地程序要慢一些,不过对于一般的应用软件来说,下率不会差太多,除非是需要实时处理硬件或 I/O的程序,必须要使用C语言进行开发之外,一般的应用程序用.NET Compact Framework开发即可,因为这样可以获得最好的灵活性和可移植性。
6、Q:用托管C 开发的应用程序执行效率会不会比用C#开发的应用程序高?
  A:不会。由於托管C 与C#源代码在经过编译之后,都将成为IL代码,由.NET Compact Framework来执行,因此在效率上不会有差别。
7、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的应用作了加 强。
8、Q:请问MFC在Windows Mobile Development中处于什么地位?Douglas Boling写的Programming Microsoft Windows CE .NET一书中好像并不推崇使用MFC开发Windows Mobile应用程序。
  A:MFC还是以本地C 的方式进行开发,其特点是执行效率高,但必须花费更多的心思在資源分配、回收等编程技巧上。如果使用.NET Compact Framework进行开发,虽然执行效率比本地程序略差,但整体而言,可移植性与灵活性都较好,而且不必为回收资源担心,开发者能够专注于真正重要的业 务逻辑流程。
9、Q:.NET Compact Framework 2.0与1.0有什么区别?
  A:.NET Compact Framework 2.0主要针对1.0原有的控件及类库进行了改善,提供了更多的支持,并新增了许多类型和控件,.NET Compact Framework 2.0更加接近.NET Framework,同时在效率上也相对1.0有所提升。
10、Q:在制作安装程序的时候,如何在start->program菜单中生成程序的快捷方式?
  A:在VS 2005中建立Smart Device Cab Project,在File System页面中,可以看到Application Folder,这就是Start->Program的位置,可以先建立Primary Output的快捷方式,然后将此快捷方式移到Programs Folder,并构建Cab文件即可。
11、Q:移动设备与WEB网页设计有什么主要区别?
  A:Visual Studio开发环境中移动设备与Web设计是非常类似的 ,可以使用同样的语言进行设计, 不同的只是能够使用的类以及控件有所区别。
12、Q:.NET Compact Framework中可以实现鼠标的双击、右击、中间键单击等用户事件吗?
  A:运行Windows Mobile的设备没有鼠标,所以这些事件也不存在。对于常用的右键弹出上下文相关菜单,在触摸屏上一般用单击并且按住一段时间来实现。
13、Q:Mobile应用程序的界面处理可以使用CSS样式表吗?
  A:不可以。
14、Q:Smartphone上面能够支持横屏幕吗?
  A:不支持。
15、Q:如何在Pocket PC中调整控件的位置使得应用程序可以支持横向屏幕?
  A:可通过设置控件的Anchor和Dock属性来自适应屏幕。
16、Q:用.NET开发Pocket PC程序需要考虑设备具体使用的是哪种CPU吗?
  A:不必。无论是在虚拟机上的x86指令集,还是实际设备上的ARM指令集,对.NET Compact Framework程序的运行来说都一样。
17、Q:Windows Mobile 5 是否支持通过语音控制新的开发程序?
  A:现在还不支持。
18、Q:可以在vwd2005 bata2中开发Pocket PC程序吗?Pocket PC是否具有浏览器?
  A:可以,Pocket PC平台是内置浏览器的。
19、Q:Visual Studio 2005的Mobile开发,支持Mobile 2003的设备吗?
  A:支持,VS 2005本身就自带Windows Mobile 2003的SDK。
20、Q:Windows Mobile 5.0 for Smartphone较之前的版本有何明显的区别?对于测试这一领域,我们需要注意些什么?
  A:Windows Mobile 5的Smartphone平台更多的变化是在API层面,比如对数据库的支持、对GPS API的支持等, Windows Mobile 5 SDK文档中对此有详细地说明。
21、Q:对开发来说CDMA和GPRS的数据传输是透明的吗?
  A:对于软件开发来说数据传输是透明的,CDMA和GPRS对于上层应用程序来说,只要支持HTTP协议或者TCP/IP协议就可以进行数据传输的操作。
22、Q:Visual Studio .NET能否支持Nokia的S60系列系统开发?
  A:可以,Visual C 能支持Nokia S60的开发。
23、Q:Pocket PC与Mobile开发的主要区别在哪里?
  A:Window Mobile是微软公司基于Windows CE.NET的一个平台。它包含Pocket PC和Smartphone两个版本。
24、Q:SDE从哪里可以下载?Pocket PC 2005的模拟器可以从哪里下载?
  A:SDE是早期用来开发移动设备程序的VS扩展,目前网上似乎很难找到。其实不用安装它,安装所需版本的Pocket PC或者Smartphone的SDK即可。各个版本的Windows Mobile开发的SDK和模拟器的地址可以从这篇Blog上下载(http://twodays.cnblogs.com/archive/2005 /06/30/184107.htm)。
25、Q:.NET Compact Framework 2.0能装在Windows Mobile 2003上吗?
  A:可以。.NET Compact Framework 2.0必须手动安裝到Windows Mobile 2003的机器上。
26、Q:请问有没有好的Windows Mobile编程的网站或者论坛?
  A:OpenNETCF.org、、www.ojct.com
27、Q:Windows Mobile 2003上的.NET Compact Framework能升级到.NET Compact Framework 2.0吗?
  A:可以。.NET Compact Framework 2.0必须手动安裝到Windows Mobile 2003的机器上。
28、Q:请问编写WML文件与使用.NET Compact Framework进行开发有什么联系和区别?
  A:WML是能够利用WAP浏览器进行浏览的文件,是一种基于Web的开发方式。.NET Compact Framework是在设备上运行的程序,是基于应用的开发方式。
29、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时,其内部会进行一些额外的类型转换动作,这会导致效率的降低。
30、Q:有没有支持显示HTML文本的控件?
  A:WebBrowser控件可以用于HTML文本。
31、Q:CAB安装后会在Pocket PC上自动生成“卸载程序”,如何制作安装包,才能不自动产生“卸载程序”?
  A:利用VS 2005建立Smart Device Cab Project,在Solution Explorer的Cab Project上点击鼠标右键选择Property,即可看到有一个选项为NoUninstall,默认为False,改为True就可以了。
32、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的控件,可以直接拖放来使用。
1、Q:请问如何才能保证应用程序能够及时地释放系统资源?
  
A:由于.NET Compact Framework所运行的移动设备,受限于CPU、内存、电源,因此其中的Garbage Collection时经过调整的,垃圾回收的速度比.NET Framework更快。通过调用Dispose()方法,可以立即释放掉对象所占用的非托管资源。
2、Q:在Visual Studio中可以定义一个所有文件都可以使用的宏吗?比如:#define AA,要求在所有的.cs文件中都可以使用#if AA public class A() #else public class B();
  A:可以。在VS 2005的解决方案资源管理器中,用鼠标右键单击项目,选择其属性。在属性对话框的Build页中,可以找到conditional compilation symbol,在其中输入AA,即可在该项目的所有C#源代码文件中使用这个符号。
3、Q:可以将Smartphone应用程序转换为Pocket PC应用程序吗?
  A:可以。在.NET Compact Framework 2.0中,只要您没有用到某些特殊的API,Pocket PC应用程序与Smartphone程序是可以互相转换的,只需要在控件上做些调整即可。
4、Q:.Net Framework 2.0有没有对Media coder/decoder的支持?开发第三方的媒体播放程序可以不依赖.Net CF2.0吗?
  A:.NET Compact Framework 2.0本身可以开发Direct3D Mobile的应用程序。也可以在VS 2005中以C 开发Native Code的媒体播放程序,而无须依赖.NET Compact Framework 2.0。
5、Q:使用.Net开发的智能设备程序是否比用C语言开发的程序效率低很多?
  A:使用.NET开发的程序会比使用C语言开发的本地程序要慢一些,不过对于一般的应用软件来说,下率不会差太多,除非是需要实时处理硬件或 I/O的程序,必须要使用C语言进行开发之外,一般的应用程序用.NET Compact Framework开发即可,因为这样可以获得最好的灵活性和可移植性。
6、Q:用托管C 开发的应用程序执行效率会不会比用C#开发的应用程序高?
  A:不会。由於托管C 与C#源代码在经过编译之后,都将成为IL代码,由.NET Compact Framework来执行,因此在效率上不会有差别。
7、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的应用作了加 强。
8、Q:请问MFC在Windows Mobile Development中处于什么地位?Douglas Boling写的Programming Microsoft Windows CE .NET一书中好像并不推崇使用MFC开发Windows Mobile应用程序。
  A:MFC还是以本地C 的方式进行开发,其特点是执行效率高,但必须花费更多的心思在資源分配、回收等编程技巧上。如果使用.NET Compact Framework进行开发,虽然执行效率比本地程序略差,但整体而言,可移植性与灵活性都较好,而且不必为回收资源担心,开发者能够专注于真正重要的业 务逻辑流程。
9、Q:.NET Compact Framework 2.0与1.0有什么区别?
  A:.NET Compact Framework 2.0主要针对1.0原有的控件及类库进行了改善,提供了更多的支持,并新增了许多类型和控件,.NET Compact Framework 2.0更加接近.NET Framework,同时在效率上也相对1.0有所提升。
10、Q:在制作安装程序的时候,如何在start->program菜单中生成程序的快捷方式?
  A:在VS 2005中建立Smart Device Cab Project,在File System页面中,可以看到Application Folder,这就是Start->Program的位置,可以先建立Primary Output的快捷方式,然后将此快捷方式移到Programs Folder,并构建Cab文件即可。
11、Q:移动设备与WEB网页设计有什么主要区别?
  A:Visual Studio开发环境中移动设备与Web设计是非常类似的 ,可以使用同样的语言进行设计, 不同的只是能够使用的类以及控件有所区别。
12、Q:.NET Compact Framework中可以实现鼠标的双击、右击、中间键单击等用户事件吗?
  A:运行Windows Mobile的设备没有鼠标,所以这些事件也不存在。对于常用的右键弹出上下文相关菜单,在触摸屏上一般用单击并且按住一段时间来实现。
13、Q:Mobile应用程序的界面处理可以使用CSS样式表吗?
  A:不可以。
14、Q:Smartphone上面能够支持横屏幕吗?
  A:不支持。
15、Q:如何在Pocket PC中调整控件的位置使得应用程序可以支持横向屏幕?
  A:可通过设置控件的Anchor和Dock属性来自适应屏幕。
16、Q:界面开发完成后,在移植方面需要注意些什么?
   A:一般来说,要移植到不同平台上必需要重新设计用户界面;可以重用的只是业务逻辑,不是用户界面。
17、Q:我在移动开发过程中用到了很多控件,难以在一页之内显示,如何为它们添加一个滚动条?
  A:可以将这些控件放到一个Panel中,并设置其AutoScroll属性为true即可;如果使用VS2005,拖拽数据源到窗体上时,会自动将所有控件包括在一个Panel里。
18、Q:TableAdapter在.NET Compact Framework 1.0中从未出现过,是新特性吗?
  A:是的,TableAdapter是.NET Compact Framework 2.0中新增加的。
19、Q:SQL Mobile带有像SQL Server那样企业管理器吗?Visual Studio 2005支持在桌面上直接查看SQL Mobile的数据库吗?
  A:您可以通过SQL Server 2005的企业管理器连接到SQL Mobile数据库进行编辑。Visual Studio 2005也支持在桌面上创建或修改SQL Mobile数据库文件。
20、Q:提交成功后如何取消保存?
  A:目前BindingSource尚不支持事务,因此提交成功后是没有办法再undo的

21、Q:移动设备内存较小,填充DataSet是否有大小限制?
  A:DataSet在逻辑上并没有对大小的限制。但是DataSet的大小必须小于当前前的可用内存,否则会有内存分配不成功的异常出现。
22、Q:如果数据源中的数据在显示前需要处理(例如格式转换),可以使用DataBinging吗?
  A:BindingSource是直接将DataSet与控件进行关联,所以如果需要进行其他操作的话,就不能使用 BindingSource。或者,可以在访问数据库后,先在DataSet里对需要转换的数据进行必要的处理之后,再进行显示。
23、Q:DataSet实际上在内存中产生了一套数据副本,如何解决版本控制的问题?
  A:DataSet本身不存在版本控制的问题。在把数据提交回SQL Mobile的时候,的确需要有一些机制来保证修改完成的数据应该是最新的,但是DataSet本身的数据结构是不会发生变化的。
24、Q:能否通过Pocket PC上的程序更新服务器上的数据库信息?
  A:可以。可以使用SQL Mobile中的RDA或者是合并复制的方法和远程SQL Server数据库进行数据同步或更新。具体的实现可以参考SQL Server相关部分的文档。
25、Q:SQL Mobile一定要要安装在移动设备上吗?
  A:是的。SQL Mobile需要安装在Windows Mobile或者Windows CE设备上。
26、Q:SQL Moble支持存储过程吗?
  A:目前还不支持。
27、Q:SQL Mobile必须和应用程序部署在同一台设备上吗?可否远程连接?它是否是一个文本数据库?
A:是的。SQL Mobile必须和应用程序部署在同一个设备上,现在还不支持远程连接。SQL Mobile是一个文件数据库,但不是一个文本数据库。
28、Q:能不能在一些应用中以XML替代SQL的作用?
  A:可以的。XML的查询效率比SQL Mobile要低,但是在数据比较少的情况下不需要安装更多的组件,这是XML的一个优势。
29、Q: Tableadapter与DataAdapter之间有何区别?DataAdapter是多个TableAdapter的组合吗?
  A:不是的,TableAdapter是对DataAdapter的一个扩展,TableAdapter本身包括了对应数据表的信息。 TableAdapter完成从数据库连接、执行SQL语句到将结果填充到DataSet中的一个完整操作,而DataAdapter只支持数据填充的操 作。
30、Q:做了SQL Moblie的sdf文件后,Publications后的数据库表中会出现msrepl_tran_version或rowguid字段,这是为什么?
  A:这两个字段是为了保证数据同步,由系统自动添加的,请不要进行修改。
31、Q:网上出了个Reflector反编译工具,可以99%反编译用C#开发的EXE和DLL,怎么才能更好地保护应用程序?
  A:目前大部分应用程序采用混淆和对关键字符串加密的方式,更好的方式可能还要继续探讨。
1、Q:SQL Mobile的SQL语法和SQL Server的语法有差异么?
A:SQL Mobile的语法和SQL Server的语法略有差异,可以从SQL Mobile的文档中查找SQL Mobile具体支持哪些SQL语句。总的来说,对绝大部分的开发来说,这些差异不会造成影响。
2、Q:SQL Mobile支持B/S模式吗?
A:不支持。
3、Q:可以在.NET Compact Framework 1.0上访问由.NET Compact Framework 2.0产生的数据库吗?
A:SQL Mobile数据库的格式和SQL Server CE 2.0是相同的,因此可以直接在.NET Compact Framework 1.0中进行访问。
4、Q:SQL Mobile数据库文件支持XCOPY吗?可以简单地复制到其他Windows Mobile设备上吗?
A:是的。SQL Mobile数据库本身是一个文件数据库,直接复制到其他安装了SQL Mobile支持组件的Windows Mobile设备或模拟器上就可以使用了。
5、Q:Visual Studio .NET 2003是否支持Windows Mobile 5.0的开发?
A:不可以,如果开发基于Windows Mobile 5.0的应用程序请使用Visual Studio 2005。
6、Q:要想从传统的PC程序员转向到移动设备的开发上来,需要在技术上作哪些准备?
A:移动设备的开发对于基础开发语言和开发技术的要求与PC上是相同的,只需要了解移动设备在哪些方面与PC平台有所不同即可。
7、Q:C#可以开发Windows Moblie应用程序吗?
A:可以。
8、Q:如果获取.NET Compact Framework 2.0的安装程序并将其安装到Windows Mobile 5.0设备中?
A:Visual Studio 2005提供了.NET Compact Framework 2.0安装程序,在开发部署时会自动部署到移动设备上。
9、Q:Windows Mobile 5.0中没有集成.NET Compact Framework 2.0,是不是生成的应用程序安装包就应该带上.NET Compact Framework 2.0?
A:技术上来说是的。但能否在应用程序中提供.NET Compact Framework 2.0取决于微软对此的授权情况。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

windows mobile开发常见问题集








签名