64位ubuntu12 编译android4.4.2

 
64位ubuntu12  ,vmware  10, 编译android4.4.2 

硬件环境 :
笔记本,64位 win7, i3  2.4G双核4 线程的cpu, 内存4G, 硬盘500G ,给虚拟机留100G

下载Android代码需要大约4G, 单独make需要30G空间,完全编译需要60G以上的空间,官网的建议是预留100G
-------------------------------------------------------
vmware  workstation   10

ubuntu-12-4-64bit. iso     ubuntu12-04,  64位,,  
 
ubuntu13开始用的是linux3.0 以上的内核, 而android现在的最高版本4.4.2用的是2.6的内核,所以,个人认为用ubuntu12比较合适。
虚拟机硬件 :双核4线程的cpu, 内存2G, 硬盘100G
安装大概1到 2个小时

必须用 2d 登录,默认第一条登录是黑屏的, 为什么会酱紫的呢,不清楚。
账户 gl/lgl  
sudo passwd root  修改root用户密码
----------------------------------
网络 设置
1 虚拟机网络 setting  选择   bridge 方式,并且勾选  “复制物理连接状态”
2  虚拟网络编辑器-->vmnet0, 桥接到无线网卡或者有线网卡

3  sudo gedit  /etc/network/interfaces 内容如下
auto eth0
iface eth0 inet static
address 192.168.1.130  ###虚拟机的ip
gateway 192.168.1.1    ##网关
netmask 255.255.255.0
network  192.168.1.1    #你可以试下,是否能省掉这一句
#in order to get internet access from host
dns-nameservers 192.168.1.1 
#192.168.1.1  是我的网关,路由器的ip,  注意这里的域名服务器不是什么 8.8.8.8之类的,要设置成上网的网关ip地址192.168.1.1
 
  在相对较早的版本中,你需要设置/etc下的resolv.conf文件,并加入nameserver,这样才可以连接互联网。
但在Ubuntu 12.04之后,已经不推荐这种方式了,因为无论你想该配置文件中设置什么值,重新启动之后都会被还原为初始状态。推荐的做法是直接在interfaces配置文件中加入dns-nameserver <网关IP>这一行。
sudo /etc/init.d/networking restart 
$ ping   www.baidu.com     验证下网络是不是通了

 安装 openss , 就可以使用winscp 了,winscp   方便 在本机核虚拟机之间拷贝数据
sudo  apt-get  install  openssh-server
winscp  登录 ip    192.168.1.130  
账户  root/lgl
---------------I下面-下载android 源码- -到 windows 下面再 传到ubuntu中来------------------
如果从google的官方网站下载,首先确定官网没有被共党墙掉, 其次那个repo的下载 ,文件超过20个G, 速度能否保证,有下一个星期的都有。
从 baidu云 盘 , 下载的 4.4.2版本的 ,  
 4.4.2只支持64系统,其实从4.2版本开始就不支持32系统了,前面在32位的centos下面白忙活了几天,编译不了,也没有个提示,麻痹的比红会黑,比城管黑,黑不过刮民党
http://blog.csdn.net/ilittleone/article/details/6823441
中的连接
百度那网盘地址:
http://pan.baidu.com/s/1o6NQATW
源码下载
-------------------------下载 安装jdk1.6的,,ubuntu12自带的openjdk不能用的------------
csdn 里面下载 jdk-6u4-linux-x64-rpm.bin
 关于 rpm包 的
rpm 安装 出了点问题,

最终,该用下载6u4-linux-x64.bin 安装的
sudo mkdir  /usr/local/java
拷贝6u4-linux-x64.bin到  /usr/local/java/ 下面
$sudo  chmod  755  6u4-linux-x64.bin
$sudo   ./6u4-linux-x64.bin
 一定要sudo , 你麻痹,刮民党的干活,匪党, 良心大大滴坏了

$ sudo gedit /etc/profile 

export JAVA_HOME=/usr/local/java/jdk1.6.0_32

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH

$ source   /etc/profile 
$  java   -version    验证jdk 是否安装正确可用
----------------------------------------
  
