Android源码的目录结构

时间:2022-07-06 05:18:01

Android源码的第一级目录结构

Android/abi (abi相关代码。ABI:applicationbinary interface,应用程序二进制接口)

Android/bionic(bionic C库)

Android/bootable(启动引导相关代码)

Android/build(存放系统编译规则及generic等基础开发配置包)

Android/cts(Android兼容性测试套件标准)

Android/dalvik(dalvik JAVA虚拟机)

Android/development(应用程序开发相关)

Android/device   (设备相关代码)

Android/docs (介绍开源的相关文档)

Android/external(android使用的一些开源的模组)

Android/frameworks(核心框架——java及C++语言,是Android应用程序的框架。)

Android/hardware(主要是硬件适配层HAL代码)

Android/libcore(核心库相关)

Android/ndk (ndk相关代码。AndroidNDK(AndroidNativeDevelopment Kit)是一系列的开发工具,允许程序开发人员在Android应用程序中嵌入C/C++语言编写的非托管代码。)

Android/out(编译完成后的代码输出与此目录)

Android/packages(应用程序包)

Android/prebuilt(x86和arm架构下预编译的一些资源)

Android/sdk(sdk及模拟器)

Android/system(文件系统、应用及组件——C语言)

Android/Makefile

Android/v8.log

 

一、 abi (ABI:application binary interface,应用程序二进制接口)

application 

