作為測試你不可不知的 iOS 與 Android 差異點!

一窃这、運行機制的區(qū)別

1、iOS 采用的是沙盒運行機制

(1)沙盒機制

? ? ????出于安全考慮征候,iPhone對于安裝在上面的應用程序有所限制杭攻,這個限制就是應用程序只能在該程序創(chuàng)建的文件系統(tǒng)中讀取文件,不可以去其他地方訪問疤坝,此區(qū)域被稱為沙盒兆解,所以所有的非代碼文件都要保存在此,例如圖像跑揉、圖標锅睛、聲音,映像畔裕,屬性列表衣撬,文本文件等乖订“缛模總體來說沙盒就是一種獨立、安全乍构、封閉的空間甜无。

(2)沙盒機制的特點

? ? ? ? 每個應用程序都有自己的存儲空間扛点。每個應用程序都不可以翻過自己的圍墻去訪問別的存儲空間的內(nèi)容(已經(jīng)越獄的除外)。在訪問別人沙盒內(nèi)的數(shù)據(jù)時需要訪問權限岂丘。沙盒(sandbox)的核心內(nèi)容是:sandbox 對應用程序執(zhí)行各種操作的權限限制陵究。

2、Android 采用的是虛擬機運行機制

(1)什么是Dalvik虛擬機

? ? ? ? Dalvik 是 Google 公司自己設計用于 Android 平臺的 Java 虛擬機奥帘,它是 Android 平臺的重要組成部分铜邮,支持 dex 格式(Dalvik Executable )的 Java 應用程序的運行。 dex 格式是專門為 Dalvik 設計的一種壓縮格式寨蹋,適合內(nèi)存和處理器速度有限制系統(tǒng)松蒜。 Google 對其進行了特寫的優(yōu)化,使得 Dalvik 具有高效已旧、簡潔秸苗、節(jié)省資源的特點。從 Android 系統(tǒng)架構圖知运褪, Dalvik 虛擬機運行在Android的運行時庫層惊楼。

(2)Dalvik 虛擬機的功能

? ? ? ? Dalvik 作為面向 Linux、為嵌入式操作系統(tǒng)設計的虛擬機秸讹,主要負責完成對象生命周期管理檀咙、堆棧管理、線程管理璃诀、安全和異常管理攀芯,以及垃圾回收等。 Dalvik 充分利用 Linux 進程管理的特性文虏,對其進行了面向對象的設計侣诺,使得可以同時運行多個進程,而傳統(tǒng)的 Java 程序通常只能運行一個進程氧秘,這也是為什么 Android 不采用 JVM 的原因年鸳。 Dalvik 為了達到優(yōu)化的目的,底層的操作大多和系統(tǒng)內(nèi)核相關丸相,或者直接調用內(nèi)核接口搔确。另外, Dalvik 早期并沒有 JIT 編譯器灭忠,直接 Android 2.2 才加入了對 JIT 的技術支持膳算。

(3)Dalvik 虛擬機具有以下特點:

? ? ? ? 使用 dex格式的字節(jié)碼,不兼容 Java 字節(jié)碼格式

? ? ? ? 代碼密度小弛作,運行效率高涕蜂,節(jié)省資源

? ? ? ? 常量池只使用32位的索引

? ? ? ? 有內(nèi)存限制

二、兩者后臺制度不同

1映琳、iOS 采用“偽后臺”的形式

(1)iOS 系統(tǒng)的后臺機制過程

? ? ? ? 當我們程序從前臺退到后臺(按 home 鍵)后机隙,將執(zhí)行程序的委托方法蜘拉,它的主線程會被暫停。應用程序只給了我們可憐的一點點時間(也就是秒級別的)來處理東西有鹿,然后旭旭,所有的線程都被掛起了。這個時候 APP 依然駐留在內(nèi)存中葱跋,這種狀態(tài)下持寄,不調用蘋果已開放的幾種后臺方法,程序便不會運行娱俺;如果在這個時候际看,使程序繼續(xù)運行,則為后臺狀態(tài)矢否;如果當前內(nèi)存將要不夠用時仲闽,系統(tǒng)會自動把之前掛起狀態(tài)下的 APP 清出內(nèi)存。所以我們看到僵朗,有些時候打開 APP 時赖欣,還是上次退出時的那個頁面那些數(shù)據(jù),有時則是重新從閃屏進入验庙。

(2)iOS 系統(tǒng)后臺機制大概可以分為5種狀態(tài):

? ? ? ? Not Running : APP 沒有啟動顶吮,也沒有后臺運行;

