Android源码编译准备工作:
安装Ubuntu 16.04TLS
配置编译环境(openjdk,git-core等工具)
执行编译脚本
运行模拟器
安装Ubuntu
这里介绍的是编译Android 6.0系统所以Ubuntu的安装过程本文就不做描述。
参考:http://www.linuxdiyf.com/linux/19973.html
配置编译环境
配置OpenJdk
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk
配置一些常用工具
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip
下载Android源码
Android的源码下载是一件很头疼的事情,大多数时候根本上是无法下载的,这里给大家介绍一个国内的AOSP下载镜像AOSP下载地址:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
大家可以按照该网站的教程进行源码的同步,这里就不多做描述了
执行编译脚本
1.进入到下载好的远代码主目录
2.执行 $ source build/envsetup.sh 命令
3.执行 lunch 命令
4.选择自己需要编译的版本,这里我们一般选择1
5.使用make编译命令,make后面可以携带参数,例如 make -j8,表示使用八个工作线程进行编译,关于使用-jx可以根据自己cpu的线程数来决定,一边是cpu所有线程的总和
6.编译成功
运行模拟器
$ emulator
错误
build/core/ninja.mk:143: recipe for target ‘ninja_wrapper’ failed
这个错误是java堆栈太小需要在执行make命令之前提高堆栈大小
$ export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
$ out/host/linux-x86/bin/jack-admin kill-server
$ out/host/linux-x86/bin/jack-admin start-server