您的位置:首页 > 运维架构 > Linux

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

2015-03-14 16:48 525 查看
原文网址: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是要解压的文件名

版权声明:若无特殊注明,本文皆为( 极乐鸟 )原创,转载请保留文章出处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: