background image

iOS 那个好?应该先往哪个上面投入资源?多次被人问到此类问题,笔者刚好自己的项目也需要考虑 iOS 版本。

就索性进行了一番调研,于是有了本文(本次不讨论越狱的

iOS)

首先从情感上,你喜欢哪个就好,就像百事可乐和可口可乐,当然这个比喻不是很恰当,因为可乐喝起来几乎一
样,但是

Android 和 iOS 还是有很大差别的。

iOS 来源于 Apple 的 OSX,是 UNIX 系统,OSX 已经有差不多 10 年的历史,从内核底层到软件架构都是逐步发展
过来的。

iOS 使用 ObjectivC 这个古老的语言来做开发。而 Android 是 Google 基于 Linux 搞来的,严格意义

上讲

Android 并不是一个 Linux 系统,它没有 Linux 的 xwin,没有 glibc,缺乏一整套标准的 Linux 程序。

Android 应用绝大部分都是使用 JAVA 开发,跑在 Dalvik 虚拟机上(一小部分使用 NDK

 

)。

Google 在底层也

修改了很多东西。

Android 算是一个全新的操作系统. 所以:

?

Android 使用 JAVA,上手容易很多,如果有很好的 JAVA Lib

 

加持,开发效率会高些

?

iOS 没有虚拟机,性能要好一些,当然这个差别会随着 Google

 

的改进越来越小

?

iOS 的开发框架基本上和 MAC 上通用,同样的知识,可以开发手机,也可以开发 MAC 应用,Android 没

有这样的优点
iOS 和设备紧密集成。软硬件一家公司通吃。但是 Android

 

无法做到, 通常的情况是:

Google 放出源代码。 

芯片厂商需要

1-3

 

 

个月来做自己的芯片方案, 手机厂商从芯片厂商处买到方案和代码, 进行自己的集成,定制工

 

 

作,有时候还需要针对运营商进行定制。 所以:
?

iOS 的设备集成度和驱动优化都是最好的。电源管理一块就可见一斑,而 Android 厂商就鱼龙混杂。可

能排头的厂商的旗舰机器会好些,但是由于

Android 工期一般都比 iOS 设备短(请看 HTC 和三星出机器的速

度),所以整体上和

iOS

 

比是有差距的。

?

Android

 

天然存在升级周期延迟的问题, 而且厂商做升级是也是有成本的。卖手机的厂商无法顾及整个

生态链,目前这个无解,除非

Google

 

做点什么。

?

由于有多家厂商自己做定制,

Android 还存在设备的分裂问题(fragmentation)  

, 作为过来人,我告

 

 

诉你这个是很头痛的事情, 且不论调试时间和人力, 光买一大堆设备的成本就不小。最关键的是它会伤美工

/UE

的心。
iOS 是被 Apple

 

 

严格控制的系统。 在大部分情况下, 第三方应用是无法拿到所有

API

 

的。 这意味系统级别的很

多功能只有

Apple 能做(比如打电话,拦截短信)。此外一些涉及用户隐私的 API 还会导致系统弹出对话框询问

 

用户。 同样第三方

runtime 做应用开发也是基本不可行的(Flash

 

当初也是被这个条款拒过)。 反过来

Android 完全不一样,首先 Android 是开源的,在设计上 Android

 

就允许自由替换系统组件,

Android 也没

有强制限制

API 的情况,(hidden API 也可以 call

 

,没有人会找你麻烦)。 系统级别的权限是下放到厂商手

 

中,如果厂商愿意给,那第三方开发者就可以做任何事情。 普通应用的权限认证也是在安装的时候就一次性授权

 

 

完成。 之后不会骚扰用户。所以:
?

Android 平台可以做的事情远远比 iOS

 

多, 你可以做电话管理,地址簿,短信管理,可以自己跑后台

service  

 

。 替换掉系统的组件非常容易

?

Android 平台也可以跑其他系统的 Runtime  

, 比如

Flash  

, 有了

NDK  

, 你要自己接入一个虚拟机也是

可能的。

Google

 

不会管你

?

任何人可以拿

Android 自己改个独立的系统出来,也许这样做的意义和前景有问题,但是同样,没有人

限制你
iOS 上唯一的下载应用途径就是 Appstore,开发者做应用上线还要通过 Apple 审核,就算通过了,如果挂羊头
卖狗肉乱来或者调用了不该用的

API  

Apple 一样随时可以下架。管理非常严格。反过来 Android 上非常松懈:

1.

厂商可以内置应用。经常会扔一些莫名其妙的软件预装在手机上

, 笔者在厂商的时候深刻体会到乱选软件

 

是很好玩的事情。而且我们不会让你删除掉的。
2.

Google

 

的官方菜市场不做应用审核,开发者上传软件很随意,这是个自由市场。

3.

国内还存在大量第三方软件菜市场。以及豌豆夹类似的

PC

 

端管理软件。

4.

如果用户选择允许 未知来源 ,那么通过

web 下载或者安装卡上的软件也是可以的。似乎国内用户都是允

许的。所以:
?

iOS

 

上的精品软件多,竞争激烈但管理有序,开发者也容易挣钱。

?

Android

 

 

上虽然也有精品软件,但是垃圾软件更多, 甚至有恶意软件。 因为无门槛,基本上软件都是免

 

 

费,卖不起钱, 大部分都靠广告。
?

Android

 

还有一堆杀毒软件,这是典型的 没有困难,制造困难也要上 的精神。

?

Android

 

上还有一堆安慰剂软件,比如能帮你省电的或者是帮你杀后台进程的来提升性能的, 笔者作为

做过底层开发的人,笑而不语。

 

 

 

写了这么多分析, 结论呢? 事实上你是什么样的角色,决定了用谁更好。
?

 

 

如果你是普通用户,请关贴, 本文不是用来给普通用户选机的。

?

  

如果你是一个个人软件开发者,

iOS

 

 

 

适合你, 市场规范, 做应用省心。

?

 

如果你是一个软件和服务的创业公司,

iOS 也是适合你做 demo

 

的和第一个产品的, 产品靠谱了,用户

在用了,有人给钱了,再往

Android

 

走也是可行的。 除非你做的应用要涉及硬件或者需要非常高的系统权限,

 

如果是那样你也只有选择

Android

 

。因为国内的厂商肯定要比苹果要容易谈下来。

?

 

如果你是一个要做硬件和系统定制的公司, 那么基本上你只有

Android 可以选。Android 的解决方案