从一个开发人员的角度比较Windows Mobile与Android
当前就移动系统来说,最火的两个系统应该是WM和Android了,自己工作的关系两个系统都有所接触,在这里想谈一下我对两个系统的认识,希望同大家一起分享。
开发工具
Windows Mobile的主流开发工具肯定是VS了,Android是Eclipse,两个比较来说,从移动开发方面来说,VS无疑要好过Eclipse,从调试来说,VS+ActiveSync对于模拟器和真机的支持做的很不错,VS的调试器比Eclipse要强好多,开发Android程序,经常会由于调试麻烦,退化到不用调试器,而是使用Logcat来定位错误,原因是adb(Android中类似于ActiveSync一样的同步工具)真的还是一个beta的产品,能用但不好用。但是Android可以在Linux开发,我也相信,在大多数企业级开发中,基于成本的考虑,企业也会一般选择ubuntu来进行开发,在Linux的世界里,免费开源才是王道。
SDK资源
MSDN+Emulator+广阔的博客资源(但我们Windows Mobile 博客园小组就有很多资料),Windows Mobile的开发非常丰富,而Android也因为事刚刚推出的系统,学习的资源很少,google开放的SDK也并不全面,经常在开发Android的时候,一个小小的问题通常都会研究很久,代码资源就更少了,而且一个事实是:很多厂商都在定制自己的Android,这样Android可能会因为不同的裁剪修改而让SDK统一不起来,进而让Anroid程序不能相互兼容。
开发语言与系统结构
JAVA与C#,不分伯仲,语言的特性来说,就不用细说了, 这里想从一个HelloWorld来谈一下在开发思路上,两者有多少不同。对于Windows Mobile来说,
一个HelloWorld,只需要创建一个工程,拖个Lable和Button,在Button响应事件里写:this.lable1.Text="Hello Wolrd";
而Android,也需要创建一个Anroid工程,完了之后,就不能拖拽了,如果要实现一个和上面一样的效果,首先得创建一个Activity(这个东西类似于一个Form减去UI的东西,他加上View就能实现和Form一样的UI),然后到layout里,添加一个Layout.xml,这个事用来配置Form上Lable和Button的布局,然后,在Activiy中要写上一句: setContentView(R.id.Layout),R这个类是自动生成的类,类似于WM中Designer.cs,然后获取以下Layout中的Button,
Button button = (Button) findViewById(R.id.btn);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
TextView text=(TextView)findeViewById(R.id.text);
text.setText("Hello World");
}
完事之后,Debug一下。比较下来,确实麻烦一点。
另外我想说一下Anroid中的Intent,在WM中,窗体之间是可以相互引用 ,这样可以实现功能和界面上的跳转,而Android中Activity是不建议进行相互间引用的,他们之间是通过Intent相互通信的,Intent不但可以实现应用程序内的通信,还可以实现同一平台下应用程序之间的相互通信的,这一点来说,WM正是欠缺的。
UI设计
Windows Mobile 6.5发布了,从整个UI Framework上来说,并没有做多大的改动,WM的UI从一开始就在被PC绑架,很多用户都不认可这种Windows的UI,可能在Windows Mobile 7,微软会觉悟过来,抄袭模仿一下iphone,到时候做到很炫应该没什么问题,而Android的UI风格和iphone有些相似(肯定有模仿借鉴),如果要设计漂亮酷炫的UI,Android肯定会赢过WM,一个Dialog,在Android下可以设计任意喜欢View,然后把View Set到Acitivty上(并不是说WM不能做,重写MessageBox类,通过GDI,费点劲也能做出来,但是他和整个OS UI风格肯定是不相称),而对于基础控件来说,无论ListView,特殊Button,TabView等,比较WM来说,在缩放,切换行为,滑动的动画效果来说,WM肯定是很土的。其实使用C++,在WM也有很多炫酷的应用,比如说Pointui ,但是开发成本很大,而且WM要赢,OS的UI Framework才是比拼的重点,这样之上的APP才能有更加丰富的应用。
开放性
这个肯定是Android大赢了,包括iphone,Symbian,MTK等,Android的开放性能使支持他的硬件更加多元,很多厂商运营商也加入进来,比如说AT&T,T-Moible,ChinaMobile等,运营商希望定制服务,让厂商制造他们指定的定制系统,来获取消费者的服务费用。不花钱的系统谁都喜欢,WM的高额授权费用和Windows Mobile的不开源(也不可能开源),让WM比较开发系统来说生命力上还是差很多的,Android与WM的博弈,并不是MS与Google的正面交锋,而是google扔给了全世界喜欢免费Mobile OS的厂商,让他们来和MS干,而Android的大赢,将会是手机厂商(比如说摩托,三星等因为手机卖了很多而且没给别人交授权费),移动运营商(因为用的人多了,交的网络流量费,流氓服务费也收的多了),半导体公司(高通,TI等,芯片出货量大了),软件公司(各个公司有各个公司的小算盘,比如说谷歌,肯定是搜索广告垄断了Android,app软件在以后的app Market里收钱。。。)
类库和应用软件
这里想说一下浏览器和数据库,WM有Mobile IE和Sqlserver Compact,Android有WebKit和SqlLite,未来的移动操作系统将会是Web OS特性的系统,本人觉得WM最欠缺的也就是这个方面,未来的Web应用将会更加多元化,web程序和本地程序对用户来说应该是透明的,Android中一个非常大的亮点就是Widget,在Home上Widget的数量要远远大于本地应用,因为Widget是轻量级的,夸平台的。 Moible IE的核心与WebKit是不同的,但是使用HTML+JS+CSS的应用程序,将使Widget无论在PC还是各种手机上,只要有浏览器,就又可以至少跑起来,也希望MS不要冒天下之大不惟,再搞一套自己的JS标准。在WM 6.5中,Mobile IE虽然有不错的进步,但创新的应用还是远远不够的,希望MS在WM上能少一点抄袭模仿,多一点创新性革命性的应用。另外,Android集成sqlLite,这样很容易能够配合着做一些复杂的信息处理应用,包括Android中SMS,MAIL等也都是使用SQLLITE,WM的SQLSERVER比较起来还是有点大,以后希望WM直接集成进去,并且推出一套类似于Android的ContentProvider(对数据库,XML等信息载体进行集中管理存取的对象),能够更加方便高效的使用这些信息载体。
云计算
在本次的MWC上,MS推出了My Phone,这是个很实用的云应用,对于Android与WM来说,讨论云计算并没有太多意义,这里只是想说google与MS的竞争,对于Google来说,己出的Android未来肯定会获得google的移动精确搜索,google地图等云计算的支持 ,对于MS来说这些都是短板,希望MS赶紧把yahoo搜索搞定,将来手机服务才是王道,也许Android与WM都会退化成一个带着浏览器的OS,那个时候,才是MS与google死掐最激烈的时候。
来自:http://www.cnblogs.com/abob/archive/2009/02/27/1399693.html
分享到:
相关推荐
随着Windows Mobile 7的发布,微软尝试改进UI,以期达到与iPhone类似的用户体验,但Android在自定义UI方面仍然更具优势。 总的来说,Windows Mobile和Android在开发环境、资源支持、开发流程以及用户界面等方面各有...
Windows Mobile和Android获得IMEI、MEID和IMSI demo Windows Mobile是从别处拿来的, sim5.rar是IMEI、MEID和IMSI demo CallGetDeviceUniqueId是获取window mobile系统UID的另一个方式 Android很浅显,一起共享吧
尽管现在Windows Mobile已被新的操作系统如Windows Phone和Android取代,但Windows Mobile 6.5在当时的影响力不容忽视,它为移动设备的操作系统设定了标准,并且在iPAQ 114这样的设备上展现了其强大的生命力。
虽然Windows Mobile设备管理器在Wince系统下功能强大,但与Android系统不同,Android通常使用ADB(Android Debug Bridge)作为主要的设备管理工具。ADB支持通过USB连接进行设备控制、文件传输和日志记录,而且在...
《Windows Mobile直连版:大华客户端在移动设备上的应用详解》 Windows Mobile直连版本是专为搭载Windows Mobile操作系统的手机设计的一款监控客户端软件,它使得用户能够在移动设备上实时查看、控制以及管理监控...
现代的智能手机系统,如Android和iOS,已经内置了更为先进和多样的解锁方式,如指纹识别、面部识别等,这些都是Windows Mobile时代所不具备的功能。尽管如此,了解Windows Mobile滑屏解锁的历史和S2U2软件,有助于...
然而,随着智能手机的发展,Windows Mobile操作系统逐渐被Android和iOS取代,这类程序在现代设备上的应用已经不多见。但对于那些仍在使用Windows Mobile设备的用户,这样的程序依然具有很高的价值。
在Windows Mobile手机应用开发...不过,需要注意的是,随着技术的发展,Windows Mobile已经被现代的Windows 10 Mobile和更广泛的Android、iOS平台所取代,但学习其开发经验依然对理解移动应用开发的底层原理有所助益。
尽管Windows Mobile已经被更现代的平台如Windows Phone和后来的Android、iOS取代,但对于学习移动开发的历史和技术演进,它仍然具有一定的参考价值。 二、开发环境搭建 1. 安装Visual Studio:作为主要的开发工具,...
Windows Mobile遵循的是传统的操作系统与硬件分离模式,允许开发者使用托管代码(如.NET CF)进行开发,而Android则是基于Java的开放平台,同样支持操作系统与硬件的分离。两者都提供了免费的SDK和集成开发环境(IDE...
Windows Mobile提供了一套API,如CE API和.NET CF类库,用于与操作系统进行通信。例如,源码可能会包含如何使用GDI+进行图形绘制,如何利用SMS和电话服务API实现通信功能,以及如何通过WMResource访问设备资源。 ...
Windows Mobile模拟器是一种软件工具,它允许用户在个人计算机(PC)上模拟Windows Mobile...虽然现在Windows Mobile已经被更现代的Windows 10 Mobile和Android所取代,但在特定场景下,WM模拟器仍然有其独特的价值。
此外,随着Windows Mobile逐渐被Windows Phone和后来的Android、iOS等平台取代,模拟器的使用也相应减少。 总的来说,Windows Mobile模拟器是开发和测试Windows Mobile应用的重要工具,它提供了在桌面环境下模拟...
**Windows Mobile PPT** Windows Mobile,作为微软在移动设备领域早期的操作系统...虽然现在Windows Mobile已被更现代的操作系统如Windows Phone和Android所取代,但其背后的开发原理和技术仍然对移动开发有启示作用。
随着移动互联网的发展,虽然该系统的市场份额逐渐被iOS和Android所取代,但在其鼎盛时期,Windows Mobile为移动设备提供了丰富的功能支持。 #### 内部程序调用的重要性 内部程序调用是Windows Mobile系统实现复杂...
- **WindowsMobile**:指的是微软为移动设备开发的操作系统。 - **PC联连**:指Windows Mobile设备与个人计算机之间的连接,通常用于数据同步和管理。 - **同步**:指在PC和移动设备间传输和更新信息的过程,确保...
本书《Pro Smartphone Cross-Platform Development: iPhone, Blackberry, Windows Mobile and Android Development and Distribution》由Sarah Allen、Vidal Graupera 和 Lee Lundrigan合著,于2010年由Apress出版社...
文档提供了Windows Mobile与其他平台如Android、Symbian、Blackberry和iPhone的竞争情况。虽然文档提到了部分市场数据和比较,但是由于文档片段的不连贯性,这部分信息较为零散。 由于文档内容是通过OCR技术提取的...
然而,随着Android和iOS的崛起,Windows Mobile的市场份额逐渐下滑,微软在2010年后推出了Windows Phone作为其新的移动操作系统战略,Windows Mobile逐渐淡出市场。尽管如此,理解Windows Mobile的开发过程对于理解...