ubuntu kylin14.04 上 android 5.1.1源码下载,编译

之前写了一篇博客: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

ubuntu kylin14.04 上 android 5.1.1源码下载,编译_第1张图片

2.lunch 1

ubuntu kylin14.04 上 android 5.1.1源码下载,编译_第2张图片

3.make -j4 

编译完成如

ubuntu kylin14.04 上 android 5.1.1源码下载,编译_第3张图片

编译过程也是一次性完成,没出现任何错误

接下来,我们运行一下模拟器看一下效果,紧跟着编译后面来(不要关闭终端,等下可以关闭终端再开启新终端启动模拟器的效果)




模拟器成功的启动起来了  有点小鸡冻 虽然编译成功了,但是还是有些疑问,因为和其他网友有些差别

为什么我们输入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就可以了


好了就记录这些了 

你可能感兴趣的:(Android源码编译,android5.1.1)