我应该学习哪个移动平台?

27

我应该学习哪个移动平台呢?关键在于:

  • 易用性
  • 平台的普及程度
  • SDK和实际手持设备的低成本
22个回答

21

Android

安卓操作系统。 该系统使用Linux内核。 开发软件所需的SDK是低成本(免费)的。 Java语言是一种相当流行的编程语言。


6
你能解释一下Linux内核在这种情况下的优势吗?因为你好像只是因为自己是粉丝才提到它。 - Stilgar
2
@Stilgar 你可以使用 NDK 编译 C/C++ 应用程序,因此 Linux 内核 = 手机上的 POSIX = 大多数代码应该可以在其中正常工作,无需特别注意。 - Migol

20

我认为未来只有3-4个平台值得看好。但这取决于你喜欢哪个平台以及你在分发应用程序方面的自由度 :)

  1. Windows Phone 7
  2. Android
    • Java
    • 可以通过Android Market(需要收费)或像正常应用程序一样分发
  3. iPhone
  4. Windows Mobile (我的最爱)
    • C++ 或 .NET
    • 免费分发,就像普通应用程序一样
    • Microsoft 也有自己的市场 - 这里
  5. Java

1
我自己也是一个WM开发者。你的回答让我感到温暖。 - MusiGenesis
5
在Android上发布应用程序是不需要付费的,因为你实际上不必通过市场来分发。你可以像在Windows Mobile上一样进行分发。 - GWLlosa
20
哇,我没意识到你需要同时拥有 Mac 和 iPhone。我想我得开始和 emo 女孩约会了。 - MusiGenesis
4
作为唯一需要OEM付费的平台,Windows Mobile几乎注定要失败。如果你遵循这个建议,你将会冒险。除了故意使用所有平台的三星外,最大的OEM厂商们一直都避开WinMo。最大的WinMo制造商HTC现在非常热衷于Android,而微软已经转向了LG。但是,询问其它所有由微软支付制造手机的OEM厂商,你会听到同样的故事——这是一场噩梦。LG也会发现这一点并放弃该平台。 - Mark Wilcox
7
如果您销售 iPhone 应用程序,还需要向苹果分享 30% 的收入。 - Joshua Partogi
显示剩余7条评论

16

现在,诺基亚已经收购TrollTech(Qt)来创建一个伟大的移动平台,建立在Symbian之上。你会认为,开源社区至少应该提到它。

相比其他所有操作系统,Symbian拥有巨大的市场。Qt是KDE的支柱,可以轻松进行跨平台开发,并且设计非常出色。

你会认为:

  1. 一个巨大的市场
  2. 一个伟大的、使用LGPL协议的跨平台框架
  3. 一个应用商店

这些将是未来的热门,只等待爆发。与成千上万的其他应用程序中的一个相比,你肯定有更好的赚钱机会,而用户也期望支付不超过0.99美元。

Symbian也开始走向开放代码的道路。实际上,随着Qt移动平台的成熟,底层操作系统可能并不那么重要。


许多人对塞班系统的无知真是令人震惊。尽管它可能不是目前最受欢迎的操作系统,但它被忽略在像这样的问题的被接受答案中,这让你想要向人们传达一些现实。 - Dynite
@Dynite:Symbian在美国基本上没有任何影响力,因此美国人不认真对待Symbian并不令人意外。 - MusiGenesis
当然,但是它们通常会针对全球市场进行定位(或者至少你期望大多数应用程序都会如此)。作为备选方案,Ovi Store 最近已经证明为开发人员提供了最佳的投资回报。 - Dynite

14

这很简单(即使对于像我这样的Windows Mobile开发者):

iPhone

该设备底层技术并没有什么特别之处,但是苹果提供了一个方便且合理的机制来支付开发者,同时将设备锁定到一定程度,以至于软件盗版几乎是不可能的[更新:或者显然只是困难的]。谁不想为一个快速增长的市场编写软件呢?

6或7年前,Windows Mobile设备本可以做到这一点,但是......


8
另一位 WM 开发者给出了+1 的支持!唯一的问题是需要使用苹果电脑。 - stevehipwell
2
也许我应该说“尤其是对于Windows Mobile开发人员来说…” 仍然让我感到恼火的是,微软本可以在苹果之前几年就做出类似iPhone的产品,但他们并没有那么做。 - MusiGenesis
4
iPhone软件盗版并非“完全不可能”,实际上相去甚远。 - Petey B
@Migol:我现在从事iPhone开发,我完全同意你的最后一句话。就好像苹果特意设计了一个开发平台,几乎可以保证应用程序会经常崩溃。 - MusiGenesis
@MusiGenesis,这些应用程序并不是真的有bug,它们大多数都是高质量的,但很多应用程序具有相同的功能,这意味着我必须为每个应用程序付费以检查哪一个最适合我。 - Migol
显示剩余5条评论

