Android學習之旅(2)---基礎知識

android體系結構

Android系統的底層是基於linux系統(linux2.6內核)之上,和其他的操作系統一樣Android也採用分層的架構,從底到高分別是:Linux內核層(Linux Kernel)、Android系統運行層(包括Android Runtime和原生態的c/c++庫Native C/C++ Libraies)、Java Api框架層(Java Api Framework)、Applications 應用層。

Linux kernel

Android系統建立在linux2.6之上。linux內核提供了 安全性、內存管理、進程管理、網路協議棧和驅動模型等核心系統服務,即Android系統的底層硬件驅動由Linux kernel內核負責。除此之外,linux內核也是系統硬件和軟件疊層之間的抽象層。

Android系統運行層

C/C++庫

Android包含了C/C++庫的集合,通常情況下Android應用開發者不能直接調用,需要通過java Api層來調用。

  • 系統C庫
    一個從BSD系統派生出來的標準出來C系統庫(libc),並且專門爲嵌入式Linux設備調整過。
  • 媒體庫
    基於PacketVideo的OpenCORE,這套媒體庫支持播放和錄製音頻和視頻格式,以及查看靜態圖片。主包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG等多媒體格式。
  • Surface Manager
    管理對顯示子系統的訪問,並可以對個應用程序中的2D和3D圖像提供無縫整合。
  • LibWebCore
    一個全新的Web瀏覽器引擎,該引擎爲Android瀏覽器提供支持,也爲WebView提供支持,WebView完全可以嵌入開發者自己的應用程序中。
  • SGL
    底層的2D圖像引擎。
  • 3D libraries
    基於OpenGL ES API實現的3D系統,這套系統3D庫既可以使用硬件3D加速,也可以使用高度優化的軟件3D加速。
  • FreeType
    位圖和向量字體顯示。
  • SQLite
    供所有應用程序使用的功能強大的輕量級關係數據庫。

Android Runtime

Android運行時由兩部分組成:Android核心庫集和ART。其中核心庫提供了java語言核心庫所能使用的絕大部分功能,而虛擬機(和java的虛擬機類似)負責運行Android應用程序。

  • ART、Dalvik、AOT、JIT
    在Android5.0之前Android的運行時由Dalvil虛擬機和Android核心庫組成,它採用了一種JIT(just in time “即時編譯技術”)的解釋器進行動態編譯並執行,這就導致Android的軟件在運行速度比較慢。而ART模式使用的AOT(Ahead Of Time “提前編譯技術”),就是在程序第一次安裝時,字節碼就會預先編譯成機器碼,這樣就避免了每次運行時都需要編譯程序,從而提高程序的啓動和運行速度,但這樣會導致程序所需要的空間比較大,可以理解成一種空間換時間的技術。

Java Api框架層

Java Api框架層提供了大量的Api供開發者使用,除了作爲應運程序開發的基礎之外,也是軟件複用的重要手段,任何一個應用程序都可以發佈他的功能模塊(發佈時需要準守跨框架的約定)。

Applications(應用程序)框架層

所有的Android應用程序和我們編寫的程序都會被安裝在這層。

Android Studio的工程目錄

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-hfCEjPTT-1575107594398)(./AndroidStudio工程目錄.png)]
其中文件的代碼、資源等內容基本都是放在App文件夾下的,下面將介紹一下App文件夾中的重要內容。

  • build
    build目錄是在程序編譯時自動生成的文件,包括一些零時文件,還有生成的.apk文件就在該目錄下。
  • libs
    存放項目中使用的第三方jar包,該目錄下的jar包會自動添加到構建路徑中。
  • src/AndroidTest
    用來編寫Android Test測試永獵的,可以對項目進行一些自動化測試。
  • src/main/java
    存放編寫的java代碼
  • src/main/res
    存放需要的資源文件

    drawable:存放圖片
    mipmap: 存放應用圖標
    values: 存放字符串、顏色、樣式配置
    layout:佈局文件

  • src/main/AndroidManifest.xml
    安卓應用清單文件,該文件時每個Android項目所必需的,他是整個android應用的全局描述文件。該文件說明了該應用的名稱,所使用的圖標以及包含的組件等。
  • test
    此處用來編寫unit Test測試用例,可以對項目進行自動化測試。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章