zoukankan      html  css  js  c++  java
  • 编译android5.0源码的

    java环境

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

    $sudo apt-get install openjdk-7-jdk   
    

    设置环境变量
    在/etc/profile 或者文件末尾加上:

    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/  
    export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin  
    

    安装编译依赖的软件

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

    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
    

    配置Cache

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

    源码编译

    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 继续编译

    参考链接

    Ubuntu 下载 & 编译 Android5.1 源码

    编译出错处理

    错误1 No rule to make target 'external/chromium_org/third_party/angle/.git/index', need by .....

    进入相应的目录,发现在angle目录下根本没有.git的目录,这个也可以理解,因为不是自己通过repo和git直接从官网download,所以没有.git目录(这个目录是git的管理目录,跟.svn的作用一样)。因此我们只有一个办法,就是不让源码编译.git/index的部分。

    具体修改如下:

    将external/chromium_org/third_party/angle/src/commit_id.target.linux-arm.mk文件中关于index的部分注释掉:

    原始部分(原始文件中下面绿色标出的部分写在了同一行)

    ......
    $(gyp_shared_intermediate_dir)/angle/id/commit.h: $(gyp_shared_intermediate_dir)/angle/commit_id.py $(LOCAL_PATH)/third_party/angle/.git/index
    $(GYP_TARGET_DEPENDENCIES)
    ......

    改成

    ......

    $(gyp_shared_intermediate_dir)/angle/id/commit.h: $(gyp_shared_intermediate_dir)/angle/commit_id.py

    $(LOCAL_PATH)/third_party/angle/.git/index$(GYP_TARGET_DEPENDENCIES)

    ......

    这样就能让源码不编译.git下面的index部分,编译就能通过,亲测成功!

  • 相关阅读:
    java selenium (九) 常见web UI 元素操作 及API使用
    java selenium (六) XPath 定位
    java selenium (八) Selenium IDE 用法
    java selenium (五) 元素定位大全
    一个使用CSocket类的网络通信实例
    揭开链接器的面纱(中)
    揭开连接器的面纱(上)
    深入理解程序的结构
    调试利器GDB(下)
    调试利器GDB(上)
  • 原文地址:https://www.cnblogs.com/fly-fish/p/4717517.html
Copyright © 2011-2022 走看看