-------安装 编译android、源码用的依赖的包 -----
$ apt-get  update

--------ubuntu12 自带的 gcc 4.6的版本 太高了,不能用来编译android4.4的
sudo apt-get install  gcc-4.4  g++-4.4 
sudo apt-get install g++-4.4  
cd /usr/bin/
sudo mv gcc   gcc.bak 
sudo ln -s gcc-4.4 gcc 
sudo mv g++ g++.bak 
sudo ln -s g++-4.4 g++  
=----------------------------------------

ubuntu12  默认自己安装了Python2.73, 刚好满足要求,  别再下载了,你再去apt-get一个回来可能是3.0以上的版本的,反而不一定兼容。
sudo  apt-get   install     flex   libxml2-utils  gperf  ccache   bison   ia32-libs-multiarch:i386 

上面的依赖包下载 和安I装 ,我的电脑配置需要大概 2个小时吧 。
------------------------------------------------------------------------
 sudo  gedit ~/.bashrc
  
#export ANDROID=/home/lgl/android/mydroid
#export ANDROID_PRODUCT_OUT=/home/lgl/android/mydroid/out/target/product/generic    
#export ANDROID_PRODUCT_OUT_BIN=$ANDROID/out/host/linux-x86/bin
#export ANDROID_SWT=/home/lgl/android/mydroid/out/host/linux-x86/framework   
#export PATH=$ANDROID/out/host/linux-x86/bin:$ANDROID/prebuilt/android-#arm/kernel/:$ANDROID_PRODUCT_OUT:$PATH    
 #export PATH=$PATH:$ANDROID/prebuilt/linux-x86/toolchain/ARM-eabi-4.4.0/bin 
 #export ARCH=arm  
 
  export USE_CCACHE=1
#只需要上面这一条ccache开关语句就可以了, 打了#的是注释了的,不用考虑的
 $ source  ~/.bashrc
--------------------------
拷贝 android源码的压缩文件到 /home/lgl/android/ ,解压为 /home/lgl/android/mydroid/, 这个就是android的根目录了
 sudo  chmod   755  /home/lgl/android/mydroid/
sudo  chmod   755  /home/lgl/android/mydroid/*
cd  /home/lgl/android/mydroid/

bashrc 里面已经 定义了  export USE_CCACHE = 1,
 sudo  prebuilts/misc/linux-x86/ccache/ccache  -M  60G
其中60G 这个数字 根据自己的分配的硬盘空间做调整
source   build/envsetup.sh
lunch    
Lunch menu... pick a combo:
     1. aosp_arm-eng
     2. aosp_x86-eng
     3. aosp_mips-eng
     4. vbox_x86-eng
     5. mini_armv7a_neon-userdebug
     6. mini_mips-userdebug
     7. mini_x86-userdebug
     8. aosp_grouper-userdebug
     9. aosp_deb-userdebug
     10. aosp_tilapia-userdebug
     11. aosp_flo-userdebug
     12. aosp_mako-userdebug
     13. aosp_hammerhead-userdebug
     14. aosp_manta-userdebug
直接回车 ,就是选择默认第一项,aosp_arm-eng,这个编译出来的针对arm处理器的通用版, 在emulator下面跑是没有问题的,
如果你有开发板, 或者做实验用的手机, 可以把编译出来的 影像拷进去,就可以了,  我自己的手机当然不能拿来做实验了。

make  -j4
数字4根据自己的cpu调整,cpu是几个内核就写多少了
---------------编译 ,我的电脑至少5个小时,
编译成功后:
 1  在   /out/target/product/generic/  下面有应该有三个文件:
  system.img( 我的就没有生成这个文件,内存不够,编译中途就停止了,重新启动继续完成了最终的编译,同时也生成此文件)
  userdata.img
 ramdisk.img

2 可以 启动模拟器
source  build/envsetup.sh
lunch   
1     回车确认
emulator
运行命令   $emulator  就可以 运行模拟器
android 编译官方文档   http://source.android.com/source/building.html
 
祝你好运!

你可能感兴趣的:(vmware,64位win7,ubuntu12,workstation10,android4.4.2)