我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android和iOS比较之我见

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android和iOS比较之我见

  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算是一个全新的操作系统. 所以:

  1、Android使用JAVA,上手容易很多,如果有很好的JAVA Lib加持,开发效率会高些

  2、iOS没有虚拟机,性能要好一些,当然这个差别会随着Google的改进越来越小

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

  iOS和设备紧密集成。软硬件一家公司通吃。但是Android无法做到, 通常的情况是:Google放出源代码。 芯片厂商需要1-3个月来做自己的芯片方案, 手机厂商从芯片厂商处买到方案和代码, 进行自己的集成,定制工作,有时候还需要针对运营商进行定制。 所以:

  1、iOS的设备集成度和驱动优化都是好的。电源管理一块可见一斑,而Android厂商鱼龙混杂。可能排头的厂商的旗舰机器会好些,但是由于Android工期一般都比iOS设备短(请看HTC和三星出机器的速度),所以整体上和iOS比是有差距的。

  2、Android天然存在升级周期延迟的问题, 而且厂商做升级是也是有成本的。卖手机的厂商无法顾及整个生态链,目前这个无解,除非Google做点什么。

  3、由于有多家厂商自己做定制,Android还存在设备的分裂问题(fragmentation), 作为过来人,我告诉你这个是很头痛的事情, 且不论调试时间和人力, 光买一大堆设备的成本不小。关键的是它会伤美工/UE的心。

  iOS是被Apple严格控制的系统。 在大部分情况下, 第三方应用是无法拿到所有API的。 这意味系统级别的很多功能只有Apple能做(比如打电话,拦截短信)。此外一些涉及用户隐私的API还会导致系统弹出对话框询问用户。 同样第三方runtime做应用开发也是基本不可行的(Flash当初也是被这个条款拒过)。 反过来Android完全不一样,首先Android是开源的,在设计上Android允许自由替换系统组件, Android也没有强制限制API的情况,(hidden API也可以call,没有人会找你麻烦)。 系统级别的权限是下放到厂商手中,如果厂商愿意给,那第三方开发者可以做任何事情。 普通应用的权限认证也是在安装的时候一次性授权完成。 之后不会骚扰用户。所以:

  1、Android平台可以做的事情远远比iOS多, 你可以做电话管理,地址簿,短信管理,可以自己跑后台service。 替换掉系统的组件非常容易

  2、Android平台也可以跑其他系统的Runtime, 比如Flash, 有了NDK, 你要自己接入一个虚拟机也是可能的。Google不会管你

  3、任何人可以拿Android自己改个独立的系统出来,也许这样做的意义和前景有问题,但是同样,没有人限制你

  iOS上的下载应用途径是Appstore,开发者做应用上线还要通过Apple审核,算通过了,如果挂羊头卖狗肉乱来或者调用了不该用的API, Apple一样随时可以下架。管理非常严格。反过来Android上非常松懈:

  1、厂商可以内置应用。经常会扔一些莫名其妙的软件预装在手机上, 笔者在厂商的时候深刻体会到乱选软件是很好玩的事情。而且我们不会让你删除掉的。

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

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

  4、如果用户选择允许“未知来源”,那么通过web下载或者安装卡上的软件也是可以的。似乎国内用户都是允许的。所以:

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

  2、Android上虽然也有精品软件,但是垃圾软件更多, 甚至有恶意软件。 因为无门槛,基本上软件都是免费,卖不起钱, 大部分都靠广告。

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

  4、Android上还有一堆安慰剂软件,比如能帮你省电的或者是帮你杀后台进程的来提升性能的, 笔者作为做过底层开发的人,笑而不语。

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

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

  2、如果你是一个个人软件开发者, iOS适合你, 市场规范, 做应用省心。

  3、如果你是一个软件和服务的创业公司, iOS也是适合你做demo的和第一个产品的, 产品靠谱了,用户在用了,有人给钱了,再往Android走也是可行的。 除非你做的应用要涉及硬件或者需要非常高的系统权限, 如果是那样你也只有选择Android。因为国内的厂商肯定要比苹果要容易谈下来。

  4、如果你是一个要做硬件和系统定制的公司, 那么基本上你只有Android可以选。Android的解决方案的成本也在不断下降。

  5、如果你是一个有中国特色的公司,想搞点移动业务玩玩, 还要瞒着用户做很多事情。 那么Android也是更好的, 算你不作恶, 控制权在自己手中也会方便运作一点。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android和iOS比较之我见

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android和iOS比较之我见

