zoukankan      html  css  js  c++  java
  • Android源码的下载和编译

    由于公司会安排我做硬解码这块,所以最近一直想研究一下Android源码,可是Android源码的下载真的挺麻烦的(可能是我第一次下载),参照网上的方法,没有一个可行的,现在就将我的下载过程和大家分享一下,如果有什么地方没有说清楚或者写错了,希望大家拍砖(哈哈)。


    开始步入正题吧。。其实网上很多文章给出了下载方法,但是可能那时以前的方法,现在貌似已经失效了,我给出一个连接,如果大家英文很好,可以直接上去了解一下:
    http://source.android.com/source/building.html

    在介绍下载之前,我先说一下要注意的事情:

    1、环境要是Ubuntu或者Mac电脑,由于Mac比较少,所以我这里使用的是Ubuntu10.04.

    如果你是要编译Android2.2(或者之前)的版本,那么你可以使用32位的,但是如果编译2.3(或之后),那么最好使用64位。

    2、JDK的选择,在2.2(或者之前)可以使用1.5的,但是在2.3之后要使用1.6

    3、我是在虚拟机上运行Ubuntu,磁盘最好设置大一些,我给的是50G

    4、如果是自己私人使用,我建议使用root账户登录,因为避免经常使用sudo操作,感觉挺麻烦的。


    下面开始下载:

    1、安装Git和Curl:apt-get install git-core curl;

    2、安装Repo

    mkdir -p ~/develop/download

    cd develop/download

    curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo >./repo

      chmod a+x repo

    repo init -u https://android.googlesource.com/platform/manifest -b android-2.2_r1


    (http://source.android.com/source/build-numbers.html)这个版本号可以到这个网址去查,我是下的这个版本, -b表示分支,如果你要下载其他版本,把这个版本号改了即可。我这个大概2G,所以3个小时就下完了。

    3、repo sync  执行了这个之后,你就慢慢的等待吧


    下面完成后,就是编译了,编译之前切忌要设置好环境变量:

    我这里简单的举个例子:

    在.bashrc文件中加入如下内容(不懂的可以查看Linux相关书籍)

    export JAVA_HOME=/root/develop/jdk1.5

    export JRE_HOME=$JAVA_HOME/jre(这个在java开发中貌似可以不用设置,但是这里希望你设置)

    export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH(这里一定要设置jre_home/bin,如果不设置,后面会报choosecombo找不到)


    开始编译吧,我是使用的make方式编译的,但是不是编译整个工程,编译android源码主要有三种方式:make,mmm,mm

    make:如果不带参数,那么将会编译整个系统,这个比较费时间,一般不会这么干,我是编译的framework,如  make framework

    make有个特点就是我指定某一个模块后,它会将该模块依赖的模块都进行编译。

    mmm:该命令是编译指定目录下的目标模块,但是不编译它依赖的模块,所以如果是第一次编译,那么往往会报错,使用方法如:mmm packages/providers/MediaProvider

    mm:这种方式和上面的方式有点类似,只不过它需要进入到目录中,如cd  packages/providers  然后mm MediaProvider

    mm也不会编译模块依赖的其他模块。



    编译之前执行两个操作:进入到下载根目录:(1) source build/envsetup.sh  (2) choosecombo

    这里我使用的make编译  make framework


    在编译的过程中,遇到如下常见错误:

    问题:bison: command not found

    解决方案:sudo apt-get install bison


    问题:

    g++: command not found

    解决方案:Ubuntu软件中心,选择安装g++;


    问题:
    error: zlib.h: No such file or directory

    解决方案:
    apt-get install zlib1g-dev


    问题:

    flex: command not found

    解决方案:
    sudo apt-get install flex


    问题:

    cannot find -lncurses

    解决方案:
    sudo apt-get install libncurses-dev

    如果使用root登录,可以不用sudo 

    我遇到的就这些吧,如果大家按照我这样做的,相信都可以成功。



  • 相关阅读:
    线程3 线程池和文件下载服务器
    线程 2
    线程 1
    线程间操作
    编写高质量的代码-------从命名开始
    基于.NET平台常用的框架整理
    消息队列
    我是一个线程
    linux 网络命令
    css hack比较全 --- 转
  • 原文地址:https://www.cnblogs.com/james1207/p/3293852.html
Copyright © 2011-2022 走看看