9

受欢迎程度:全球数据显示,Java ME明显领先于其他所有技术。Symbian排名第二,但与Java ME相差甚远。iPhone排名第三,距离第一更是遥远。然而,如果你的目标是一个大陆、一个国家或者某种语言,情况可能会发生巨大变化。

开发便利性:Objective-C很酷也很强大,但请记住它已经有20年历史了。iPhone开发容易,但Android同样简单、免费且支持多平台。Java ME非常困难,除非你针对非常有限的不同手持设备模型进行开发。本地Symbian OS C++在市场上声誉最差,但它正在逐年逐寸地抓回来。Symbian还有一个巨大的优势,让您可以选择使用哪种语言进行开发。

工具成本:Java ME是最便宜的,其次是Symbian、Android和iPhone。

其他标准:好吧,很多取决于你想要开发什么应用程序。

没有提到Palm的WebOS,因为从商业角度来看,它几乎没有什么份量。


1
某物已经二十年了有什么问题呢?这本身不是一个理由。 - John Topley
1
我想补充一点,这里的大部分人可能都超过20岁了。我们称他们为“成熟”或“有经验的”。对于Cocoa、BSD等也是同样的情况。 - jbrennan
抱歉,我的错。我并不是想说20年前的技术不如现代的技术有价值。我主要想提醒人们注意这个事实,因为往往会对耀眼新事物过度炒作。 - michael aubert
+1 代表“Objective-C 老掉牙”-它真的很老,就像是老式的一样。就我个人而言,我很喜欢有编译器和垃圾收集器。 - MusiGenesis

6

搜索谷歌以了解智能手机市场份额。下面是一份来自Gartner的报告。简而言之,2008年销售统计数据如下(销售数量以千为单位):

Operating                2008        Market          Growth
System                  Sales         Share       2007-2008
-----------------------------------------------------------
Symbian              72,933.5          52.4%           -6.1
Research In Motion   23,149.0          16.6%           96.7
MS Windows Mobile    16,498.1          11.8%           12.2
Mac OS X             11,417.5           8.2%          245.7
Linux                11,262.9           8.1%           -4.2
Palm OS               2,507.2           1.8%           42.2
Other OSs             1,519.7           1.1%           13.1
-----------------------------------------------------------
Total               139,287.9         100.0%           13.9

所以,阅读此文,塞班设备是最大的市场。 iPhone 和 BlackBerry 是快速增长的平台。 Android 去年才进入市场,因此很难说它会变得多受欢迎。
我的选择将是:

  1. iPhone-因为它是最统一的平台-相同的显示和键盘,类似的其他功能。如果您决定专业化,非常受欢迎的网络商店。快速增长的市场份额,在未来一两年可能成为第二名。缺点是需要 Mac 计算机进行开发。
  2. BlackBerry-不同设备的数量相对较少(不同的分辨率,不同的键盘),但由于需要考虑这些因素,它使开发变得更加复杂。销售数量排名第二,保持着非常高的增长率。
  3. Symbian-手机数量远远超过其他品牌(诺基亚、三星、夏普、索尼爱立信等),并且有许多不同的硬件配置。每个供应商都有自己的开发人员计划,您需要加入才能获得设备特定的 SDK。
  4. Windows Mobile-仍然销售大量设备,具有非常好的开发工具。
  5. Android-?暂停,直到它获得任何显着的市场份额。

编辑:
关于 Mac 的评论:

  • 最便宜的Mac Mini(1 GB RAM,120 GB HD)不带鼠标、键盘和显示器,成本与中档 Dell 或 HP 笔记本电脑相当(599美元)。因此,最少需要用于开发的硬件成本至少是基于 Windows 的系统的两倍。与任何其他智能手机平台相比,iPhone 开发需要更昂贵的设备。


关于 Symbian 的评论:

我了解symbian.org 和开源计划。但是:

  1. 该过程非常慢。它在一年多前(2008 年 6 月)开始,现在仍处于测试版。这是一项涉及到非常大的公司之间的交易,并且可能要花费一些时间才能达成最终协议。
  2. 现在,如果您想为 Symbian 设备进行开发,您需要转到每个供应商的开发人员网站以获取文档、示例、SDK、工具等。
  3. 如果您计划专业化,每个供应商都有自己的商店和一套规则,您需要遵守。

1
为什么要求使用 Mac 是一件坏事呢?它们是非常棒的计算机,并且不能假设每个人都使用 PC! - John Topley
2
我赞同John的评论。Mac是一流的硬件,运行一流的(Unix)软件。开发、接口和调试工具(顺便说一句,全部免费)非常强大,值得购买Mac Mini的价格(如果你没有更多的预算)。 - jbrennan
4
如果您还没有Mac,但有一台PC,那么明显的缺点是成本。 - ctacke
2
如果不是因为需要一台Mac电脑,我现在就会开发iPhone应用了。所以我认为这是一个缺点,但显然并不适用于所有人。 - Petey B
这是两年前的数据,已经过时了。现在Android市场很大,和iOS一样,Symbian正在快速下滑,而WM则保持不变。 - Migol
显示剩余2条评论

5
移动客户端编程一直是一场噩梦。移动世界的碎片化加剧了在桌面/服务器市场遇到的任何问题。
如果你的目标是作为小型开发人员赚钱,你应该尽可能地集中精力。为此,iPhone 是唯一的选择,测试、移植和在 J2ME、Symbian 或 Windows Mobile 上认证您的应用程序成本非常高,很快就会超过这些平台的潜在市场优势。
您还需要考虑您将要开发的应用程序的技术要求。例如,虽然 J2ME 在更多的手机上得到“支持”,但安全模型限制了 J2ME 的有用性,如果您想做“酷”的事情,至少对我来说这一直是一个问题。JSR 的碎片化支持也是一个主要问题。J2ME 可以在许多非智能手机上运行,但是这些手持设备是否支持您想要的功能呢?

同时考虑您的目标受众在手机分布方面的情况。潜在用户的位置、收入和年龄将极大地确定您可以和应该针对哪些手机。

根据我的经验,在塞班、Windows Mobile 和BREW上进行移动应用程序编程是一场失败的战斗。在J2ME上,这是一场组织上的噩梦。但许多人正在苹果应用商店上赚钱。现在诺基亚也有Ovi… RIM 有一个商店,Windows Mobile 将会有一个商店…也许苹果的成功将促使其他手机厂商开始行动并使其更容易。

关于您对手机成本的标准的说明:MTK(大多数中国/台湾山寨手机)将是最便宜的选择,但您只能在制造时安装在手机上,因此这不是一个真正的选择... Java手机可以很便宜,但是移植问题很麻烦。我曾经为一家国际公司工作,他们每年都要花费超过50万美元用于手机采购和客户端移植,因为他们必须在每个新的Java手机上测试他们的应用程序,甚至是相同的手机使用不同的固件(只需在Wurfl中输入N95,您就可以看到欧洲运营商安装自定义固件时可能会有多少不同的固件,因此Vodafone UK和O2 UK N95 不是相同的手机。)Windows Mobile也可能是一样的,每个新版本都有不同的API,并且OEM会更改事物...如果您计算获取甚至几个Java或Windows Mobile手机的成本,以确保您的应用程序可以在不同的操作系统版本和固件上运行,那么您已经花费了一笔可观的资金。还不如买一两个iPhone。

那么,我的建议是什么呢?

  1. iPhone
  2. Symbian(2和3可以根据您需要的功能进行切换)
  3. J2ME
  4. Windows Mobile
  5. Android
  6. BREW(如果您在美洲)
  7. RIM
  8. Flash
  9. MTK

