编译AOSP源码的时候会出现提示如下:



意思是需要16G左右的内存(实际上编译会超过16G),而我们之前安装Ubuntu的时候只分配了8G,编

译一定会失败!此时需要添加虚拟内存(swap交换空间)

Linux 的交换分区(swap),或者叫内存置换空间(swap space),是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。交换分区的作用是,当系统物理内存吃紧时,Linux 会将内存中不常访问的数据保存到 swap 上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问 swap 上存储的内容时,再将 swap 上的数据加载到内存中,也就是常说的 swap out 和 swap in。

我们安装的Ubuntu默认一般是2G左右的swap空间,(可以提供过 free -m 命令查看虚拟内存与交换空间大小)使用以下命令查看swap详情:

swapon -s

可以看到我们Ubuntu上的当前的swap是存放在根目录的swapfile文件。此时如果交换空间大小加上虚拟内存不足20G,则进行下面的操作扩大交换空间:

配置交换空间

停用交换文件

停用交换文件:(根据自己虚拟机来指定/swapfile 还是其他的挂载文件)

sudo swapoff /swapfile

删除文件

删除文件:

sudo rm /swapfile

创建Swap空间

删除后继续创建。

新建swap空间,以20G为例,创建文件:

sudo fallocate -l 20G /swapfile

这里我们是命名为“swapfile”,当然你也可以随意写。设置文件权限:

sudo chmod 600 /swapfile

挂载:

sudo mkswap /swapfile

激活启用:

sudo swapon /swapfile

可以通过free -m命令查看Swap空间

设置为永久Swap

接着把交换信息写入系统配置,不然Ubuntu重启后以上配置swap空间工作得重新做。

使用vim编辑器打开配置文件:

sudo vim /etc/fstab

如果提示vim找不到命令,使用以下命令安装vim,然后再次打开配置文件

sudo apt-get install vim

在最后一行插入(vim打开后按i进入编辑模式,移动光标到最后回车换行):

/swapfile swap swap defaults 0 0



编辑好之后按ESC键退出编辑模式,然后依次输入:wq(英文冒号+wq)保存退出,并重启即可。

交换空间未使用

系统只有当虚拟内存不足才会启动Swap,比如系统默认内存只有6000KB时才会启用交换空间,但是此时系统可能已经卡死,无法启动swap,所以需要更改设置。

终端输入命令:

sudo vim /etc/sysctl.conf

在最后面添加如下语句(按i进入编辑模式,光标移到最后,插入语句)

vm.min_free_kbytes=1500000 #大致1.5G

保存退出(按ESC退出编辑模式,输入:wq保存退出)然后重启开机。

以上配置的意思是,当系统内存不足1.5G时就启用交换空间,这是因为我分配给Ubuntu的内存为8G。而如果你虚拟机分配的内存是4G,那建议不要设置1.5G就启用交换空间,可以调小一些,比如调整为1G:

vm.min_free_kbytes=1000000

