本文是Android底层开发系列的第二篇,了解前面的文章能更好的了解本文:
1.android底层开发(一)Linux环境搭建和下载源码
前言
(一). 编译环境的配置和添加
(二). 软件包的安装
(三). 编译源码
上篇文章为大家讲述了 Android底层开发的环境和源码下载;本篇文章接着上篇内容继续为大家介绍 Android源码的编译编译配置。
(一). 编译环境的配置和添加
上面一章我们把Android 9.0源码已经下载,接下来我们就来编译源码。
编译源码之前我们需要配置环境变量和配置资源包源;
#配置JDK
为什么要配置,JDK因为在编译中下载资源包的时候需要jdk的支持,我这里下载 jdk-8u231-linux-x64.tar.gz 大家可以去官网下载 需要版本。
下面我通过命令行 解压和配置环境变量:
#管理员身份设置
andychen@ubuntu:~$ sudo -i
#设置linux服务器密码
[sudo] password for andychen:
#进入opt目录
root@ubuntu:~# cd /opt
#创建Java目录
root@ubuntu:/opt# mkdir java
#复制共享文件 /mnt/hgfs/E/jdk-8u231-linux-x64.tar.gz 到 opt下的Java目录
root@ubuntu:/opt# cp /mnt/hgfs/E/jdk-8u231-linux-x64.tar.gz /opt/java/
#进入Java目录
root@ubuntu:/opt# cd java
#解压jdk
root@ubuntu:/opt/java# tar -zxvf jdk-8u231-linux-x64.tar.gz
#复制Java目录一份作为配置环境变量
root@ubuntu:/opt# cp /java
cp: missing destination file operand after '/java'
Try 'cp --help' for more information.
配置 jdk环境变量
#执行如下命令 打开配置文件
root@ubuntu:~# vi /etc/profile
#配置如下信息
export JAVA_HOME=/opt/java/jdk1.8.0_231
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
root@ubuntu:~# source /etc/profile
执行上面的vi /etc/profile 命令行 进入配置 shift+g到配置文件底部,点击i进入标记状态
复制配置信息 放在该文件中,点击ESC退出 :wp!退出,
执行 root@ubuntu:~# source /etc/profile 命令保存配置
#验证环境是否配置正确
root@ubuntu:~# java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
配置如下图:
(二). 软件包的安装
编译源码需要安装编译中使用的软件,如果使用国外的资源肯定是下载很慢的,甚至是无法下载,于是我们使用国内清华地址进行下载源。具体操作为:
首先执行命令 如下:
#进入 etc/apt文件目录
cd /etc/apt/
#执行命令打开文件
sudo gedit sources.list
#打开文件后配置如下信息资源
记得将之前的备份,以免防止出错。
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
#安装软件包
下面我们需要安装编译圆满需要的软件包,输入如下命令,进行安装即可。
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
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
sudo apt-get install libssl-dev
sudo apt-get install aptitude
经过上面的两个配置的添加,我们就能做代码编译了。
(三). 编译源码
编译时要保证虚拟机必须配置很大的内存,这里我使用8G编译的。尽量将自己的电脑升级到12G以上内存,这样会比较顺利一些。
#首先进入aosp文件目录
执行 source ./build/envsetup.sh命令,将当前工程下的项目检索出来,同时生成一些简单命令,以供后续使用。输入命令后的界面如下:
然后执行 lunch 命令 ,会提示多种版本,我们需要选择一种来编译
这里选择 2 arm64的eng版本。
然后我们输入
make -j4 | tee build.log
便开始漫长的编译过程,直到完成。模拟器编译很慢,只能慢慢等着,当编译完成后,会显示编译100%,完成。
编译成功界面如下图:
ok 看到上面的效果就说明编译源码成功了!
然后我们输入emulator启动模拟器,运行起来的效果会是如下:
好了 到这里 针对9.0源码的编译已经完成了,有问题 大家可以关注公众号 加群 。
- End -
▽