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 

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



  • 相关阅读:
    ICONS-图标库
    图形资源
    vue项目中,如果修改了组件名称,vscode编辑器会在引入修改组件的名字处提示红色波浪线 The file is in the program because:Imported via xxx Root file specified for compilation .
    接口在dev环境报跨域问题(has been blocked by CORS policy:Response to preflight request doesn't pass access control check:No 'Access-Control-Allow-Origin' header ispresent on the requested resource.),qa环境正常
    阿里云occ的图片文件URL用浏览器直接打开无法访问,提示This XML file does noe appear to have any style information associated with it. The document tree is shown below.
    vue 项目使用element ui 中tree组件 check-strictly 用法(父子不互相关联的反显情况)
    高德地图进行线路规划绘制标记点操作(vue)
    vue中实现拖拽调整顺序功能
    2021-01-22 浏览器相关知识
    2021-01-22 js 相关知识点
  • 原文地址:https://www.cnblogs.com/james1207/p/3293852.html
Copyright © 2011-2022 走看看