? ? ? ? Active :用戶正在使用 APP粪薛,比如說我們聊微信看網(wǎng)頁的時候悴了,APP 就處于 Active 狀態(tài);

? ? ? ? Inactive :這是一個過渡的狀態(tài)违寿,APP 雖然打開了湃交,但是用戶沒有跟 APP 有任何互動操作;

? ? ? ? Background:APP 在后臺運行藤巢,微信會在沒有打開的時候接收消息搞莺;

? ? ? ? Suspended:APP 雖然在后臺運行,但是處于休眠狀態(tài)掂咒,只占用一點內(nèi)存才沧。

2、安卓中任何程序都能在后臺運行绍刮,直到?jīng)]有內(nèi)存才會關閉

(1)Android 真后臺運行機制

????????Android 上的應用是帶有獨立虛擬機的温圆,也就是每開一個應用就會打開一個獨立的虛擬機,每個 APP 都有自己的進程孩革,每個進程都有自己的內(nèi)存空間岁歉,這樣設計的原因是可以避免虛擬機崩潰導致整個系統(tǒng)崩潰,但代價就是需要更多內(nèi)存嫉戚。以上這些設計確保了 Android 的穩(wěn)定性刨裆,正常情況下最多單個程序崩潰澈圈,但整個系統(tǒng)不會崩潰彬檀。

(2)Android 的進程從高到低分為5種:

? ? ? ? 前臺進程:正在與用戶交互的進程帆啃,通俗來講就是你當前使用APP 的進程;

? ? ? ? 可見進程:可以被用戶看到窍帝,但是沒有和用戶交互努潘,例如一個 Activity 以對話框的形式覆蓋在當前 Activity 上面,當前 Activity 可以被用戶看到坤学,但是不和用戶交互疯坤;

? ? ? ? 服務進程:也就是我們常說的 Service ,能夠運行在后臺深浮,常見的有音樂類的 APP 压怠;

? ? ? ? 后臺進程:注意,這個后臺進程不要和服務器進程搞混了飞苇,它的意思是說當前 APP 在后臺運行菌瘫,例如我啟動了 APP ,然后點擊 Home 鍵返回到桌面布卡,那么這個 APP 就會被切換到后臺進程雨让;

? ? ? ? 空進程:空進程指的是在這些進程內(nèi)部,沒有任何東西在運行忿等。保留這個進程的唯一目的是用作緩存栖忠,以縮短該應用下次在其中運行組件所需的啟動時間。

三贸街、兩者最高權限指令不同

1庵寞、iOS 中用于 UI 指令權限最高。

2薛匪、Android 中數(shù)據(jù)處理指令權限最高皇帮。

四、推送機制

1蛋辈、iOS 在軟件關閉的情況下属拾,依然可以接收推送消息

? ? ? ? 手機消息當然都是通過服務器推送到我們手機上的,對于iOS 的用戶來說冷溶,蘋果有 APN 服務器來負責消息的推送渐白。當你第一次使用 APP 時,會詢問是否接收通知逞频,如果你選擇了是纯衍,那么服務器就會記錄你的 ID ,當有消息通知的時候苗胀,這些數(shù)據(jù)是先推送到蘋果的服務器中襟诸,然后通過蘋果的 APN 服務器推送到用戶手機上的瓦堵。這樣的設計讓軟件徹底關閉的時候還可以接收到消息通知,一方面釋放內(nèi)存歌亲,一方面也不會耽誤接收消息菇用。

2、Android 在軟件關閉的情況下陷揪,無法接收推送消息

? ? ? ? 對 Android 手機來說惋鸥,Google 也有類似的 GCM 服務器來推送消息,不過因為國內(nèi)的手機都沒有 Google 服務無法收到 Google GCM 服務器推送的消息悍缠。Android 的推送都是通過服務來實現(xiàn)的卦绣,就算應用沒有啟動但是服務還在一樣可以收到推送。所以只能是 Android 自己啟動 Service 來實現(xiàn)推送飞蚓,當應用殺死后 Service 如果被殺死就無法收到推送滤港。

五、渲染機制不同

Android:主線程普通優(yōu)先級——加載一個頁面趴拧,全部加載完成的同時加載當前頁面溅漾,當你看到頁面后,實際后臺仍在加載八堡,因此增加了處理器的壓力樟凄。

iOS:實時優(yōu)先級——加載整個頁面,優(yōu)先加載主屏幕顯示區(qū)域

六兄渺、開源性不同

