关于源码的阅读,你可以访问:http://androidxref.com/
我们要先了解Android系统源码目录,为后期源码学习打下基础。
当然,最好是将源码下载下来。下载源码可以使用清华大学开源软件镜像站提供的Android 镜像:
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
如果觉得麻烦也可以查找国内的网盘进行下载,推荐使用该百度网盘地址下载:http://pan.baidu.com/s/1ngsZs
它提供了多个Android版本的的源码下载。
Android源码根目录(Android 10.0) | 目录类型 | 描述 | 是否常用 |
1级目录 | 2级目录 | 3级目录 | | | |
abi | | | | 应用程序二进制接口 | |
art | | | | 全新的ART运行环境 | |
bionic | | | | 系统C库,bionic c是Android重写的c库,所以Android使用的c库也并不是传统glibc。 | |
bootable | | | | 启动引导相关代码 | |
build | | | | 存放系统编译规则及generic等基础开发包配置 | 常用 |
| kati | | | Android 7.0之后引入了ninja,并通过kati工具将makefile转化为ninja套件进行编译,用于提升编译效率。 | |
| soong | | | Android8.0之后引入了Android.bp,Android.bp也会被转化为.ninja文件,转换的工具是soong | |
compatibility | | | | | |
cts | | | | Android兼容性测试套件标准 | |
dalvik | | | | 虚拟机 | |
developers | | | | 开发者目录 | |
development | | | | 应用程序开发相关 | |
device | | | | 设备相关配置 | 常用 |
docs | | | | 参考文档目录 | |
external | | | | 开源模组相关文件 | |
frameworks | | | | 存放Android SDK对外提供的API,Android系统核心部分,由Java和C++编写。 | |
| base | | | | |
| | core | | android核心包 | |
| | media | | 多媒体和音频相关内容 | |
| | graphics | | 图形处理包 | |
| | opengl | | Android OpenGL 3D实现 | |
| | location | | 定位相关的内容 | |
| | telephony | | 电话相关的内容 | |
| | wifi | | 无线局域网相关内容 | |
hardware | | | | 主要是硬件抽象层的代码 | |
HW_Vendor_INTF | | | | | |
kernel | | | | | |
libcore | | | | 核心库相关文件 | |
libnativehelper | | | | 动态库,实现JNI库的基础 | |
ndk | | | | NDK相关代码,帮助开发人员在应用程序中嵌入C/C++代码 | |
out | | | | out下是编译完成后生产的各种文件,比如各种系统的apk文件,这些都是即将安装到Android设备上面的 | 常用 |
packages | | | | 应用程序包。package下包含很多Android项目的源码,手机上所有可以点击的图标其实都是一个Android项目,比如录音,电话,系统设置,或者三方的一些程序(阅读器,应用商城)等等 | 常用 |
pdk | | | | Plug Development Kit 的缩写,本地开发套件 | |
platform_testing | | | | 平台测试 | |
prebuilts | | | | x86和arm架构下预编译的一些资源 | |
repohooks | | | | | |
sdk | | | | sdk和模拟器 | |
system | | | | 底层文件系统库、应用和组件 | |
test | | | | | |
toolchain | | | | 工具链文件 | |
tools | | | | 工具文件 | |
vendor | | | | | |
Makefile | | | | 全局Makefile文件,用来定义编译规则 | |
Android工程目录
MyApplication | | | | | | | |
| .gradle | | | | | | | |
| .idea | | | | | | | |
| app | | | | | | | |
| | build | | | | | | |
| | libs | | | | | | |
| | src | | | | | | |
| | | androidTest | | | | |
| | | main | | | | | |
| | | | java | | | | |
| | | | | com.example.myapplication | java源代码包 |
| | | | | | MainActivity | |
| | | | res | | | | |
| | | | | drawable | | | 图像描述文件与用户图片 |
| | | | | drawable-v24 | | |
| | | | | layout | | | App页面的布局文件 |
| | | | | menu | | | |
| | | | | mipmap-xxx | | 启动图标 |
| | | | | raw | | | |
| | | | | values | | | 各种常量定义文件 |
| | | | AndroidMainfest.xml | | App的运行配置文件 |
| | | test | | | | | |
| | .gitignore | | | | | |
| | app.iml | | | | | | |
| | build.gradle | | | | | 模块级的编译配置 |
| | proguard-rules.pro | | | | java文件的代码混淆规则 |
| gradle | | | | | | | |
| | wrapper | | | | | | |
| | .gitignore | | | | | |
| | build.gradle | | | | | |
| | gradle.properties | | | | | 编译工程的命令行参数 |
| | gradlew | | | | | | |
| | gradlew.bat | | | | | |
| | local.properties | | | | | |
| | MyApplication.iml | | | | | |
| | settings.gradle | | | | | 工程级的模块编译配置 |
| External Libraries | | | | | |
| Scratches and Consoles | | | | | |
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)