Android和iOS那个好?应该先往哪个上面投入资源?多次被人问到此类问题,笔者刚好自己的项目也需要考虑iOS版本。索性进行了一番调研,于是有了本文(本次不讨论越狱的iOS)首先从情感上,你喜欢哪个好,像百事可乐和可口可乐,当然这个比喻不
2022-06-06

SAP UI5和微信小程序对比之我见

今天继续由SAP成都研究院著名的菜园子小哥Wang Cong,给大家分享他作为一个SAP前端人员是如何看待SAP UI5和微信小程序的异同点的。
2023-06-05

Android getViewById和getLayoutInflater().inflate()的详解及比较

Android getViewById和getLayoutInflater().inflate()的详解及比较 由于本人刚刚学习Android 对于getViewById和getLayoutInflater()
2022-06-06

Golang技术在安卓和 iOS 移动开发中的比较

go 技术可用于跨平台开发安卓和 ios 移动应用程序,提供高效且易用的开发方式。安卓开发:使用 go 和 android ndk 将应用程序编译为本机二进制文件。ios 开发:使用 go mobile 等工具链将 go 代码编译成 ios
Golang技术在安卓和 iOS 移动开发中的比较
2024-05-10

Web 1.0、Web 2.0 和 Web 3.0 之间的比较

💂 个人网站:【海拥】【摸鱼小游戏】【神级源码资源网站】🤟 风趣幽默的前端学习课程:👉28个案例趣学前端💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】&
2023-08-18

如何比较jQuery变量和从我们的服务收到的json数据

要比较jQuery变量和从服务收到的JSON数据,可以使用jQuery的`.getJSON()`方法来从服务获取JSON数据,然后使用JavaScript的`.isEqual()`方法来比较两个对象是否相等。以下是一个示例代码:```jav
2023-09-26

比较Go语言线程和进程之间的特点

在 go 语言中,线程与进程的区别在于:内存空间:线程共享内存,而进程独立;创建/销毁:线程更轻量级,而进程更重量级;通信:线程通过共享变量通信,而进程通过消息传递;上下文切换:线程开销更低,而进程更高;并行度:线程适用于大量任务,而进程适
比较Go语言线程和进程之间的特点
2024-04-03

微软和思科之间统一通信技术的比较

  思科系统公司(Cisco Systems,Inc.),是互联网解决方案的领先提供者,其设备和软件产品主要用于连接计算机网络系统。微软(Microsoft Corporation),是一家基于美国的跨国电脑科技公司,以研发、制造、授权和提供广泛的电脑软件服务业务为主。今天小编给大家分享的教程是:微软和思科之间统一通信
微软和思科之间统一通信技术的比较
2024-04-17

当有 DB、Go 和 Unix 版本时,我在比较日期时间时遇到问题

Golang不知道大家是否熟悉?今天我将给大家介绍《当有 DB、Go 和 Unix 版本时,我在比较日期时间时遇到问题》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!
当有 DB、Go 和 Unix 版本时,我在比较日期时间时遇到问题
2024-04-05

5个Android开发中比较常见的内存泄漏问题及解决办法

android中一个对象已经不需要了,但是其他对象还持有他的引用,导致他不能回收,导致这个对象暂存在内存中,这样内存泄漏就出现了。 内存泄漏出现多了,会是应用占用过多的没存,当占用的内存超过了系统分配的内存容量,就会出现内存溢出了导致应用
2022-06-06

比较CSS框架和组件库的不同之处以及优势

探究CSS框架与组件库的区别与优劣势近年来,随着互联网的快速发展,前端技术也在不断演进和更新。在开发过程中,为了提高开发效率和提供更好的用户体验,前端工程师经常选择使用CSS框架和组件库。本文将探究CSS框架和组件库的区别与优劣势,并提供
比较CSS框架和组件库的不同之处以及优势
2024-01-16

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录