Android源码的编译(4.4.2)

36 篇文章 0 订阅
10 篇文章 0 订阅

1. 将android源码中下的所有文件,文件夹都加上可执行的权限,因为在编译过程中,你会遇到Permission Denied的错误,这是因为有些可执行文件在运行过程中需要可执行的权限,可是,我怎么知道哪些文件需要什么权限呢,干脆一不做,二不休,我就把android源码目录下的所有文件都加上可执行的权限,那么后续就满血复活啦,只要敲击以下命令即可:

      sudo chmod -R 777 *

    2. 上面的1问题中所说的相信大家能理解,可是这里,用移动硬盘编译的朋友们可能会遇到一个问题:明明执行了上面的命令,却为什么没有反应呢,ls -l  查询了下,以前怎么样,现在还是怎么样,经过查证,原来是你无法修改移动硬盘的可读可写可执行的权限,更细节的原因本人也不知道,那么这时候我就选择挂载,把盘中的内容挂载到本地,这样,相当于在本地对移动硬盘的源码做了一个映射,就像指针一样,我修改本地就如同修改移动硬盘中的东西一样,然后再执行上述命令,就成功了,到这里,大家应该明白了,我为什么要挂载了吧!

   怎么挂载呢?在你的目录的一个可用的位置新建一共目录,比如:mkdir  android

   然后,df  -h  查询你的磁盘的目录,我的磁盘是/dev/sda1

   最后,敲入命令:mount -o umask=0000 /dev/sda1  /home/pro/android就可以了,下面你访问android就等于是在访问你的移动硬盘了

    3. 好了,终于步入正规了,下面就可以按官网所说的来一步步做吧,

       

      这里是要装JAVA运行环境,但是不能根据他的来,因为他的这个安装jdk7的是对应最新的android源码分支的(android源码5.0版本),我们这里编译的是android4.4.2,所以用的jdk6,如果你不装java运行环境,编译的时候也会报错,你可能这时候会把openjdk-7-jdk改称openjdk-6-jdk,但是我这么做后又遇到了问题,提示说不能用openJDK,需要用oracle官方的jdk6,所以只好去老老实实地去oralce官网下载jdk6了,果然,那样就对了(这里,我不知道这个错大家会不会跟我一样发生,如果有人没有这个错,那么就继续编译吧,没什么问题地);

     其实,这里配置Java的时候会有一点小的问题,如果现在不注意这个问题,那么到后面编译的时候一直会出现莫名其妙的错误的。

     假如你一开始安装的不是Java1.6,那么这时候你系统默认就不会去找java1.6的东西,即使你把配置好了java1.6的环境变量,所以你要通过以下的方式来配置:

   

$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/bin/java 1

$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 1

$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_45/bin/javaws 1

$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_45/bin/jar 1

$ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_45/bin/javadoc 1

$ sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.6.0_45/bin/javap 1  (EDIT - This is needed to compile Kit Kat 4.4)


配置好后再来选择所要用的java1.6的环境:

$ sudo update-alternatives --config java

$ sudo update-alternatives --config javac

$ sudo update-alternatives --config javaws

$ sudo update-alternatives --config jar

$ sudo update-alternatives --config javadoc

$ sudo update-alternatives --config javap  (EDIT - This is needed to compile Kit Kat 4.4)

到此为止,java环境算是安装好了

     4. 安装好JAVA环境后,就需要装一些相应地包,如下图所示,




5.好了,环境地初始化都完成了,下面就正式编译源码,






到这里,剩下地就需要神地等待,过程中不保证会没一点错误,有的话你就赶紧度娘 or google了


如果成功了,最后一步 ,你就可以光荣地启动你的模拟器了,怎么启动,网上的说法各一,一查便是,这里就不说了!!!



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是要解压的文件名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值