【转】Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程

时间:2023-02-23 10:11:33

原文网址:http://jileniao.net/linux-android-building.html

sublime text让我伤心。本来很信任sublime text的自动保存功能,之前使用一直很给力的,但这次让我伤心欲绝啊。

关于Linux(ubuntu14.04)上编译Android源码的环境搭建详细过程都是在sublime text中编辑好的,无奈,这次的数据丢失让我不得不重新来回想手打一次了。可能很多细节问题,这次重新编辑文章时不会记得那么清晰了,还请有问题的朋友在下面留言给我就好了。

1.下载并安装jdk6
  注意,版本一定要是jdk6,其他版本都会有问题。
  网上流传的方法大都是apt-get install来安装jdk,实际操作证明这样是不行的,下面给出个下载jdk6的地址
  https://jdk6.java.net/download.html  在这里根据自己机器配置情况选择自解压文件(self-extracting)就好了
  上面下载得到jdk-6u38-ea-bin-b04-linux-i586-31_oct_2012.bin文件,改变属性使其拥有可执行权限。
  ./jdk-6u38-ea-bin-b04-linux-i586-31_oct_2012.bin即可安装

2.Linux配置jdk的环境变量
  执行命令sudo gedit /etc/environment
  在环境变量文件的PATH中追加自己1.中jdk目录的路径注意到bin目录下
  例如:/usr/local/java/jdk1.6.0_38/bin
  并增加CLASSPATH和JAVA_HOME两个环境变量
  例如:
    CLASSPATH=.:/usr/local/java/jdk1.6.0_38/lib 
    JAVA_HOME=/usr/local/java/jdk1.6.0_38

3.更新环境变量使其生效
  执行命令:
  sudo source /home/yourloginname/.bashrc

4.设置Ubuntu下默认的jdk
  因为ubnuntu中有默认安装的openjdk,但我们编译Android源码是需要jdk6的,所以需要设置默认成jdk6
   sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk1.6.0_38/bin/java 300
   sudo update-alternatives --install /usr/bin/javac javac /usr/local/java/jdk1.6.0_38/bin/javac 300
   update-alternatives --config java
   
   此时选择jdk6即可
   
5.测试jdk环境变量是否正确配置
  java -version
  若能看到自己安装的jdk6的版本号则说明jdk环境变量已经配置成功

6.预先要安装的其他软件
  说明下,为保证编译过程中不老是缺少某些软件而中断,所以我们一定要做好准备工作,不打任何一场无准备的仗。
  网上很多前辈都已经给出来了不少要提前安装好的软件,下面我把它们集中整理出来。
  sudo apt-get install build-essential
  sudo apt-get install make
  sudo apt-get install gcc
  sudo apt-get install g++
  sudo apt-get install libc6-dev
  sudo apt-get install patch
  sudo apt-get install texinfo
  sudo apt-get install libncurses-dev
  sudo apt-get install git-core gnupg
  sudo apt-get install flex
  sudo apt-get install bison
  sudo apt-get install gperf
  sudo apt-get install libsdl-dev
  sudo apt-get install libesd0-dev
  sudo apt-get install libwxgtk2.6-dev
  sudo apt-get install build-essential
  sudo apt-get install zip
  sudo apt-get install curl
  sudo apt-get install ncurses-dev
  sudo apt-get install zlib1g-dev
  sudo apt-get install valgrind
  sudo apt-get install python2.5(该软件我没有安装成功,最后也没出什么问题)
  sudo apt-get install libgtk2.0-0:i386
  sudo apt-get install libpangox-1.0-0:i386
  sudo apt-get install libpangoxft-1.0-0:i386
  sudo apt-get install libidn11:i386
  sudo apt-get install gstreamer0.10-pulseaudio:i386
  sudo apt-get install gstreamer0.10-plugins-base:i386
  sudo apt-get install gstreamer0.10-plugins-good:i386
  sudo apt-get install gstreamer0.10-ffmpeg:i386(该软件我没有安装成功,最后也没出什么问题)
  
  再加个说明:上面的软件中最后几个以i386是因为一个错误(具体什么错误现在实在记不起来了),错误原因就是需要安装ia32-libs的软件包64位Linux(Ubuntu)上编译Android源码时还需要一个32位Linux的包,所以需要这个ia32-libs的支持包,但这个ia32-libs的软件包在网上根本没有找到,也没发现实际可用的解决方案,但从Ubuntu官网上来看,这个ia32-libs其实就是若干软件包的合集,所以下载安装其中的那么几个软件包就可以达到我们的目的。
  
7.正式编译Android源码
  做了那么多的准备工作,现在终于可以做正事了。根据Android官网的说法,编译Android源码执行下面三个命令即可
  ①source build/envsetup.sh
  ②lunch
    此时要选择一个编译平台
  ③make -jn
    这里的n注意取值,网上一般说法是CPU核数的两倍,还有一说是CPU核数加1。到底哪个更准确我也没有验证。
    但要值得提醒的是,虽然n用一个大的值会使编译速度加快,但如果n取值过大,编译是会报错的。
    如果实在不确定n应该用什么值,那就直接用make命令吧。
    
    从编译开始到编译结束,这个时间还是很漫长的,我是在虚拟机上搭建的Ubuntu14.04,分配的内存是2G,直接用的make命令,第一次编译时,是从9:30开始编译,17:00才编译完全结束的。如果机器配置更好些,或用Ubuntu实际机器编译耗时应该会少些。

至此,Linux(ubuntu14.04)上编译Android源码的环境搭建及编译全过程已经结束了。
最后在赠送一个Ubuntu上安装7z软件包的命令及使用方法
安装7z:apt-get install p7zip-full
使用7z:7z x file file是要解压的文件名

版权声明:若无特殊注明,本文皆为( 极乐鸟 )原创,转载请保留文章出处。