《Android安全技术揭秘与防范》——第1章,第1.3节Android和iOS系统对比

简介:

本节书摘来自异步社区《Android安全技术揭秘与防范》一书中的第1章,第1.3节Android和iOS系统对比,作者 周圣韬,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.3 Android和iOS系统对比
很多人喜欢拿iOS系统来与Android系统做比较。这是由于它俩是目前市面上最流行的手机操作系统。但是,我们只要从专业角度来看,会发现它们有许多不同点。

iOS是由苹果公司开发的手持设备操作系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等苹果产品上。它也是以Darwin为基础的,因此同样属于类UNIX的商业操作系统。

Android是一种以Linux为基础的开放源码的操作系统,Android操作系统最初由Andy Rubin开发,主要应用于手机平台。2005年由Google收购注资,并和多家制造商组成开放手机联盟对其开发,逐渐扩展到平板电脑及其他领域上。至目前为止,Android跃居全球最受欢迎的智能手机平台。

在便携式设备领域,iOS和Android分别的优势和劣势也日益明显。

Android采用的是Java技术,所有应用在Dalvik虚拟机中运行,Dalvik是Google专门为移动设备优化的Java虚拟机。因此Android具有成熟、存在大量可重用代码的优点,也有占内存大、运行速度略低的缺点。

而Apple iOS的体系架构相对较为传统,但运行效率高,对硬件的要求低,成本优势大,在现有的硬件条件下,应用运行具有最好的顺畅感,也更加省电。系统架构朴实无华,但干净清晰,是目前最有效率的移动设备操作系统。

1.3.1 系统架构对比
表1-2就Android与iOS两个系统做了一个对比。


2b60dcca4a0bcda6f98121edd8ff6cfe5ee6289c

1.3.2 Android和iOS安全对比
很多人都说,iOS比Android安全,因为,Android是开放性的,且Android系统的使用数量的基数大,即使系统漏洞的百分比再小,但是整体数量依然水涨船高。而iOS就个体而言,安全问题比较严重。由于整体数量、受众人群的关系,漏洞数还是无法赶超Android。虽然Android漏洞数量居高不下,但是,必须透过现象看到数据安全的本质。

1.3.2.1 Android系统安全性分析
其实,Android的恶意应用比手机漏洞更可怕。而滋生恶意应用的土壤就是Android的开源性,由于应用的发布监管机制不够严格,很多应用的发布无需权威机构审核即可随意发布应用,而且很多应用都会申请一些与它本身功能并没有什么关系的系统权限。

再者,Android存在各类第三方App碎片化问题,很多App开发者由于缺少审核机制,恶意软件开发商可以轻易地发布一些仿冒的产品,因此山寨应用在Android平台上层出不穷。有很多恶意产品甚至直接修改国内、外知名App产品,在其中增加恶意代码后便在论坛或某些软件商店发布。对于普通用户来说,分辨难度极大。

最后,Android系统上的许多应用无需Root就能够替换掉一些系统的核心应用,诸如输入法、市场、通信录等。这类应用是最敏感的,它们能直接记录用户的隐私。不法分子通过山寨版的App轻易地就能获得用户的隐私信息,轻则做广告的个性化推荐,重则直接盗取。因此,开放就是一把双刃剑,把握不好则会伤到自己。

1.3.2.2 iOS系统安全性分析
iOS应用的审核上架是由苹果公司负责,应用的收益、支付、分成都有一套完整的体系。虽说审核周期较长,但从根本上杜绝了恶意、山寨应用的滋生。

除此之外,苹果对涉及系统核心层的应用都采取封闭的措施。禁止了第三方应用市场的使用,目前的第三方应用程序只能通过用户打开“开发者模式”才能安装到手机上(当然,这样安装的应用经常会出现闪退)。如果用户希望使用一些高权限的应用,如手机管家类的应用,则必须通过“越狱”后才能正常使用。

就因为这样,iOS给广大用户留下了“比Android系统更安全”的印象。但是,无可否认苹果在杜绝恶意应用这一方面确实做得比Android出色,因为这些是导致系统不稳定的最大因素。但从客观的技术检测与架构上来看,iOS系统本身也存在有不安全的因素。

相关文章
|
2天前
|
Android开发
Android构建系统:Android.mk(2)函数详解
Android构建系统:Android.mk(2)函数详解
11 1
|
2天前
|
存储 Java API
Android系统 文件访问权限笔记
Android系统 文件访问权限笔记
29 1
|
2天前
|
移动开发 Java Unix
Android系统 自动加载自定义JAR文件
Android系统 自动加载自定义JAR文件
17 1
|
2天前
|
Shell Android开发 开发者
Android系统 自定义动态修改init.custom.rc
Android系统 自定义动态修改init.custom.rc
19 0
|
2天前
|
测试技术 Android开发 开发者
RK3568 Android系统客制化动态替换ro任意属性
RK3568 Android系统客制化动态替换ro任意属性
13 1
|
iOS开发
iOS调用系统通讯录
iOS调用系统通讯录
194 0
iOS调用系统通讯录
|
1月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
85 3
|
3月前
|
存储 iOS开发
iOS 开发,如何进行应用的本地化(Localization)?
iOS 开发,如何进行应用的本地化(Localization)?
122 2