Mac 中下载阅读 Android 源码

简介: 准备工作:创建区分大小写的 APFS 宗卷国内使用 Android Source 官方的下载方式有点慢,所以通常建议使用国内的 AOSP 镜像,一般是 中科大的镜像 或者 清华大学的镜像 ,本文使用的是清华大学的镜像。

准备工作:创建区分大小写的 APFS 宗卷

国内使用 Android Source 官方的下载方式有点慢,所以通常建议使用国内的 AOSP 镜像,一般是 中科大的镜像 或者 清华大学的镜像 ,本文使用的是清华大学的镜像。

先下载 repo 工具:

PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

然后有两种下载方式,分别适合不同场景。

1.1 下载最新版本的源码

如果需要下载最新版本的源码,建议使用镜像中的每月初始化包。先下载初始化包,其中包含了 .repo 目录,然后解压再 repo sync 一次就完成了。

推荐使用 axel 工具下载,速度快,支持断点续传。

axel -n 3 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar

# 解压得到 aosp 目录
tar xvf aosp-latest.tar

cd aosp

# 同步一次
repo sync
# 或 repo sync -l 仅 checkout .repo 中的代码

1.2 下载具体某版本的源码

如果需要下载具体某版本的源码,使用官方的方式,不过下载源替换成清华大学镜像的地址。具体 Android 版本见 列表

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY

# 初始化仓库
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1 --depth=1

# 只同步当前分支代码
repo sync -c

这种方式下载下来的代码会小很多,推荐这种方式。

2. 导入 Android 源码到 Android Studio 中阅读

Mac 下无法使用 Source Insight,所以我是使用 Android Studio 来阅读的,Android 源码中已经提供了导入到 Eclipse 和 Android Studio 的配置,需要使用 development/tools/idegen.sh工具。

因为我只想阅读 Android 源码,不需要编译,所以使用其他人编译好的 idegen.jar 。

mv idegen.jar aosp/out/host/darwin-x86/framework/

# 在默认终端中运行 idegen.sh,因为 sh 只支持 bash
development/tools/idegen/idegen.sh

然后在 aosp 目录可以看到 android.ipr 和 android.iml 文件,接下来编辑 android.iml 文件,把不需要导入的项目注释掉,节省导入时间。

最后在 Android Studio 中打开 android.ipr 即可。

欢迎加入Android进阶交流群;701740775。进群可免费领取一份最新技术大纲和Android进阶资料。请备注csdn

相关文章
|
15天前
|
XML Java Android开发
Android实现自定义进度条(源码+解析)
Android实现自定义进度条(源码+解析)
48 1
|
15天前
|
Java Android开发
Android反编译查看源码
Android反编译查看源码
21 0
|
3月前
Android4.1.0实战教程---自动阅读小说
Android4.1.0实战教程---自动阅读小说
35 0
|
3月前
|
数据采集 小程序 数据可视化
智慧校园电子班牌管理系统源码 Java Android原生
家长通过家长小程序端随时了解孩子在校的情况,实时接收学生的出勤情况,学生到校、离校时间。随时了解学生在校的表现、学生成绩排名,及时与教师沟通,关注孩子的健康成长。
30 0
智慧校园电子班牌管理系统源码 Java Android原生
|
3月前
|
算法 Java 定位技术
分享104个益智休闲安卓游戏源码,总有一款适合你
分享104个益智休闲安卓游戏源码,总有一款适合你
142 1
|
1月前
|
Shell 开发工具 Android开发
ADB 下载、安装及使用教程:让你更好地管理 Android 设备
ADB 下载、安装及使用教程:让你更好地管理 Android 设备
445 2
|
1月前
|
Android开发 对象存储
OSS对象储存android开发进行下载到本地文件时异步操作失效
android vivo80使用官方示例代码进行文件下载,但是使用oss.asyncGetObject(get, new OSSCompletedCallback<GetObjectRequest, GetObjectResult>()时onSuccess和onFailure不执行
|
1月前
|
定位技术 API 数据库
基于Android的在线移动电子导航系统的研究与实现(论文+源码)_kaic
基于Android的在线移动电子导航系统的研究与实现(论文+源码)_kaic
|
1月前
|
搜索推荐 测试技术 定位技术
基于Android的自助导游系统的设计与实现(论文+源码)_kaic
基于Android的自助导游系统的设计与实现(论文+源码)_kaic
|
1月前
|
Java 关系型数据库 应用服务中间件
基于Android的人事管理系统设计与实现(论文+源码)_kaic
基于Android的人事管理系统设计与实现(论文+源码)_kaic