Android SDK 目录详解

本文主要解析Android SDK中的关键目录,包括build、frameworks、external、out、packages、system、vendor和device,适合希望深入理解Android系统构建的开发者。虽然大部分目录与普通Android应用开发关系不大,但对于自定义系统开发至关重要。
摘要由CSDN通过智能技术生成

对于整套安卓源码是个复杂的庞大的工程,我将尽我所能将所有目录及结构将明白,首先我们先来了解每个目录是做什么的。
初级了解可以不必纠结android版本存在的差异,先做一次大体的了解。下边我基于android6.0来分析,以下是所有目录。

 
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
      
abi/
art/
bionic/ (bionic C库)
bootable/ (启动引导相关代码)
build/ 编译脚本(makefile shell(bash))
cts/ (Android兼容性测试套件标准)
dalvik/ 虚拟机相关工具
developers/ 开发工具和例子程序源码
development/ 开发工具和例子程序源码
device/ 厂家目录
docs/ 说明文档
external/ 三方开源库代码(android使用的一些开源的模组)
frameworks/ 应用框架源码
gen/
hardware/ 硬件抽象层源码(部分厂家开源的硬解适配层HAL代码)
libcore/
libnativehelper/
Makefile
ndk/ 开发本地工具箱代码
out/ 编译结果
packages/ 应用程序及包的源码
pdk/
platform_testing/
prebuilts/ (x86和arm架构下预编译的一些资源)
projectFilesBackup/
sdk/ 应用程序开发工具箱中工具源代码(sdk及模拟器)
system/ 系统核心程序和本地服务程序源码(底层文件系统库、应用及组件——C语言)
tools/
vendor/ 厂家预制应用及修改原生系统源码(厂商定制代码)
  • 这些目录,其中大部分是做安卓开发无法涉猎的,其实它也是不是我们做安卓开发所要去修改的,而是由底层ROM驱动工程师去改的。说白了就是跟我们没关系。
  • 这里我推荐以下几个目录做重点了解:build;frameworks;external;out;packages;system;vendor;device
    如果你想在一款nexs上开发一套自己的全新系统了解这些足够了。(贪多吃不烂,这个道理不必多说现在开始)

######以下是我从各个网站整理的部分目录功能的介绍(了解)。

 
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
      
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两种架构)
 
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
      
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 (升级器)
 
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
      
build目录
.
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值