疯狂Android讲义(一)——第一部分
.
備注:下方的*代表這章的重要性。
一、本章內容:
1.Android的發展與簡介
????????Android并不是Google創造的,而是Android公司創造的,該公司的創始人是Andy Rubin。該公司后來被Google收購,而Andy Rubin也成為了Google公司的Android產品負責人。
????????Google于2007年11月5日發布了Android 1.0手機操作系統,但是并沒有得到廣泛的市場支持。
????????2009年5月.Gooole發布了Android 1.5 ,該版本的 Android提供了一個非常“豪華”的用戶界面,而且提供了藍牙連接支持。這個版本的Android吸引了大量開發者的目光。接下來,Android的版本更新得較快,前最新的 Android版本是9.0,這也是本書所介紹的 Android版本。
? ? ? ? Android系統廣泛應用于TV、手機、手表,以及各種可穿戴的設備。Android 9.0已經專門提供了TV、Wear等系統鏡像。
什么是系統鏡像?
????????系統鏡像是驅動器的精確副本。 默認情況下,系統鏡像包含系統運行所需的驅動器。它還包含系統和系統設置、程序及文件。?
????????鏡像文件是無法直接使用的,需要利用一些虛擬光驅工具進行解壓后才能使用。虛擬光驅的原理跟物理光驅一樣。
 ?
 ? ? ? ?如果硬盤或計算機無法工作,則可以使用系統映像來還原計算機的內容。 從系統映像還原計算機時,將進行完整還原;不能選擇個別項進行還原,當前的所有程序、系統設置和文件都將被系統映像中的相應內容替換。
 ? ? ? ?所謂鏡像文件其實和ZIP壓縮包類似,它將特定的一系列文件按照一定的格式制作成單一的文件,以方便用戶下載和使用,例如一個測試的操作系統、游戲等。
 ?
 ? ? ? ?它最重要的特點是可以被特定的軟件識別并可直接刻錄到光盤上。其實通常意義上的鏡像文件可以再擴展一下,在鏡像文件中可以包含更多的信息。比如說系統文件、引導文件、分區表信息等,這樣鏡像文件就可以包含一個分區甚至是一塊硬盤的所有信息。
2.Android 9.x平臺架構及特性(**)
????????Android系統的底層建立在Linux系統之上,該平臺由操作系統、中間件、用戶界面和應用軟件4層組成。它采用一種被稱為軟件疊層(Software Stack)的方式構建。這種軟件疊層結構使得層與層之間相互分離,明確各層的分工。這種分工保證了層與層之間的低耦合,當下層的層內或層下發生改變時,上層應用程序無需任何改變。
????????如圖所示:Android系統主要由6個部分組成,接下來進行詳解。
? 2.1 系統 App 層
? ? ? ? Android提供了一系列核心App(應用程序),包括電話撥號應用、電子郵件客戶端、日歷、相機、聯系人等。這些應用程序通常都是用Java編寫的。
? ? ? ? 普通開發者開發各種App都在這一層。本書也是基于此講解的。
? 2.2 Java API 框架層
? ? ? ? 開發Android App就是面向Java API框架層進行開發。Android系統上的每個App都是平等的,都可以調用Android提供的Java? API框架。Java? API框架提供了大量的API供開發者使用。
????????Java? API框架除了可以作為App開發的基礎之外,也是軟件復用的重要手段,任何一個應用程序都可以發布他的功能模塊——只要發布時遵守了API框架的規范,其他App就都可以調用這個功能的模塊。
? 2.3 原生 C/C++ 庫??
? ? ? ? Android包含一套被不同組件所使用的C/C++庫的集合。下面簡單的列出一些原生C/C++庫:
- WebKit:一個全新的Web瀏覽器引擎,也為WebView提供支持,WebView完全可以嵌入開發者的自己的程序當中。
- OpenMAX(開放媒體加速層):其目的在于使用統一的接口,加速處理大量多媒體資料,其中最上層為OpenMAX AL(App Layer),該層代表App和多媒體中間層的標準接口,使得App在多媒體接口上具有良好的可移植性。
- Libc(系統C庫):一個從BSD系統派生的標準C系統庫,并且專門為嵌入式Linux設備調整過。
- Media Framework(媒體框架):基于PacketVideo的OpenCORE,這套媒體庫支持播放和錄制許多流行的音頻和視頻格式,以及查看靜態圖片。主要包括MPEG4、H.264、MP3、AAC、JPG、PNG等多媒體格式。
- SGL:底層的2D圖片引擎
- OpenGL ES :基于OpenGL ES API實現3D系統,這套3D庫既可以使用硬件3D加速(如果系統支持的話),也可以使用高度優化的軟件3D加速。
- SQLite:功能強大的輕量級關系數據庫。
? 2.4 Android 運行時
????????Android運行時由兩個部分組成:Android核心庫和ART。其中核心庫提供了Java語言核心庫所使用的的絕大部分功能;而ART則負責運行Android應用程序。
背景:
早期Android運行時由Dalvik虛擬機和Android核心庫集組成,但是Dalvik虛擬機采用了一種被稱為JIT(Just-In-Time)的解釋器進行動態編譯且執行,因此導致Android App運行時比較慢。從Android 5.0開始,Android運行時改為使用ART,ART在用戶安裝App時進行預編譯(Ahead-Of-Time,AOT),將原本在程序運行時的編譯動作提前到了App安裝時,這樣使得程序在運行的時候可以減小動態編譯的開銷,從而提高的Android App的運行效率。
相對的,ART需要在App安裝時進行AOT處理,因此ART需要占用更多的存儲空間,應用安裝和啟動時間會延長不少。此外,ART還支持ARM、x86和MIPS架構,并且能完全兼容64位系統。
????????Android 6.0的重要更新是運行時權限,使得App能在安裝之后動態地請求獲取相關權限;Android 7.0的重要更新是多窗口模式。
? 2.5 硬件抽象層(HAL)
????????硬件抽象層主要提供了對Linux內核驅動的封裝,這種分裝可以向上提供驅動音頻、藍牙、攝像頭、傳感器等設備的編程接口,向下則可隱藏底層的實現細節。
? ? ? ? 簡單的來說,Android系統把對硬件的支持分為了兩層:內核驅動層和硬件抽象層。其中底層的內核驅動層處于Linux 內核中,內核驅動層只提供簡單的硬件訪問邏輯,這部分代碼是完全開源的;而硬件抽象層則負責參數和訪問流程控制,這層的封裝代碼并不開源,他只是向上提供統一的編程接口,而具體的實現往往屬于各廠家。
? 2.6 Linux 內核
? ? ? ? Android系統是基于Linux的(所以說Android本質上是一個Linux系統)。Linux 內核提供了安全性、內存管理、進程管理、網絡協議和驅動模型等核心系統服務。除此之外,Linux內核也是系統硬件和軟件疊層之間的抽象層。
總結
以上是生活随笔為你收集整理的疯狂Android讲义(一)——第一部分的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Android蓝牙通讯(服务端、客户端)
- 下一篇: PVE系统更换大硬盘的扩容方法
