以前陆陆续续下载源码,现在有更好的方式记录下方便以后查阅.
方式一: 从Google官方下载(翻墙)
官网网址'
1.新建目录用于存放repo脚本
/Users/leon/develop/android/android-src/bin
2.配置环境变量(没有bash_profile就新建一个)
vim ~/.bash_profile
3.新增内容(为了方便以后命令操作)
## android-src
export ANDROID_SRC_HOME=/Users/leon/develop/android/android-src
export PATH=${PATH}:${ANDROID_SRC_HOME}/bin
4.下载Repo脚本文件
curl https://storage.googleapis.com/git-repo-downloads/repo > /Users/leon/develop/android/android-src/bin/repo
cd /Users/leon/develop/android/android-src/bin
chmod a+x repo
5.创建src目录,名称可更改
image.png
6.进入src目录,执行初始化命令:
cd src
repo init -u https://android.googlesource.com/platform/manifest
同步成功后此分支为最新分支
7.查看所有分支
git branch -a
8.选择目标版本
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
repo sync
方式二: 从镜像同步源代码(无需翻墙)
可以使用清华大学的镜像。https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
1.新建目录用于存放repo脚本
/Users/leon/develop/android/android-src/bin
2.配置环境变量(没有bash_profile就新建一个)
vim ~/.bash_profile
3.新增内容(为了方便以后命令操作)
## android-src
export ANDROID_SRC_HOME=/Users/leon/develop/android/android-src
export PATH=${PATH}:${ANDROID_SRC_HOME}/bin
4.下载Repo
cd /Users/leon/develop/android/android-src/bin
git clone https://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/ .
修改Repo文件:
vim repo
REPO_URL = 'https://gerrit.googlesource.com/git-repo'
改为
REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'
5.创建src目录,名称可更改
image.png
6.因为我是在MAC环境下,使用迅雷下载初始化包,(无法断点续传)
image.png
还可以选择(我的做法)
#下载重试不限次数,防止网络异常中断
wget -c -t 0 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
tar -vxzf aosp-latest.tar
cd aosp
#这时ls的话什么也看不到,因为只有一个隐藏的.repo目录
repo sync
7.查看当前分支
cd .repo/manifests
git branch
8.查看所有分支
cd .repo/manifests
git branch -a
image.png
9.切换分支
cd ../..
repo init -b android-6.0.1_r63
repo sync
源代码目录含义:
目录名 描述
abi: 应用程序二进制接口
bionic: C/C++运行时库,在NDK程序中很大一部分调用就是这里的程序
bootable: 用于Android装载和启动程序,其中就包括bootloader和recovery。 bootloader是Android中唯一在LInux内核之前执行的程序。通过这段程序可以初始化硬件,建立内存控件的映射图等,总之,bootloader就是为LInux内核准备合适的运行环境。
build: 用于编译Android源代码以及建议system.img,ramdisk.img等文件的工具
cts: 用于兼容性测试的工具
dalvik: Dalvik虚拟机的源代码
development: 高层的开发和调试工具
device: 与设备相关的代码
docs: 包含与Android源代码项目的文档和工具,如Dalvik虚拟机格式文档等
external: 扩展工具的源代码
framworks: Android框架层源代码。也就是Android SDK的源代码
hardware: 硬件层接口和库
libcore: Java核心库
ndk: NDK相关的源代码
packages: 与Android系统一同发布的应用程序的源代码
prebuilts: Android在各种平台下编译之前要使用的工具
sdk: 在开发环境中使用的工具,如ddms,draw9path,sdkmanager等
system: Android的基本系统
网友评论