文档章节

Ubuntu14.10 编译 Android5.0 源码

s
 snowground
发布于 2015/05/30 23:33
字数 830
阅读 103
收藏 1

第一部分 环境搭建

--------------------------------------------------------------------------------------------------------

1.安装ubuntu

   编译Android 5.0 需要ubuntu 64位的操作系统,在 http://www.ubuntu.com/download/ubuntu-kylin-zh-CN 下载Ubuntu 14.10 64 位版本。

   ps:1.建议各位下载14.10,不要下载14.04,因为我最开始现在14.04的时候,在安装编译需要的软件时,各种依赖问题,很难解决,如果你不是对linux很有信心,不要用14.04版本下载后安装这里就不细说了

          2.Android  源码编译的磁盘和硬盘空间要求较高,ubuntu 的磁盘空间需要分配60G以上,我安装的是双系统,分配了100G的空间,编译完成使用了55G左右; 内存至少分配 2G,并且Swap空间分配4G


2.安装openjdk-7-jdk

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

$sudo apt-get install openjdk-7-jdk



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

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

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


3.安装编译依赖的软件

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

  1. $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


ps:14.10在安装依赖软件中应该不会发生软件依赖性的问题,如果发生了,自己根据提示解决就好了


第二部分 编译

-----------------------------------------------------------------------------------------------------------------------------

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如下:

[plain] view plaincopy

  1. REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'  



6.初始化repo

1)创建目录

[plain] view plaincopy

  1. $mkdir ~/aosp  


2)初始化repo

[plain] view plaincopy

  1. $cd ~/aosp  

  2. $repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.0.2_r1  

ps:在初始化时,提示需要email验证,使用如下命令:

git config --global user.email "you@example.com"
git config --global user.name "Your Name"


7.下载源码

[plain] view plaincopy

  1. $repo sync  

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


8.源码编译

ps:编译过程比较就,我电脑双核的,使用单线程编译的,时间位12小时左右,如果使用多线程,时间应该会成倍减少

1)设置cache

[plain] view plaincopy

  1. $ cd aosp  

  2. $ prebuilts/misc/linux-x86/ccache/ccache -M 50G  


2)初始化编译环境

[plain] view plaincopy

  1. $ . build/envsetup.sh  


3)选择编译目标包

ps:lunch的方式有很多中,可以使用lunch命令查看,我使用最常用的

[plain] view plaincopy

  1. $lunch aosp_arm-eng   


4)编译

[plain] view plaincopy

  1. $make  

ps:1.make后面可以更参数:如你的机器时双核,每核双线程的话,使用make -j4,这样速度更快,但编译时使用的内存也更多

     2.make失败或停止后,可以使用make -k 继续编译


9.结果展示:

$emulator &

启动模拟器,效果图:


本文转载自:http://blog.csdn.net/chouretang/article/details/43769839

s
粉丝 0
博文 1
码字总数 0
作品 0
私信 提问
加载中

评论(1)

溱
你下载的repo隐藏文件最后有多少个G?我都下了37个G了9
Android studio 编译报iCCP: Not recognizing known sRGB

在Android5.0的源码中编译apk会出现如下的问题 libpng warning: "iCCP: Not recognizing known sRGB profile that has been edited" 原因是新版本的libpng对关于ICCP采用了更严苛的约束 解决......

恰同学少年
2016/02/24
46
0
Android studio 解决libpng warning: iCCP: Not recogni

在Android5.0的源码中编译apk会出现如下的问题 libpng warning: "iCCP: Not recognizing known sRGB profile that has been edited" 原因是新版本的libpng对关于ICCP采用了更严苛的约束 解决......

青莲居士
2015/09/25
247
0
处理libpng warning: "iCCP: Not recognizing

在Android5.0的源码中编译apk会出现如下的问题 libpng warning: "iCCP: Not recognizing known sRGB profile that has been edited" 原因是新版本的libpng对关于ICCP采用了更严苛的约束 解决......

tihgunt
2015/01/07
3K
0
FBReader源码

@chaossun 你好,想跟你请教个问题:你好,你那有没有FBReader版本低一些,兼容Android5.0版本的源码吗。我从网上搜到的一些都是1.1.10。后来我从github上下了2.5.4版本的。但是源码升级太多...

带你去远行
2015/11/25
434
0
Ubuntu15.10上的Docker Registry问题解决

Docker在Ubuntu15.10上搭建registry时出现问题,总是报TLS错。 1、Ubuntu14.04及之前版本的解决方法 然后,网上搜索的解决办法都是: 修改/etc/default/docker文件,加入: DOCKEROPTS='--in...

openthings
2016/04/14
235
0

没有更多内容

加载失败,请刷新页面

加载更多

JavaScript设计模式——适配器模式

  适配器模式是设计模式行为型模式中的一种模式;   定义:   适配器用来解决两个已有接口之间不匹配的问题,它并不需要考虑接口是如何实现,也不用考虑将来该如何修改;适配器不需要修...

有梦想的咸鱼前端
28分钟前
3
0
Andorid SQLite数据库开发基础教程(1)

Andorid SQLite数据库开发基础教程(1) Android数据库访问方式 SQLite是Android系统默认支持的文件数据库。该数据库支持SQL语言,适合开发人员上手。本教程将讲解如何开发使用SQLite的Andro...

大学霸
31分钟前
3
0
Handler简解

Handler 这里简化一下代码 以便理解 Handler不一定要在主线程建 但如Handler handler = new Handler(); 会使用当前的Looper的, 由于要更新UI 所以最好在主线程 new Handler() { mLooper = Lo...

shzwork
53分钟前
4
0
h5获取摄像头拍照功能

完整代码展示: <!DOCTYPE html> <head> <title>HTML5 GetUserMedia Demo</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum......

诗书易经
56分钟前
3
0
正向代理和反向代理

文章来源 运维公会:正向代理和反向代理 1、正向代理 (1)服务对象不同 正向代理服务器的服务对象是客户端,可以将客户端和代理服务器看作一个整体。 (2)配置方法不同 需要在客户端配置代...

运维团
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部