总结一下我从Ubuntu 18.04下编译成功AOSP的过程,以及遇到的坑

我的电脑配置:

OS: Ubuntu 18.04 bionic

Kernel: x86_64 Linux 4.18.0-17-generic

CPU: Intel Core i5-8250U(4核8线程)

RAM: 8G

步骤1:

某些步骤可以先跳过,后面再设置

如果你的电脑也是8G内存(16G可以跳过这个步骤),就需要设置交换空间,否则到后面会出现内存不足的情况,参考:如何在Ubuntu 16.04上增加Swap分区

步骤2:

建议替换国内源:

sudo apt update vim #先安装vim

sudo apt install vim -y

sudo vim /etc/apt/sources.list #或者sudo gedit /etc/apt/sources.list

用#注释所有内容,粘贴以下内容:

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
 
sudo apt update
 

依次安装

sudo apt update

sudo apt install git -y

sudo apt install repo -y

sudo apt install openjdk-8-jdk -y #请输入java -version确认安装正确

步骤3:

清华大学开源软件镜像站下载初始化包(aosp-latest.tar

tar xf aosp-latest.tar #下载完成后解压

cd aosp-latest/aosp

ls -a #应该只有一个.repo隐藏目录

repo sync #检出目录树

可能需要一个小时左右,完成后应该会显示:Syncing work tree:100%(xxx/xxx),done.

ls -a #如下

步骤4:

安装各种依赖:

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib -y
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386 -y
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
sudo apt install make make-guile -y
sudo apt-get install tofrodos -y
sudo apt-get install python-markdown libxml2-utils xsltproc zlib1g-dev:i386

这时可能无法安装libesd0-dev

sudo vim /etc/apt/sources.list

在最后添加:

deb http://kr.archive.ubuntu.com/ubuntu/ xenial main universe
deb-src http://kr.archive.ubuntu.com/ubuntu/ xenial main universe
sudo apt update

sudo apt install libesd0-dev

最后一步:

#export LC_ALL=C添加到~/.bashrc

echo "export LC_ALL=C" >> ~/.bashrc

source ~/.bashrc

链接文件

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

重新打开终端

cd到aosp根目录

ls -a #应该是这样

source build/envsetup.sh

#lunch 不带参数运行,会显示各个版本和对应序号

lunch aosp_arm64-eng #也可以lunch后手动选择

#CPU 4核8线程应输入-j8,2核4线程-j4:

make -j8 #开始编译

不出意外,若干小时后应该就会编译成功

启动模拟器

如果编译完成后关闭了终端窗口,则需要用以下方式启动模拟器

source build/envsetup.sh

lunch 2 #这里填序号aosp_arm64-eng为2

emulator

我用i5-8250U编译完成 用了8小时38分(下午3点多开始编译,00点完成)

看来真的该换电脑了 - -!

Ubuntu 18.04编译AOSP源码的更多相关文章

  1. Ubuntu 18.04 安装 odoo12 源码版

    更新和升级 在我们进入安装过程之前,你应该更新和升级Ubuntu.打开终端窗口,发出以下命令: sudo apt-get updatesudo apt-get upgrade 注意:如果内核升级,则必 ...

  2. Ubuntu 18.04 编译 ijkplayer

    Ubuntu 18.04 编译 ijkplayer 1. 配置安装源 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu 2. 配置好安装源后,安装一些组 ...

  3. Ubuntu 18.04修改默认源

    安装Ubuntu 18.04后,使用国外源太慢了,修改为国内源会快很多. 修改阿里源为Ubuntu 18.04默认的源 备份/etc/apt/sources.list #备份 cp /etc/apt/ ...

  4. Ubuntu 18.04修改默认源为国内源

    安装Ubuntu 18.04后,使用国外源太慢了,修改为国内源会快很多. 修改阿里源为Ubuntu 18.04默认的源 备份/etc/apt/sources.list 备份 cp /etc/apt/s ...

  5. Ubuntu 12.04 Android2.2源码make** /classes-full-debug.jar Error 41错误解决

    出现make: *** [out/target/common/obj/APPS/CMParts_intermediates/classes-full-debug.jar] Error 41这样的错误最 ...

  6. ubuntu 18.04编译opencv3.4.3 with python3.6 cuda9.2 gdal

    惭愧,之前一直没在linux下编译过opencv,也没用过纯命令行版的cmake,现在咬牙编译一次.其实感觉还凑合. opencv官网文档还是那么烂:https://docs.opencv.org/m ...

  7. ubuntu中Eclipse-cpp编译MySQL源码

    1.下载eclipse-cpp-mars-2-linux-gtk-x86_64.tar.gz压缩包,在Ubuntu中解压,运行. 此处有可能会出现jdk错误,只要原因是因为jdk没安装或者jdk版本太 ...

  8. Ubuntu 14.04下从源码安装qt4.x

    转自:http://www.cnblogs.com/crazywangzx/p/3505293.html 1.到官网http://qt-project.org/downloads或者ftp://ftp ...

  9. ubuntu14.04编译mono源码(有坑...)

     从github上下载了mono的源码,然后打算编译了.百度了一下教程,我去...居然没有教程.换bing搜索一下,我去...还是没有.关键字换一下:how to build mono on linu ...

随机推荐

  1. mybatis自定义代码生成器(Generator)——自动生成model&dao代码

    花了两天的时间研究了下mybatis的generator大体了解了其生成原理以及实现过程.感觉generator做的非常不错,给开发者也留足了空间.看完之后在generator的基础上实现了自定义的生 ...

  2. 数据结构(C++)之Double Linked List实践

    //double linked list (type int),the position starts from 0 #include <iostream> using namespace ...

  3. java虚拟机的内存分配

    java程序在执行时,jvm的内存执行方案.

  4. python3字典:获取json响应值来进行断言

    前言:在接口自动化测试中,最后都是需要将返回结果进行断言.本文按照实际情况举例说明字典各种操作,以及如何提取响应数据来进行断言 1.dict = {'code': '200', 'message': ...

  5. 【原】用Java编写第一个区块链(一)

    写这篇随笔主要是尝试帮助自己了解如何学习区块链技术开发. [本文禁止任何形式的全文粘贴式转载,本文来自 zacky31 的随笔] 目标: 创建一个最基本的"区块链" 实现一个简单的 ...

  6. Layer组件多个iframe弹出层打开与关闭及参数传递

    一.Layer简介 Layer是一款近年来备受青睐的web弹层组件,基于jquery,易用.实用,兼容包括IE6在内的所有主流浏览器,拥有丰富强大的可自定义的功能. Layer官网地址:http:// ...

  7. 任务调度--spring下的任务调度quartz

    之前写过Timer实现任务调度,这篇文章用来写一下在spring下使用quartz实现任务调度,直接上代码: 定义任务对象: package com; /** * 1. 定义任务对象 * * @aut ...

  8. opencron

    opencron 是强大的管理linux crontab任务的系统,基于JAVA开发 http://github.com/wolfboys/opencron 一个功能完善真正通用的linux定时任务调 ...

  9. 开机进入grub命令行之后。。。。

    最近由于经常整理自己电脑上的文件,难免都会遇到误删系统文件或者操作失误导致系统不能够正常进入的情况.这时就会出现grub错误的提示,只能输入命令才能进入系统.那么该输入什么命令呢?其实非常简单. gr ...

  10. Java语言 链接Oracle数据库

    package com.tao.pojo; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Pre ...