• Ubuntu 下载编译 Android5.0 源码


     

    1.安装ubuntu

     编译Android 5.0 需要ubuntu 64位的操作系统,在 http://mirrors.ustc.edu.cn/ubuntu-releases/14.10/ 下载Ubuntu 14.10 64 位版本。

    提示:

     1.建议下载14.10,不要下载14.04,在安装编译需要的软件时,各种依赖问题,很难麻烦

     2.ubuntu 的磁盘空间需要给大一点,在创建虚拟机的时候,第一次改50g编译一半提示磁盘空间不够,给到100g就差不多了

    2.安装openjdk-7-jdk

    Android 5.1 用到的jdk不再是Oracle 的 jdk ,而是开源的 openjdk,在ubuntu安装好后,使用如下命令安装jdk:

    $sudo apt-get install openjdk-7-jdk   

    安装好后,设置环境变量:

    在/etc/profile 文件末尾加上:

      1. JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/  
      2. PATH=$PATH:$HOME/bin:$JAVA_HOME/bin  
      3. export JAVA_HOME  
      4. export PATH  

    3.安装编译依赖的软件

    使用如下命令安装依赖软件:

    sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev

    sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

    4.配置Cache
    使用如下命令配置cache:
    sudo apt-get install ccache 
    source ~/.bashrc

    5.下载repo
    1)创建repo目录
    mkdir ~/bin 
    PATH=~/bin:$PATH

    2)下载repo(官方的repo下载不了,其他的repo大多比较旧,这个时比较新的,我找了很久大哭)
    git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/


    克隆下来后将git-repo中的repo文件拷贝到bin目录
    cp git-repo/repo ~/bin/

    修改repo文件,设置REPO_URL如下:
    REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'

    参考:清华开源镜像 http://mirrors.tuna.tsinghua.edu.cn/help/#AOSP


    6.初始化repo
    1)创建目录
    mkdir ~/aosp

    2)初始化repo
    cd ~/aosp 
    repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.1.1_r4

    ps:在初始化时,提示需要email验证,使用如下命令:
    git config --global user.email "you@example.com"

    git config --global user.name "Your Name"

     

    7.替换已有的AOSP源代码的remote

    如果你之前已经通过某种途径获得了AOSP的源码,但是你希望以后通过TUNA同步,只需要将.repo/manifest.xml中的 

          <remote  name="aosp"
           fetch=".."
           review="https://android-review.googlesource.com/" />

    改为下面的code即可: 

          <remote  name="aosp"
           fetch="git://aosp.tuna.tsinghua.edu.cn/android/"
           review="https://android-review.googlesource.com/" />

    这个方法也可以用来在同步Cyanogenmod代码的时候从TUNA同步部分代码

    8.下载源码
    repo sync 
    ps:这里就是下载源码了,需要的时间比较长,我下行为1M的宽带需要4小时以上

    9.源码编译
    ps:编译过程比较就,我电脑双核的,使用单线程编译的,时间位12小时左右,如果使用多线程,时间应该会成倍减少
    1)设置cache
    cd aosp 
    prebuilts/misc/linux-x86/ccache/ccache -M 50G

    2)初始化编译环境
    . build/envsetup.sh

    3)选择编译目标包
    ps:lunch的方式有很多中,可以使用lunch命令查看,我使用最常用的
    lunch aosp_arm-eng

    4)编译
    make 
    ps: 1.make后面可以更参数:如你的机器时双核,每核双线程的话,使用make -j4,这样速度更快,但编译时使用的内存也更多
    2.make失败或停止后,可以使用make -k 继续编译

    Ref:

    Ubuntu14.10 编译 Android5.0 源码:

    http://blog.csdn.net/chouretang/article/details/43769839

    http://www.cnblogs.com/bluestorm/p/4419135.html

  • 相关阅读:
    项目经理-要材料
    java stream 处理
    listGiftBagShowInfo 这个方法 我搞了一晚上
    BigDecimal.ROUND_UP 如果 从 double 到 Decimal 有异常, 必须从double到String然后 Decimal 就可以了
    json串 转 list<class> 方法 List转JSONArray和JSONArray转List
    昨晚加班到3点多-身体都虚脱了
    MVN 点击compile总是失败
    IDEA使用笔记(八)——自动生成 serialVersionUID 的设置
    Maven 版本号规范
    java多线程学习
  • 原文地址:https://www.cnblogs.com/yema/p/4834477.html
Copyright © 2020-2023  润新知