android源碼結構分析
frameworks 目錄 (核心架構——java及C++語言)
.
|-- base (基本內容)
| |-- api (?都是xml檔案,定義了java的api?)
| |-- awt (AWT庫)
| |-- build (空的)
| |-- camera (網路攝影機服務程式庫)
| |-- cmds (重要命令:am、app_proce等)
| |-- core (核心庫)
| |-- data (字型和聲音等資料檔案)
| |-- docs (文檔)
| |-- graphics (圖形相關)
| |-- include (標頭檔)
| |-- keystore (和資料簽署憑證相關)
| |-- libs (庫)
| |-- location (地區庫)
| |-- media (媒體相關庫)
| |-- obex (藍芽傳輸庫)
| |-- opengl (2D-3D加速庫)
| |-- packages (設定、TTS、VPN程式)
| |-- sax (XML解析器)
| |-- services (各種服務程式)
| |-- telephony (電話通訊管理)
| |-- test-runner (測試載入器相關)
| |-- tests (各種測試)
| |-- tools (一些叫不上名的工具)
| |-- vpn (VPN)
| `-- wifi (無線網路)
|-- opt (可選部分)
| |-- com.google.android (有個framework.jar)
| |-- com.google.android.googlelogin (有個client.jar)
| `-- emoji (standard message elements)
`-- policies (Product policies are operating system directions aimed at specific uses)
`-- base
|-- mid (MID裝置)
`-- phone (手機類裝置,一般用這個)
hardware 目錄 (部分廠家開源的硬解適配層HAL代碼)
|-- broadcom (博通公司)
| `-- wlan (無線網卡)
|-- libhardware (硬體庫)
| |-- include (標頭檔)
| `-- modules (Default (and possibly architecture dependents) HAL modules)
| |-- gralloc (gralloc顯示相關)
| `-- overlay (Skeleton for the "overlay" HAL module.)
|-- libhardware_legacy (舊的硬體庫)
| |-- flashlight (背光)
| |-- gps (GPS)
| |-- include (標頭檔)
| |-- mount (舊的掛載器)
| |-- power (電源)
| |-- qemu (模擬器)
| |-- qemu_tracing (模擬器跟蹤)
| |-- tests (測試)
| |-- uevent (uevent)
| |-- vibrator (震動)
| `-- wifi (無線)
|-- msm7k (高通7k處理器開源抽象層)
| |-- boot (啟動)
| |-- libaudio (聲音庫)
| |-- libaudio-qsd8k (qsd8k的聲音相關庫)
| |-- libcamera (網路攝影機庫)
| |-- libcopybit (copybit庫)
| |-- libgralloc (gralloc庫)
| |-- libgralloc-qsd8k (qsd8k的gralloc庫)
| |-- liblights (背光庫)
| `-- librpc (RPC庫)
|-- ril (無線電抽象層)
| |-- include (標頭檔)
| |-- libril (庫)
| |-- reference-cdma-sms (cdma簡訊參考)
| |-- reference-ril (ril參考)
| `-- rild (ril後台服務程式)
`-- ti (ti公司開源HAL)
|-- omap3 (omap3處理器)
| |-- dspbridge (DSP橋)
| |-- libopencorehw (opencore硬體庫)
| |-- liboverlay (overlay硬體庫)
| |-- libstagefrighthw (stagefright硬體庫)
| `-- omx (omx組件)
`-- wlan (無線網卡)
prebuilt 目錄 (x86和arm架構下先行編譯的一些資源)
.
|-- android-arm (arm-android相關)
| |-- gdbserver (gdb調試器)
| `-- kernel (類比的arm核心)
|-- android-x86 (x86-android相關)
| `-- kernel (空的)
|-- common (通用編譯好的代碼,應該是java的)
|-- darwin-x86 (drawin x86平台)
| `-- toolchain (工具鏈)
| |-- arm-eabi-4.2.1
| |-- arm-eabi-4.3.1
| `-- arm-eabi-4.4.0
|-- darwin-x86_64 (drawin x86 64bit平台)
|-- linux-x86 (linux x86平台)
| `-- toolchain (工具鏈,我們應該主要用這個)
| |-- arm-eabi-4.2.1
| |-- arm-eabi-4.3.1
| |-- arm-eabi-4.4.0
| `-- i686-unknown-linux-gnu-4.2.1 (x86版編譯器)
|-- linux-x86_64 (linux x86 64bit平台)
|-- windows (windows平台)
`-- windows-x86_64 (64bit windows平台)
system 目錄 (底層檔案系統庫、應用及組件——C語言)
.
|-- Bluetooth (藍芽相關)
|-- core (系統核心工具盒介面)
| |-- adb (adb調試工具)
| |-- cpio (cpio工具,建立img)
| |-- debuggerd (調試工具)
| |-- fastboot (快速啟動相關)
| |-- include (系統介面標頭檔)
| |-- init (init程式原始碼)
| |-- libacc (輕量級C編譯器)
| |-- libctest (libc測試相關)
| |-- libcutils (libc工具)
| |-- liblog (log庫)
| |-- libmincrypt (加密庫)
| |-- libnetutils (網路工具庫)
| |-- libpixelflinger (圖形處理庫)
| |-- libsysutils (系統工具庫)
| |-- libzipfile (zip庫)
| |-- logcat (查看log工具)
| |-- logwrapper (log封裝工具)
| |-- mkbootimg (製作啟動boot.img的工具盒指令碼)
| |-- netcfg (網路設定netcfg源碼)
| |-- nexus (google最新手機的代碼)
| |-- rootdir (rootfs,包含一些etc下的指令碼和配置)
| |-- sh (shell代碼)
| |-- toolbox (toolbox,類似busybox的工具集)
| `-- vold (SD卡管理器)
|-- extras (額外工具)
| |-- latencytop (a tool for software developers ,identifying system latency happen)
| |-- libpagemap (pagemap庫)
| |-- librank (Java Library Ranking System庫)
| |-- procmem (pagemap相關)
| |-- procrank (Java Library Ranking System相關)
| |-- showmap (showmap工具)
| |-- showslab (showslab工具)
| |-- sound (聲音相關)
| |-- su (su命令源碼)
| |-- tests (一些測試載入器)
| `-- timeinfo (時區相關)
`-- wlan (無線相關)
`-- ti (ti網卡相關工具及庫)
packages 目錄
.
|-- apps (應用程式庫)
| |-- AlarmClock (鬧鐘)
| |-- Bluetooth (藍芽)
| |-- Browser (瀏覽器)
| |-- Calculator (計算機)
| |-- Calendar (日曆)
| |-- Camera (相機)
| |-- CertInstaller (在Android中安裝數位簽章,被調用)
| |-- Contacts (撥號(調用)、連絡人、通話記錄)
| |-- DeskClock (案頭時鐘)
| |-- Email (Email)
| |-- Gallery (相簿,和Camera類似,多了列表)
| |-- Gallery3D (?3D相簿)
| |-- GlobalSearch (為google搜尋服務,提供底層應用)
| |-- GoogleSearch (google搜尋)
| |-- HTMLViewer (瀏覽器附屬介面,被瀏覽器應用調用,同時提供儲存記錄功能)
| |-- IM (即時通訊,為手機提供訊號發送、接收、通訊的服務)
| |-- Launcher (登陸啟動項,顯示圖片架構等等圖形介面)
| |-- Launcher2 (登陸啟動項,負責應用的調用)
| |-- Mms (?多媒體訊息業務)
| |-- Music (音樂播放器)
| |-- PackageInstaller (安裝、卸載程式的響應)
| |-- Phone (電話撥號程式)
| |-- Provision (預設應用的狀態,使能應用)
| |-- Settings (開機設定,包括電量、藍芽、裝置資訊、介面、wifi等)
| |-- SoundRecorder (錄音機,可計算儲存所需空間和時間)
| |-- Stk (接收和傳送簡訊)
| |-- Sync (空) -------○1
| |-- Updater (空)
| `-- VoiceDialer (語音辨識通話)
|-- inputmethods (IME)
| |-- LatinIME (拉丁文IME)
| |-- OpenWnn (OpenWnnIME)
| `-- PinyinIME (拼音IME)
|-- providers (提供器,提供應用程式、介面所需的資料)
| |-- ApplicationsProvider (應用程式提供器,提供應用程式啟動項、更新等)
| |-- CalendarProvider (日曆提供器)
| |-- ContactsProvider (連絡人提供器)
| |-- DownloadProvider (下載管理提供器)
| |-- DrmProvider (建立和更新資料庫時調用)
| |-- GoogleContactsProvider (連絡人提供器的子類,用以同步連絡人)
| |-- GoogleSubscribedFeedsProvider(設定資訊提供器)
| |-- ImProvider (空)
| |-- ManagementProvider (空)
| |-- MediaProvider (媒體提供器,提供儲存資料)
| |-- TelephonyProvider (多媒體訊息提供器)
| |-- UserDictionaryProvider (使用者字典提供器,提供使用者常用字字典)
| `-- WebSearchProvider (空)
|-- services
| |-- EasService (空)
| `-- LockAndWipe (空)
`-- wallpapers (牆紙)
|-- Basic (基本牆紙,系統內建牆紙)
|-- LivePicker (選擇動態壁紙)
|-- MagicSmoke (壁紙特殊效果)
`-- MusicVisualization (音樂可視化,圖形隨音樂而變化)
○1裡面有一個隱藏的.git檔案夾,內容都是一樣的,沒有有意義的代碼,config看似乎是一個下載程式,因此認為這些檔案夾下沒有實質東西。
vendor 目錄 (廠家定製內容)
|-- aosp (android open source project)
| `-- products (一些板級規則)
|-- htc (HTC公司)
| |-- common-open (通用部分)
| | `-- akmd (解壓img用的工具)
| |-- dream-open (G1開放部分)
| |-- prebuilt-open (先行編譯開放部分)
| `-- sapphire-open (sapphire這款型號開放內容)
|-- pv-open (沒東西)
|-- qcom (裡面基本是空的)
`-- sample (google提供的範例)
|-- apps (應用)
| |-- client (使用者)
| `-- upgrade (升級)
|-- frameworks (架構)
| `-- PlatformLibrary (平台庫)
|-- products (產品)
|-- sdk_addon (sdk添加部分)
`-- skins (皮膚)
`-- WVGAMedDpi (WVGA適用的圖片)
SDK和OUT目錄沒有列出
frameworks 目錄 (核心架構——java及C++語言)
.
|-- base (基本內容)
| |-- api (?都是xml檔案,定義了java的api?)
| |-- awt (AWT庫)
| |-- build (空的)
| |-- camera (網路攝影機服務程式庫)
| |-- cmds (重要命令:am、app_proce等)
| |-- core (核心庫)
| |-- data (字型和聲音等資料檔案)
| |-- docs (文檔)
| |-- graphics (圖形相關)
| |-- include (標頭檔)
| |-- keystore (和資料簽署憑證相關)
| |-- libs (庫)
| |-- location (地區庫)
| |-- media (媒體相關庫)
| |-- obex (藍芽傳輸庫)
| |-- opengl (2D-3D加速庫)
| |-- packages (設定、TTS、VPN程式)
| |-- sax (XML解析器)
| |-- services (各種服務程式)
| |-- telephony (電話通訊管理)
| |-- test-runner (測試載入器相關)
| |-- tests (各種測試)
| |-- tools (一些叫不上名的工具)
| |-- vpn (VPN)
| `-- wifi (無線網路)
|-- opt (可選部分)
| |-- com.google.android (有個framework.jar)
| |-- com.google.android.googlelogin (有個client.jar)
| `-- emoji (standard message elements)
`-- policies (Product policies are operating system directions aimed at specific uses)
`-- base
|-- mid (MID裝置)
`-- phone (手機類裝置,一般用這個)
hardware 目錄 (部分廠家開源的硬解適配層HAL代碼)
|-- broadcom (博通公司)
| `-- wlan (無線網卡)
|-- libhardware (硬體庫)
| |-- include (標頭檔)
| `-- modules (Default (and possibly architecture dependents) HAL modules)
| |-- gralloc (gralloc顯示相關)
| `-- overlay (Skeleton for the "overlay" HAL module.)
|-- libhardware_legacy (舊的硬體庫)
| |-- flashlight (背光)
| |-- gps (GPS)
| |-- include (標頭檔)
| |-- mount (舊的掛載器)
| |-- power (電源)
| |-- qemu (模擬器)
| |-- qemu_tracing (模擬器跟蹤)
| |-- tests (測試)
| |-- uevent (uevent)
| |-- vibrator (震動)
| `-- wifi (無線)
|-- msm7k (高通7k處理器開源抽象層)
| |-- boot (啟動)
| |-- libaudio (聲音庫)
| |-- libaudio-qsd8k (qsd8k的聲音相關庫)
| |-- libcamera (網路攝影機庫)
| |-- libcopybit (copybit庫)
| |-- libgralloc (gralloc庫)
| |-- libgralloc-qsd8k (qsd8k的gralloc庫)
| |-- liblights (背光庫)
| `-- librpc (RPC庫)
|-- ril (無線電抽象層)
| |-- include (標頭檔)
| |-- libril (庫)
| |-- reference-cdma-sms (cdma簡訊參考)
| |-- reference-ril (ril參考)
| `-- rild (ril後台服務程式)
`-- ti (ti公司開源HAL)
|-- omap3 (omap3處理器)
| |-- dspbridge (DSP橋)
| |-- libopencorehw (opencore硬體庫)
| |-- liboverlay (overlay硬體庫)
| |-- libstagefrighthw (stagefright硬體庫)
| `-- omx (omx組件)
`-- wlan (無線網卡)
prebuilt 目錄 (x86和arm架構下先行編譯的一些資源)
.
|-- android-arm (arm-android相關)
| |-- gdbserver (gdb調試器)
| `-- kernel (類比的arm核心)
|-- android-x86 (x86-android相關)
| `-- kernel (空的)
|-- common (通用編譯好的代碼,應該是java的)
|-- darwin-x86 (drawin x86平台)
| `-- toolchain (工具鏈)
| |-- arm-eabi-4.2.1
| |-- arm-eabi-4.3.1
| `-- arm-eabi-4.4.0
|-- darwin-x86_64 (drawin x86 64bit平台)
|-- linux-x86 (linux x86平台)
| `-- toolchain (工具鏈,我們應該主要用這個)
| |-- arm-eabi-4.2.1
| |-- arm-eabi-4.3.1
| |-- arm-eabi-4.4.0
| `-- i686-unknown-linux-gnu-4.2.1 (x86版編譯器)
|-- linux-x86_64 (linux x86 64bit平台)
|-- windows (windows平台)
`-- windows-x86_64 (64bit windows平台)
system 目錄 (底層檔案系統庫、應用及組件——C語言)
.
|-- Bluetooth (藍芽相關)
|-- core (系統核心工具盒介面)
| |-- adb (adb調試工具)
| |-- cpio (cpio工具,建立img)
| |-- debuggerd (調試工具)
| |-- fastboot (快速啟動相關)
| |-- include (系統介面標頭檔)
| |-- init (init程式原始碼)
| |-- libacc (輕量級C編譯器)
| |-- libctest (libc測試相關)
| |-- libcutils (libc工具)
| |-- liblog (log庫)
| |-- libmincrypt (加密庫)
| |-- libnetutils (網路工具庫)
| |-- libpixelflinger (圖形處理庫)
| |-- libsysutils (系統工具庫)
| |-- libzipfile (zip庫)
| |-- logcat (查看log工具)
| |-- logwrapper (log封裝工具)
| |-- mkbootimg (製作啟動boot.img的工具盒指令碼)
| |-- netcfg (網路設定netcfg源碼)
| |-- nexus (google最新手機的代碼)
| |-- rootdir (rootfs,包含一些etc下的指令碼和配置)
| |-- sh (shell代碼)
| |-- toolbox (toolbox,類似busybox的工具集)
| `-- vold (SD卡管理器)
|-- extras (額外工具)
| |-- latencytop (a tool for software developers ,identifying system latency happen)
| |-- libpagemap (pagemap庫)
| |-- librank (Java Library Ranking System庫)
| |-- procmem (pagemap相關)
| |-- procrank (Java Library Ranking System相關)
| |-- showmap (showmap工具)
| |-- showslab (showslab工具)
| |-- sound (聲音相關)
| |-- su (su命令源碼)
| |-- tests (一些測試載入器)
| `-- timeinfo (時區相關)
`-- wlan (無線相關)
`-- ti (ti網卡相關工具及庫)
packages 目錄
.
|-- apps (應用程式庫)
| |-- AlarmClock (鬧鐘)
| |-- Bluetooth (藍芽)
| |-- Browser (瀏覽器)
| |-- Calculator (計算機)
| |-- Calendar (日曆)
| |-- Camera (相機)
| |-- CertInstaller (在Android中安裝數位簽章,被調用)
| |-- Contacts (撥號(調用)、連絡人、通話記錄)
| |-- DeskClock (案頭時鐘)
| |-- Email (Email)
| |-- Gallery (相簿,和Camera類似,多了列表)
| |-- Gallery3D (?3D相簿)
| |-- GlobalSearch (為google搜尋服務,提供底層應用)
| |-- GoogleSearch (google搜尋)
| |-- HTMLViewer (瀏覽器附屬介面,被瀏覽器應用調用,同時提供儲存記錄功能)
| |-- IM (即時通訊,為手機提供訊號發送、接收、通訊的服務)
| |-- Launcher (登陸啟動項,顯示圖片架構等等圖形介面)
| |-- Launcher2 (登陸啟動項,負責應用的調用)
| |-- Mms (?多媒體訊息業務)
| |-- Music (音樂播放器)
| |-- PackageInstaller (安裝、卸載程式的響應)
| |-- Phone (電話撥號程式)
| |-- Provision (預設應用的狀態,使能應用)
| |-- Settings (開機設定,包括電量、藍芽、裝置資訊、介面、wifi等)
| |-- SoundRecorder (錄音機,可計算儲存所需空間和時間)
| |-- Stk (接收和傳送簡訊)
| |-- Sync (空) -------○1
| |-- Updater (空)
| `-- VoiceDialer (語音辨識通話)
|-- inputmethods (IME)
| |-- LatinIME (拉丁文IME)
| |-- OpenWnn (OpenWnnIME)
| `-- PinyinIME (拼音IME)
|-- providers (提供器,提供應用程式、介面所需的資料)
| |-- ApplicationsProvider (應用程式提供器,提供應用程式啟動項、更新等)
| |-- CalendarProvider (日曆提供器)
| |-- ContactsProvider (連絡人提供器)
| |-- DownloadProvider (下載管理提供器)
| |-- DrmProvider (建立和更新資料庫時調用)
| |-- GoogleContactsProvider (連絡人提供器的子類,用以同步連絡人)
| |-- GoogleSubscribedFeedsProvider(設定資訊提供器)
| |-- ImProvider (空)
| |-- ManagementProvider (空)
| |-- MediaProvider (媒體提供器,提供儲存資料)
| |-- TelephonyProvider (多媒體訊息提供器)
| |-- UserDictionaryProvider (使用者字典提供器,提供使用者常用字字典)
| `-- WebSearchProvider (空)
|-- services
| |-- EasService (空)
| `-- LockAndWipe (空)
`-- wallpapers (牆紙)
|-- Basic (基本牆紙,系統內建牆紙)
|-- LivePicker (選擇動態壁紙)
|-- MagicSmoke (壁紙特殊效果)
`-- MusicVisualization (音樂可視化,圖形隨音樂而變化)
○1裡面有一個隱藏的.git檔案夾,內容都是一樣的,沒有有意義的代碼,config看似乎是一個下載程式,因此認為這些檔案夾下沒有實質東西。
vendor 目錄 (廠家定製內容)
|-- aosp (android open source project)
| `-- products (一些板級規則)
|-- htc (HTC公司)
| |-- common-open (通用部分)
| | `-- akmd (解壓img用的工具)
| |-- dream-open (G1開放部分)
| |-- prebuilt-open (先行編譯開放部分)
| `-- sapphire-open (sapphire這款型號開放內容)
|-- pv-open (沒東西)
|-- qcom (裡面基本是空的)
`-- sample (google提供的範例)
|-- apps (應用)
| |-- client (使用者)
| `-- upgrade (升級)
|-- frameworks (架構)
| `-- PlatformLibrary (平台庫)
|-- products (產品)
|-- sdk_addon (sdk添加部分)
`-- skins (皮膚)
`-- WVGAMedDpi (WVGA適用的圖片)
SDK和OUT目錄沒有列出