|
Windows Mobile,iPhone和Android是当今最流行,谈论得最多的移动平台,特别是iPhone对当今智能手机的革新,Android开源对众多终端厂商以及运营商的吸引,人们对Windows Mobile 7 版本发布的期待,都成了现在移动平台关注的焦点。

图1 Windows Mobile,iPhone和Android大比拼
一、平台概述
Windows Mobile(WM)
最好玩的是直到2008年我的手机都还是Windows Mobile 2003的,如果有人要问微软为什么在移动领域开始走下坡路,那是因为象我这样的人太多了,一部WM手机使用了4年多。
首先,WM手机天生就比较慢,我用了4年多的那部手机是三星i570,现在我换上了HTC Touch Diamond 2,操作系统升级到了Windows Mobile 6.0,但它仍然不够快。
第二也是非常重要的一个原因就是微软设计手机操作系统的方法,如果它没有遇HTC和SPB合作,也许Windows Mobile现在的市场占有率为0。
你一定知道苹果的App Store有100.000多个应用程序了,但我要告诉你,其实WM应用程序远远不止这个数,因为苹果使用了专门的应用程序商店来进行管理,而微软是没有将精力放在组织这些程序上,如果微软肯花时间和精力来解决这些问题,要在竞争中占据上风是不成问题的,我希望他们能做到。

图 2 经典老牌的Windows Mobile,何时才能再发威
iPhone
iPhone确实是非常了不起的产品,当我第一次在MacWorld 2007上看到时就喜欢上它了,也是我第一次知道可以取消滚动条实现滚动,通过两根手指收缩展开就可以实现缩小和放大,当时简直被惊呆了。
相信很多人都很崇拜史蒂夫乔布斯,当时很多制造商都在想法减小键盘的尺寸,微软花了十年开发手写识别算法,最后史蒂夫乔布斯高明地使用了虚拟键盘,一下子解决了这个问题,其实微软已经有这么一个实现了,只不过不支持手指书写,必须使用手写笔,但当时谁也没有想过要使用手指进行书写,就象当年NASA花了好多钱开发能在太空中使用的笔,而俄罗斯使用现成的铅笔就接近了这个问题。
自从iPhone上市以来,它的每一个动作都会吸引大量的目光,特别是苹果开创的App Store,至今任然热度不减,掀起了一股App Store淘金热潮,现在每个人都想进入这个市场分得一杯羹,连手机制造商们也按捺不住了。但当我真正玩了一下iPhone后,我还是有点失望,那就是没有复制粘贴功能,而Windows Mobile老早就有了。

图 3 让人爱不释手但又有点瑕疵的iPhone
Android
当我第一次听说Google也要开发自己的移动平台时我不仅仰天长啸,当初那感觉就像听到街对面的银行要开始销售饼干一样。现在看来或许是我错了,现在我终于知道Google为什么要参与这场战斗了,因为Google恨微软就像微软恨Google一样,Google越来越成熟了,微软需要更加成熟才能再竞争中立于不败之地。
微软在桌面和笔记本领域的霸主地位是很难撼动的,Google也很聪明,先从微软的软肋Windows Mobile下手,然后再攻其核心后院,Google虽然释放了Chrome OS,但目前来看还是有点跛脚的感觉。现在看Google和微软的战斗就像20年前微软和IBM之间的战斗一样,IBM不得不从消费领域退缩到企业应用领域。

图 4 后起之秀Android能否挑起大梁,不失众望
     在讨论了三大移动平台有趣的历史后,下面来看一下与开发有关的对比,在这一部分我将对平台,IDE和模拟器进行介绍和对比。
