- 工具:Android Studio墓阀,XMind溜畅,馬克飛象,印象筆記
- 2016年12月8日丛忆,Google中國開發(fā)者大會(huì)在京舉行,同時(shí)正式上線了Google中國開發(fā)者網(wǎng)站Google Developers仍秤,查看官方學(xué)習(xí)資源再也不用爬梯子了
系統(tǒng)架構(gòu)圖及各層介紹
- Applications應(yīng)用層:應(yīng)用是用Java語言編寫的運(yùn)行在虛擬機(jī)上的程序熄诡,比如Email客戶端,SMS短消息程序诗力,日歷等凰浮。
- Application Framework應(yīng)用框架層:這一層是編寫Google發(fā)布的核心應(yīng)用時(shí)所使用的API框架,開發(fā)人員同樣可以使用這些框架來開發(fā)自己的應(yīng)用苇本,這樣便簡(jiǎn)化了程序開發(fā)的結(jié)構(gòu)設(shè)計(jì)袜茧,但是必須要遵守其框架的開發(fā)原則。
- Libraries系統(tǒng)運(yùn)行庫(C/C++庫以及Android運(yùn)行庫)層:當(dāng)使用Android應(yīng)用框架時(shí)瓣窄,Android系統(tǒng)會(huì)通過一些C/C++庫來支持我們使用的各個(gè)組件笛厦,使其更好的為我們服務(wù),比如其中的SQLite(關(guān)系數(shù)據(jù)庫)俺夕,Webkit(Web瀏覽器引擎)裳凸。
- Linux Kernel內(nèi)核層:Android的核心系統(tǒng)服務(wù)給予Linux2.6內(nèi)核,如安全性劝贸、內(nèi)存管理姨谷、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型等都依賴于該內(nèi)核映九,比如Binder IPC(Internet Process Connection進(jìn)程間通信)驅(qū)動(dòng)梦湘,android的一個(gè)特殊驅(qū)動(dòng)程序,具有單獨(dú)的設(shè)備節(jié)點(diǎn),提供進(jìn)程間通信的功能捌议。
Dalvik VM和JVM的區(qū)別
- 傳統(tǒng)JVM編寫.java文件----編譯為.class文件----打包成.jar文件哼拔,將java源碼編譯為class文件,然后將一組class打包成jar禁灼」苄基于棧結(jié)構(gòu),棧存儲(chǔ)于內(nèi)存中弄捕,所以需要用到內(nèi)存空間
- Dalvik VM編寫.java文件----編譯為.class文件----打包成.dex文件----打包成.apk文件。將一組class編譯為一個(gè)dex文件导帝,然后有的平臺(tái)為了更高的效率會(huì)將一個(gè)dex轉(zhuǎn)換成odex文件守谓。將N多個(gè)class文件編譯為一個(gè)dex,這樣執(zhí)行效率會(huì)比較快您单,更適合在移動(dòng)平臺(tái)運(yùn)行斋荞。基于寄存器的結(jié)構(gòu)虐秦,寄存器在cpu中平酿,所以用到cpu的空間
-
DVM與JVM的區(qū)別:
ART模式概述
- ART模式概述ART模式是Android Runtime的簡(jiǎn)稱,從Android 4.2開始出現(xiàn)悦陋。在Android 4.2以前蜈彼,安卓手機(jī)系統(tǒng)的應(yīng)用程序均在Dalvik Java的虛擬機(jī)上運(yùn)行,這種運(yùn)行模式是還要依靠一個(gè)編譯器來實(shí)現(xiàn)與應(yīng)用程序的溝通俺驶。應(yīng)程序每次運(yùn)行時(shí)幸逆,都需要將程序內(nèi)的代碼及時(shí)轉(zhuǎn)變?yōu)闄C(jī)器碼才能運(yùn)行,這無形中多附加了一道手續(xù)暮现,這就造成了耗電相對(duì)較快还绘、占用內(nèi)存大、即使是旗艦機(jī)用久了也會(huì)卡頓嚴(yán)重的現(xiàn)象栖袋。
- ART模式通過在安裝應(yīng)用程序時(shí)拍顷,自動(dòng)對(duì)程序進(jìn)行代碼預(yù)讀取編譯,讓程序直接編譯成機(jī)器語言塘幅,免去了Dalvik模式要時(shí)時(shí)轉(zhuǎn)換代碼昔案,實(shí)現(xiàn)高效率、省電晌块、占用更低的系統(tǒng)內(nèi)存爱沟、手機(jī)運(yùn)行流暢。但凡事總有正反兩面匆背,ART在解決了該問題的同時(shí)呼伸,同時(shí)也有如:會(huì)占用略高一些的存儲(chǔ)空間、安裝程序時(shí)要相比普通Dalvik模式要長(zhǎng)一些時(shí)間來實(shí)現(xiàn)預(yù)編譯。