Android:完全開源缝龄,任何開發(fā)廠商和開發(fā)者都可開發(fā)安卓的軟件,由于開源挂谍,各大品牌手機硬件差異大叔壤,導致體驗不同,兼容性不好

iOS:封閉口叙,僅蘋果擁有

七炼绘、編程語言不同:

Android:java

IOS:Objective-c

八、升級應用

Android:自動升級應用妄田,也可通過應用市場來升級

IOS:需要通過app store升級

九:軟硬件結合

Android:由于代碼開源俺亮,因此很多開發(fā)廠商都可以根據(jù)自己的設定來開發(fā)不同的手機,APP不會針對各大品牌的手機專門做優(yōu)化疟呐,因此軟硬件結合差

IOS:由于封閉脚曾,因此蘋果一家獨有專利,所有的APP都針對IOS做優(yōu)化启具,因此軟件結合較好

十本讥、應用的刪除操作不同

Android:常見的刪除某一個操作,用長按,點擊刪除或者左滑刪除

IOS:很多應用都支持左滑刪除操作

十一拷沸、獲取日志和簽名方式不同

Android:可通過adb logcat獲取日志色查,Android studio,DDMS來獲取到日志信息撞芍。簽名可以通過jarsigner -verify -certs 包名

IOS:用xcode中debug工具/Itunes高級功能查看實時log秧了,獲取簽名:解壓包取出plist文件,查看應用簽名及版本信息勤庐,并要檢查證書正確性

十二示惊、分辨率不同

Android:分辨率多達20多種

IOS:5種

十三好港、按鍵

Android:底部有3個按鍵:返回鍵愉镰、主菜單、前進鍵钧汹,在應用返回中丈探,都可通過返回鍵回退到上一步

IOS:只有home鍵,所有的應用進入只有一個入口拔莱,每個應用界面中都有返回出口

總結:

Android:開源碗降、界面好看,但安全性差塘秦、漏洞多讼渊、穩(wěn)定性差、系統(tǒng)耗電大尊剔、流量消耗大

IOS:封閉爪幻、安全規(guī)整、用戶體驗好

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末须误,一起剝皮案震驚了整個濱河市挨稿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌京痢,老刑警劉巖奶甘,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異祭椰,居然都是意外死亡臭家,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進店門方淤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钉赁,“玉大人,你說我怎么就攤上這事臣淤¢厦梗” “怎么了?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長姓蜂。 經(jīng)常有香客問我按厘,道長,這世上最難降的妖魔是什么钱慢? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任逮京,我火速辦了婚禮,結果婚禮上束莫,老公的妹妹穿的比我還像新娘懒棉。我一直安慰自己,他們只是感情好览绿,可當我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布策严。 她就那樣靜靜地躺著,像睡著了一般饿敲。 火紅的嫁衣襯著肌膚如雪妻导。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天怀各,我揣著相機與錄音倔韭,去河邊找鬼。 笑死瓢对,一個胖子當著我的面吹牛寿酌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播硕蛹,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼醇疼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了妓美?” 一聲冷哼從身側響起僵腺,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎壶栋,沒想到半個月后辰如,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡贵试,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年琉兜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毙玻。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡豌蟋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桑滩,到底是詐尸還是另有隱情梧疲,我是刑警寧澤,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站幌氮,受9級特大地震影響缭受,放射性物質發(fā)生泄漏。R本人自食惡果不足惜该互,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一米者、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宇智,春花似錦蔓搞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至太防,卻和暖如春妻顶,著一層夾襖步出監(jiān)牢的瞬間酸员,已是汗流浹背蜒车。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留幔嗦,地道東北人酿愧。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像邀泉,于是被迫代替她去往敵國和親嬉挡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,348評論 25 707
  • 1汇恤、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,988評論 3 119
  • 下午下了班就開會庞钢,7:00左右散會,就著急回家因谎,一路上春寒料峭基括,寒風瑟瑟。到了家财岔,孩子就跟我說:“媽媽风皿,我今...
    上善若水_f9f1閱讀 177評論 0 1
  • 曾經(jīng)有一條隨心的道路放在我面前桐款,我沒有去走,等我錯過的時候我才后悔莫及夷恍,人世間最痛苦的事莫過于洗腦魔眨。 如果上天能夠...
    錦程寫書閱讀 228評論 0 1
  • 脂肪不躲避 附著于年輕的身體 生存于他人注視 喋喋不休的沉默日子 何種目的 基于 贊嘆的注目禮 幻想的甜蜜 合體的...
    芥一子閱讀 256評論 3 5