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部分,编译就能通过,亲测成功!

编译android5.0源码的的更多相关文章

  1. Ubuntu 下载 & 编译 Android5.1 源码

    ustc & tsinghua android srchttps://lug.ustc.edu.cn/wiki/mirrors/help/aosphttps://mirrors.tuna.ts ...

  2. 在Ubuntu Server14.04上编译Android6.0源码

    此前编译过Android4.4的源码,但是现在Android都到了7.0的版本,不禁让我感叹Google的步伐真心难跟上,趁这周周末时间比较充裕,于是在过去的24小时里,毅然花了9个小时编译了一把An ...

  3. 编译jmeter5.0源码

    jmeter5.0使用过程中,遇到request或者response乱码的情况,想要一次性解决这个问题,需要编译ApacheJMeter_http.jar这个包(lib\ext文件下)里的Reques ...

  4. 使用idea编译spring-framework5.0源码

    自从迈入java开发这个行当,从来没有好好的研究过源码,深感惭愧,话不多说,今天上一篇使用idea编译spring5.0源码. 以下在win中构建和编译过程分为 jdk环境的配置 gradle的下载和 ...

  5. Mac上编译并运行Android5.0源码

    下载.配置环境.build和运行参考的都是Android Source提供的文档,包括:Initializing a Build Environment,Downloading the Source和 ...

  6. 【转】如何在Ubuntu11.10(32位)下编译Android4.0源码(图文)

    原文网址:http://blog.csdn.net/flydream0/article/details/7046612 关于如何下载Android4.0的源码请参考我的另一篇文章: http://bl ...

  7. 在eclipse下编译hadoop2.0源码

    Hadoop是一个分布式系统基础架构,由apache基金会维护并更新.官网地址: http://hadoop.apache.org/ Hadoop项目主要包括以下4个模块: Hadoop Common ...

  8. Ubuntu16.04下编译android6.0源码

    http://blog.csdn.net/cnliwy/article/details/52189349 作为一名合格的android开发人员,怎么能不会编译android源码呢!一定要来一次说编译就 ...

  9. Docker编译Android6.0源码

    docker环境配置 更正时区时间 # 查看当前时间 $ date # 修改当前时间 $ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ech ...

随机推荐

  1. Thinkphp框架----微信公众测试号开发

    最开始的一个步骤.注册一个微信公众测试号.URL:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login; 接口配置的信息,对新手 ...

  2. MEF 编程指南(八):过滤目录

    当使用子容器的时候,基于特定的标准(Specific Criteria)过滤目录是很必要的.比如,基于部件构造策略的过滤器是很常见的.下面的代码片段演示了如何构建的特殊途径(Particular Ap ...

  3. DuiLib(二)——控件创建

    上一篇讲了窗口及消息,了解了大体的程序框架.这一篇说的是控件的创建. duilib支持XML配置文件,即根据XML创建窗口及控件,将界面与逻辑分开,便于修改及维护.上一篇的示例中可以看到在消息WM_C ...

  4. UVa 1252 - Twenty Questions(记忆化搜索,状态压缩dp)

    本文出自   http://blog.csdn.net/shuangde800 题目链接:点击打开链接 题目大意 有n个长度为m的二进制串,每个都是不同的. 为了把所有字符串区分开,你可以询问,每次可 ...

  5. ERROR 1227 (42000): Access denied; you need (at least one of) the PROCESS privilege(s) for this oper

    1  用以往的mysql登陆模式登陆 [mysql@eanintmydbc002db1 mysqllog]$ mysql Enter password:  Welcome to the MySQL m ...

  6. rtp的封包与拆包h264

    请看文档rfc3984 1.看h264的帧 SPS序列參数帧 00 00 00 01 67 64 . . .. PPS图像參数帧 00 00 00 01 68 EE... . I帧 00 00 00 ...

  7. iOS开发——UI_swift篇&TableView自定义聊天界面

    TableView自定义聊天界面   1,下面是一个放微信聊天界面的消息展示列表,实现的功能有: (1)消息可以是文本消息也可以是图片消息 (2)消息背景为气泡状图片,同时消息气泡可根据内容自适应大小 ...

  8. StarlingMVC Framework中文教程

    配置与开始 将Starling项目配置为StarlingMVC项目,仅需几行代码.在继承于starling.display.Sprite的起始类里,创建一个StarlingMVC的实例,并传递给它三个 ...

  9. 用 Graphviz 可视化函数调用

    http://www.ibm.com/developerworks/cn/linux/l-graphvis/

  10. js里一些经典的算法

    //1.找出某个数字在一组数组内的存不存在 如果存在 找出他所在的索引. function indexOf(arr,item){ var i; if(Array.prototype.indexOf){ ...