Android的源代码结构时间:2022-09-27 04:55:06顶层目录:.|-- bionic (Android系统的基础类库)|-- bootable (启动引导源码)|-- build (编译和配置所需的脚本和工具)|-- dalvik (java虚拟机)|-- development (开发应用程序所需的模板和工具)|-- external (目标机器使用的库)|-- frameworks (应用程序框架层)|-- hardware (与硬件相关的库)|-- kernel (linux-2.6.xx内核)|-- out (编译后生成的目录,包含构建文件系统所需的文件)|-- packages (Android的各种应用程序)|-- prebuilt (Android在各种平台下编译的预置脚本)|-- system (Android的底层库)`-- vendor (针对不同平台的内核编译脚本) bionic目录: .|-- Android.mk|-- libc (C库)| |-- Android.mk| |-- CAVEATS| |-- Jamfile| |-- MODULE_LICENSE_BSD| |-- NOTICE| |-- README| |-- SYSCALLS.TXT| |-- arch-arm (arm架构的代码,包含系统调用的汇编实现)| |-- arch-x86 (x86架构的代码,包含系统调用的汇编实现)| |-- bionic (与架构无关的c代码)| |-- docs | |-- include | |-- inet | |-- kernel (Linux内核的一些头文件)| |-- netbsd| |-- private| |-- stdio (stdio实现)| |-- stdlib (stdlib实现)| |-- string (string函数实现)| |-- tools| |-- tzcode| |-- unistd (与时区相关的代码)| `-- zoneinfo (时区信息)|-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能)| |-- Android.mk| |-- MODULE_LICENSE_BSD| |-- NOTICE| |-- dltest.c| `-- libdl.c|-- libm (libm数学库的实现)| |-- Android.mk| |-- MODULE_LICENSE_BSD_LIKE| |-- Makefile-orig| |-- NOTICE| |-- alpha (apaha结构)| |-- amd64 (arm64架构)| |-- arm (arm架构)| |-- bsdsrc| |-- fpclassify.c| |-- i386| |-- i387| |-- ia64| |-- include| |-- isinf.c| |-- man| |-- powerpc (powerpc架构)| |-- sparc64 (sparc64架构)| `-- src|-- libstdc++ (libstdC++ C++实现库)| |-- Android.mk| |-- MODULE_LICENSE_BSD| |-- NOTICE| |-- include| `-- src|-- libthread_db (多线程程序的调试器库)| |-- Android.mk| |-- MODULE_LICENSE_BSD| |-- NOTICE| |-- include| `-- libthread_db.c`-- linker (动态连接器) |-- Android.mk |-- MODULE_LICENSE_APACHE2 |-- NOTICE |-- arch |-- ba.c |-- ba.h |-- debugger.c |-- dlfcn.c |-- linker.c |-- linker.h |-- linker_debug.h `-- rt.c bootloader目录: .|-- bootloader (适合各种bootloader的通用代码)| `-- legacy|-- diskinstaller (android镜像打包器,在x86平台下生成iso)| |-- Android.mk| |-- config.mk| |-- editdisklbl| |-- init.rc| |-- installer.c| |-- installer.conf| |-- installer.h| |-- installer_img_layout.conf| `-- libdiskconfig`-- recovery (与系统恢复相关) |-- Android.mk |-- NOTICE |-- amend |-- bootloader.c |-- bootloader.h |-- commands.c |-- commands.h |-- common.h |-- etc (init.rc恢复脚本) |-- firmware.c |-- firmware.h |-- install.c |-- install.h |-- minui (一个简单的UI) |-- minzip (一个简单的压缩工具) |-- mtdutils |-- recovery.c |-- res |-- roots.c |-- roots.h |-- test_roots.c |-- tools |-- ui.c |-- verifier.c `-- verifier.h build目录: .|-- buildspec.mk.default|-- cleanspec.mk|-- core (核心的编译规则)| |-- Makefile| |-- apicheck_msg_current.txt| |-- apicheck_msg_last.txt| |-- armelf.x| |-- armelf.xsc| |-- armelflib.x| |-- base_rules.mk| |-- binary.mk| |-- build-system.html| |-- build_id.mk| |-- checktree| |-- cleanbuild.mk| |-- clear_vars.mk| |-- combo| |-- config.mk| |-- config.mk~| |-- copy_headers.mk| |-- definitions.mk| |-- device.mk| |-- distdir.mk| |-- droiddoc.mk| |-- dynamic_binary.mk| |-- envsetup.mk| |-- executable.mk| |-- filter_symbols.sh| |-- find-jdk-tools-jar.sh| |-- host_executable.mk| |-- host_java_library.mk| |-- host_prebuilt.mk| |-- host_shared_library.mk| |-- host_static_library.mk| |-- java.mk| |-- java_library.mk| |-- key_char_map.mk| |-- main.mk| |-- multi_prebuilt.mk| |-- node_fns.mk| |-- notice_files.mk| |-- package.mk| |-- pathmap.mk| |-- prebuilt.mk| |-- prelink-linux-arm.map| |-- process_wrapper.sh| |-- process_wrapper_gdb.cmds| |-- process_wrapper_gdb.sh| |-- product.mk| |-- product_config.mk| |-- raw_executable.mk| |-- raw_static_library.mk| |-- root.mk| |-- shared_library.mk| |-- static_java_library.mk| |-- static_library.mk| |-- tasks| `-- version_defaults.mk|-- envsetup.sh|-- history (历史记录)| `-- cupcake.txt|-- libs| `-- host|-- target (目标机编译对象)| |-- board (开发平台)| `-- product (开发平台对应的编译规则)`-- tools (编译时主机使用的工具和脚本) |-- acp |-- apicheck (api检查工具) |-- applypatch (补丁工具) |-- apriori (预链接工具) |-- atree (tree工具) |-- bin2asm (bin转换为asm的工具) |-- buildinfo.sh |-- check_builds.sh |-- check_prereq (检查编译时间戳的工具) |-- compare_fileslist.py |-- dexpreopt |-- droiddoc |-- dump-package-stats |-- fileslist.py |-- findleaves.sh |-- fixlinebreaks.sh |-- fs_config |-- fs_get_stats (获取文件系统的状态) |-- iself (判断是否为elf格式) |-- isprelinked |-- kcm (与按键相关) |-- lsd |-- mktarball.sh |-- print_module_licenses.sh |-- releasetools (生成镜像文件的工具和脚本) |-- rgb2565 (rgb转换为565) |-- signapk (apk签名工具) |-- soslim (strip工具) `-- zipalign dalvik目录: .|-- Android.mk|-- MODULE_LICENSE_APACHE2|-- NOTICE|-- README.txt|-- dalvikvm (main.c的目录)|-- dexdump (dex反编译)|-- dexlist|-- dexopt (预验证与优化)|-- docs|-- dvz|-- dx|-- hit|-- libcore (核心库)|-- libcore-disabled|-- libdex|-- libnativehelper|-- run-core-tests.sh|-- tests (测试代码)|-- tools`-- vm (虚拟机实现) development目录: .|-- Cerberus| |-- Android.mk| |-- Android.mk~| |-- main.c| `-- main.c~|-- apps (一些核心的应用程序)| |-- CustomLocale (自定义区域设置)| |-- Development| |-- Fallback (和语言相关的程序)| |-- FontLab (字库)| |-- OBJViewer (obj查看器)| |-- SdkSetup (sdk安装器)| |-- SpareParts (高级设置)| |-- Term (远程登录)| `-- launchperf|-- build (编译脚本模版)| |-- Android.mk| |-- sdk-darwin-x86.atree| |-- sdk-linux-x86.atree| |-- sdk.atree| |-- sdk.exclude.atree| `-- tools|-- cmds (monkey工具)| `-- monkey|-- data (数据配置)| `-- etc|-- docs| |-- SDK_RELEASE_NOTES| |-- howto_build_SDK.txt| `-- howto_use_cupcake_sdk.txt|-- emulator| |-- keymaps| |-- mksdcard| |-- qemud| |-- qtools| |-- sensors| `-- skins|-- host | |-- Android.mk| `-- windows|-- ide (集成开发环境)| |-- eclipse| |-- intellij| `-- xcode|-- pdk (插件开发工具包)| |-- Pdk.mk| |-- README| |-- docs| |-- doxygen_config| |-- hosting| |-- ndk| `-- sample|-- samples (例程)| |-- AliasActivity | |-- ApiDemos (API演示程序)| |-- Compass (指南针)| |-- GlobalTime (全球时间)| |-- HelloActivity (Hello)| |-- Home (Home)| |-- JetBoy (JetBoy游戏)| |-- LunarLander | |-- MailSync (邮件同步)| |-- MySampleRss (RSS)| |-- NotePad (记事本)| |-- PlatformLibrary| |-- RSSReader (RSS阅读器)| |-- SimpleJNI (JNI例程)| |-- SkeletonApp (空壳APP)| |-- Snake (Snake游戏)| `-- SoftKeyboard (软键盘)|-- simulator| |-- app| `-- wrapsim|-- testrunner| |-- Android.mk| |-- adb_interface.py| |-- am_instrument_parser.py| |-- android_build.py| |-- coverage.py| |-- coverage_targets.py| |-- coverage_targets.xml| |-- errors.py| |-- logger.py| |-- run_command.py| |-- runtest.py| |-- test_defs.py| `-- test_defs.xml`-- tools |-- androidprefs |-- anttasks |-- apkbuilder |-- axl |-- ddms |-- draw9patch |-- dumpeventlog |-- eclipse |-- eventanalyzer |-- findunused |-- hierarchyviewer |-- idegen |-- jarutils |-- jdwpspy |-- layoutlib_utils |-- line_endings |-- makedict |-- mkstubs |-- ninepatch |-- runtest |-- screenshot |-- scripts |-- sdkmanager |-- sdkstats |-- traceview `-- zoneinfo external目录: .|-- aes (ASE加密)|-- apache-http (网页服务器)|-- bison (自动生成语法分析器,将无关文法转换为C,C++)|-- bluez |-- bsdiff (diff工具)|-- bzip2 (压缩工具)|-- clearsilver (html模板系统)|-- dbus (低延时,低开销,高可用性的IPC机制)|-- dhcpcd (DHCP服务)|-- dosfstools (DOS文件系统工具)|-- dropbear (SSH2的服务器)|-- e2fsprogs (EXT2文件系统工具)|-- elfcopy (ELF复制工具)|-- elfutils (ELF工具)|-- embunit |-- emma (Java代码覆盖率统计工具)|-- esd (将多种音频流混合在一个设备上播放)|-- expat|-- fdlibm|-- freetype (字体)|-- gdata (google的无线数据)|-- genext2fs|-- giflib (gif库)|-- googleclient (google用户库)|-- grub |-- icu4c|-- iptables (防火墙)|-- jdiff|-- jhead (jpeg头部信息工具)|-- jpeg (jpeg库)|-- libffi|-- libpcap (网络数据包捕获函数)|-- libpng (png库)|-- libxml2 (xml解析库)|-- netcat|-- netperf (网络性能测试工具)|-- neven|-- opencore (多媒体框架)|-- openssl (SSL加密)|-- oprofile |-- ping|-- ppp|-- protobuf|-- qemu (ARM模拟器) |-- safe-iop|-- skia (SKIA图像引擎)|-- sonivox|-- sqlite (数据库)|-- srec|-- strace (调试跟踪工具)|-- tagsoup|-- tcpdump (TCP抓包软件)|-- tinyxml|-- tremor|-- webkit (浏览器核心)|-- wpa_supplicant (无线网卡管理)|-- xdelta3 |-- yaffs2 (yaffs文件系统)`-- zlib