《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系统本身也存在有不安全的因素。

相关文章
|
3天前
|
Android开发
Android构建系统:Android.mk(2)函数详解
Android构建系统:Android.mk(2)函数详解
12 1
|
3天前
|
存储 Java API
Android系统 文件访问权限笔记
Android系统 文件访问权限笔记
35 1
|
3天前
|
移动开发 Java Unix
Android系统 自动加载自定义JAR文件
Android系统 自动加载自定义JAR文件
21 1
|
3天前
|
Shell Android开发 开发者
Android系统 自定义动态修改init.custom.rc
Android系统 自定义动态修改init.custom.rc
23 0
|
3天前
|
测试技术 Android开发 开发者
RK3568 Android系统客制化动态替换ro任意属性
RK3568 Android系统客制化动态替换ro任意属性
24 1
|
TensorFlow 定位技术 算法框架/工具
|
5天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
28天前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
14 0
|
2天前
|
数据库 Android开发 开发者
安卓应用开发:构建高效用户界面的策略
【4月更文挑战第24天】 在竞争激烈的移动应用市场中,一个流畅且响应迅速的用户界面(UI)是吸引和保留用户的关键。针对安卓平台,开发者面临着多样化的设备和系统版本,这增加了构建高效UI的复杂性。本文将深入分析安卓平台上构建高效用户界面的最佳实践,包括布局优化、资源管理和绘制性能的考量,旨在为开发者提供实用的技术指南,帮助他们创建更流畅的用户体验。
|
19天前
|
XML 开发工具 Android开发
构建高效的安卓应用:使用Jetpack Compose优化UI开发
【4月更文挑战第7天】 随着Android开发不断进化,开发者面临着提高应用性能与简化UI构建流程的双重挑战。本文将探讨如何使用Jetpack Compose这一现代UI工具包来优化安卓应用的开发流程,并提升用户界面的流畅性与一致性。通过介绍Jetpack Compose的核心概念、与传统方法的区别以及实际集成步骤,我们旨在提供一种高效且可靠的解决方案,以帮助开发者构建响应迅速且用户体验优良的安卓应用。