第一次写博客,准备记录并解决各种做完了就忘了的扯淡问题。
花了一个多月时间,终于把源码编译出来并成功启动模拟器。遇到各种不兼容,网络问题导致编译重新开始。
因为是用vmware来编译,所以重新安装编译环境,下载源码也方便。
废话不说了,下面是操作过程。
准备材料:8G内存,64位系统的电脑,500G以上的硬盘,vmware 12 64位,ubuntu 14 kylin 64位系统的镜像。
8G内存: 是因为编译的时候很耗内存。所以至少分配4G给虚拟机。分配120G以上给虚拟机。
64位系统:我用的是win7 64系统。试过32位的ubuntu 14 kylin系统,下载源码后,编译的时候各种莫名其妙的错误,下载了4次源码后,无奈放弃,不得不换成64位。
建议安装环境之后先保存快照,编译完后也保存快照,确定OK了,删除再快照。
安装好系统后,直接用root权限吧
sudo passwd root
这里设置密码
然后su
1、装jdk:我选择openjdk,之前用sun的oracle_jdk,编译失败,原因没有深究,直接换openjdk。
apt-get install openjdk-7-jdk
安装好后,设置环境变量:
gedit/etc/profile
文件末尾加上
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH
2、安装ccache
apt-get install ccache
source ~/.bashrc
apt-get install git-core
apt-get install git
apt-get install gnupg
apt-get install flex
apt-get install bison
apt-get install gperf
apt-get install build-essential
apt-get install zip
apt-get install curl
apt-get install libc6-dev
apt-get install libncurses5-dev:i386
apt-get install x11proto-core-dev
apt-get install libx11-dev:i386
apt-get install libreadline6-dev:i386
apt-get install libgl1-mesa-dev
apt-get install g++-multilib
apt-get install mingw32
apt-get install tofrodos
apt-get install python-markdown
apt-get install libxml2-utils
apt-get install xsltproc
apt-get install zlib1g-dev:i386
apt-get install dpkg-dev
之前试着把这里的32位的软件换成64位的,编译失败,原因没有深究。有兴趣的可以试试。如果不想麻烦,就不要换了。 1)创建repo目录
mkdir ~/bin
PATH=~/bin:$PATH
2)下载repo(官方的repo下载不了,其他的repo大多比较旧,这个时比较新的,我找了很久大哭)
git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/
克隆下来后将git-repo中的repo文件拷贝到bin目录
cp git-repo/repo ~/bin/
修改repo文件,设置REPO_URL如下:
REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'
1)创建目录
mkdir ~/aosp
2)初始化repo
cd ~/aosp
ps:在初始化时,提示需要email验证,使用如下命令:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.1.1_r4
6.下载源码
repo sync
1)设置cache
cd aosp
prebuilts/misc/linux-x86/ccache/ccache -M 50G
2)初始化编译环境
. build/envsetup.sh
3)选择编译目标包
lunch可以查看进行选择
也可以直接lunch aosp_arm-eng
4)编译
make
5)编译失败后,需要make clean make update-api再make,不然各种报错。
emulator
成功显示
8、运行虚拟机
emulator