AOSP源码编译—交换空间扩容
编译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源码编译—交换空间扩容的更多相关文章
- Android_7.1.1_r6源码编译
上篇文章讲述了如何下载Android源码,在篇文章就来说一说Android源码编译.其实一般来说如果修改的软件和底层没什么关系,直接提取相应的源代码到Android Studio编译就可以了,如果是与 ...
- Ubantu16.04进行Android 8.0源码编译
参考这篇博客 经过测试,8.0源码下载及编译之后,占用100多G的硬盘空间,尽量给ubantu系统多留一些硬盘空间,如果后续需要在编译好的源码上进行开发,需要预留更多的控件,为了防止后续出现文件权限问 ...
- [Android Pro] Android源码编译之Nexus5真机编译
reference to : http://blog.csdn.net/liu1075538266/article/details/51272398 1. 前言 在Android安全的研究工作中, ...
- Android源码浅析(四)——我在Android开发中常用到的adb命令,Linux命令,源码编译命令
Android源码浅析(四)--我在Android开发中常用到的adb命令,Linux命令,源码编译命令 我自己平时开发的时候积累的一些命令,希望对你有所帮助 adb是什么?: adb的全称为Andr ...
- 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...
- Android 源码编译之旅
目录 前言 背景 安装软件 正文 Mac 分区 移动硬盘分区 Repo 下载源码 编译 源码导入 Android Studio 查看 碰到的问题 Could not find a supported ...
- Android系统定制和源码开发以及源码编译(附视频)
Android系统定制配套视频: 为了把Android系统源码定制和编译的课程讲完,从准备到录制完所有的视频,一共花去了近半年的时间,前前后后各种下载源码,编译源码,系统不兼容,版本适配,虚拟机配置困 ...
- Android Studio 导入 AOSP 源码
有了 AOSP 源码,接下来就是如何看了,可以直接文本看,可以用 Source Insight,我当然选择 Android Studio,Android Studio 是我熟悉且十分强大的工具.问题来 ...
- AOSP 源码整编单编
<AOSP 源码下载>完成后,就可以开编了. 整编 整编,顾名思义就是编译整个 Android 源码,最终 out 目录会生成几个重要的镜像文件,其中有 system.img.userda ...
- centos7.6环境zabbix3.2源码编译安装版升级到zabbix4.0长期支持版
zabbix3.2源码编译安装版升级到zabbix4.0长期支持版 项目需求: .2版本不再支持,想升级成4.0的长期支持版 环境介绍: zabbix服务端是编译安装的,数据库和web在一台机器上 整 ...
随机推荐
- ABC311_g One More Grid Task 题解
题目链接:Atcoder 或者 洛谷 对于解决二维区间内的最值类型问题,我们常常有一类特别好用的方法,就是悬线法,它可以看做是单调栈的子集,但更加好理解和书写. 对于悬线法,我们有一个常见的模型,找出 ...
- (C语言)每日代码||2023.12.23||for循环的循环条件部分可以是数字
#include <stdio.h> int main() { int i = 3; for (i; i; i--) { printf("%d\n", i); } // ...
- 【Flink入门修炼】1-2 Mac 搭建 Flink 源码阅读环境
在后面学习 Flink 相关知识时,会深入源码探究其实现机制.因此,需要现在本地配置好源码阅读环境. 本文搭建环境: Mac M1(Apple Silicon) Java 8 IDEA Flink 官 ...
- Java 数字 默认是 Integer类型的问题,System.currentTimeMillis() + (180 * 24 * 60 * 60 * 1000)的问题,剖析、Long + Integer的问题
最终结论: (180 * 24 * 60 * 60) 这种计算表达式在 Java中是默认以 Integer类型来的,若不超过 Integer的最大值则没有问题,若超过则必须用 (180 * 24 * ...
- Word-批量导出Word中的图片
当我们需要把Word文件中的图片保存起来,你是如何导出Word图片呢?右键一张张保存图片吗?这效率太低了.如果文档中有大量的图片,这个方法会浪费很多时间. 下面给大家分享word如何批量导出图片的技巧 ...
- Java-获取当前时间并进行格式化
获取年月日 时分秒 import java.text.SimpleDateFormat; import java.util.Date; Date dt = new Date(); SimpleDate ...
- CF1886
A 分类讨论. B 二分. C 题意:给定一个字符串 \(s\).记 \(s_i\) 为将 \(s\) 删去 \(i\) 个字符,使得剩余字符串字典序最小得到的字符串.令 \(S=s_0+s_1+\d ...
- Power BI 11 DAY
目录 电商平台流量分析 流量相关指标 流量数量指标 流量质量指标 度量值计算公式 流量转化率重要指标 指标观测维度 电商平台流量分析 电商平台黄金公式:销售额 = 流量 + 转化率 + 客单价 流量相 ...
- Java编程思想第四版(完整中文高清版)pdf
这是一本有独到.深入的见解的Java语言,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念.本书共22章,包括操作符.控制执行流程.访问权限控制.复用类.多态.接口.通过异常处理错误.字符串.泛 ...
- Js中Reflect对象
Js中Reflect对象 Reflect是ES6起JavaScript内置的对象,提供拦截JavaScript操作的方法,这些方法与Proxy对象的handlers中的方法基本相同. 描述 Refle ...