你好,游客 登录 注册 搜索
背景:
阅读新闻

Ubuntu 14.04 编译 Android 5.1.1源码

[日期:2016-04-27] 来源:Linux社区  作者:lanrenxinxin [字体: ]

之前就有在Ubuntu 14.04下编译Android源码的想法,但是由于网络的原因,又没有梯子,连开发工具都是经过androiddevtools从百度云弄下来的,前两天发现了清华大学AOSP的镜像站点,就想着从上面git android 源码,然后编译。在这里做个简单的记录,和大家分享一下,毕竟小水管不容易,下载源码加编译花了接近两天。

1.安装openjdk-7-jdk

$  sudo apt-get install openjdk-7-jdk

安装好之后修改 /etc/profile 中的环境变量,将openjdk加入到JAVA_HOME中

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/

我因为之前就有装过Oracle jdk,就直接把Open Jdk 附在了后面

然后使修改的配置文件立即生效:

$  .  /etc/profile

查看java 这时使用的jdk 就是Open Jdk

接下来安装必备的工具软件

$ 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-de

注意,上面使官方的需要安装的包,但是在实际中,我安装的时候报错了,

ERROR:
unity-control-center : 依赖: libcheese-gtk23 (>= 3.4.0) 但是它将不会被安装
                       依赖: libcheese7 (>= 3.0.1) 但是它将不会被安装

这里的报错是因为是由 libgl1-mesa-glx:i386 报引起的,需要替换掉,更改为:

$ sudo apt-get install libgl1-mesa-glx-lts-quantal:i386

接下来配置Cache,使用下面两条命令

$ sudo apt-get install ccache  
$ source  ~/.bashrc  

然后就是下载repo :

首先创建repo 目录

$ mkdir ~/bin  
$ PATH=~/bin:$PATH  

然后就是下载repo,google官方被墙了,这里用的是清华大学镜像的:

$ git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/ 


然后将git-repo 目录中的repo 文件拷贝到 bin目录

$ cp  git-repo/repo  ~/bin/  


接下来打开bin目录下的repo 文件,修改其中的  REPO_URL 参数,修改为:

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

接下来就需要初始化repo:

先创建目录aosp,就是等会要存放android源码的目录

$ mkdir ~/aosp  

进入到aosp目录中

$ cd ~/aosp

初始化repo,最新的android 都可以进行下载,以下三条命令任意执行一条就可以了,会下载不同版本的android源码,我采用的是android-5.1.1

$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.1.1_r4

$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-6.0.1_r22

$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-n-preview-1

在初始化的时候会要求输入名字和邮箱,正常输入就可以了。

最耗时间的步骤来了,下载android源码

$ repo sync  


我在同步的过程中有好几次出现Error,不用管,加上参数 -f 继续同步

$ repo sync -f

这个过程是很漫长的,我的小水管用了一天多才同步完成。

下载完成之后就是编译了,我的计算机是双核4线程,编译的还比较快,用了差不多5个小时编译完成:

1) 设置cache

$ cd aosp  
$ prebuilts/misc/linux-x86/ccache/ccache -M 50G  


2) 初始化编译环境

$ . build/envsetup.sh

3)选择编译目标包

      有很多中,可以用lunch命令查看,我选择的是最常用的arm

$ lunch aosp_arm-eng   

4)编译

可以在 make 后设置参数,加快编译速度,我用的是

$ make -j4

表示4个线程进行编译,因为我的计算机是双核4线程,如果机器配置更好,可以开更多的线程,减少编译时间

make 失败或停止后,可以使用make -k 继续编译,不过我是一次就编译成功了。

编译成功之后

会在aosp目录下编译产生out目录

然后就可以运行编译产生的模拟器了:

$ emulator &

运行的结果就是这样:

Ubuntu 14.04 搭建Android开发环境  http://www.linuxidc.com/Linux/2014-05/101149.htm

Ubuntu 14.04搭建Android5.1开发环境和编译 http://www.linuxidc.com/Linux/2015-07/119759.htm

Ubuntu 14.04 x64配置Android 4.4 kitkat编译环境的方法 http://www.linuxidc.com/Linux/2014-05/101148.htm 

Ubuntu 12.04搭建Android开发环境 http://www.linuxidc.com/Linux/2012-09/69961.htm 

Ubuntu 14.04 配置 Android SDK 开发环境 http://www.linuxidc.com/Linux/2014-05/101039.htm 

64位Ubuntu 11.10下Android开发环境的搭建(JDK+Eclipse+ADT+Android SDK详细) http://www.linuxidc.com/Linux/2013-06/85303.htm 

Ubuntu 12.10 x64 安装 Android SDK http://www.linuxidc.com/Linux/2013-03/82005.htm 

更多Android相关信息见Android 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=11

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-04/130698.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款