AOSP項(xiàng)目結(jié)構(gòu)

工程相關(guān)

工程目錄下各個(gè)包名的作用:

以 channel 為例:

  • art 全新的ART運(yùn)行環(huán)境,作為Dalvik虛擬機(jī)的替代
  • bionic 系統(tǒng)C庫
  • bootable 啟動引導(dǎo)相關(guān)代碼
  • build 存放系統(tǒng)編譯規(guī)則及generic等基礎(chǔ)開發(fā)包配置
    • core 核心編譯規(guī)則
    • target 相關(guān)的文件拷貝路徑 如:驅(qū)動 .rc等配置文件拷貝規(guī)則
  • compatibility 兼容性的一些東西
  • cts Android兼容性測試套件標(biāo)準(zhǔn)
  • dalvik dalvik JAVA虛擬機(jī)
  • development 示例以及開發(fā)工具 主要是給系統(tǒng)開發(fā)者使用 另外的一個(gè)developers文件夾展示了當(dāng)前版本的新特性同時(shí)包含了相關(guān)示例以及示例的截圖,要了解新特性的用法建議各位可以看看里面的東西。
  • device 設(shè)備相關(guān)配置,各品牌手機(jī)在硬件上會有差異,廠商會對源碼進(jìn)行定制 修改它的某些部分來配合自家硬件的特性,比如Wifi Adb端口如果需要寫死,可以添加屬性并設(shè)置里面的參數(shù)
  • external android使用的一些開源的模組
  • framework 核心框架---java及C++語言:自己平時(shí)工作相關(guān)的代碼大部分在這里,后面著重分析
  • hardware 部分廠家開源的硬解適配層HAL代碼
  • kernel 內(nèi)核
  • libcore java核心庫 包括java api的源碼
  • libnativehelper 動態(tài)庫實(shí)現(xiàn)JNI庫的基礎(chǔ)
  • out 編譯完成后的代碼輸出到此目錄
  • packages 應(yīng)用程序包:含很多Android項(xiàng)目的源碼,比如錄音,電話,系統(tǒng)設(shè)置,或者三方的一些程序(閱讀器,應(yīng)用商城)等等
    • apps 核心應(yīng)用程序
    • inputmethods 輸入法目錄
    • experimental 第三方應(yīng)用程序
    • providers 內(nèi)容提供者目錄:像我們在應(yīng)用上能都訪問手機(jī)系統(tǒng)通訊錄,系統(tǒng)日歷,都是package中寫好的內(nèi)容提供者,所以我們才能調(diào)用那些uri對系統(tǒng)數(shù)據(jù)進(jìn)行增刪改查操作。
    • screensavers 屏幕保護(hù)
    • services 通信服務(wù)
    • wallpapers 墻紙
  • pdk Plug Development Kit 的縮寫,本地開發(fā)套件,google減少碎片化的東西
  • platform_testing 平臺測試
  • prebuilts x86和arm架構(gòu)下預(yù)編譯好的一些資源 包括模擬器,內(nèi)核文件
  • release 編譯生成的文件
  • sdk sdk和模擬器
  • system 底層文件系統(tǒng)庫、應(yīng)用及組件——C語言
  • toolchain 工具鏈文件
  • tools 工具文件
  • Android.bp 早期的Android系統(tǒng)都是采用Android.mk的配置來編譯源碼,從Android 7.0開始引入Android.bp,Android.bp的出現(xiàn)就是為了替換掉Android.mk。
  • bootstrap.bash 引導(dǎo)腳本文件
  • Makefile 全局Makefile文件,用來定義編譯規(guī)則

以下目錄并非通用目錄:

  • Samsung 對應(yīng)手機(jī)廠商目錄
  • shortcut-fe 根據(jù)手機(jī)平臺芯片改變,這里是高通xx加速
  • test 測試相關(guān)文件
  • vendor 渠道商

Common Framework開發(fā)

將要負(fù)責(zé)的模塊主要是在framework/base里的代碼,其中又以framework/base/services/core為重心,常見的的WMS(WindowManagerService)、AMS(ActivityManagerService)等都在這里。

更加詳細(xì)的查看以下文章:
https://blog.csdn.net/wjky2014/article/details/18262251
https://blog.csdn.net/itachi85/article/details/54695046

隨著學(xué)習(xí)的深入,將持續(xù)更新本篇文章的內(nèi)容

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容