【Android源码 栏目提醒】:本文主要为网学会员提供“Android源 代码结构 - 电子设计”,希望对需要Android源 代码结构 - 电子设计网友有所帮助,学习一下!
Android 2.1
源码结构分析(1)
Android 2.1
源码结构分析Rockie ChengAndroid 2.1-- Makefile-- bionic (bionic C 库)-- bootable (启动引导相关代码)-- build (存放系统编译规则及 generic 等基础开发包配置)-- cts (
Android 兼容性测试套件标准)-- dalvik (dalvik JAVA 虚拟机)-- development (应用程序开发相关)-- external (
android 使用的一些开源的模组)-- frameworks (核心框架——java 及 C语言)-- hardware (主要保护硬解适配层 HAL 代码)-- out (编译完成后的代码输出与此目录)-- packages (应用程序包)-- prebuilt (x86 和 arm 架构下预编译的一些资源)-- sdk (sdk 及模拟器)-- system (文件系统库、应用及组件——C 语言)-- vendor (厂商定制代码)bionic 目录-- libc (C 库) -- arch-arm (ARM 架构,包含系统调用汇编实现) -- arch-x86 (x86 架构,包含系统调用汇编实现) -- bionic (由 C 实现的功能,架构无关) -- docs (文档) -- include (头文件) -- inet (?inet 相关,具体作用不明) -- kernel (Linux 内核中的一些头文件) -- netbsd (?nesbsd 系统相关,具体作用不明) -- 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 目录.-- 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 升级工具) -- updater (升级器)build 目录.-- core (核心编译规则)-- history (历史记录)-- libs -- host (主机端库,有
android “cp”功能替换)-- target (目标机编译对象) -- board (开发平台) -- emulator (模拟器) -- generic (通用) -- idea6410 (自己添加的) -- sim (最简单) -- product (开发平台对应的编译规则) -- security (密钥相关)-- tools (编译中主机使用的工具及脚本) -- acp (
Android quotacpquot 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)dalvik 目录 dalvik 虚拟机.-- 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 Androids class libraries)-- tests (测试代码)-- tools (工具)-- vm (虚拟机实现)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 (一些工具)external 目录.-- 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 (ICUInternational 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 Java APIs.)-- 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 serializing structureddata)-- 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 embeddableinteger-only library)-- webkit (浏览器核心)-- wpa_supplicant (无线网卡管理)-- xmlwriter (XML 编辑工具)-- yaffs2 (yaffs 文件系统)-- zlib (a general purpose data compression library)
Android 2.1
源码结构分析(2)已完成(1)也有更新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 quotoverlayquot 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 (输入法) -- 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 (音乐可视化,图形随音乐而变化)○1 里面有一个隐藏的.git 文件夹,内容都是一样的,没有有意义的代码,config 看似乎是一个下载程序,因此认为这些文件夹下没有实质东西。
vendor 目录 (厂家定制内容)-- aosp (
android open source project) -- products (一些板级规则)-- htc (HTC 公司) -- common-open (通用部分) -- akmd (解压 img 用的工具) -- dream-open (G1 开放部分) -- prebuilt-open (预编译开放部分) .