第一、操作系統(tǒng)層(OS)
第二、各種庫(Libraries)和Android 運行環(huán)境(RunTime)
第三、應(yīng)用程序框架(Application Framework)
第四、應(yīng)用程序(Application)
以下分別介紹Andoid各個層次的軟件的重點及其相關(guān)技術(shù):
1.操作系統(tǒng)層(OS)
Android基于Linux 2.6提供核心系統(tǒng)服務(wù),例如:安全、內(nèi)存管理、進程管理、網(wǎng)絡(luò)堆棧、驅(qū)動模型。Linux Kernel也作為硬件和軟件之間的抽象層,它隱藏具體硬件細節(jié)而為上層提供統(tǒng)一的服務(wù)。
如果你學(xué)過計算機網(wǎng)絡(luò)知道OSI/RM,就會知道分層的好處就是使用下層提供的服務(wù)而為上層提供統(tǒng)一的服務(wù),屏蔽本層及以下層的差異,當本層及以下層發(fā)生了變化不會影響到上層。也就是說 各層各司其職,各層提供固定的SAP(Service Access Point),專業(yè)點可以說是 高內(nèi)聚、低耦合。
如果你只是做應(yīng)用開發(fā),就不需要深入了解Linux Kernel層。
顯示驅(qū)動(Display Driver):常用基于Linux的幀緩沖(Frame Buffer)驅(qū)動。
Flash內(nèi)存驅(qū)動(Flash Memory Driver)
照相機驅(qū)動(Camera Driver):常用基于Linux的v4l(Video for )驅(qū)動。
音頻驅(qū)動(Audio Driver):常用基于ALSA(Advanced Linux Sound Architecture,高級Linux聲音體系)驅(qū)動。
WiFi驅(qū)動(Camera Driver):基于IEEE 802.11標準的驅(qū)動程序
鍵盤驅(qū)動(KeyBoard Driver)
藍牙驅(qū)動(Bluetooth Driver)
Binder IPC驅(qū)動: Andoid一個特殊的驅(qū)動程序,具有單獨的設(shè)備節(jié)點,提供進程間通訊的功能。
Power Management(能源管理)
2. 各種庫(Libraries)和Android 運行環(huán)境(RunTime)
本層次對應(yīng)一般嵌入式系統(tǒng),相當于中間件層次。Android的本層次分成兩個部分一個是各種庫,另一個是Android 運行環(huán)境。本層的內(nèi)容
大多是使用C++實現(xiàn)的。
在其中,各種庫包括:
▅ C庫:C語言的標準庫,這也是系統(tǒng)中一個最為底層的庫,C庫是通過Linux的系統(tǒng)調(diào)用來實現(xiàn)。
▅ 多媒體框架(MediaFrameword):這部分內(nèi)容是Android多媒體的核心部分,基于PacketVideo(即PV)的OpenCORE,從功能上本庫一共分為兩大部分,一個部分是音頻、視頻的回放(PlayBack),另一部分是則是音視頻的紀錄(Recorder)。
▅ SGL:2D圖像引擎。
▅ SSL:即Secure Socket Layer位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。
▅ OpenGL ES 1.0 :本部分提供了對3D的支持。
▅ 界面管理工具(Surface Management):本部分提供了對管理顯示子系統(tǒng)等功能。
▅ SQLite:一個通用的嵌入式數(shù)據(jù)庫
▅ WebKit:網(wǎng)絡(luò)瀏覽器的核心
▅ FreeType:位圖和矢量字體的功能。
Android 的各種庫一般是以系統(tǒng)中間件的形式提供的,它們均有的一個顯著特點就是與移動設(shè)備的平臺的應(yīng)用密切相關(guān)。
Android 運行環(huán)境主要指的虛擬機技術(shù)——Dalvik。Dalvik虛擬機和一般JAVA虛擬機(Java VM)不同,它執(zhí)行的不是JAVA標準的字節(jié)碼(bytecode )而是Dalvik可執(zhí)行格式(.dex)中執(zhí)行文件。在執(zhí)行的過程中,每一個應(yīng)用程序即一個進程(Linux的一個Process)。 二者最大的區(qū)別在于Java VM是以基于棧的虛擬機(Stack-based),而Dalvik是基于寄存器的虛擬機(Register-based)。顯然,后者最大的好處在于可以根據(jù)硬件實現(xiàn)更大的優(yōu)化,這更適合移動設(shè)備的特點。
3.應(yīng)用程序框架(Application Framework)
Android的應(yīng)用程序框架為應(yīng)用程序?qū)拥拈_發(fā)者提供APIs,它實際上是一個應(yīng)用程序的框架。由于上層的應(yīng)用程序是以JAVA構(gòu)建的,因此本層次提供的首先包含了UI程序中所需要的各種控件:
例如: Views (視圖組件)包括 lists(列表), grids(柵格), text boxes(文本框), buttons(按鈕)等。甚至一個嵌入式的Web瀏覽器。
當發(fā)動機起動時,電控單元進入工作狀態(tài),某些程序和步驟從ROM中取出,進入CPU。這些程序可以是控制點火時刻、控制汽油噴射、控制怠速等。通過CPU的控制,一個個指令逐個地進行循環(huán)。執(zhí)行程序中所需的發(fā)動機信息,來自各個傳感器。從傳感器來的信號,首先進入輸入回路,對其信號進行處理。
如是數(shù)字信號,根據(jù)CPU的安排,經(jīng)I/O接口,直接進入微機。
如是模擬信號,還要經(jīng)過A/D轉(zhuǎn)換器,轉(zhuǎn)換成數(shù)字信號后,才能經(jīng)I/O接口進入微機。
大多數(shù)信息,暫存在RAM內(nèi),根據(jù)指令再從RAM送至CPU。
榮耀的系統(tǒng)是基于安卓系統(tǒng)開發(fā)的榮耀magic系統(tǒng),架構(gòu)本身是arm架構(gòu),也就是普通安卓架構(gòu)的升級版。
這種架構(gòu)本身是基于安卓系統(tǒng)開發(fā),比如現(xiàn)在最新的music5系統(tǒng)就是基于安卓13進行開發(fā)的,所以它的架構(gòu)也是采用的安卓的基礎(chǔ)架構(gòu),也就是arm架構(gòu)。
小米系統(tǒng)采用了基于Android的MIUI系統(tǒng),其架構(gòu)包括應(yīng)用層、框架層和底層三個部分。應(yīng)用層包括預(yù)裝的應(yīng)用程序和用戶下載的應(yīng)用程序,框架層提供了一些API和工具,幫助應(yīng)用程序開發(fā)者進行應(yīng)用程序開發(fā)和調(diào)試。
底層則是處理系統(tǒng)資源和提供底層服務(wù)的部分,包括Linux內(nèi)核、硬件驅(qū)動程序和系統(tǒng)服務(wù)。小米系統(tǒng)通過這三個層次的結(jié)構(gòu)實現(xiàn)了良好的系統(tǒng)性能和用戶體驗。
DNFT協(xié)議包括協(xié)議層、跨鏈層以及應(yīng)用層。在協(xié)議層,DNFT包括了NFT生成、去中心化交易、NFT維護、NFT回收、NFT治理、代幣經(jīng)濟等模塊;跨鏈橋可以連接波卡、以太坊、BSC、Heco等多鏈生態(tài),為NFT提供跨鏈的流動性;同時波卡生態(tài)內(nèi)可以共享其安全性并實現(xiàn)自由跨鏈交互;應(yīng)用層則包括了NFT市場、NFT游戲、NFT藝術(shù)品、NFT數(shù)據(jù)以及NFT DeFi等。
系統(tǒng)架構(gòu):指的完整系統(tǒng)的組成架構(gòu),例如系統(tǒng)分成幾個部分?服務(wù)平臺、管理門戶、終端門戶、ATM門戶、外部系統(tǒng)以及接口、支撐系統(tǒng)等,將這些系統(tǒng)進行合理的劃分。然后再進行功能分類細分,例如服務(wù)平臺內(nèi)部劃分為系統(tǒng)管理、用戶管理、帳號管理、支付管理、接口層、統(tǒng)計分析等邏輯功能。總之,將整個系統(tǒng)業(yè)務(wù)分解為邏輯功能模塊,并且科學(xué)合理,就是系統(tǒng)架構(gòu)了。
技術(shù)架構(gòu):從技術(shù)層面描述,主要是分層模型,例如持久層、數(shù)據(jù)層、邏輯層、應(yīng)用層、表現(xiàn)層等,然后每層使用什么技術(shù)框架,例如Spring、hibernate、ioc、MVC、成熟的類庫、中間件、WebService等,分別說明,要求這些技術(shù)能夠?qū)⒄麄€系統(tǒng)的主要實現(xiàn)概括。
應(yīng)用架構(gòu):主要考慮部署,例如你不同的應(yīng)用如何分別部署,如何支持靈活擴展、大并發(fā)量、安全性等,需要畫出物理網(wǎng)絡(luò)部署圖。按照應(yīng)用進行劃分的話,還需要考慮是否支持分布式SOA。
fmcs是當今現(xiàn)代客機的重要組成部分。一般一架飛機會配有3臺飛行管理計算機。
fmcs綜合了以前一些飛機電子設(shè)備的功能并加以發(fā)展擴大,使設(shè)備的自動化程度更高。
飛行員通過fmcs操縱飛機顯得非常簡單,方便。這樣,可以讓飛行員騰出更多的時間更安全地管理飛機的飛行。
飛行員只要向飛行管理計算機輸入飛機的起飛機場、目的地機場、負荷、油量、經(jīng)濟指數(shù)并規(guī)定飛行航路,fmcs就能根據(jù)IRS和無線電導(dǎo)航設(shè)備的信號準確地計算出飛機最合理的飛行航路及速度。
根據(jù)計算發(fā)出指令到AFCS的自動駕駛儀或飛行指引系統(tǒng),引導(dǎo)飛機從起飛機場到目的地機場.
同樣,飛行員只要通過fmcs的控制顯示組件輸入飛機的起飛全重以及性能要求,fmcs就能計算從起飛機場到目的地機場飛行的最經(jīng)濟速度和巡航高度,也能連續(xù)計算推力限期值。
送出指令到自動駕駛和自動油門系統(tǒng)。
fmcs是用當時飛機所在的位置,飛機性能參數(shù),目的地機場的經(jīng)緯度和可用跑道,各航路點,無線電導(dǎo)航臺以及等待航線,進近程序等信號或數(shù)據(jù)進行綜合分析運算,以確定飛機的航向,速度以及爬高,下降角度和升降速度,階梯爬高和下降等指令,來計劃飛機飛行的水平相垂直剖面。
一般而言,架構(gòu)有兩個要素: 它是一個軟件系統(tǒng)從整體到部分的最高層次的劃分。 一個系統(tǒng)通常是由元件組成的,而這些元件如何形成、相互之間如何發(fā)生作用,則是關(guān)于這個系統(tǒng)本身結(jié)構(gòu)的重要信息。 詳細地說,就是要包括架構(gòu)元件(ArchitectureComponent)、聯(lián)結(jié)器(Connector)、任務(wù)流(Task-flow)。所謂架構(gòu)元素,也就是組成系統(tǒng)的核心"磚瓦",而聯(lián)結(jié)器則描述這些元件之間通訊的路徑、通訊的機制、通訊的預(yù)期結(jié)果,任務(wù)流則描述系統(tǒng)如何使用這些元件和聯(lián)結(jié)器完成某一項需求。 建造一個系統(tǒng)所作出的最高層次的、以后難以更改的,商業(yè)的和技術(shù)的決定。 在建造一個系統(tǒng)之前會有很多的重要決定需要事先作出,而一旦系統(tǒng)開始進行詳細設(shè)計甚至建造,這些決定就很難更改甚至無法更改。顯然,這樣的決定必定是有關(guān)系統(tǒng)設(shè)計成敗的最重要決定,必須經(jīng)過非常慎重的研究和考察。 計算機軟件的歷史開始于五十年代,歷史非常短暫,而相比之下建筑工程則從石器時代就開始了,人類在幾千年的建筑設(shè)計實踐中積累了大量的經(jīng)驗和教訓(xùn)。建筑設(shè)計基本上包含兩點,一是建筑風(fēng)格,二是建筑模式。獨特的建筑風(fēng)格和恰當選擇的建筑模式,可以使一個獨一無二。 正如同軟件本身有其要達到的目標一樣,架構(gòu)設(shè)計要達到的目標是什么呢?一般而言,軟件架構(gòu)設(shè)計要達到如下的目標: ·可靠性(Reliable)。軟件系統(tǒng)對于用戶的商業(yè)經(jīng)營和管理來說極為重要,因此軟件系統(tǒng)必須非常可靠。 ·安全行(Secure)。軟件系統(tǒng)所承擔的交易的商業(yè)價值極高,系統(tǒng)的安全性非常重要。 ·可擴展性(Scalable)。軟件必須能夠在用戶的使用率、用戶的數(shù)目增加很快的情況下,保持合理的性能。只有這樣,才能適應(yīng)用戶的市場擴展得可能性。 ·可定制化(Customizable)。同樣的一套軟件,可以根據(jù)客戶群的不同和市場需求的變化進行調(diào)整。 ·可擴展性(Extensible)。在新技術(shù)出現(xiàn)的時候,一個軟件系統(tǒng)應(yīng)當允許導(dǎo)入新技術(shù),從而對現(xiàn)有系統(tǒng)進行功能和性能的擴展
一、目的不同:
系統(tǒng)架構(gòu)是對已確定的需求的技術(shù)實現(xiàn)構(gòu)架、作好規(guī)劃,運用成套、完整的工具,在規(guī)劃的步驟下去完成任務(wù)。
應(yīng)用構(gòu)架是描述了IT系統(tǒng)功能和技術(shù)實現(xiàn)內(nèi)容的構(gòu)架。
二、實現(xiàn)方式不同:
系統(tǒng)架構(gòu)通過規(guī)劃程序的運行模式、層次結(jié)構(gòu)、調(diào)用關(guān)系來具體實現(xiàn)架構(gòu)。
應(yīng)用構(gòu)架通過架構(gòu)圖的方式來具體實現(xiàn)架構(gòu)。
鴻蒙系統(tǒng)是華為自主研發(fā)的全場景分布式操作系統(tǒng),其架構(gòu)包括三層:底層核心內(nèi)核、中間的分布式能力框架和頂層的應(yīng)用框架。
底層核心內(nèi)核提供高性能、低延遲的操作系統(tǒng)基礎(chǔ)服務(wù);分布式能力框架實現(xiàn)設(shè)備間的協(xié)同工作和資源共享;應(yīng)用框架提供開發(fā)者友好的開發(fā)環(huán)境和豐富的應(yīng)用生態(tài)。鴻蒙系統(tǒng)采用分布式架構(gòu),能夠?qū)崿F(xiàn)設(shè)備之間的無縫連接和協(xié)同工作,為用戶提供更流暢、智能的體驗。