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