Android和iOS

Android和iOS的不同:

从开发者角度

一、两者运行机制不同

1.iOS采用的是沙盒运行机制

(1)沙盒机制——独立、安全、封闭

出于安全考虑,iPhone对于安装在上面的应用程序有所限制,这个限制就是应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。总体来说沙盒就是一种独立、安全、封闭的空间。

(2)沙盒机制的特点

每个应用程序都有自己的存储空间。在访问别人沙盒内的数据时需要访问权限。
沙盒(sandbox)的核心内容是:sandbox对应用程序执行各种操作的权限限制

2.安卓采用的是虚拟机运行机制

(1)什么是Dalvik虚拟机

Dalvik是Google公司自己设计用于Android平台的Java虚拟机,支持dex格式(专门为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统)的Java应用程序的运行。详情了解见:Dalvik虚拟机-百度详解

(2)Dalvik虚拟机的功能

Dalvik作为面向Linux、为嵌入式操作系统设计的虚拟机,主要负责完成对象生命周期管理、堆栈管理、线程管理、安全和异常管理,以及垃圾回收等。
Dalvik为了达到优化的目的,底层的操作大多和系统内核相关,或者直接调用内核接口。
Dalvik充分利用Linux进程管理的特定,对其进行了面向对象的设计,使得可以同时运行多个进程
而传统的Java程序通常只能运行一个进程。

(3)Dalvik虚拟机具有以下特点

使用dex格式的字节码
不兼容Java字节码格式
代码密度小
运行效率高
节省资源
有内存限制等

二、两者后台制度不同

1 . iOS采用“伪后台”的形式

(1)what

没有真正的在后台运行,实际上被挂起了。
存于内存但不运行,一旦系统需要内存了,最早的后台进程就会被杀掉以释放内存。

(2)iOS系统的后台机制过程

伪后台过程

(3)iOS系统后台机制大概可以分为5种状态

Not Running——APP没有启动,也没有后台运行;·
Active——用户正在使用APP,比如说我们聊微信看网页的时候,APP就处于Active状态;·
Inactive——这是一个过渡的状态,APP虽然打开了,但是用户没有跟APP有任何互动操作;·
Background——APP在后台运行,微信会在没有打开的时候接收消息;·
Suspended——APP虽然在后台运行,但是处于休眠状态,只占用一点内存。

2.安卓中任何程序都能在后台运行,直到没有内存才会关闭

(1)android后台运行机制

android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机,每个app都有自己的进程,每个进程都有自己的内存空间
好处:可以避免虚拟机崩溃导致整个系统崩溃
缺点:代价就是需要更多内存

(2)5种安卓进程·

前台进程——你当前使用app的进程;·
可见进程——可以被用户看到,但是没有和用户交互
服务进程——能够运行在后台,如qq音乐;· (正在调用)
后台进程——当前app在后台运行,例如启动了app,然后点击home返回到桌面,那么这个app就会被切回到后台进程;· (挂起)
空进程——没有任何东西在运行。保留这种进程的的唯一目的是用作缓存

从用户角度

待定~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值