分(fēn)享到:

Android系統架構

日(rì)期:2015-12-30 15:30:00     閱讀(dú):831     文章(zhāng)來(lái)源:源美網絡     标簽:Android系統,Linux内核層,深圳網頁設計(jì)【源美設計(jì)】

Android是Goodle公司推出的一款智能手機(jī)平台,該平台本身(shēn)是基于Linux内核的,圖1-1展示了系統的架構;

blob.png

圖 1-1 Android系統架構


從(cóng)上面圖中可(kě)以看(kàn)出,Android系統大(dà)體(tǐ)可(kě)分(fēn)爲四層,從(cóng)下往上依次是:

Linux内核層:包含了Linux内核和一些驅動模塊(比如(rú)USB驅動、Camera驅動、藍牙驅動等)。目前Android2.2(代号爲Froyo)基于Linux内核2.6版本。

Libraries層:這一層提供動态庫(也叫共享庫)、Android運行時庫、Dalvik虛拟機(jī)等,從(cóng)編程語言角度來(lái)說(shuō),這一層大(dà)部分(fēn)都(dōu)是用C或C++寫的,所以也可(kě)以簡單的把它看(kàn)成是Native層。

Framework層:這一層大(dà)部分(fēn)用Java語言編寫,它是Android平台上Java世界的基石。

Applications層:與用戶直接交互的就(jiù)是這些應用程序,它們都(dōu)是用Java開發的。

從(cóng)上面的介紹可(kě)看(kàn)出,Android系統的最大(dà)特點之一就(jiù)是搭建了一個被廣大(dà)Java開發者熱(rè)捧的Java世界,但(dàn)這個世界并不是空中樓閣,它的運轉依賴于另一個被Google極力隐藏的Native世界,兩個世界的交互關系可(kě)用圖1-2表示:

blob.png

圖 1-2 Java世界和Native世界交互

從(cóng)上圖可(kě)知:

Java雖具有與平台無關的特性,但(dàn)Java和具體(tǐ)平台之間的隔離(lí)卻是由JNI層來(lái)實現的,Java是通過JNI層調用Linux OS中的系統調用來(lái)完成對應的功能的,例如(rú)創建一個文件(jiàn)或一個Socket等。


除了Java世界外,還(hái)有一個核心的Native世界,它爲整個系統高效和平穩的運行提供了強有力的支持,一般而言,Java世界經由JNI層通過IPC方式與Native世界交互,而Android平台上最爲神秘的IPC方法就(jiù)是Binder了,除此之外,Socket也是常用的IPC方式。這些内容在後面的代碼中可(kě)以分(fēn)析到。


blob.png

Native層包括init、Audio系統(包括AudioTrack、AudioFlinger和AudioPolicyService)、Surface系統(包括Surface和SurfaceFlinger)、常用類(包括RefBase、sp、wp等)、Vold和Rild。

Java Framework層包括Zygote、System_server以及Jaca中的常用類(包括Handlier和Looper等)

Java Application層包括MediaProvider和Phone。


Android系統深圳系統開發深圳網頁設計(jì)


文章(zhāng)引用:

本站(zhàn)文章(zhāng)爲深圳網站(zhàn)建設·源美網絡原創策劃,如(rú)有版權糾紛或者違規問(wèn)題,請(qǐng)聯系我們删除,謝謝!

上一篇: 技術(shù)與電影(yǐng)

下一篇: 人(rén)類的身(shēn)份危機(jī)

返回列表
最新案例
OUR ADVANTAGE WORKS

售後保障

承諾任何問(wèn)題1小時内解決

數據備份

更安全、更高效、更穩定

價格公道精準

項目經理(lǐ)精準報價不弄虛作(zuò)假

合作(zuò)無風(fēng)險

重合同講信譽,無效全額退款