`
agan112
  • 浏览: 70559 次
  • 来自: 金陵那平
社区版块
存档分类
最新评论

ios与android的比较

 
阅读更多
Android和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没有虚拟机, 也没有GC,性能要好一些,当然这个差别会随着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上非常松懈:
厂商可以内置应用。经常会扔一些莫名其妙的软件预装在手机上, 笔者在厂商的时候深刻体会到乱选软件是很好玩的事情。而且我们不会让你删除掉的。
Google的官方菜市场不做应用审核,开发者上传软件很随意,这是个自由市场。
国内还存在大量第三方软件菜市场。以及豌豆夹类似的PC端管理软件。
如果用户选择允许“未知来源”,那么通过web下载或者安装卡上的软件也是可以的。似乎国内用户都是允许的。所以:
iOS上的精品软件多,竞争激烈但管理有序,开发者也容易挣钱。
Android上虽然也有精品软件,但是垃圾软件更多, 甚至有恶意软件。 因为无门槛,基本上软件都是免费,卖不起钱, 大部分都靠广告。
Android还有一堆杀毒软件,这是典型的“没有困难,制造困难也要上”的精神。
Android上还有一堆安慰剂软件,比如能帮你省电的或者是帮你杀后台进程的来提升性能的, 笔者作为做过底层开发的人,笑而不语。


写了这么多分析, 结论呢? 事实上你是什么样的角色,决定了用谁更好。
如果你是普通用户,请关贴, 本文不是用来给普通用户选机的。
如果你是一个个人软件开发者,  iOS适合你, 市场规范, 做应用省心。
如果你是一个软件和服务的创业公司, iOS也是适合你做demo的和第一个产品的, 产品靠谱了,用户在用了,有人给钱了,再往Android走也是可行的。 除非你做的应用要涉及硬件或者需要非常高的系统权限, 如果是那样你也只有选择Android。因为国内的厂商肯定要比苹果要容易谈下来。
如果你是一个要做硬件和系统定制的公司, 那么基本上你只有Android可以选。Android的解决方案的成本也在不断下降。
如果你是一个有中国特色的公司,想搞点移动业务玩玩, 还要瞒着用户做很多事情。  那么Android也是更好的, 就算你不作恶, 控制权在自己手中也会方便运作一点。
分享到:
评论

相关推荐

    ios与android比较.doc

    【iOS与Android比较】 iOS和Android是两大主流的移动操作系统,它们各有特色,适用于不同的用户群体和需求。从软件硬件的结合、设备数量、开发难度和技术制作工艺等多个方面,我们可以深入探讨这两个系统的差异。 ...

    ios与android比较.pdf

    【iOS与Android比较】 iOS和Android是两大主流的移动操作系统,它们各有特色并主导着智能手机和平板电脑市场。iOS由苹果公司自主研发并应用于其iPhone、iPad等设备,而Android则是Google开发的开源操作系统,被广泛...

    Bluetooth LE for iOS and Android v2.3

    与iOS类似,Android版本的插件同样支持后台操作,确保了用户体验的连续性。 在使用Bluetooth LE for iOS and Android v2.3时,开发者需要注意以下关键点: 1. **设备配对和连接**:在扫描到BLE设备后,开发者需要...

    DelphiXE8iOS与Android移动应用开发教程[完整中文版]分享.pdf

    Delphi XE8 iOS与Android移动应用开发教程[完整中文版] Delphi XE8 是一款功能强大且灵活的移动应用开发工具,能够帮助开发者快速构建高质量的移动应用程序。以下是 Delphi XE8 iOS 与 Android 移动应用开发教程的...

    Delphi XE8 iOS与Android移动应用开发(APP开发)[完整中文版]

    Delphi XE8 iOS与Android移动应用开发(APP开发)[完整中文版],这是一本不可多得的介绍使用delphi xe8开发iOS与Android移动应用的电子书,实用的技术开发教程与技术开发手册。 Delphi XE8跨平台开发让你使用一套...

    Bluetooth LE for iOS and Android v2.3.unitypackage

    总结来说,"Bluetooth LE for iOS and Android v2.3.unitypackage"为Unity开发者提供了一套完整的BLE解决方案,通过它,开发者可以轻松地将Unity项目与各种BLE设备连接,实现跨平台的物联网功能。在实际开发中,理解...

    Delphi XE8开发iOS和Android移动应用开发教程[完整中文版]

    ### Delphi XE8 开发 iOS 和 Android 移动应用知识点总结 #### 一、Delphi XE8 概述 - **RAD Studio**: RAD Studio 是 Embarcadero 公司旗下的集成开发环境 (IDE),它支持多种编程语言,包括 Delphi、C++Builder ...

    Bluetooth LE for iOS and Android 2.3.rar

    Unity Bluetooth LE for iOS and Android 2.3. Bluetooth LE for iOS and Android 2.3 unity3d移动端蓝牙U3D插件下载

    Bluetooth LE for iOS, tvOS and Android

    这是针对iOS,tvOS和Android的蓝牙低功耗(BLE)的非常简单的功能实现。点击创建BLE中央管理器以访问蓝牙功能。此插件可用于游戏和任何其他Unity应用程序。 包括连接到RFduino和TI SensorTag设备的示例,还包括来自...

    Axure IOS & Android部件库

    "Axure IOS & Android部件库"是专门为iOS和Android平台设计的一套组件资源库,包含了这两个操作系统特有的控件和界面元素,从而极大地提高了设计师的工作效率。 首先,我们来看标题中的“Axure IOS & Android部件库...

    iOS与Android通用AES加密

    "iOS与Android通用AES加密"是一个针对这两个主流操作系统实现的数据加密方案,确保信息在传输和存储过程中的安全性。 AES(Advanced Encryption Standard),即高级加密标准,是一种广泛使用的对称加密算法,因其...

    使用ncnn在ios+android上部署yolov5源码+详细说明.zip

    使用ncnn在ios+android上部署yolov5源码+详细说明.zip使用ncnn在ios+android上部署yolov5源码+详细说明.zip使用ncnn在ios+android上部署yolov5源码+详细说明.zip使用ncnn在ios+android上部署yolov5源码+详细说明.zip...

    ios与android规范交互差异总结.pdf

    在长按与3DTouch方面,iOS的长按功能比较单一,通常用于选中文字、调整光标位置、桌面长按App图标进行排序或删除等。Android除了这些功能,长按还经常用于列表项的多选和上下文操作,使用频率非常高。此外,iPhone ...

    判断客户端是iOS还是Android

    判断客户端是iOS还是Android 在前端开发中,判断客户端是iOS还是Android等移动终端是非常重要的。通过JavaScript可以实现这种判断。下面是相关知识点的总结: 一、判断浏览器类型 在JavaScript中,可以通过两种...

    IOS实现类似Android的ViewPager

    这篇内容将详细介绍如何在iOS应用中创建一个简易的ViewPager,以达到与Android平台上ViewPager相似的用户体验。 首先,我们需要理解Android的ViewPager是如何工作的。在Android中,ViewPager是一个可以展示多个页面...

    AES加密解密,iOS,Android,Java,.Net通用

    本工程可以直接使用,而且与IOS,Android,JAVA,.NET 已调通。 主要用于客户端进行通信,数据之间地安全性。对数据进行加密和解密 AES加密有多种算法模式,下面提供两套模式的可用源码: 一、CBC(Cipher Block ...

    php作为服务器接收iOS/Android上传的图片

    在IT行业中,跨平台通信是常见的需求,尤其是移动设备(如iOS和Android)与服务器之间的交互。本场景中,PHP被用作服务器端语言来处理客户端(iOS和Android)上传的图片。以下是对这个主题的详细说明: 1. **PHP...

    即时通讯源码,带社交功能,跨平台支持iOS与Android端通讯交流利器,即时通讯源码:社交功能强大,跨平台支持iOS与Android端应用,即时通讯源码,带社交功能,支持ios和android端

    即时通讯源码,带社交功能,跨平台支持iOS与Android端通讯交流利器,即时通讯源码:社交功能强大,跨平台支持iOS与Android端应用,即时通讯源码,带社交功能,支持ios和android端 ,即时通讯; 社交功能; 跨平台; iOS和...

    用Delphi 开发iOS苹果和Android安卓移动应用(中文版).

    Delphi是Embarcadero Technologies公司旗下的一款集成开发环境(IDE),它允许开发者使用相同的源代码库来开发跨平台的应用程序,支持Windows、macOS、Linux、iOS、Android等平台。Delphi XE8是Delphi的一个版本,该...

Global site tag (gtag.js) - Google Analytics