Windows Mobile
可以使用.Net Compact Framework(紧凑框架)开发Windows Mobile应用,也可以使用C和C++,但使用.Net开发的好处是可以更容易与桌面和服务器应用集成。Visual Studio当然是使用.Net开发的最佳IDE了,与Eclipse和Xcode/ Interface Builder比起来,就好像是2000年的奔驰SLK和2009年的法拉利599相比,集成度,速度和智能/代码对比,项目的组织这些在Visual Studio中都要好一些。
WM开发最让人崩溃的是控件,如果你不花时间加入特殊的风格,没有特殊设计能力的话,那WM应用程序将会非常丑陋,我将会拿WM和iPhone组件实现的同样程序做对比,真的是不可同日而语。iPhone凭借时尚的按钮,漂亮的文本框和内置的动画,即使看上10遍也不会有视觉疲劳。
开发WM应用程序还有一点不爽的就是Visual Studio不是免费的,但你可以下载90天试用版软件,到期后可以卸载重装继续获得90天试用期。
最后就是模拟器,WM模拟器一直都比较出色,发展至今已经相当成熟了,我希望模拟器能够更快,当我看到Android模拟器那如蜗牛般的速度后,我也感到很满足了。
iPhone
每个第一次接触iPhone开发的人都会有一个相同的印象,那就是要打开好多好多的窗口,iPhone开发常用的有两个工具,用于编码的Xcode和用于GUI设计的Interface Builder,但Xcode算不上真正的IDE,Interface Builder也算不上真正的完整。但我非常喜欢iPhone开发辅助工具Instruments,在将应用程序发布到App Store之前,我一般会使用Instruments检查程序是否存在内存泄露,通过它我可以通过一个图形界面查看正在运行的程序内存使用情况,如果有内存泄露,它会告诉我准备的代码行位置。
再说说iPhone的模拟器,当我开发iPhone应用程序时,我更喜欢使用模拟器,因为iPhone模拟器实在做得太好了,速度也让我很满意。但iPhone开发最糟糕的是个人偏好,对于我而言,Objective-C是一个坎,与C#比起来,它明显比较落后,如果你有任何异议,你可以看看下面的Objective-C数组初始化代码就知道了。
1 // in your .h
2
3 @interface MyListClass : NSObject {
4
5 NSArray *list;
6
7 }
8
9 @property (nonatomic, retain) NSArray *list;
10
11 // in your .m
12
13 @synthesize list;
14
15 - (void) dealloc {[list release];
16
17 [super dealloc];
18
19 }
20
21 // whereever you set it up ( init most likely ):
22
23 NSArray *temp = [[NSArray alloc] initWithObjects:[NSNumber numberWithInt:1], [NSNumber numberWithInt:2], [NSNumber numberWithInt:3], nil];
24
25 self.list = temp;
26
27 [temp release];
28
29
从上面的代码可以看出,需要用到alloc和dealloc,注意不能将dealloc与取消订阅理解为相似的了,当操作系统发现内存问题后,它只会粗暴地kill掉你的应用程序。
iPhone开发了一个让人不爽的事是需要去iPhone开发者中心注册,才能下载iPhone SDK,每年需要向苹果支付99美元,否则你的应用程序就无法在App Store上发布。
Android
和Windows Mobile一样,开发Android应用程序有两种选择,一种是主流的Java和标准的SDK,因为Android是基于Linux的,因此第二种就是使用C和C++,自Android 1.5后,就使用的是NDK了。
推荐使用的IDE是Eclipse,但也可以选择其他IDE,当我第一次接触Eclipse时它还很差劲,但现在我满意多了,可以原生态支持Visual Studio,但有两个糟糕的事情是代码填充和项目组织(又叫工作区)。已经有一个叫做Holy Grail的.Net爱好者试图将Eclipse改造成Visual Studio的风格,我没有去试过,如果你有兴趣,可以点击这个链接http://stackoverflow.com/questio ... -like-visual-studio。
Android的模拟器也算比较满意,除了启动速度让人崩溃外,它能与IDE良好地集成,大多数时候可以在上面进行调试,但如果你没有使用模拟器的标准屏幕分辨率,运行时可能会遇到问题,如看不到按钮,这时就只有使用快捷键了。
快捷键模拟器功能:
F8手机网络切换开关、F9代码分析切换开关(当设置了-trace选项)、Alt-ENTER切换全屏模式、Ctrl-T切换轨迹球模式、Ctrl-F11, KEYPAD_7切换到前一个布局、Ctrl-F12, KEYPAD_9切换到下一个布局、KEYPAD_MULTIPLYincrease onion alpha、KEYPAD_DIVIDEdecrease onion alpha
        Windows Mobile
