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

原文网址: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是要解压的文件名

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

时间: 2024-12-19 05:11:42

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

Ubuntu12.04系统编译Android4.4源码

系统环境 系统:Ubuntu12.04 64位系统. 源码:Android4.4源码. 选择Ubuntu12.04,是因为在14.04上没能折腾成功,在上面兼容32位程序的配置有点烦.12.04必须要用64位的,编译Android4.4时需要64位环境,同时要兼容32位程序,折腾. 步骤 配置jdk6 Android官方给的步骤是用OpenJdk,实测是不行的.网上找到https://jdk6.java.net/download.html 这个网址有需要的jdk,下载自解压安装包.自解压后在当前

ubuntu12.04 编译android4.2源码 gcc: fatal error: no input files错误

============问题描述============ 最近在ubuntu12.04 编译android4.2源码时遇到一个编译错误,错误如下: host C++: libhost <= build/libs/host/pseudolocalize.cpp gcc: fatal error: no input files compilation terminated. make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_inte

【转】如何在Ubuntu11.10(32位)下编译Android4.0源码(图文)

原文网址:http://blog.csdn.net/flydream0/article/details/7046612 关于如何下载Android4.0的源码请参考我的另一篇文章: http://blog.csdn.net/flydream0/article/details/7036156 3 开始编译 3.1 初始化环境$ source build/envsetup.sh3.2 选择目标$ lunch full-eng大概会再现如下提示:============================

Ubuntu14.04下zabbix2.4.5 源码编译安装

安装环境: Ubuntu14.04 LTS  mysql 5.6 php-fpm nginx 1.8.0 第一部分,php+mysql+nginx组件安装 1.系统更新 sudo apt-get update && sudo apt-get upgrade 2.安装php-fpm zabbix的web前端是用php写成的,需要php来运行 sudo apt-get install php-fpm (当然也可以源码编译php) 3.源码编译 mysql5.6 1. 安装环境: Mysql-5

ubuntu14.04 LTS Python IDE专用编辑器PyCharm开发环境搭建

一 PyCharm下载 官网下载地址:https://www.jetbrains.com/pycharm/download/ 这里的PyCharm有付费和免费版本,我们使用免费版本(Community Edition)就够用. 点击下载 下载完工具包:pycharm-community-2017.1.2.tar.gz 二 安装工具包 解压pycharm-community-2017.1.2.tar.gz 进入bin目录: 运行:$./pycharm.sh 点击OK 点击:Create New P

ubuntu14.04+Django1.7.1+nginx1.6+uwsgi2.0环境搭建

ubuntu下安装django1.7.1先安装pip sudo apt-get install pip 使用pip安装django sudo pip install Django (或者下载官方最新的django包,解压后执行sudo python setup.py install) 安装完成后进入python 命令行校验django是否安装成功(或直接执行python -c "import django;print(django.get_version())") >>&g

VisualBox ubuntu14.04 64位 android4.4.4源码编译总结

折腾了好几天,今天终于编译通过,用了4个多小时,太不容易了.如下图所示: 软件环境 虚拟机:VisualBox 操作系统:Ubuntu14.04 64位 android源码:android-4.4.4_r1 在这过程中遇到各种问题,通过apt-get install 安装相应的库可以解决一部分.编译2-3个小时的时候遇到一个棘手的问题, “make: *** [out/target/product/mako/obj/SHARED_LIBRARIES/libwebviewchromium_inte

iTOP4412开发板Android4.4源码编译分享

注意:本小节,介绍的源码指的是“20170803”以及后续新增的源码. 5.4.1.1 uboot 的编译 Android4.4.4 对应 uboot 的源码,编译器,参数配置,编译脚本以及编译参数和 Android4.0.3 的 uboot 全部一模一样. 5.4.1.2 Linux 内核的编译 源码目录 网盘下载 Android4.4.4 对应的源码.在网盘“iTOP-4412 开发板系统源码及镜像(其 他)”→“android_4.4.4 源码及镜像”目录下,在最新日期的文件夹下的“iTo

linux Ubuntu14.04 make编译文件报错:No rule to make target `/usr/lib/libpython2.7.so&#39;, needed by `python/_pywraps2.so&#39;. Stop.

错误过程:当“make”编译文件时报错No rule to make target `/usr/lib/libpython2.7.so', needed by `python/_pywraps2.so'.  Stop. 解决过程: 1.首先输入命令以下代码获取其出错原因 make --debug 错误提示如下,很明显是项目工程找不到它,原因有两个,一是系统没有装libpython2.7.os:二是装了,路径错误,或者名字不对 File '/usr/lib/libpython2.7.so' doe