AOSP源码编译—交换空间扩容的更多相关文章

  1. Android_7.1.1_r6源码编译

    上篇文章讲述了如何下载Android源码,在篇文章就来说一说Android源码编译.其实一般来说如果修改的软件和底层没什么关系,直接提取相应的源代码到Android Studio编译就可以了,如果是与 ...

  2. Ubantu16.04进行Android 8.0源码编译

    参考这篇博客 经过测试,8.0源码下载及编译之后,占用100多G的硬盘空间,尽量给ubantu系统多留一些硬盘空间,如果后续需要在编译好的源码上进行开发,需要预留更多的控件,为了防止后续出现文件权限问 ...

  3. [Android Pro] Android源码编译之Nexus5真机编译

    reference to : http://blog.csdn.net/liu1075538266/article/details/51272398 1.   前言 在Android安全的研究工作中, ...

  4. Android源码浅析(四)——我在Android开发中常用到的adb命令,Linux命令,源码编译命令

    Android源码浅析(四)--我在Android开发中常用到的adb命令,Linux命令,源码编译命令 我自己平时开发的时候积累的一些命令,希望对你有所帮助 adb是什么?: adb的全称为Andr ...

  5. 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)

    作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...

  6. Android 源码编译之旅

    目录 前言 背景 安装软件 正文 Mac 分区 移动硬盘分区 Repo 下载源码 编译 源码导入 Android Studio 查看 碰到的问题 Could not find a supported ...

  7. Android系统定制和源码开发以及源码编译(附视频)

    Android系统定制配套视频: 为了把Android系统源码定制和编译的课程讲完,从准备到录制完所有的视频,一共花去了近半年的时间,前前后后各种下载源码,编译源码,系统不兼容,版本适配,虚拟机配置困 ...

  8. Android Studio 导入 AOSP 源码

    有了 AOSP 源码,接下来就是如何看了,可以直接文本看,可以用 Source Insight,我当然选择 Android Studio,Android Studio 是我熟悉且十分强大的工具.问题来 ...

  9. AOSP 源码整编单编

    <AOSP 源码下载>完成后,就可以开编了. 整编 整编,顾名思义就是编译整个 Android 源码,最终 out 目录会生成几个重要的镜像文件,其中有 system.img.userda ...

  10. centos7.6环境zabbix3.2源码编译安装版升级到zabbix4.0长期支持版

    zabbix3.2源码编译安装版升级到zabbix4.0长期支持版 项目需求: .2版本不再支持,想升级成4.0的长期支持版 环境介绍: zabbix服务端是编译安装的,数据库和web在一台机器上 整 ...

随机推荐

  1. curl接口调用

    CURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 CURL 库.使用PHP的CURL 库可以简单和有效地去抓网页.你只 ...

  2. 零基础入门Vue之梦开始的地方——插值语法

    一.Vue 我!作为初学者,既然要将Vue,那我一定要介绍一下他是什么?我们可以应用一下官方的话 vue的介绍 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与 ...

  3. Winows11-hosts文件无法修改保存

    Win11系统hosts文件无法修改保存 新近使用win11新电脑修改hosts,添加IP和主机名映射,保存时提示host无法修改. 解决办法: 1.将hosts文件的权限"只读" ...

  4. Python-目录下相同格式的Excel文件合并

    最近在客户现场接到一个任务,需要将全国所有省份的数据进行合并.目录是分层级的,首先是省份目录.然后地级市目录.最里面是区县目录.需要将每个目录中的数据进行合并,然后添加4列数据,并将某一个列的数据进行 ...

  5. Linux服务器查看端口是否开启或占用

    一.查看端口是否启用 (1)lsof -i :8080 查看8080端口被哪个进程占用 (2)netstat -lnp|grep 8080 查看8080端口被哪个进程占用  (3)ss -nlap | ...

  6. Linux--Vi编辑命令(跳到指定行、翻屏、缩进)

    1.设置行号 如果编辑后,又想显示行号,同样操作按一下esc键,并输入:(冒号),输入set number    ,并按回车键,完成后即显示行号. 不需要显示行号,同样操作按一下esc键,并输入:(冒 ...

  7. Java线程状态(生命周期)--一篇入魂

    1.线程状态(生命周期) 一个线程在给定的时间点只能处于一种状态. 线程可以有如下6 种状态: New (新创建):未启动的线程: Runnable (可运行):可运行的线程,需要等待操作系统资源: ...

  8. 【Android】使用Socket实现跨设备通讯

    1 Socket 简介 ​ Socket(套接字)是应用层与 TCP/IP 协议通信的中间软件抽象层,它是一组接口,用户只需面向 Socket 编程,即可实现跨设备(网络)通讯. ​ Socket 是 ...

  9. Shiro实战2-Springboot集成Shiro实战

    说明 最近打算打造一个简易的权限管理系统,打算用shiro做认证和授权.本篇作为springboot集成shiro的入门实战案例记录下来,希望也可以帮到大家,代码整理自网络. 技术栈 springbo ...

  10. win32编辑控件字体

    每次到用的时候就各种查资料,我这人记性又不好,遂记录下来: 普通的编辑控件: 创建:HWND hText = CreateWindowW(L"EDIT", L"enter ...