(1)更新软件源
$ sudo apt-get update
(2)进行系统升级
$ sudo apt-get upgrade
(3)安装curl:
$ sudo apt-get install curl
(4)下载 repo 工具:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
(5)建立工作目录:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
(6)初始化仓库:
$ repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest
(7)更新Python 【因为执行repo init报错Python版本低,需要升级到3.6+】:
(8)安装git:
$ sudo apt-get install git
$ sudo apt-get install vim
(9)初始化仓库,又报错了,需要
$ repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest
(10)提示无法连接到 gerrit.googlesource.com,需要将repo中的REPO_URL修改为可以连接的:
$ vim ~/bin/repo
REPO_URL = ‘https://mirrors.tuna.tsinghua.edu.cn/git/git-repo’
(11)初始化仓库,又报错了,需要sudo apt-get install libssl-dev
$ repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest
(12)初始化仓库,又报错了,需要libffi-devel
$ repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest
$ sudo apt-get install libffi-dev
(13)配置account:
$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"
(14)查看repo库上分支版本:
$ git --git-dir=.repo/manifests/.git/ branch -a
(15)找到自己需要的,初始化目标分支:
$ repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r40
(16)初始化完成后,安装JDK:
命令行执行一下javac,如果提示未找到,执行:
$ sudo apt install openjdk-8-jdk-headless
验证java -version,查看版本。
再执行javac,如果能找到,说明好用。
(17)下载各种依赖:
$ sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
$ sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
$ sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
$ sudo apt-get install git-core gnupg flex bison gperf build-essential
$ sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
$ sudo apt-get install libc6-dev-i386
$ sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
$ sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
$ sudo apt-get install lib32z-dev ccache
$ sudo apt-get install libssl-dev
(18)下载源码:
$ repo sync
(19)编译:
- 加载命令:
$ source build/envsetup.sh
- 选择平台编译选项:
$ lunch
- 执行编译:
$ make -j16
编译过程中发现该错误:
该问题是由于Python的版本不对,需要使用Python2版本。
请参照我的另一边Python版本切换的博客。
将python版本修改为2.7,再次进行make
(20)启动emulator
$ emulator -avd myavd -system system.img -data userdata.img -ramdisk ramdisk.img
(21)启动emulator,总一个提示向下滑动的pop无法消去,需要注释掉下列代码的handleShow函数即可。
frameworks/base/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java
public void handleMessage(Message msg) {
switch(msg.what) {
case SHOW:
// handleShow();
break;
case HIDE:
handleHide();
break;
}
}
题外记录(1):编译AndroidSDK:
$ source build/envsetup.sh
$ lunch sdk-eng 或 lunch sdk-userdebug 或 lunch sdk-user
$ make -j12 sdk