4
以下是未来受欢迎平台的排名:
1)iPhone 它具有三重壕沟,任何人都必须跨越这些壕沟才能赶上——配件、应用和硬件附加件。
可以在各处找到 iPhone 和 iPod 的配件。现在许多酒店客房都有 iPhone/iPod 对接收音机...
当然,苹果在应用方面占据了领先地位,但领先优势要比表面上看起来更大,因为除了所有应用之外,现在还有无数具有 iPhone 经验的开发人员。当然,有一些最初的应用是毫无意义的废话,但现在已经有无数类别的团队致力于开发真正的应用程序。
最后一个壕沟是新的,但没有人能够接近做类似的事情,那就是 3.0 版本允许公司建立特定设备并通过蓝牙和对接连接器与其通信的能力。TomTom 车载 iPhone 底座(不仅是底座,还有一个更强大的 GPS 接收器,TomTom 应用程序可以利用它)是这方面的冰山一角。医疗设备、分析工具等。
2)Palm Pre Palm Pre 的优势在于很多想要坚持使用 Palm 的用户有一个很好的升级路径,而且 Pre 也具有 Apple 的优势,即他们正在自己建造一种单一设备,这使得更容易构建可以充分利用平台并与设备哲学非常契合的应用程序。只是 SDK 的局限性阻止了更大量的应用选择,但我认为我们会看到这个平台不错地发展壮大。唯一的危险是,我能看到 Microsoft 收购他们,然后他们就完蛋了。
3)Android
Android 有更多的设备优势。但这也让构建和测试应用程序变得更加困难,并编写最好利用特定功能的应用程序。我认为在三年内,Pre 平台上会有更多的应用程序使用,而不是 Android 平台。
为了开发的便利性,我将 Pre 排在第一位(除非你对 CSS 不是很熟悉),iPhone 排在第二位,Android 排在第三位(仅仅因为没有像 iPhone 那样大量的资源可帮助您进行 Android 开发,它拥有和 iPhone 一样大的框架集来让事情变得容易)。
Symbian 和 Windows Mobile 简直就不在游戏中。除非他们收购这三个之一,否则作为移动软件的重要平台就结束了,尽管现在可能有多少设备(请参阅:Android 与设备范围相关的问题)。他们也没有这三个平台拥有和日益增长的框架或 IDE 的丰富度。

3
“未来的流行程度排序”?你有一枚时间回溯装置吗?Symbian的销量超过这三个系统的总和,并且远高于此。而对于移动设备未来的发展,我不会打赌任何事情--它变化很大,而且变化很快。而说WinMo没有“IDE丰富性”,说明你从未使用过Visual Studio。 - ctacke
iPhone可能永远是一款高端设备,市场份额有限但非常赚钱。这意味着高收入的消费者可以在廉价的新奇应用程序上花费大量资金-所以并不全是坏事,但不要指望它会征服世界。Palm Pre目前只是炒作,因此这是一个勇敢的预测。您也可以在所有其他平台上开发Web应用程序,因此我看不出优势在哪里。请注意,Symbian正在获得Qt,这是比UIKit/Cocoa更好的框架。 - Mark Wilcox
@ctacke - 我使用过Visual Studio。请注意,我说的是框架或IDE的丰富程度之一 - 在Windows Mobile中,他们有一个强大的IDE,但框架水平还不如其他平台,甚至不如Palm! - Kendall Helmstetter Gelner
@Mark - 现在Palm Pre已经发布,虽然数量有限,但我们对其环境有了更多了解。不能说“你可以在任何设备上开发Web应用程序”,因为Pre使用Web语言编写我所谓的“本地解释应用程序”。它们具有一系列系统调用,以一种其他平台上的“Web应用程序”要么没有,要么以更有限的方式(如iPhone)实现的方式进行调用。 - Kendall Helmstetter Gelner
Palm Pre 还没开始就已经死了… - Robert Koritnik
我不会轻易放弃!这些事情需要一点时间。现在你看不到的是有人购买技术以重新加入游戏... - Kendall Helmstetter Gelner

4

只需要注意此问题右上角的标签计数,就可以得到一个子集人口(在stackoverflow.com上),了解哪些标签更受欢迎。

截至我的评论时,标签计数如下:

  • iphone × 4829
  • windowsmobile × 606
  • android × 523
  • j2me × 301
  • symbian × 106

还有其他因素,当然。您喜欢为Windows Mobile编写而不是iPhone或J2ME吗? 您是否了解J2ME但想进入iPhone开发领域? 我认为没有一个“正确”的答案,但标签计数确实说明了一些关于流行度的事情。


是的,他们说了一些关于开发者受欢迎程度和其他讨论网站的可用性的内容。在Forum Nokia上有成千上万的Symbian和Java ME帖子,在邮件列表中也有很多Android讨论——而iPhone的替代品并不那么受欢迎......此外,开发者的受欢迎程度并不一定是判断某个东西是否会赚钱的方法。实际上,在一个拥挤的应用商店环境下,情况恰好相反。 - Mark Wilcox

3
我不是很喜欢塞班系统。iPhone的流行和易用性使其变得完美。
我也听说过Android是一个很酷的开发平台,但我自己还没有尝试过,而且它还不是很流行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接