安卓系统倍受诟病的就是卡顿问题,甚至是死机,另一方面,很少听到说IOS卡顿的,死机更是少见。今中午还和舍友讨论网络连接速度呢,他们测试说IOS甩安卓一条街啊,不禁想,为什么?

    没有安卓开发经验,也不会OC,只能在网上找答案了,在此粗略总结下,也谈谈自己的感想。

    1、架构的区别
        IOS优先处理手机屏幕事件(通过中断?当然安卓系统应该也是通过硬件中断来识别事件,区别是对事件的处理),然后调用系统的相应服务组件进行处理。而安卓则不同,有的活得应用自己干,系统只提供了最基础的有限的支持。

        这让我想起当时面试时问面试官为什么苹果手机的响应速度快,面试官说,人家把屏幕滑动这个处理都做到硬件了去了,能不快么?!是不是真的不知道,反正人家就是牛!

    2、硬件

        之前只是道听途说的知道苹果的硬件很不错,查了查,相当不错啊。
        因为整个开发环境的封闭,苹果对整个运行环境进行了优化,从GCC编译OC的代码,再到GPU加速,保证程序高效率的运行。说到GPU,就想起了森博,想起了那会我们谈论的问题,他想做一个平台,让程序员可以无缝的从CPU开发环境切换到GPU环境(是不是这么个意思我不是很确定,时间长了也忘了),为什么?

        现在的安卓机在宣传时,吸引人眼球的就是八核,真八核,3G RAM,4G RAM,骁龙801 骁龙810等等,而苹果则宣传的是服务(最起码我没看到人家宣传硬件,可能是我屌丝)。一个需要注意的点是核数多不一定程序就运行的快(有一个加速比的问题),因为集成度的瓶颈以及程序内部依赖性限制,单纯的靠提升核数显得不那么合理。这里又想起了森博做的GPGPU了,很诱人,为什么,PC端一个CPU8个核已经很多了,但是GPU轻轻松松几十个,几百个(赶紧引用知乎原文,被打脸好痛https://www.zhihu.com/question/22387050

        硬件种类的多样性也为开发者和系统设计者带来了问题,为了兼容性不得不做出一些让步。又想起了自己做的东西上线前的兼容性测试,IOS就是个bug,都可以不用考虑兼容性了,上!好兄弟安卓则不行,会出现各种各样的问题,AR不支持了,摄像头不能打开啊等等~

        3、开发语言

        IOS使用OC作为开发语言,安卓是Java,大家在讨论安卓系统时经常说因为Java虚拟机的使用,程序的执行路径多了一个虚拟机,所以速度比较慢,这不能说不对,但是现在的安卓系统已经进行了优化,这一点的差距在逐步缩小。有个内存自动回收编程就是爽。

        由于是非专业人员,上述陈述肯定有不对的地方,欢迎大家不吝赐教!

        PS:对她说声抱歉!

        附上参考链接
        http://www.raincy.org/depth-of-more-the-android-and-ios-you-know/
        http://www.ithome.com/html/iphone/30977.htm

    
10-11 08:17