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就會被切回到後臺進程;· (掛起)
空進程——沒有任何東西在運行。保留這種進程的的唯一目的是用作緩存

從用戶角度

待定~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章