英[??pl?'ke??(?)n] 美[??pl??ke??n]

n. 应用;申请;应用程序;敷用

 

binary 

英['ba?n?r?] 美['ba?n?ri]

adj. [数] 二进制的;二元的,二态的

 

abi文件的目录结构如下:

 Android源码的目录结构Android源码的目录结构Android源码的目录结构

 其中基本全部都是.cc的文件,打开其中,看到的是一种类C的代码。

 

二、 bionic ( C库 )

 bionic 

英[ba?'?n?k] 美[ba?'ɑn?k]

adj. 仿生学的;利用仿生学的

 

bionic 目录

|-- libc                  (C库)

|   |-- arch-arm    (ARM架构,包含系统调用汇编实现)

|   |-- arch-x86     (x86架构,包含系统调用汇编实现)

|   |-- bionic        (由C实现的功能,架构无关)

|   |-- docs          (文档)

|   |-- include       (头文件)

|   |-- inet           

|   |-- kernel        (Linux内核中的一些头文件)

|   |-- netbsd        (?netbsd系统相关,具体作用不明)

|   |-- private       (?一些私有的头文件)

|   |-- stdio          (stdio实现)

|   |-- stdlib         (stdlib实现)

|   |-- string         (string函数实现)

|   |-- tools          (几个工具)

|   |-- tzcode        (时区相关代码)

|   |-- unistd        (unistd实现)

|   `-- zoneinfo     (时区信息)

|-- libdl                 (libdl实现,dl是动态链接,提供访问动态链接库的功能)

|-- libm                 (libm数学库的实现,)

|   |-- alpha          (apaha架构)

|   |-- amd64       (amd64架构)

|   |-- arm           (arm架构)

|   |-- bsdsrc       (?bsd的源码)

|   |-- i386           (i386架构)

|   |-- i387           (i387架构?)

|   |-- ia64           (ia64架构)

|   |-- include       (头文件)

|   |-- man           (数学函数,后缀名为.3,一些为freeBSD的库文件)

|   |-- powerpc    (powerpc架构)

|   |-- sparc64      (sparc64架构)

|`-- src            (源代码)

|-- libstdc++          (libstdc++ C++实现库)

|   |-- include       (头文件)

|`-- src            (源码)

|-- libthread_db       (多线程程序的调试器库)

|`-- include       (头文件)

|`-- linker               (动态链接器)

|`-- arch         (支持arm和x86两种架构)

 

三、 bootable (启动引导相关代码)

 

bootable['bu:t?bl] 

adj. 可启动的;可引导的

|--bootloader                               (适合各种bootloader的通用代码)   
|   `--legacy                               (估计不能直接使用,可以参考)   
|       |--arch_armv6               (V6架构,几个简单的汇编文件)   
|       |--arch_msm7k               (高通7k处理器架构的几个基本驱动)   
|       |--include                       (通用头文件和高通7k架构头文件)   
|       |--libboot                       (启动库,都写得很简单)   
|       |--libc                       (一些常用的c函数)   
|       |--nandwrite               (nandwirte函数实现)   
|       `--usbloader               (usbloader实现)   
|--diskinstaller                       (android镜像打包器,x86可生产iso)   
`--recovery                               (系统恢复相关)   
    |--edify                               (升级脚本使用的edify脚本语言)   
    |-- etc                               (init.rc恢复脚本)   
    |--minui                               (一个简单的UI)   
    |--minzip                               (一个简单的压缩工具)   
    |--mtdutils                       (mtd工具)   
    |--res                               (资源)   
    |   `--images                       (一些图片)   
    |--tools                               (工具)   
    |   `--ota                       (OTA Over The Air Updates升级工具)  

 

四、build(存放系统编译规则及generic等基础开发配置包)

 |--core                               (核心编译规则)  

|--history                               (历史记录)  
|--libs                                 
|   `--host                       (主机端库,有android “cp”功能替换)  
|--target                               (目标机编译对象)  
|   |--board                       (开发平台)  
|   |   |--emulator        (模拟器)  
|   |   |--generic               (通用)  
|   |   |--idea6410        (自己添加的)  
|   |   `--sim               (最简单)  
|   `--product               (开发平台对应的编译规则)  
|       `--security        (密钥相关)  
`--tools                               (编译中主机使用的工具及脚本)  
    |--acp                       (Android "acp" Command)  
    |--apicheck               (api检查工具)  
    |--applypatch               (补丁工具)  
    |--apriori                       (预链接工具)  
    |--atree                       (tree工具)  
    |--bin2asm               (bin转换为asm工具)  
    |-- check_prereq        (检查编译时间戳工具)  
    |--dexpreopt               (模拟器相关工具,具体功能不明)  
    |--droiddoc               (?作用不明,java语言,网上有人说和JDK5有关)  
    |--fs_config               (This program takes a list of files and directories)  
    |--fs_get_stats               (获取文件系统状态)  
    |--iself                       (判断是否ELF格式)  
    |--isprelinked               (判断是否prelinked)  
    |--kcm                       (按键相关)  
    |--lsd                       (List symbol dependencies)  
    |--releasetools               (生成镜像的工具及脚本)  
    |--rgb2565               (rgb转换为565)  
    |--signapk               (apk签名工具)  
    |--soslim                       (strip工具)  
`--zipalign               (zip archive alignment tool) 

 

 

五、cts(Android兼容性测试套件标准)

cts目录

app中有一个应用:

tests中有很多的测试工程:

 

六、dalvik(dalvik JAVA虚拟机)

|--dalvikvm                       (main.c的目录)   
|--dexdump                       (dex反汇编)   
|--dexlist                               (List all methods in all concrete classes in a DEX file.)   
|--dexopt                               (预验证与优化)   
|--docs                               (文档)   
|--dvz                               (和zygote相关的一个命令)   
|--dx                               (dx工具,将多个java转换为dex)   
|--hit                               (?java语言写成)   
|--libcore                               (核心库)   
|--libcore-disabled               (?禁用的库)   
|-- libdex                               (dex的库)   
|--libnativehelper               (Support functions for Android's class libraries)   
|--tests                               (测试代码)   
|--tools                               (工具)   
`--vm                               (虚拟机实现)  

 

七、development(应用程序开发相关)

 

development 目录               (开发者需要的一些例程及工具)   
|--apps                               (一些核心应用程序)   
|   |-- BluetoothDebug        (蓝牙调试程序)   
|   |-- CustomLocale        (自定义区域设置)   
|   |-- Development        (开发)   
|   |--Fallback               (和语言相关的一个程序)   
|   |--FontLab               (字库)   
|   |-- GestureBuilder        (手势动作)   
|   |-- NinePatchLab        (?)   
|   |--OBJViewer               (OBJ查看器)   
|   |--SdkSetup               (SDK安装器)   
|   |--SpareParts               (高级设置)   
|   |--Term                       (远程登录)   
|   `--launchperf               (?)   
|--build                               (编译脚本模板)   
|--cmds                               (有个monkey工具)   
|-- data                               (配置数据)   
|--docs                               (文档)   
|--host                               (主机端USB驱动等)   
|--ide                               (集成开发环境)   
|--ndk                               (本地开发套件——c语言开发套件)   
|-- pdk                               (Plug Development Kit)   
|--samples                       (例程)   
|   |-- AliasActivity        (?)   
|   |--ApiDemos               (API演示程序)   
|   |-- BluetoothChat        (蓝牙聊天)   
|   |-- BrowserPlugin        (浏览器插件)   
|   |-- BusinessCard        (商业卡)   
|   |--Compass               (指南针)   
|   |-- ContactManager        (联系人管理器)   
|   |-- CubeLiveWallpaper        (动态壁纸的一个简单例程)   
|   |-- FixedGridLayout        (像是布局)   
|   |--GlobalTime               (全球时间)   
|   |-- HelloActivity        (Hello)   
|   |--Home                       (Home)   
|   |--JetBoy                       (jetBoy游戏)   
|   |-- LunarLander        (貌似又是一个游戏)   
|   |--MailSync               (邮件同步)   
|   |-- MultiResolution        (多分辨率)   
|   |-- MySampleRss        (RSS)   
|   |--NotePad               (记事本)   
|   |--RSSReader               (RSS阅读器)   
|   |--SearchableDictionary        (目录搜索)   
|   |--SimpleJNI               (JNI例程)   
|   |-- SkeletonApp        (空壳APP)   
|   |--Snake                       (snake程序)   
|   |-- SoftKeyboard        (软键盘)   
|   |--Wiktionary               (?维基)   
|   `-- WiktionarySimple(?维基例程)   
|--scripts                               (脚本)   
|--sdk                               (sdk配置)   
|--simulator                       (?模拟器)   
|--testrunner                       (?测试用)   
`--tools                               (一些工

 

 

八、 device(设备相关代码)
  
九、 docs(介绍开源的相关文档)
  
十、 external(android使用的一些开源的模组)

 

|-- aes                       (AES加密)   
|--apache-http               (网页服务器)   
|--astl                       (ASTL (Android STL) is a slimmed-down version of the regular C++ STL.)   
|--bison                       (自动生成语法分析器,将无关文法转换成C、C++)   
|-- blktrace               (blktrace is a block layer IO tracing mechanism)   
|--bluetooth               (蓝牙相关、协议栈)   
|--bsdiff                       (diff工具)   
|--bzip2                       (压缩工具)   
|--clearsilver               (html模板系统)   
|-- dbus                       (低延时、低开销、高可用性的IPC机制)   
|--dhcpcd               (DHCP服务)   
|--dosfstools               (DOS文件系统工具)   
|--dropbear               (SSH2的server)   
|--e2fsprogs               (EXT2文件系统工具)   
|--elfcopy               (复制ELF的工具)   
|--elfutils                       (ELF工具)   
|--embunit               (Embedded Unit Project)   
|--emma                       (java代码覆盖率统计工具)   
|--esd                       (Enlightened Sound Daemon,将多种音频流混合在一个设备上播放)   
|-- expat                       (Expat is a stream-oriented XML parser.)   
|--fdlibm                       (FDLIBM (Freely Distributable LIBM))   
|--freetype               (字体)   
|--fsck_msdos               (dos文件系统检查工具)   
|--gdata                       (google的无线数据相关)   
|--genext2fs               (genext2fs generates an ext2 filesystem as a normal (non-root) user)   
|--giflib                       (gif库)   
|-- googleclient        (google用户库)   
|--grub                       (This is GNU GRUB, the GRand Unified Bootloader.)   
|--gtest                       (Google C++ Testing Framework)   
|--icu4c                       (ICU(International Component for Unicode)在C/C++下的版本)   
|--ipsec-tools               (This package provides a way to use the native IPsec functionality )   
|--iptables               (防火墙)   
|--jdiff                       (generate a report describing the difference between two public JavaAPIs.)  
|--jhead                       (jpeg头部信息工具)   
|--jpeg                       (jpeg库)   
|--junit                       (JUnit是一个Java语言的单元测试框架)   
|-- kernel-headers        (内核的一些头文件)   
|--libffi                       (libffi is a foreign function interface library.)   
|--libpcap               (网络数据包捕获函数)   
|-- libpng                       (png库)   
|--libxml2               (xml解析库)   
|--mtpd                       (一个命令)   
|--netcat                       (simple Unix utility which reads and writes dataacross networkconnections)   
|--netperf                       (网络性能测量工具)   
|--neven                       (看代码和JNI相关)   
|--opencore               (多媒体框架)   
|--openssl               (SSL加密相关)   
|--openvpn               (VPN开源库)   
|--oprofile               (OProfile是Linux内核支持的一种性能分析机制。)   
|-- ping                       (ping命令)   
|--ppp                       (pppd拨号命令,好像还没有chat)   
|--proguard               (Java class file shrinker, optimizer, obfuscator, and preverifier)   
|--protobuf               (a flexible, efficient, automated mechanism for serializingstructured data)   
|--qemu                       (arm模拟器)   
|--safe-iop               (functions for performing safe integer operations )   
|--skia                       (skia图形引擎)   
|--sonivox               (sole MIDI solution for Google Android Mobile Phone Platform)   
|--speex                       (Speex编/解码API的使用(libspeex))   
|--sqlite                       (数据库)   
|--srec                       (Nuance 公司提供的开源连续非特定人语音识别)   
|--strace                       (trace工具)   
|--svox                       (Embedded Text-to-Speech)   
|--tagsoup               (TagSoup是一个Java开发符合SAX的HTML解析器)   
|--tcpdump               (抓TCP包的软件)   
|--tesseract               (Tesseract Open Source OCR Engine.)   
|-- tinyxml               (TinyXml is a simple, small, C++ XML parser)   
|--tremor                       (I stream and file decoder provides an embeddable,integer-onlylibrary)   
|--webkit                       (浏览器核心)   
|-- wpa_supplicant        (无线网卡管理)   
|-- xmlwriter               (XML 编辑工具)   
|--yaffs2                       (yaffs文件系统)   
`--zlib                       (a general purpose data compression library)

  

十一、 frameworks(核心框架——java及C++语言,是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 specificuses)   
    `--base                  
        |--mid        (MID设备)   
        `-- phone   (手机类设备一般用这个,与锁屏有关的代码)  

 

十二、 hardware(主要是硬件适配层HAL代码)

 

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                               (无线网卡)  

 

十三、 libcore(核心库相关)
 
十四、ndk (ndk相关代码。AndroidNDK(Android NativeDevelopment Kit))

 

是一系列的开发工具,允许程序开发人员在Android应用程序中嵌入C/C++语言编写的非托管代码。

 

 

十五、 out(编译完成后的代码输出与此目录) 
  
十六、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               (输入法)   
|   |--LatinIME               (拉丁文输入法)   
|   |--OpenWnn               (OpenWnn输入法)   
|   `--PinyinIME               (拼音输入法)   
|--providers                       (提供器,提供应用程序、界面所需的数据)   
|   |--ApplicationsProvider               (应用程序提供器,提供应用程序启动项、更新等)   
|   |--CalendarProvider                       (日历提供器)   
|   |--ContactsProvider                       (联系人提供器)   
|   |--DownloadProvider               (下载管理提供器)   
|   |--DrmProvider                       (创建和更新数据库时调用)   
|   |--GoogleContactsProvider        (联系人提供器的子类,用以同步联系人)   
|   |-- GoogleSubscribedFeedsProvider(设置信息提供器)   
|   |--ImProvider                               (空)   
|   |--ManagementProvider               (空)   
|   |--MediaProvider                       (媒体提供器,提供存储数据)   
|   |--TelephonyProvider               (彩信提供器)   
|   |--UserDictionaryProvider        (用户字典提供器,提供用户常用字字典)   
|   `--WebSearchProvider               (空)   
|--services                                          
|   |--EasService                               (空)   
|   `--LockAndWipe                       (空)   
`--wallpapers                                       (墙纸)   
    |--Basic                                       (基本墙纸,系统内置墙纸)   
    |--LivePicker                               (选择动态壁纸)   
    |--MagicSmoke                       (壁纸特殊效果)   
    `--MusicVisualization               (音乐可视化,图形随音乐而变化)   

 十七、 prebuilt(x86和arm架构下预编译的一些资源)

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        (64bitwindows平台)  

  

十八、 sdk(sdk及模拟器) 
 
十九、 system(文件系统、应用及组件——C语言)

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 forsoftware developers ,identifying system latency happen)   
|   |-- libpagemap        (pagemap库)   
|   |--librank               (Java Library Ranking System库)   
|   |-- procmem        (pagemap相关)   
|   |-- procrank        (Java LibraryRanking System相关)   
|   |-- showmap        (showmap工具)   
|   |-- showslab        (showslab工具)   
|   |--sound               (声音相关)   
|   |--su                       (su命令源码)   
|   |--tests               (一些测试工具)   
|   `-- timeinfo        (时区相关)   
`--wlan                       (无线相关)   
    `--ti                       (ti网卡相关工具及库)