如果你之前没做过C#开发,我想告诉你的是其实学习起来并不困难,只要你学会了C#编程,无论是做移动开发,还是开发ASP.NET Web页面,抑或Silverlight前端,WebService或WCF后端,你都可以做得很好,它们之间的差异是很小的。
开发WM应用程序最大的问题是,微软没有提供一个官方的渠道为开发者解答问题,虽然有MSDN和智能设备开发者社区,但大多数时候你能看到的都是些无用的博客,一般很少有人真正来解答问题。
我推荐你去阅读一下《Microsoft Mobile Development Handbook》和《Professional Microsoft Smartphone Programming》这两本书,或许很多问题会迎刃而解。另外也可以去http://msdn.microsoft.com/en-us/windowsmobile/bb250560.aspx逛逛,看能否找到一些有用的资料。
iPhone
开始iPhone编程比较容易,推荐你从阅读《Beginning iPhone 3 Development: Exploring the iPhone SDK》开始。iPhone开发者中心也是个不错的地方,在主页上显示了很多主题的链接,我前面已经说过,需要注册并支付99美元才能访问这些内容和发布应用程序,不过幸运的是,文档都是免费的,但也有一些教学资源需要付费才能获得。
如果你不想看《Beginning iPhone 3 Development: Exploring the iPhone SDK》这本书,那么你也可以从iPhone开发者中心和iPhone SDK(3.1.2)开始。
Android
我是从阅读官方网站的开发指南(http://developer.android.com/intl/de/sdk/index.html)开始学习的, 另一个好地方就是irc.freenode.com 上的#Android(和#Android-dev)IRC频道,那里有非常多的热心人帮助象我这样的Android小白。
我对Android开发相关的书籍都不是很满意,我最满意的一本是《Pro Android Games》,因为我对Android上的游戏开发比较感兴趣,关于一般的Android开发,似乎大家对《Professional Android Application Development》这本书的评价还不错。
        这可能是你最感兴趣的内容了,开发者每天收入2000美元的神话是真的吗?审核过程真的是那么糟糕?下面我们将逐个剖析每个市场,一一为大家揭晓答案。
Windows Mobile
Windows Mobile Marketplace是2009年10月启动的,受到了很多人的追捧,人们对它的期望很高, 但Marketplace在发布时不到1000个应用程序显得有些失败,其审核过程也让人叫苦不迭,Windows Mobile 6.5的推出也显得有些仓促,但在论坛中也时而有微软的员工在自夸和炫耀,真让人崩溃。
Marketplace最大的问题的是,无论你做什么,你都要做得非常好,当你输入任何数据,如公司详细信息,应用程序描述信息,你必须100%保证输入的内容是100%正确的,因为你只有一次机会,当你点击提交按钮后,这些信息就不可修改了,如果公司的电话号码发生了变化,但你却不能修改,真的糟糕至极,要更新应用程序描述?要发布新版本的cab文件,对不起,你至少得等上一个月。如果你提意见,大约在两周后你得到的回答是“感谢您的意见,我们正在努力,但你提出的问题现在还不能解决”。
如果我告诉你每年还需要支付100美元,每提交一个应用程序也要100美元,你一定会抓狂的,而这还不是最离谱的事,有一个问题“为什么审核收费如此昂贵?”是这样回答的:我们需要执行一个严格的审核过程,以确保最佳的最终用户体验,整个审核过程成本非常高,我们认为这个费用对于开发者而言是可接受的,因为可能会有数以百万计的用户购买开发者的应用程序。只要你每年支付100美元,你在Marketplace中发布的应用程序就会免费获得一个5星评价,但我真的担心开发者能否在一年内回本,钱都被微软赚去了。
注意:如果你的应用程序没有通过审核,你仍然需要为信用意见书支付一部分款项,为了让应用程序审核通过的几率提高,我分享一下我的经验,首先声明一下,下面的日期信息可能有误,因为我是从电子邮件中提取的信息:
13/10/2009:填写各种表单,准备cab文件,屏幕截图和其它东西,提交审核。
26/10/2009:微软拒绝了我的申请,因为程序不能显示中文,第二个问题是我自己造成的,我将服务器运行需要的dll文件删除了,100美元就这么泡汤了。
26/10/2009:拷贝了dll文件到服务器,并解释了中文显示的问题,重新提交申请。
02/11/2009:再次被拒绝,这次是因为我的程序没有提示用户需要连接互联网,ok,我服了,我再次交了100美元的学费。
05/11/2009:我加上需要连接互联网的提示,再次提交申请。
19/11/2009:程序终于发布到Marketplace上了,我又花了100美元。
正如你所看到的,我前后共花去了1个月时间和300美元(其中100美元注册费),这是否值得呢?从11/19/09到01/07/10,盈利了823.35美元,微软抽取了30%的利润,最后我获得了576.34美元。你要问免费应用程序?我曾经发布了一个免费应用程序,被评为4星,3个月的下载量超过了10万次,至于它在榜单中的位置,我认为还不是太理想。
Windows Mobile Marketplace的确有点恐怖,唯一的好处是它现在的应用程序不多,让你的应用程序可以处于比较明显的位置,如果将来数量一多,真不敢想象开发者是否会赔本。许多手机制造商也嗅到了商机,如三星也准备着手建立自己的应用程序商店了。
iPhone
App Store上的应用程序已经突破20万了,现在进入可谓困难重重,而且苹果的审核过程一样让人不爽,下面是我的经历:
11/19/09:考虑到我是第一次编写iPhone程序,我花了很多时间重构代码,确保一切正常,并且不会出现内存泄露后,我提交了审核申请。
11/25/09:苹果拒绝了我的申请,我预料到了,但拒绝的原因让人无法接受,他们不喜欢一个完整的版本,从技术上将,这样的程序拿给微软审核一定会通过的,他们截了一张图,然后告诉我,把这部分功能砍掉。
11/30/09:感恩节后,我打包了一个新版本,但同样遭到了拒绝,幸好,不是每次都要支付100美元。
12/04/09:得到通知,程序正接受审核。
12/09/09:五天后,应用程序成功通过审核,发布到商店中。
App Store的反馈还是蛮快的,至少比Windows Mobile Marketplace要快,也没有每次提交审核申请都需要支付100美元的无理要求。但随后我就开始苦恼了,我在Windows Mobile Marketplace上发布的免费应用程序在App Store上前一个月下来只有500左右的下载量,也许是iTunes的统计方法有问题,推荐使用APPlyzer进行统计和分析。
如果你之前没有做过Objective-C开发,那你要想一夜暴富可能有点困难,因为从事iPhone开发的人实在是太多了,你想要有好的创意,好的UI,好的程序实现恐怕需要很长的时间才能练就那样的功底,如果你曾经做过Objective-C开发,现在想要在App Store上赚钱,也需要很多技巧,想要脱颖而出,必须把软件做得很时尚,很潮流才行,现在在市场中喜欢自夸的人实在是太多了,因此你还需要懂得推销你的程序。
Android
Android Market的历史和Windows Mobile MarketPlace的历史有点类似,最大的不同是Android Market是2008年10月启动的,Android Market上的问题也很多,直到2009年3月,总共发布的应用程序才2000多个,不过现在情况好多了,如果你通过一部Android手机进入Android Market,你会发现程序数量已经上升到20000多个了。
但我想说的是Android Market上的程序质量确实很差,我下载使用过的程序,80%都已经卸载掉了,因此,我认为Android Market是新兴开发者的乐园,如果你有好的创意,好的开发功底,你一定会拔得头筹。
值得注意的是,在Android Market上的成本似乎与App Store和Windows Marketplace便宜多了。而且在Android Market上发布的免费软件是可以捆绑广告的,也许这将会开创一种新的营销模式,不卖软件卖广告。与Windows Marketplace不同,我在Android Market上提交软件审核申请时,似乎没有过多的过程,只需要一次性支付25美元,然后上传.apk文件和屏幕截图就可以了。
最迟我简直不敢相信这是真的,从提交申请到审核通过大约只有10分钟,也许是Android Market中的软件不多才会这么快吧,Google或许是想快速壮大市场的软件数量,10分钟确实不够,因此市场中的软件质量也大多不能让人满意。
   Windows Mobile
注册费:每年100美元。
应用程序提交费用:每应用程序100美元,第一次注册时免费获得5次提交机会。
额外的市场提交费用:每应用程序10美元。
审核过程:大约2周。
微软抽取30%的销售收入。
应用程序数量:大约1000个。
相关链接:
Windows Mobile Marketplace(https://marketplace.windowsphone.com/Default.aspx)
Windows Mobile开发者中心(https://developer.windowsphone.com/)
有趣的事实:
用户如果不登录,就看不到Marketplace中的“购买/安装”按钮。使用HTC Touch Diamond 2直接输入信用卡信息购买应用程序是不可能的。
iPhone
注册费:每年100美元。
应用程序提交费用:免费。
额外的市场提交费用:免费。
审核过程:大约1周。
应用程序数量:超过10万。
相关链接:
iPhone App Store(http://www.apple.com/iphone/apps-for-iphone/)
iPhone开发者中心(http://developer.apple.com/iphone/)
有趣的事实:
由于注册过程太多麻烦,致使很多人误以为没有信用卡信息就不能下载免费的应用程序,因此即使想下载免费应用程序的人也登记了信用卡信息,这也许是App Store成功最不为人知的一个原因。如果你要在App Store上发布应用程序,每年至少得更新一次。
Android
注册费用:一次性交25美元,再加20美元的提交费用。
应用程序提交费用:免费。
额外的市场提交费用:免费。
审核过程:无。
Google抽取30%的销售收入。
应用程序数量:2万多个。
相关链接:
Android Market(http://www.android.com/market/)
Android开发者中心(http://developer.android.com/intl/de/index.html)
有趣的事实:
Web版Android Market居然没有搜索功能,不得不使用第三方的搜索http://www.androidzoom.com/,实在是对搜索巨人的巨大讽刺。直到Android 2.1一直存在一个弱智的bug,那就是可以轻松绕过屏幕锁,进入系统界面。
总结
毫无疑问,将市场直接嵌入到操作系统对于我们开发者而言是件好事,小型软件公司也不需要管平台的维护和销售,另一方面,埋在开发者心中挥之不去的两个阴影是平台提供商抽取的佣金比例和审核过程。现在要我选择最佳的手机操作系统,并看好其未来发展,我的答案或许让你有点惊讶,是的,我选择Android!
但需要注意,微软在这场战斗中还没有拿出绝招,微软往往是迟到的醒悟者,上世纪90年代比尔对互联网做出了错误的判断,现在鲍尔默或许也对移动市场做出了错误的判断,我们或许应该期待微软的下一个领导者。微软从不缺技术狂人,我只希望它不要再浪费时间了。
对于苹果,我相信它一定会继续做得很好,因为苹果有一个奇才,但这个人还能带领苹果多久时间呢?未来的接班人能否继承他的真传呢?Google让我震惊,它的所有互联网服务都放到Android中去了,对于一个公司而言,这简直太完美了,Android现在正一步步吞噬Windows Mobile的市场空间,微软做好应对的措施了吗?

图 5 Android Windows Mobile和iPhone谁将笑到最后? |
锐起, 网维大师, 游戏, 空间, 软件, 服务器, 密码, 视频, 系统, 软件, 系统, VIP, 绿茶, 论坛, 诺德尔, 系统, 网吧, 系统, 系统, 软件, 网吧, 教程, 视频, 绿茶, 诺德尔, 软件, 锐起, 软件, 软件, Windows, 教程, 软件, 系统, 游戏, 密码, 游戏
|