从事软件开发多年,我主要使用c++/c++和java进行开发,涉及ios、android、windows和塞班四个系统的开发。除了ios系统外,其余三个系统我都有深入的开发经验。其中,我在android系统上花费的时间最长,研究过其中间层的framework框架,并从事过两年的应用级开发。从技术角度来看,尽管windows系统不是开源的,但由于其庞大的用户群体,经常受到病毒的侵扰,但通过打补丁的方式可以有效避免这些问题,而不影响整体使用。基于此,我认为windows的框架兼容性非常强,且在pc端依然占据主导地位。虽然linux系统在早期对微软构成过威胁,但整体影响不大。
iOS系统是一个闭环系统,比微软的闭环更为严格,直接控制软硬件全部自家生产,因此在用户体验上具有显著优势。应用市场也只能使用苹果的,所有的规则都是由苹果制定的。加上乔布斯早期对产品的执着,使得iOS一经推出便呈现出统治性的地位。然而,目前iOS市场整体在缩小,因为随着Android系统性能的不断优化和苹果手机体验的逐渐接近,一些用户不再唯苹果是从。iOS系统的优缺点都表现得非常明显。
Android系统在初期用户体验和性能方面表现一般,且受限于当时的硬件配置。但苹果公司持续优化,不断增加新功能,加上硬件的不断提升,Android手机的体验越来越好。Android系统实际上是在Linux基础上构建的新系统,早期由于引入了JVM机制,导致执行性能较差。针对这个问题,谷歌做了大量工作,华为的方舟编译器也重点解决了执行效率问题。一旦性能问题得到解决,Android与iOS之间的差距就大大缩小了。任何系统都需要时间积累,最初的Android系统在HTC手机上的体验确实一般,但谷歌持续不断地更新和加强研发力量,现在已经成为全球第一大移动操作系统。通过Android,谷歌获得了巨大的经济收益。然而,美国的禁令迫使华为取消了谷歌的授权,这可能导致移动操作系统出现分水岭。华为被迫研发自己的操作系统,并借助自己的生态链体系,这有可能对谷歌的Android产生巨大冲击。毕竟,华为在消费电子领域已经深耕多年,这是谷歌比较忌惮的地方。
谈到塞班系统,只能感到遗憾。塞班系统在用户体验和开发易用性上,明显还停留在传统手机的影子中,距离智能手机还有很大差距。由于从事软件开发的缘故,我也研究过一段时间的塞班系统,感觉它过于程序化,创新方面有所欠缺。特别是当初为了一个签名而陷入被动,可能是因为当时的诺基亚过于强大,创新意识有所不足。
这四个系统从技术角度上各有千秋。从开发者角度来说,我更喜欢Android,因为其代码是开源的,可以从源码中汲取很多编程知识。尽管代码更新速度很快,大部分时间难以跟上思路,但可以从中学习到很多模块设计理念,理解其运行机制和原理。当然,我更希望国内能有自己的移动操作系统,这样在关键时刻不会被卡脖子,希望这些信息对你有所帮助。