天天看點

Android源碼目錄結構介紹

之前介紹了《Android源碼的下載下傳,編譯,刷機》,這篇介紹一下Android源碼的目錄結構,因為目錄結構非常複雜,是以這裡隻介紹一級目錄,進入一級目錄檢視目錄結構

#檢視一級目錄和檔案
tree -L 1
           
Android源碼目錄結構介紹

導入Android Studio後是這樣子的

Android源碼目錄結構介紹

也可以線上檢視Android源碼結構:https://cs.android.com/android/platform/superproject/

雖然目錄很多很複雜,但framework開發需要接觸到的目錄還是比較有限的,有些目錄我也不知道幹啥用的,這裡我簡單介紹一下各個目錄的作用,經常打交道的目錄我會标注出來并詳細介紹:

  • art:Android RunTime的核心檔案
  • bonic:翻譯過來是仿生的意思,可能是存放的仿生功能相關的c/c++庫檔案
  • bootable:存放啟動引導檔案
  • build:存放系統編譯規則和基礎開發包配置
  • cts:Compatibility Test Suite,GMS認證所用到的測試套件,GMS全稱為Google Mobile Service,也就是裝置安裝了GMS才可以使用Google提供的服務,比如安裝Google Play,Youtube之類的,隻有通過了cts測試套件所有測試項才能安裝GMS
  • dalvik:用于 Android 平台的 Java 虛拟機,5.0之前叫DVM,之後叫ART
  • developers:開發者參考文檔
  • development:app開發參考項目
  • device:Android支援的各種裝置及其配置
  • external:Android引入的第三方庫,Google會把一些比較優秀的開源庫納入到源碼裡面,比如app開發常用的okhttp,zxing,sqlite等
  • frameworks:這個是framework開發經常打交道的目錄,裡面存放着app開發的基礎架構,比如所有的View,所有的SystemService都是在這個目錄下
  • hardware:這裡主要存放硬體相關的檔案,hal層的檔案都在這兒
  • kernel:顧名思義,Android系統的核心
  • libcore:Android中的Java核心類庫
  • libnativehelper:Android中Java類庫native實作助手
  • out:編譯生成的檔案都在這個目錄下,比如jar包,so庫,img鏡像等
  • packages:這個也是framework開發經常打交道的目錄,所有Google原生的系統應用群組件都在這個目錄下,比如Launcher(桌面),Settings(設定),Input(輸入法),ScreenSaver(屏保)等
  • pdk:platform develop kit,平台開發元件
  • platform_testing:平台測試程式
  • prebuilts:預編譯相關
  • sdk:Java層SDK
  • system:系統檔案
  • test:單測試程式
  • toolchain:工具鍊
  • tools:工具集
  • vendor:廠商相關檔案,不同廠商對應的硬體不同,Google為各個廠商預留了一個目錄,各個廠商将自己的一些特有檔案存放在此目錄下,比如廠商自己寫的一些app應用,驅動檔案,協定标準檔案等等,常見的廠商有qualcomm(高通,簡稱qcom),sumsung(三星)

具體每個目錄及其二級目錄的作用可以參考這篇部落格,我覺得介紹得很細緻-《Android 12 源碼目錄結構》