手把手教你Ubuntu18.04下载+编译+导入+调试Android_4.4.2-r2和android-9.0.0_r42源码

下面的所有操作都是我在新安装的Ubuntu18.04上的步骤,只要你和我的步骤一致就不会出错。

Android_4.4.2-r2

一、下载

下载直接通过清华大学AOSP镜像下载,网址https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

按照下面几个步骤来

  1. 下载Repo并添加到PATH中
mkdir ~/bin
PATH=~/bin:$PATH
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
  1. 单独建一个目录放置Android4.4.2r2源代码
mkdir android_4.4.2-r2
cd android_4.4.2-r2
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.4.2_r2
repo sync
  1. 然后是漫长的等待,选择人少的时候同步,我下载的时候大概3M/s,总大小大概100G左右。不过我下载的整个镜像,总大小大概300G。

如果你会,那么直接参考Android官方文档下载源代码即可,网址https://source.android.com/setup/downloading

步骤和使用清华大学AOSP镜像类似

  1. 下载Repo并添加到PATH中
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
  1. 单独建一个目录放置Android4.4.2r2源代码
mkdir android_4.4.2-r2
cd android_4.4.2-r2
repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r2
repo sync
  1. 然后是漫长的等待,如果你的代理服务器是你自己搭的服务器,那么速度会快点,我的代理服务器下载速度大概10M/s,有时候会突破20M/s,我的宽带上限就是20M/s,所以总的来说自己搭梯子好点。

二、配置编译环境

编译的话参考这篇博文https://www.jianshu.com/p/2b2c723825a9,文章是使用Ubuntu16.04,不过Ubuntu18.04也是没问题的。

  1. 安装编译工具
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
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 lib32z-dev ccache
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
  1. 安装jdk,Android4.4.2只能使用oracle jdk1.6来编译,Ubuntu18.04现在无法使用apt-get安装,只能手动下载并配置
sudo mkdir /usr/local/jvm
sudo cp jdk-6u45-linux-x64.bin /usr/local/jvm
cd /usr/local/jvm
sudo chmod +x jdk-6u45-linux-x64.bin
sudo ./jdk-6u45-linux-x64.bin

然后是配置

sudo gedit ~/.java1.6path

然后在打开的文本编辑器中添加如下内容

export JAVA_HOME=/usr/local/jvm/jdk1.6.0_45
export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME:$PATH
  1. 安装make,由于ubuntu16.04自带make版本过高,无法编译。因此需要将make降至3.81或3.82版本

下载地址ftp://ftp.gnu.org/gnu/make/make-3.82.tar.gz

tar -zxvf make3.8.2.tar.gz
cd make3.8.2
./configure
make
make install
sudo cp /usr/local/bin/make /usr/bin/

三、编译

选择当前java版本为java1.6

source ~/.java1.6path

切换到android4.4.2源代码根目录

cd android-4.4.2_r2
source build/envsetup.sh

选择编译版本,这里选择第二个x86 eng的,这样可以编出来的模拟器是可以使用你的GPU加速的

lunch
然后输2

然后开始编译,看电脑性能而定,起码2个小时了

make

四、使用Android Studio导入源码

cd android-4.4.2_r2
make idegen && development/tools/idegen/idegen.sh

然后使用Android Studio打开源代码根目录的android.ipr文件即可

五、打开源码编译出来的模拟器

配置编译环境

source build/envsetup.sh

选择编译版本

lunch
然后输2

打开模拟器

emulator

六、断点调试

待补充

七、添加log并重新打包模拟器镜像

mmm /framework/base/
make snod
emulator

Android-9.0.0_r42

同理你可以下载+编译+导入android P的源码

一、下载

mkdir android-9.0.0_r42
cd android-9.0.0_r42
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r42
repo sync

二、配置编译环境

编译Android P源码需要open-jdk8

sudo apt-get install openjdk-8-jdk
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

三、编译

source build/envsetup.sh
lunch

参考链接

  • https://source.android.com/setup/downloading

  • https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

  • https://www.jianshu.com/p/2b2c723825a9

  • https://stackoverflow.com/questions/24531006/how-to-import-android-source-codeaosp-into-android-studio

  • https://www.jianshu.com/p/367f0886e62b

你可能感兴趣的:(android,framework,android,ubuntu,framework)