android系統架構
『壹』 華為麒麟OS還是基於Android系統架構嗎
早在2012年,路透社就報道稱華為正在著手研發自己的手機操作系統,以減少他們對其他公司的依賴,提供一個可替代計劃。不過有分析人士認為,考慮到應用支持方面的問題,麒麟OS預計還會基於Android系統架構研發,但會加入更多華為的特色服務和功能。
『貳』 android系統的系統架構
架構詳解
linux Kernel
Android基於Linux kernel 提供核心系統服務,例如:安全、內存管理、進程管理、網路堆棧、驅動模型。Linux Kernel也作為硬體和軟體之間的抽象層,它隱藏具體硬體細節而為上層提供統一的服務。 如果你學過計算機網路知道OSI/RM,就會知道分層的好處就是使用下層提供的服務而為上層提供統一的服務,屏蔽本層及以下層的差異,當本層及以下層發生了變化不會影響到上層。也就是說各層各盡其職,各層提供固定的SAP(ServiceAccess Point),專業點可以說是高內聚、低耦合。如果你只是做應用開發,就不需要深入了解Linux Kernel層。
Android Runtime
Android包含一個核心庫的集合,提供大部分在java編程語言核心類庫中可用的功能。每一個Android應用程序是Dalvik虛擬機中的實例,運行在他們自己的進程中。Dalvik虛擬機設計成,在一個設備可以高效地運行多個虛擬機。Dalvik虛擬機可執行文件格式是.dex,dex格式是專為Dalvik設計的一種壓縮格式,適合內存和處理器速度有限的系統。 大多數虛擬機包括JVM都是基於棧的,而Dalvik虛擬機則是基於寄存器的。兩種架構各有優劣,一般而言,基於棧的機器需要更多指令,而基於寄存器的機器指令更大。dx 是一套工具,可以將 Java .class 轉換成 .dex 格式。一個dex文件通常會有多個.class。由於dex有時必須進行最佳化,會使文件大小增加1-4倍,以ODEX結尾。 Dalvik虛擬機依賴於Linux 內核提供基本功能,如線程和底層內存管理。
Library
Android包含一個C/C++庫的集合,供Android系統的各個組件使用。這些功能通過Android的應用程序框架(application framework)暴露給開發者。下面列出一些核心庫:系統C庫——標准C系統庫(libc)的BSD衍生,調整為基於嵌入式Linux設備媒體庫——基於PacketVideo的OpenCORE。這些庫支持播放和錄制許多流行的音頻和視頻格式,以及靜態圖像文件,包括MPEG4、 H.264、MP3、 AAC、AMR、JPG、 PNG界面管理——管理訪問顯示子系統和無縫組合多個應用程序的二維和三維圖形層LibWebCore——新式的Web瀏覽器引擎,驅動Android 瀏覽器和內嵌的web視圖SGL——基本的2D圖形引擎3D庫——基於OpenGL ES 1.0 APIs的實現。庫使用硬體3D加速或包含高度優化的3D軟體光柵FreeType——點陣圖和矢量字體渲染SQLite——所有應用程序都可以使用的強大而輕量級的關系資料庫引擎
Application Framework
通過提供開放的開發平台,Android使開發者能夠編制極其豐富和新穎的應用程序。開發者可以自由地利用設備硬體優勢、訪問位置信息、運行後台服務、設置鬧鍾、向狀態欄添加通知等等,很多很多。 開發者可以完全使用核心應用程序所使用的框架APIs。應用程序的體系結構旨在簡化組件的重用,任何應用程序都能發布他的功能且任何其他應用程序可以使用這些功能(需要服從框架執行的安全限制)。這一機制允許用戶替換組件。 所有的應用程序其實是一組服務和系統,包括:視圖(View)——豐富的、可擴展的視圖集合,可用於構建一個應用程序。包括包括列表、網格、文本框、按鈕,甚至是內嵌的網頁瀏覽器內容提供者(Content Providers)——使應用程序能訪問其他應用程序(如通訊錄)的數據,或共享自己的數據資源管理器(Resource Manager)——提供訪問非代碼資源,如本地化字元串、圖形和布局文件通知管理器(Notification Manager)——使所有的應用程序能夠在狀態欄顯示自定義警告活動管理器(Activity Manager)——管理應用程序生命周期,提供通用的導航回退功能
Application
Android裝配一個核心應用程序集合,包括電子郵件客戶端、SMS程序、日歷、地圖、瀏覽器、聯系人和其他設置。所有應用程序都是用Java編程語言寫的。更加豐富的應用程序有待我們去開發! 從上面我們知道Android的架構是分層的,非常清晰,分工很明確。Android本身是一套軟體堆疊(Software Stack),或稱為「軟體疊層架構」,疊層主要分成三層:操作系統、中間件、應用程序。從上面我們也看到了開源的力量,一個個熟悉的開源軟體在這里貢獻了自己的一份力量。
『叄』 Android系統層次結構是怎樣的
由下往上:linux內核,庫與運行環境,應用框架,應用層
『肆』 有哪些關於 Android 系統架構,底層實現方面的技術書推薦
深入淺出 Android – Google 手持設備應用程序設計 入門書籍,作者寫的很不錯,可以在閱讀 SDK 的同時閱讀這本書,中間的一些使 用介紹的非常清楚,最重要的是中文版的 Google Android 應用框架原理與程式設計 36 技 最早介紹 Android 的中文書籍,台灣人寫的繁體版的,看得有些影響,不過還是值 得耐心閱讀的 Android A Programmer』s Guide 多個專家寫的介紹 Android 的書籍, 內容寫的很不錯, Ask the Expert 部分針對一些 問題作了詳細的說明 Android Essentials 對 Android 介紹的比較全面,從安裝到開發,應該有新版本了。 Google Android SDK 開發範例大全 ( 第 2 版 ) 以 Android 手機應用程序開發(採用 AndroidSDK2.1 )為主題,通過 160 多個範例 全面且深度地整合了手機、網路及服務等多個開發領域,為讀者提高程序設計功力 提供了很大的幫助。 Google Android 開發入門與實戰 內容上覆蓋了用 Android 開發的大部分場景,從 Android 基礎介紹、環境搭建、 SD K 介紹、 Market 使用,到應用剖析、組件介紹、實例演示等方面。從技術實現上, 講解了 5 個 Android 平台下的完整綜合實例及源代碼分析,分別是 RSS 閱讀器、基 於 Google Map 的個人 GPS 、豆瓣網( Web 2.0 )客戶端、在線音樂播放器、手機信 息助手,為初學者學習與實踐結合提供了很好的指導。 Android 平台開發之旅 涵蓋了 Android 平台 1.5 到 2.2 版本的主要功能特性,立足實際的開發案例, 介紹了 Android 手機平台開發的基礎概念、 實用技術和應用模式。 主要內容包括: 平台基礎、 開發環境搭建、程序框架、高級界面和底層界面設計、文件系統管理、網路通信、 無線通信、多媒體編程、個人信息管理、電話系統、資料庫應用、 XML 應用和地圖 應用。開發實例多達 120 例。 如何成為 Android 高手 成為一名真正的 Android 高手必須掌握和遵循的一些准則: 1 ,學會懶惰 2 ,精通 Android 體系架構、 MVC 、常見的設計模式、控制反轉( IoC ) 3 ,編寫可重用、可擴展、可維護、靈活性高的代碼 4 ,高效的編寫高效的代碼 5 ,學會至少一門伺服器端開發技術 Android 開發指南中文版之應用程序框架 Android SDK1.5 版的英文開發資料 Android Development Guide 中應用程序框架部 分的翻譯 PDF 文
『伍』 Android的系統架構包括哪些部分
Android一詞的本義指「機器人」,最初的Android主要支持手機,後來經過開發改良,逐漸擴展到平板電腦及其他一些領域上,是首個為移動終端打造的真正的開放和完整的移動軟體。
Android的系統架構和其操作系統一樣,採用了分層的架構。Android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和Linux內核層。
一、應用程序
Android會同一系列核心應用程序包一起發布,該應用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯系人管理程序等。所有的應用程序都是使用JAVA語言編寫的。
二、應用程序框架
開發人員也可以完全訪問核心應用程序所使用的API框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序都可以發布它的功能塊並且任何其它的應用程序都可以使用其所發布的功能塊(不過得遵循框架的安全性)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。
三、系統運行庫
Android 包含一些C/C++庫,這些庫能被Android系統中不同的組件使用。它們通過 Android 應用程序框架為開發者提供服務。
四、Linux內核層
Android內核是基於Linux 內核的修改的內核版本,它提供了用於支持Android平台的設備驅動。
『陸』 什麼是android系統,android的發展以及android的平台架構和特性
Android平台採用了整合的策略思想,包括底層Linux操作系統、中間層的中間件和上層的Java應用程序。下面我把Android的特性及其架構體系結構總結一下。
一、Android的平台特性
Android平台有如下特性:
1. 應用程序框架支持組件的重用與替換。
這樣我們可以把系統中不喜歡的應用程序刪除,安裝我們喜歡的應用程序。
2. Dalvik虛擬機專門為移動設備進行了優化。
Android應用程序將由Java編寫、編譯的類文件通過DX工具轉換成一種後綴名為.dex的文件來執行。Dalvik虛擬機是基於寄存器的,相對於Java虛擬機速度要快很多。
3. 內部集成瀏覽器基於開源的WebKit引擎。
有了內置的瀏覽器,這將意味著WAP應用的時代即將結束,真正的移動互聯網時代已經來臨,手機就是一台「小電腦」,可以在網上隨意遨遊。
4. 優化的圖形庫包括2D和3D圖形庫,3D圖形庫基於OpenGL ES 1.0。
強大的圖形庫給游戲開發帶來福音。在3G最為重要的的應用莫過於手機上網和手機游戲。
5. SQLite用作結構化的數據存儲。
6. 多媒體支持包括常見的音頻、視頻和靜態印象文件格式
如MPEG4、H.264、MP3、AAC、AMR、JGP、PNG、GIF。
7. GSM電話(依賴於硬體)。
8. 藍牙(Bluetooth)、EDGE、3G、WiFi(依賴於硬體)。
9. 照相機、GPS、指南針和加速度計(依賴於硬體)。
10. 豐富的開發環境包括設備模擬器、調試工具、內存及性能分析圖表和Eclipse集成的開發環境插件。
Google提供了Android開發包SDK,其中包含了大量的類庫和開發工具,並且針對Eclipse的可視化開發插件ADT。
二、Android平台架構
從上圖我們可以看出,Android操作系統的體系結構可分為4層,由上到下依次是應用程序、應用程序框架、核心類庫和Linux內核,其中第三層還包括Android運行時的環境。下面分別來講解各個部分。
1. 程序應用
Android
連同一個核心應用程序包一起發布,該應用程序包包括E-mail客戶端、SMS短消息程序、日歷、地圖、瀏覽器、聯系人管理程序等。所有的應用程序都是用Java編寫的。
2. 應用程序框架
開發者完全可以訪問核心應用程序所使用的API框架。該應用程序框架架構用來簡化組件軟體的重用,任何一個應用程序都可以發布它的功能塊並且任何其他的應用程序都可以使用其所發布的功能塊(不過得遵循框架的安全性限制)。該應用程序重用機制使得組件可以被用戶替換。
以下所有的應用程序都由一系列的服務和系統組成,包括:
1)一個可擴展的視圖(Views)可以用來創建應用程序,包括列表(lists)、網路(grids)、文本框(text
boxes)、按鈕(buttons),甚至是一個可嵌入的Web瀏覽器。
2)內容管理器(Content Providers)使得應用程序可以訪問另一個應用程序的數據(如聯系人資料庫),或者共享它們自己的數據。
3)一個資源管理器(Resource Manager)提供非代碼資源的訪問,如本地字元串、圖形和分層文件(layout files)。
4)一個通知管理器(Notification Manager)使得應用程序可以在狀態欄中顯示客戶通知信息。
5)一個活動類管理器(Activity Manager)用來管理應用程序生命周期並提供常用的導航回退功能。
3. Android程序庫
Android包括一個被Android系統中各種不同組件所使用的C/C++集庫。該庫通過Android應用程序框架為開發者提供服務。
以下是一些主要的核心庫:
1)系統C庫:一個從BSD繼承來的標准C系統函數庫(libc),專門為基於Embedded Linux的設備定製。
2)媒體庫:基於PacketVideo
OpenCORE;該庫支持錄放,並且可以錄制許多流行的音頻視頻格式,還有靜態映像文件包括MPEG4、H.264、MP3、AAC、JPG、PNG。
3)Surface Manager:對顯示子系統的管理,並且為多個應用程序提供2D和3D圖層的無縫融合。
4)LibWebCore:一個最新的Web瀏覽器引擎,用來支持Android瀏覽器和一個可嵌入的Web視圖。
5)SGL:一個內置的2D圖形引擎。
6)3D libraries:基於OpenGL ES 1.0 APIs實現;該庫可以使用硬體3D加速(如果可用)或者使用高度優化的3D軟加速。
7)FreeType:點陣圖(bitmap)和向量(vector)字體顯示。
8)SQLite:一個對於所以應用程序可用、功能強勁的輕型關系型資料庫引擎。
4. Android運行庫
Android包括了一個核心庫,該核心庫提供了Java編程語言核心庫的大多數功能。
每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik是針對同時高效地運行多個VMs實現的。Dalvik虛擬機執行.dex的Dalvik可執行文件,該格式文件針對最小內存使用做了優化。該虛擬機是基於寄存器的,所有的類都是經由Java匯編器編譯,然後通過SDK中的DX工具轉化成.dex格式由虛擬機執行。
Dalvik虛擬機依賴於Linux的一些功能,比如線程機制和底層內存管理機制。
5. Linux內核
Android的核心系統服務依賴於Linux內核,如安全性、內存管理、進程管理、網路協議棧和驅動模型。Linux內核也同時作為硬體和軟體棧之間的硬體抽象層。
『柒』 android開發的系統架構
Android以Java為編程語言,使介面到功能,都有層出不窮的變化,其中Activity等同於J2ME的MIDlet,一個 Activity 類(class)負責創建視窗(window),一個活動中的Activity就是在 foreground(前景)模式,背景運行的程序叫做Service。兩者之間通過由ServiceConnection和AIDL連結,達到復數程序同時運行的效果。如果運行中的 Activity 全部畫面被其他 Activity 取代時,該 Activity 便被停止(stopped),甚至被系統清除(kill)。
View等同於J2ME的Displayable,程序人員可以通過 View 類與「XML layout」檔將UI放置在視窗上,Android 1.5的版本可以利用 View 打造出所謂的 Widgets,其實Widget只是View的一種,所以可以使用xml來設計layout,HTC的Android Hero手機即含有大量的widget。至於ViewGroup 是各種layout 的基礎抽象類(abstract class),ViewGroup之內還可以有ViewGroup。View的構造函數不需要再Activity中調用,但是Displayable的是必須的,在Activity 中,要通過findViewById()來從XML 中取得View,Android的View類的顯示很大程度上是從XML中讀取的。View 與事件(event)息息相關,兩者之間通過Listener 結合在一起,每一個View都可以注冊一個event listener,例如:當View要處理用戶觸碰(touch)的事件時,就要向Android框架注冊View.OnClickListener。另外還有Image等同於J2ME的BitMap。 操作系統與應用程序的溝通橋梁,並用分為兩層:函數層(Library)和虛擬機(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同時包含了Webkit,所謂的Webkit 就是Apple Safari瀏覽器背後的引擎。Surface flinger 是就2D或3D的內容顯示到屏幕上。Android使用工具鏈(Toolchain)為Google自製的Bionic Libc。
Android採用OpenCORE作為基礎多媒體框架。OpenCORE可分7大塊:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android 使用skia 為核心圖形引擎,搭配OpenGL/ES。skia與Linux Cairo功能相當,但相較於Linux Cairo, skia 功能還只是陽春型的。2005年Skia公司被Google收購,2007年初,Skia GL源碼被公開,目前Skia 也是Google Chrome 的圖形引擎。
Android的多媒體資料庫採用SQLite資料庫系統。資料庫又分為共用資料庫及私用資料庫。用戶可通過ContentResolver類(Column)取得共用資料庫。
Android的中間層多以Java 實現,並且採用特殊的Dalvik虛擬機(Dalvik Virtual Machine)。Dalvik虛擬機是一種「暫存器型態」(Register Based)的Java虛擬機,變數皆存放於暫存器中,虛擬機的指令相對減少。
Dalvik虛擬機可以有多個實例(instance), 每個Android應用程序都用一個自屬的Dalvik虛擬機來運行,讓系統在運行程序時可達到優化。Dalvik虛擬機並非運行Java位元組碼(Bytecode),而是運行一種稱為.dex格式的文件。 Android 的 HAL(硬體抽像層)是能以封閉源碼形式提供硬體驅動模塊。HAL 的目的是為了把 Android framework 與 Linux kernel 隔開,讓 Android 不至過度依賴 Linux kernel,以達成 kernel independent 的概念,也讓 Android framework 的開發能在不考量驅動程序實現的前提下進行發展。
HAL stub 是一種代理人(proxy)的概念,stub 是以 *.so 檔的形式存在。Stub 向 HAL「提供」操作函數(operations),並由 Android runtime 向 HAL 取得 stub 的 operations,再 callback 這些操作函數。HAL 里包含了許多的 stub(代理人)。Runtime 只要說明「類型」,即 mole ID,就可以取得操作函數。 Android 是運行於 Linux kernel之上,但並不是GNU/Linux。因為在一般GNU/Linux 里支持的功能,Android 大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 為了達到商業應用,必須移除被GNU GPL授權證所約束的部份,例如Android將驅動程序移到 userspace,使得Linux driver 與 Linux kernel徹底分開。bionic/libc/kernel/ 並非標準的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所產生的,這樣做是為了保留常數、數據結構與宏。
目前Android 的 Linux kernel控制包括安全(Security),存儲器管理(Memory Managemeat),程序管理(Process Management),網路堆棧(Network Stack),驅動程序模型(Driver Model)等。下載Android源碼之前,先要安裝其構建工具Repo來初始化源碼。Repo 是 Android 用來輔助Git工作的一個工具。
『捌』 華為麒麟OS還是基於Android系統架構嗎
是的,華為麒麟OS是基於Android系統架構的。
EMUI 6.0基於Android8.0開發,這款全新的系統在經過重新設計之後,更加簡潔、易操作。消息稱,該系統邀請了前諾基亞前工程師加入,經過華為三年潛心研發而成。系統還是會基於安卓構架,但是加入了更多華為的特色和服務,與晶元封裝就是是系統的特色之一。
(8)android系統架構擴展閱讀:
鴻蒙OS將微內核技術應用於可信執行環境(TEE),通過形式化方法,重塑可信安全。
通過統一IDE支撐一次開發,多端部署,實現跨終端生態共享。鴻蒙OS憑借多終端開發IDE,多語言統一編譯,分布式架構Kit提供屏幕布局控制項以及交互的自動適配。
支持控制項拖拽,面向預覽的可視化編程,從而使開發者可以基於同一工程高效構建多端自動運行App,實現真正的一次開發,多端部署,在跨設備之間實現共享生態。
參考資料來源:手機中國-華為EMUI 6.0曝光:基於Android
『玖』 android的系統架構
Android的系統架構和其操作系統一樣,採用了分層的架構。從架構圖看,Android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和Linux內核層。
應用程序
Android會同一系列核心應用程序包一起發布,該應用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯系人管理程序等。所有的應用程序都是使用JAVA語言編寫的。
應用程序框架
開發人員也可以完全訪問核心應用程序所使用的API框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序都可以發布它的功能塊並且任何其它的應用程序都可以使用其所發布的功能塊(不過得遵循框架的安全性)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。
隱藏在每個應用後面的是一系列的服務和系統, 其中包括;
豐富而又可擴展的視圖(Views),可以用來構建應用程序, 它包括列表(Lists),網格(Grids),文本框(Text boxes),按鈕(Buttons), 甚至可嵌入的web瀏覽器。
內容提供器(Content Providers)使得應用程序可以訪問另一個應用程序的數據(如聯系人資料庫), 或者共享它們自己的數據
資源管理器(Resource Manager)提供 非代碼資源的訪問,如本地字元串,圖形,和布局文件(Layout files )。
通知管理器 (Notification Manager) 使得應用程序可以在狀態欄中顯示自定義的提示信息。
活動管理器( Activity Manager) 用來管理應用程序生命周期並提供常用的導航回退功能。
系統運行庫
Android 包含一些C/C++庫,這些庫能被Android系統中不同的組件使用。它們通過 Android 應用程序框架為開發者提供服務。以下是一些核心庫:
* 系統 C 庫 - 一個從BSD繼承來的標准C系統函數庫 Libc ), 它是專門為基於Embedded linux的設備定製的。
* 媒體庫 - 基於PacketVideo OpenCORE;該庫支持多種常用的音頻、視頻格式回放和錄制,同時支持靜態圖像文件。編碼格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。
* Surface Manager - 對顯示子系統的管理,並且為多個應用程序提 供了2D和3D圖層的無縫融合。
* LibWebCore - 一個最新的web瀏覽器引擎用,支持Android瀏覽器和一個可嵌入的web視圖。
『拾』 一般的android開發都用到了系統架構哪些層
1:android分為四個層,從高層到低層分別是應用程序層、應用程序框架層
開發一個程序,android系統框架是層層相扣,不能分開的。 應用程序層: 這個層主要指的就是用java語言編寫的運行在虛擬機上的程序,Google在最開始時就 在android系統中捆綁了一些核心的應用(核心應用的編寫必須使用應用層序框架層的API框架.
2:android 開發框架有四個層,從高層到低層分別是應用程序層、應用程序框架層
android應用開發框架是 Application Framework. 其系統架構由5部分組成,分別是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。