本文首发于微信公众号「后厂技术官」html
这是BATcoder的第四篇,BATcoder是Android进阶三部曲的番外篇,会对Android进阶三部曲的内容进行拓展和升级,会以视频的形式分享给你们。至于为啥叫BATcoder,这是由于我但愿你们看了个人技术视频能进入本身中意的大厂。前端
更多细节和内容见视频:python
B站地址: www.bilibili.com/video/BV19f…android
我的博客地址: liuwangshu.cn/batcoder/ao…git
AOSP(Android Open Source Project)是Google开放的Android 开源项目,中文官网为:source.android.google.cn/。 AOSP通俗来说就是一个Android系统源码项目,经过它能够定制 Android 操做系统,国内手机厂商都是在此基础上开发的定制系统。由于墙的缘故,若是没法链接谷歌服务器获取AOSP源码,能够从 清华大学镜像站或者 中科大镜像。本篇文章以清华大学镜像站为例。面试
Android源码包含数百个git库,光是下载这么多的git库就是一项繁重的任务,因此Google开发了repo,它是用于管理Android版本库的一个工具,使用了Python对git进行了必定的封装,简化了对多个Git版本库的管理。 安装 Git,在Ubuntu输入以下命令:bash
sudo apt-get install git
复制代码
可能会报以下的错误: 服务器
这个问题是有另一个程序正在运行,致使资源被锁不可用,输入以下命令进行解决:微信
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
复制代码
接下来建立bin,并加入到PATH中。markdown
mkdir ~/bin
PATH=~/bin:$PATH
复制代码
安装curl库:
sudo apt-get install curl
复制代码
下载repo并设置权限:
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo
复制代码
最后安装python,repo初始化时会用到:
sudo apt-get install python
复制代码
重启虚拟机后,开始下载源码。
创建工做目录 :
mkdir aosp
cd aosp
复制代码
repo的运行过程当中会尝试访问官方的git源更新本身,若是想使用tuna的镜像源进行更新,能够将以下内容复制到你的~/.bashrc里:
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
复制代码
设置身份,添加本身的邮箱和姓名:
git config --global user.email "piratemorgen@gmail.com"
git config --global user.name "piratemorgen"
复制代码
初始化仓库(不指定版本,默认下载最近的代码)
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
复制代码
初始化并指定版本:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-11.0.0_r1
复制代码
同步源码:
repo sync
复制代码
源码下载完成后,看到下面的信息能够说明下载成功。9.0整个源码的大小为36.5G,11.0源码的大小为59.1G
若是你以为很麻烦,也能够直接去我分享的一个百度网盘去下载AOSP的源码,版本的范围从1.6到11.0。里面的源码是精简版本的,不可以进行编译。 连接:pan.baidu.com/s/1cDHDwVNh… 提取码:bza8
AOSP源码中并不包括内核源码,须要单独下载,内核源码有不少版本,好比common是通用的Linux内核,msm是用于使用高通MSM芯片的Android设备,goldfish是用于Android模拟器的内核源码,这里以goldfish为例。
和下载AOSP源码同样,咱们须要先创建工做目录 :
mkdir kernel
cd kernel
复制代码
使用清华的镜像:
git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git
复制代码
这时kernel目录中会生成一个goldfish文件夹,进入goldfish目录并使用git命令。
cd goldfish
git branch -a
复制代码
这时会列出有哪些内核的版本分支能够下载。
这里选择下载goldfish 3.4版本。
git checkout remotes/origin/android-goldfish-3.4
复制代码
更多细节和内容见视频:
B站地址: www.bilibili.com/video/BV19f…
我的博客地址: liuwangshu.cn/batcoder/ao…
做者简介:刘望舒,腾讯云最具价值专家,著有畅销书《Android进阶之光》《Android进阶解密》《Android进阶指北》,蝉联四届电子工业出版社年度优秀做者,前华为面试官,现大厂技术负责人,谷歌开发者社区特邀讲师。
也欢迎你们关注个人公号 会分享大前端、Java相关的技术。