1、操作系統(tǒng)使用習(xí)慣,比如返回鍵、殺死進(jìn)程
2、UI界面,比如導(dǎo)航的tab頁、item可以滑動(dòng)進(jìn)行操作
3、Android分辨率20多種,iOS較少
4、操作系統(tǒng),Android較多,ios較少且不能降級(jí),只能單向升級(jí);新的ios系統(tǒng)中的資源庫不能完全兼容低版本中的ios系統(tǒng)中的應(yīng)用,低版本ios系統(tǒng)中的應(yīng)用調(diào)用了新的資源庫,會(huì)直接導(dǎo)致閃退(Crash)
5、android的sdcard是不受文件訪問控制約束的,iOS的隱私做的更好
系統(tǒng)架構(gòu)
1.iOS架構(gòu)分為4層,分別為
(1)cocoa Touch層:包括Foundation Framework,UIkit Framework,Address Book UI Framework
(2)媒體層:包括圖像(Quartz,Core Animation,OpenGL ES),音頻(Core Audio,OpenAL)和視頻技術(shù)
(3)核心服務(wù)層:例如CoreFoundation.framework是基于C語言的接口集,提供應(yīng)用的基本數(shù)據(jù)管理和服務(wù)功能;CFNetwork.framework是一組高性能的C語言接口集,提供網(wǎng)絡(luò)協(xié)議的面向?qū)ο蟮某橄?。開發(fā)者可以使用CFNetwork框架操作協(xié)議棧,并且可以訪問底層的結(jié)構(gòu)如BSD sockets等;Security.framework提供管理證書,公鑰/私鑰對(duì)和信任策略等的接口來確保應(yīng)用數(shù)據(jù)的安全性
(4)核心OS層: 基于Mac操作系統(tǒng)
2.Android架構(gòu)分為4層,分別為
(1)應(yīng)用程序:使用java編寫
(2)應(yīng)用程序框架:活動(dòng)管理器:用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能資源管理器:提供非代碼資源的訪問,如本地字符串、圖形和布局文件內(nèi)容提供器:用來存放和獲取數(shù)據(jù)并使用這些數(shù)據(jù)可以被所有應(yīng)用程序訪問XMPP服務(wù)器:基于XML的網(wǎng)絡(luò)實(shí)時(shí)通訊協(xié)議。
(3)系統(tǒng)運(yùn)行庫+Android運(yùn)行時(shí)系統(tǒng)運(yùn)行庫:android包括一些c/c++庫,這些庫能被android系統(tǒng)中的不同的組件使用,例如libc是一個(gè)從BSD繼承來的標(biāo)準(zhǔn)c系統(tǒng)函數(shù)庫;webkit為Web瀏覽器引擎,支持Android瀏覽器(蘋果Safari的引擎也是webkit)。SQLite為功能強(qiáng)勁的輕量級(jí)關(guān)系數(shù)據(jù)庫引擎(iOS也是采用的該數(shù)據(jù)庫引擎)。Android運(yùn)行時(shí):包括核心庫(基本類庫,例如data structure,network,file system等),很多實(shí)現(xiàn)代碼都來自Apache Harmony項(xiàng)目,主要目的時(shí)保證虛擬機(jī)的類庫能夠與Java SE類庫最大程度的兼容)與Dalvik虛擬機(jī)(用于運(yùn)行dex:dalvik executable格式二進(jìn)制可執(zhí)行文件,該虛擬機(jī)較之java虛擬機(jī)的最大區(qū)別是Dalvik基于寄存器)
(4)linux內(nèi)核:基于linux 2.6內(nèi)核