系统核心对象比较
1:Form与Activity,View
做过Windows桌面编程的都会对Form有了解,Form 是应用程序中所显示的任何窗口的表示形式,即使一个Dialog也是对Form的一种派生。Form同时是一个容器,可包容其他继承自Control类的其他控件.
Windows Mobile下的Form的概念与桌面端是一致的。任何我们看到的界面都是一个包含在 Form中的布局。
而android中Activity,他相当于MVC模式中的Controler,它会与用户去交互,并对这些交互进行处理,我们可以通过调用 setContentView()来给Activity设置界面布局,Android的这种设计实现了界面设计和逻辑功能设计的真正分离,对View的高度抽象,也让界面具有高度扩展性,可以设计出更加丰富的界面体验。
2:Android中特有的Intent
Intent 提供了一个在不同应用的代码之间进行晚绑定 的机制。它主要被用来启动 Activity,还有服务等,它提供了应用中不同Activity之间,不同应用之间的通信方式,这既能对应用间的模块相互解耦,也让应用程序互相之间发挥共同的效力,这一点在windows mobile下是很难做到的,Form之间通常是依赖关系,耦合性很大,而一个应用要调用其他应用的某个功能,除非引用后者开放的类库,几乎没有什么好的办法可以做到。
3:ContentProvider和ADO.net
两者的设计目的有些相似,都是为了抽象数据访问层,ADO.net中有个很重要的概念:DataSet,我们可以通过各种数据源来填充DataSet,其实DataSet本质上就是一个内存中的数据库,有数据表,支持Sql查询,它支持多种数据源,如:sql数据库,xml,文本文件等。
相比起来,ContentProvider为我们提供了更大的灵活性,Content Provider用于将各个应用程序的数据进行共享,Content Provider是一个类,执行一套标准的方法,让其他的应用程序存储和获取Content Provider所处理的数据. 如果比较ADO.net和ContentProvider的话,ADO.net的数据访问模块是程序级别的,其他应用很难共享到既有应用对数据的加工处理,二ContentProvier通过一个唯一的ContentURI定位Provider,所有应用就可以通过构造ContentValues来对数据源进行操作。
总结:
对开发者来说,windows mobile与Android在体系架构上有很大不同,但在开发语言上,面向对象等方面,只要熟悉一下,两者之间的相互迁移并不难。
对于Mobile OS来说,不同于桌面操作系统,这必将有一场惨烈的淘汰赛,究竟是一家独大,还是三国分离,还是不同程度的整合,都是一个问号。未来的移动世界,网络肯定是永恒的主题,不同的操作系统也在这个方面做整合,互联网在不断嵌入到手机平台中,移动搜索,Widget技术,各种各样的网络服务,相信移动的世界会越来越精彩,而对于开发者的我们,多掌握一种技术,可能就是多一个机会。(作者:郭振)