有许多方面需要考虑,关于两个平台的相对限制性。
相对提交流程而言,Android市场无疑比App Store限制更少。好处是你可以将几乎任何想要的东西放入Android市场。缺点是你可以将几乎任何想要的东西放入Android市场(一个充斥着垃圾 "应用程序"的市场在某些方面是一种限制)。
iPhone方面的一个大问题是,安装不在App Store中的应用程序的选项受限 - 你只能将应用程序作为测试版分发(仅限100个用户),或越狱你的iPhone。然而,Android允许你从任何地方安装应用程序,包括网页。
Android平台的核心设计哲学之一是“所有应用程序都是平等创建的”,这意味着你可以自由地用第三方版本替换手机上的应用程序。实际上情况并非如此,因为许多Google应用程序要么具有大多数应用程序不可用的特殊功能(参见:Android市场),要么使用未记录/本机API(参见:日历)。
iPhone则没有关于平等的说法,而苹果的立场是“只有一种方法来做,那就是苹果的方法”。iPhone OS 4.0新增了应用程序可以在后台运行的功能。Android应用程序不能做到的一件事是接收推送通知,但Android 2.2新增了通过Android Cloud接收推送通知的功能。iPhone完全是封闭源代码,最近开发者协议的更改引起了争议,因为它们规定所有提交到应用商店的应用程序必须最初用"Objective-C、C、C++或由iPhone OS WebKit引擎执行的JavaScript编写,并且只有使用C、C++和Objective-C编写的代码才能直接链接Documented APIs。"
Android SDK可以免费下载;iPhone SDK需要免费用户注册才能下载。Android开发可以在Mac OS X、Windows或Linux下进行,而iPhone开发仅限于在Mac OS X下进行。如果您想在实际设备上测试软件(而不是模拟器),还需要支付99美元的iPhone开发者账户费用。
最后但并非最不重要的是用户群体。当本答案最初撰写时,iPhone的用户群比Android多得多,并且增长速度也比Android快。随着Android开始支持多个运营商和硬件平台(请参见:Open Handset Alliance),这种情况正在发生变化。运行Android的设备列表现在相当长,尽管还没有一款设备能与iPhone的受欢迎程度相匹配。
一些分析师现在报告称,Android的销量已经超过了iPhone,并预测Android很快将超过iPhone的市场份额。其他分析师认为,当iPhone 4g发布时,苹果将赶上来。基于个人电脑行业的平行历史,前者似乎更有可能——苹果的设计和用户体验被谷歌微软复制并开放运行在通用硬件上。
不是的!这就是 Android 的优美之处。尽管有类似于AppStore的等效物,但你可以从任何地方下载应用程序。而且,它是使用 Java 编程的,所以你不必担心像垃圾回收这样的乏味问题(只需以速度为代价)。
并不是要侮辱 iPhone。它也是一个很棒的平台。
编辑:很多人指出 iPhone 的 API 不是限制性的,而是审批过程是。这是真的,但是 iPhone 的 API 在低级硬件访问、后台处理(仅在3.0中支持通知)等方面还是有一定限制的。
iPhone 3.0 迈出了正确的一步,但还有一些工作要做。
另外,你考虑过开发 JB 版本的 iPhone 软件吗?我不确定它的市场份额如何,但我确实知道很多人都使用越狱设备。
编辑:我在一些类似问题的帖子中阅读到,由于垃圾回收器的原因,Android 的 Java 可能会降低一些速度。只是需要注意。
iPhone开发并不特别限制。将最终应用程序放在苹果的App Store上是限制性的部分。
如果您正在开发的应用程序遵循苹果关于允许iPhone应用程序执行的指南,那么选择它作为您的初始开发平台似乎是一个易如反掌的选择。 如果违反了苹果的指导方针并且无法修改以遵循这些指导方针,则您的市场将仅限于越狱手机-非常小的子集。
有一些限制...
'Restriction' 可以有两种意思:
个人见解可能有所不同。
是的,Android确实是开源的,你可以将任何东西发布到市场上。但是:
你仍然需要学习如何签署你的应用程序并注意市场上的技术发布要求(如保持适当的版本ID等)。
如果你真的想要从/向任何人发送一个包,那么接收者(称为APK文件)需要知道如何使用命令行工具叫做 'adb' 来管理他们的手机以安装和卸载应用程序。这很容易做到,但是你需要安装Android驱动程序和 SDK 工具。
为了公平起见,iPhone开发模型也可以相对容易地分发测试版本的应用程序,尽管可能不像Android那样容易。你的测试人员需要在设备连接时从iTunes获取一个特殊的设备ID,然后你创建一个包含所有测试人员密钥的许可文件,并将其与应用程序发布目录一起分发。用户然后通过iTunes安装你的应用程序。