之前写了一篇博客:vmware workstation 12 安装 ubuntu kylin 16.04虚拟机
为的就是下载android源码,编译。确实在16.04环境中下载了android6.0的源码,不过编译过程出现了很多问题.
可能是虚拟机的原因导致电脑好卡编译速度非常之慢,另外编译过程中出现了错误(android源码编译 出现的错误),查了好几天没找到答案,不知道是不是与最新的环境(16.04)有关,如果哪位好心人也遇到这个问题,并解决了,麻烦告诉我。
所以没办法,重新装了双系统,这次不装虚拟机了,安装的是ubuntu kylin14.04。安装系统过程就没有记录了,网上好多教程,这里把我拉源码,和编译源码的过程记录一下。
首先告诉大家的是:http://source.android.com/source/downloading.html,大家可以参考官方的来,我就是参考这里来的。
1:安装一些必要软件 (这些忘记截图了)
打开终端
sudo apt-get install openjdk-7-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
2:下载repo(这里是在主目录下.也就是/home/XXX )
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
3:配置git信息 用户名 和自己的邮箱
$ git config --global user.name "Your Name"// 比如xxx $ git config --global user.email "[email protected]"// 比如[email protected]4:新建放android源码的目录
$ mkdir WORKING_DIRECTORY //比如我是放在/home/xxx/work/android5.1目录下 mkdir -p work/android5.1.1
$ cd WORKING_DIRECTORY //cd work/android5.1
5:拉5.1.1的源码
$ repo init -u https://android.googlesource.com/platform/manifest -b android-5.1.1_r30 //6.执行
repo sync
然后就是等待了 我是晚上8点多开始拉,第二天早上就完成了,中间没有出现任何错误
源码拉下来了,接着可以编译了。
编译前先配置译器高速缓存:
接下分别人执行:
1. source build/envsetup.sh
2.lunch 1
3.make -j4
编译完成如
编译过程也是一次性完成,没出现任何错误
接下来,我们运行一下模拟器看一下效果,紧跟着编译后面来(不要关闭终端,等下可以关闭终端再开启新终端启动模拟器的效果)
模拟器成功的启动起来了 有点小鸡冻 虽然编译成功了,但是还是有些疑问,因为和其他网友有些差别
为什么我们输入emultor命令就可以启动模拟器呢,这个emulator程序在哪呢,默认貌似emulator是在~~~/work/android5.1/out/host/linux-x86/bin目录下?
首先我们看一下环境变量
echo $PATH
我们知道模拟器启动需要了四个镜像文件 分别是Linux Kernel镜像zImage和Android镜像文件system.img、userdata.img和ramdisk.img ,当前Linux Kernel镜像默认是work/android5.1/prebuilts/qemu-kernel/arm 目录下自带的镜像文件,一看有两个
到底是哪一个呢,目前我这个版本用的是kernel-qemu-armv7这个,后面会验证。
OK,android的镜像文件在~/work/android5.1/out/target/product/generic/目录下:
emulator默认加载的是ANDROID_PRODUCT_OUT这个变量指向目录下的镜像文件,所以我们看一下这个环境变量
确实该变量就是指向android镜像文件的目录。
接下关键是看emulator的位置了
再次看这环境变量,貌似就像之前所说的是在~/work/android5.1/out/host/linux-x86/bin这个目录
就到这里去看看
汗 没有啊 怎么回事!!!网上看别人的编译的结果都是在这
接着
??什么在这里 源码本身就自带了 所以我在这里问一下,大家编译的时候有编译出emulator吗?
看,这个路径也确实在环境变量中。
好了 现在就内核文件到底默认用的哪个了,这里我们可以用两个方法来验证
1.直接指定内核来启动模拟器
运行上面这个模拟器启动不了,说明有问题
而上面这个正常启动,说明默认内核文件就是这个了
2.emulator启动模拟器 查看cpu架构信息
也可以知道应该默认是用kernel-qemu-armv7这个镜像文件
现在知道原来模拟器原来是这样启动起来的。
上面是在编译完成之后,接着在终端上操作的,现在关闭当前的终端,再开启一个终端试试
之前环境变量都没有了,怎么再启动模拟器呢?
运行一次
source build/envsetup.sh 和lunch 1
再运行emulator就可以了
好了就记录这些了