Nokia 和 Microsoft 终于搞基成功,业内人事普遍都看好两家厂商的 “ 软硬结合 ” 。这一结局直接把 Windows Phone7 这一新兴手机移动操作系统送到与如日中天的 Iphone 与 Android 在同一位置上,变成了三国之势。究竟两家公司的合作是 " No - Win " 还是 "Win - Kia " 这里不做讨论,只能引用我们瓷器国的某些专家常用的语言来说:这两家公司的合作有可能赢、有可能输,具体赢输要看最后的结果才知道 ~~~ 囧 ~~ !当然还有 Symbian 、 Meago 、 Rim 、 WebOS 和三星的 Bada 甚至还有基于 Android 的 Ophone ,但以上这些还未形成气候,暂时不做考虑。
我们所关心的问题是做为一个想转入做移动开发的程序面对这三大操作系统【 Android 、 WP 7 、 IOS 】该如何选择一个平台让自己有所发展?首先我们来对比一下三大平台。
编程语言
Android 应用是用 Java 语言编写的,当然还有 jni 的编程方式,使用 C/ C++ 但主要的还是使用 Java 。许多开发人员通过熟练掌握 Java 语言在企业中获得了职位 ,因此为 Android 平台开发应用很自然地适合这些人。就语言特性而言,有过 C# 等熟悉面对向开发语言的程序员,要学习 Android 开发也是可以的,因为 Android 用的只是 Java 的语言基础最重要还是要看思想。
IOS 应用是用苹果的 Object-C 语言编写的, Object -C 语言是一种包含 Smalltalk 语言元素的非标准 C 语言。有过 C/C++ 开发经验的程序员可以比较好的转向 IOS 开发,但还会在开发过程中遇到一些小障碍。
Windows Phone 7 应用是用微软的 C# 语言编写的,有过 .net 平台开发的程序员想要学习 WP7 开发,相信难度不大。如果你之前是 Silverlight 、 WPF 开发者那恭喜你,你可以很快速的学好 Windows Phone 7 开发。
三大平台都使用的不同的语言编写, Android 之所以选择 Java 语言,无非是看中 Java 编程语言排行首位的优势,想迅速的收获大批开发者,而另外的两个平台却使用自家的编程语言,相信也是无可厚非。这一结果直接导致在三种平台的开发,不能写一套代码就能解决。当然有很多工具可以使它们使用不同语言开发 AP ,比如 Mono 可以让 c# 跨平台, Rhomobile 的 Rhodes 、 Nitobi 的 PhoneGap 、 Appcelerator 的 Titanium 和 Ansca 的 Corona 等。
然后这些仿真器却不是最佳方案,因为运行一个兼容性框架会过度消耗性能在有限的移动处理能力上,这是用户所不能接受的。
封闭系统 VS 开放系统
Android :众多 OEM 厂商都选择了 Android 正是看中了其足够开放,可供定制个性化的系统。并且 Android 有 着不仅是手机操作系统的丰富产品线:智能电视、车载设备、家庭安防、家庭物联、物流设备等。这就给开发者更多选择的机会,就业机会也会大大增加。但由于其 足够开放,导致了手机平台的不统一,规格不一,导致开发者在开发一款应用时所要维护的时间会比另外两个平台花费的时间要多得多。
IOS : 作为苹果的移动操作系统,该平台一直是封闭的,是专门为苹果自己的设备创建的,开发人员有己知的目标设备范围,有明确的功能和局限性范围。而 jobs 也说过,作为 IOS 开发者只需要考虑两个版本的维护。说过产品线性, IOS 有 IPHONE 、 Ipod Touch 、 Ipad 这三个平台可以作开发,其中 Iphone 和 Ipod Touch 是一致的,而 Ipad 屏幕尺寸较大,只需在 Iphone 的基础上调整好应用的尺寸即可,当然屏幕大小导致用户体验不同,对应的 AP 会也不同。
Windows Phone 7 :微软这一系统明显是借鉴了 IOS 的开发模式,也是一封闭系统,他只支持两种屏幕大小,所以要维护自己的 AP 也是比较轻松的。目前该平台只做手机平台而存在,市面上并没有其他各类的产品使用该系统,开发者选择性会小点,但好在与 Nokia 合作市场不用担心 。
学习资源和测试工具
提高开发速度也是开发者选择一个平台衡量的重要标准。
Android 是一个开源的产品,有众多的样本应用和开源应用提供下载,但是没有太多中文文档,还有文档不全也是它的一个缺点,但有众多开源应用这一优势学习 AP 开发并且入门比较容易。 IDE 使用 Eclipse ,集成开发环境有丰富的源代码模型,而且源码处理很好。不过 Google 在处理兼容性方面还需努力,有时候插件会死掉,但这个可以忽略,重启 IDE 即可。
IOS 苹果向许多 IOS 开发人员提供了众多开发信息,包括多媒体式,甚至是有 Iphone 或者 Ipad 的开发者可以使用 IBOOKS 免费下载开发书籍。不过相对于国内来说比较心酸,都是些 E 文的东西,很难啃。 IDE 方面,因为我们没有用过,但网上说 XCODE 非常糟糕,用过的朋友可以说说。
Windows Phone 7 众所周知,微软在笼络开发者有一套手法,首先它的学习资源和文档非常丰富。而且在我们国内文档有分中英文文档,入门基本不是问题。而且有 WebCast 这个视频教育平台, MVP 们通过自己的实践经验己视频的方式传授给大家,胜任 WP7 开发基本没问题。 IDE 方面,这个不用我多说,有 Visual Studio 和 Expression Blend 这两大神器。
展望未来
Android 并众多 OEM 厂商拥抱,特别是国内的山寨文化。未来前景将一片光明。而且它将改变很多目前的电器设备的使方式。用户方面偏中、低,当然高端用户也存在较之 IOS 要小。
IOS 苹果将继续为其添加更多酷炫功能,并且引用到其他设备上。用户方面还是抢占着高端用户。
Windows Phone 7 微软和诺基亚合作,诺基亚强大的硬件设计和优秀的营销能力、微软的软件大牛,使得这一系统有很大的潜力和上升空间。
总结
如果开发者单纯想学习 App 开发,最好的选择还是 IOS ,营利模式比较明朗,但是 “ 须 ” 有 MAC 机才能做开发,而不是必须,但最好是使用 MAC 机开发。对于没有 MAC 机的同学,还有在 I 系列价格居高不下的情况下,建议同学选择 WP7 开发,虽然市场营利模式不明显,但其潜力足够大。而 Android 因为用户习惯了免费,除了广告的收入基本可以说没有其他收入。除非公司想做多平台产品推广,例如某一 IM 软件、某一播放器、某一看书软件、某一微博等。
但是如果开发者想做差异化开发,做出有竞争力的产品。不妨考虑一下 Android ,软硬结合的方式可以构建出差异化的产品,但这条路的学习线路很漫长,必须上下层一起打通,没有个几年工夫很难成气候。
开发者可以想想自己需要什么,想做什么,这三个平台都是很有发展空间的,找到自己合适的最重要。不管什么,移动的时代来临了。希望上述能对你投入移动开发有所帮助。
Google的工程师们从来不乏幽默感,他们经常会在产品中嵌入一些笑料,比如谷奥在这里为大家整理的一些:
1. 为Gmail祈祷吧!
大概在2005年的时候,如果你访问Gmail时刚好遇到了系统故障,那么你会看到如上图一样的错误提示:
服务器错误!
Gmail暂时不可用,交叉你的双手祈祷吧!过几分钟再试试看。由此带来的不便我们深表歉意。
2. 用头砸键盘?
在你编辑你的YouTube视频时,你可能会遇到错误,这时候YouTube会建议你……
发生了一些意料之外的事情,请用你的头砸向你的键盘。完成后请起身跑跑圈,挥挥手臂,并且大声尖叫。
好吧,我真的不知道为啥要这么做?不知道YouTube会不会偷偷开启摄像头把你的这些动作都录下来并上传到网站上呢?
感谢读者AvatarQuakeuard投递的图片。
3. 他死了!Jim!
这幅图是在Windows板Chrome当前打开的页面崩溃时的错误提示,原先的图标额头中间中了一枪并鲜血四溅,下面的文字He’s Dead,Jim是《Star Trek》星际迷航里面Leonard H. McCoy伦纳德·H·麦科伊的名言:
麦科伊通常会用“他死了”(He's dead)、“他死了,吉姆”(He's dead, Jim)或其他类似的语句来宣布某人或某生物的死亡;该短语被认为是麦科伊的“招牌台词”。麦科伊的这句台词已经进入了流行文化的隐喻中,用以比喻各种各 样毫无同情心的机器电路;例如为计算机系统添加警告音频的教程,在一出动作英雄游戏中,这句话被用于提示玩家的对手已被消灭。麻省理工学院文学系助理教授 Henry Jenkins亦引用了麦科伊的台词“他死了,吉姆”来作为爱好者们积极参与创造前卫文化的案例:在构建新式神话与新社会群体时,他们通过重复经典台词来 获取愉悦感。凯利曾开玩笑说,这句台词将会出现在他的墓碑上。
而在最近的Chrome版本中,这个图标有所变化,没有那么血腥了,看起来只是被砸晕了:
不过这个提示截止到现在也只能在Windows版的Chrome/Chromium中看到,难道是因为Mac板开发人员不爱Star Trek?
4. 实验凶猛,请勿靠近!
这也是Chrome中的一个提示,进入about:flags的疯狂实验室设置就可以看到。Google告诉你要小心行事:实验凶猛,请勿靠近!(experiments may bite)
1、操作系统
Win7
2、Eclipse(3.6.1)
3、Java SDK(JDK)
jdk-6u24-windows-i586.exe
http://www.oracle.com/technetwork/java/javase/downloads/index.html
4、Android SDK
1)现在SDK
Manager工具
developer.android.com.nyud.net或者http://androidappdocs-staging.appspot.com/sdk/index.html
(由于Android程序开发的官网被抢,这个可作为代替)
下载的android-sdk_r09-windows.zip是一个安装管理软件。
2)下载Android
SDK
解压后,运行SDK Manager.exe程序。选择Available
packages,在右边的对话框中选择并下载自己要安装的SDK版本。
5、设置环境变量
C:\Java\jdk1.6.0_24\bin;D:\android-sdk-windows\platform-tools
★在XP中分隔号是分号“;”,在Linux下的分隔号是冒号“:”。
6、安装Eclipse中开发Android的插件ADT
1)点击help菜单,选择install New
SoftWare(Software Update)。
2)在弹出的Install对话框中输入http://dl-ssl.google.com/android/eclipse/。然后选中Developer
Tools前的多选框,next、next、最后点击finish完成ADT插件的安装。
3)Eclipse重启以后,用户需要设定Android
SDK的位置,执行菜单window->preference,单击preference对话框左侧中的Android选项,在SDK Location填入SDK的位置,如:D:\android-sdk-windows。
安装完成后会有一些视图和工具便于以后调式和监控。
Logcat,DDMS,TraceView
7、建立模拟器
1)运行SDK Manager程序,在虚拟设备的栏下,点击New新建一个模拟器。
2)相应的选择参数和填写名称和大小,其他默认即可,然后点击Create AVD,即可创建一个模拟器。
3)选择新建的模拟器,点击Start按钮,随后点击Launch,就可以启动模拟器了。
4)启动后效果如下(启动会比较慢):
★ 屏幕的横竖方向切换Ctrl+F12/F11