Android5.0环境搭建,源码编译,模拟器启动。

Android5.0环境搭建,源码编译,模拟器启动。

        首先先说明我做的所有的操作都是基于ubuntu14的。(建议大家用64位镜像,不然稍微高版本安卓系统会编译不了。)。
    在家里同步Android7.0的代码,用repo sync同步了不下15次,才同步完成,最后还要编译什么的。如果是刚接触Android,为了先熟悉熟悉安卓源码,学习架构什么的,建议千万不要盯着安卓7.0的源码包不放。原因有几点,第一:安卓源码太大了,我举个例子吧,我用的5.0的源码,解压,编译什么的,大概占了60G,后面因为各种原因,现在硬盘已经占用了140G了。7.0的压缩包有至少40G。第二:7.0有可能许多比较老的安装包都没有了,也可能有些安装包不兼容。当然,这些都是我根据5.0的源码猜测的。没有尝试过。
    建议大家不要repo高版本的源码,下载的比较慢,还有就是网络不稳定的那就最好不要repo,直接找别人的网盘下载源码。
       
    首先我们需要做的就是准备安卓源码包和linux内核包了,http://www.linuxidc.com/Linux/2016-01/127285.htm       这个地址提供安卓1.6 ---------6.0的源码包。关于内核的话,大家可以去  http://my.csdn.net/zhang24qin   这位美女姐姐提供的资源下载。启动模拟器的话,必须用goldfish版本内核。建议3.40的,3.10的内核听说有BUG,最好别用!       不过要积分的。申明一下,我这不是打广告,我也不认识她,不过她的博客帮我解决了很懂问题,感谢!

    大家千万不要随意找一些源码包来弄,有些网上挂的包并不完整,而且还可能会有BUG,你可能编译不过,或者就算你编译过了模拟器也启动不了。到时候还是从头来过!



     好了,有包就好办了,个人觉得准备这两个正确的包是最关键的地方。OK,开始来装编译环境了,安卓源码预先需要装许多软件包,我参考了许多的博客,写法各不一样。在这里给大家提供一套书上的标准。执行以下语句。

    
sudo apt-get install dpkg-dev

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
 
           本人才疏学浅,有几个包的意义并不了解,希望知道的前辈们可以给我说下,谢谢!

    安装了上面的包之后,接下来安装JDK。执行以下语句
sudo apt-get install openjdk-7-jdk
     
          全部安装成功后,环境就搭建完成了。

    接下来开始准备编译。
    
source build/envsetup.sh

     这个命令是用来将envsetup.sh里的所有用到的命令加载到环境变量里去

envsetup.sh其主要作用如下:

  1. 加载了编译时使用到的函数命令,如:help,lunch,m,mm,mmm等
  2. 添加了两个编译选项:generic-eng和simulator,这两个选项是系统默认选项
  3. 查找vendor/<-厂商目录>/和vendor/<厂商目录>/build/目录下的vendorsetup.sh,如果存在的话,加载执行它,添加厂商自己定义产品的编译选项。

     接下来,执行
lunch full-eng
       如果你按上述命令执行,它编译的还是通用的eng版本系统,不是我们个性系统,我们可以执行lunch命令,它会打印出一个选择菜单,列出可用的编译选项.

    这一步得认真考虑下了,如果是用系统自带的模拟器的话,15,当然是X86_64位系统的。不过好像选择1-8也是没有问题的。不过只是启动模拟器的话,而没有硬件的话,不要选开发板的lunch项,不然你是编不出模拟器的。




    最后就是make了。
make -jx     //X位电脑核心数的2倍 我的是J8

           编译了大概半天的时间,终于编过了0.0,接下来准备启动模拟器

    首先需要把编译出来的三个镜像文件以及将执行的emulator命令添加进环境变量。
   
export PATH=$PATH:~/Android-5.0.2/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=~/Android-5.0.2/out/target/product/generic





    最后 直接执行
emulator          

    模拟器运行需要四个文件,分别是Linux Kernel镜像zImage和Android镜像文件system.img、userdata.img和ramdisk.img。执行emulator命令时,如果不带任何参数,则Linux Kernel镜像默认用~/Android/prebuilt/android-arm/kernel目录下的kernel-qemu文件,而Android镜像文件则默认使用ANDROID_PRODUCT_OUT目录下的system.img、userdata.img和ramdisk.img。如何编译linux内核及添加linux镜像到模拟器,明天继续总结。

   另外如果出现如下警告:

emulator: WARNING: system partition size adjusted to match image file (550 MB > 200 MB) emulator: WARNING: data partition size adjusted to match image file (550 MB > 200 MB)

只需要在emulator后面加跟参数:emulator -partition-size 1024 即可。

     

本文参考
        http://blog.csdn.net/zhang24qin/article/details/41090701 一片落叶一个秋
        http://blog.csdn.net/luoshengyang/article/details/6559955 罗老师

      

你可能感兴趣的:(Android5.0环境搭建,源码编译,模拟器启动。)