您的位置:首页 > 移动开发 > Android开发

安卓源码(Android 5.1 )目录结构整理

2017-02-23 18:05 344 查看
 

如题,安卓源码体积庞大,内容繁多,其结构大致如下:

Android 5.1  

|-- Makefile  

|-- abi  

|-- art  

|-- bionic (bionic C库)  

|-- bootable (启动引导相关代码)  

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

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

|-- dalvik (dalvik JAVA虚拟机)  

|-- developers  

|-- development (应用程序开发相关)  

|-- device  

|-- docs  

|-- external (android使用的一些开源的模组)  

|-- frameworks (核心框架——java及C++语言)  

|-- hardware (部分厂家开源的硬解适配层HAL代码)  

|-- kernel  

|-- libcore  

|-- libnativehelper  

|-- ndk  

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

|-- packages (应用程序包)  

|-- pdk  

|-- prebuilts (x86和arm架构下预编译的一些资源)  

|-- sdk (sdk及模拟器)  

|-- system (底层文件系统库、应用及组件——C语言)  

|-- tools  

`-- vendor (厂商定制代码)  

  

bionic 目录  

|-- benchmarks  

|-- libc (C库)  

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

| |-- ...  

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

| |-- dns  

| |-- include (头文件)  

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

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

| |-- stdio (stdio实现)  

| |-- tools (几个工具)  

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

| |-- upstream-dlmalloc  

| |-- upstream-freebsd  

| |-- upstream-netbsd  

| |-- upstream-openbsd  

| `-- zoneinfo (时区信息)  

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

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

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

|-- linker (动态链接器)  

`-- test  

  

bootable 目录  

|-- bootloader (适合各种bootloader的通用代码)  

| |-- legacy (估计不能直接使用,可以参考)  

| `-- lk  

`-- recovery (系统恢复相关)  

| |-- edify (升级脚本使用的edify脚本语言)  

| |-- etc (init.rc恢复脚本)  

| |-- minui (一个简单的UI)  

| |-- minzip (一个简单的压缩工具)  

| |-- mtdutils (mtd工具)  

| |-- res (资源)  

| |-- tools (工具)  

| | `-- ota (OTA Over The Air Updates升级工具)  

| `-- updater (升级器)  

  

build目录  

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

|-- libs   

| `-- host (主机端库,有android “cp”功能替换)  

|-- target (目标机编译对象)  

| |-- board (开发平台)  

| |-- product (开发平台对应的编译规则)  

`-- tools (编译中主机使用的工具及脚本)  

  

  

dalvik目录 dalvik虚拟机  

|-- dexdump (dex反汇编)  

|-- dexgen  

|-- dexlist (List all methods in all concrete classes in a DEX file.)  

|-- docs (文档)  

|-- dx (dx工具,将多个java转换为dex)  

|-- hit (?java语言写成)  

|-- opcode-gen  

|-- tools (工具)  

`-- vm (虚拟机实现)  

  

development 目录 (开发者需要的一些例程及工具)  

|-- apps (一些核心应用程序)  

| |-- BluetoothDebug (蓝牙调试程序)  

| |-- CustomLocale (自定义区域设置)  

| |-- Development (开发)  

| |-- Fallback (和语言相关的一个程序)  

| |-- FontLab (字库)  

| |-- GestureBuilder (手势动作)  

| |-- NinePatchLab (?)  

| |-- OBJViewer (OBJ查看器)  

| |-- SdkSetup (SDK安装器)  

| |-- SpareParts (高级设置)  

| |-- Term (远程登录)  

| `-- launchperf (?)  

|-- build (编译脚本模板)  

|-- cmds (有个monkey工具)  

|-- docs (文档)  

|-- host (主机端USB驱动等)  

|-- ide (集成开发环境)  

|-- libraries  

|-- ndk (本地开发套件——c语言开发套件)  

|-- 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配置)  

|-- sdk_overlay  

|-- sys-img  

|-- testrunner (?测试用)  

|-- tools (一些工具)  

`-- tutorials  

  

external 目录  

|-- apache-http (网页服务器)  

|-- bison (自动生成语法分析器,将无关文法转换成C、C++)  

|-- blktrace (blktrace is a block layer IO tracing mechanism)  

|-- bluetooth (蓝牙相关、协议栈)  

|-- bsdiff (diff工具)  

|-- bzip2 (压缩工具)  

|-- dhcpcd (DHCP服务)  

|-- 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)) 

通过梳理目录结构,可以加深对安卓系统架构的了解,以及方便后续开发。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  源码 android