原因:实现内存隔离,进程A的虚拟地址和进程B的虚拟地址不同,这样就防止了进程A将数据信息写入进程B

1.         每个进程的4G内存空间只是虚拟内存空间,每次访问内存空间的某个地址,都需要把地址翻译为实际物理内存地址

2.         所有进程共享同一物理内存,每个进程只把自己目前需要的虚拟内存空间映射并存储到物理内存上。

3.         进程要知道哪些内存地址上的数据在物理内存上,哪些不在,还有在物理内存上的哪里,需要用页表来记录

4.         页表的每一个表项分两部分,第一部分记录此页是否在物理内存上,第二部分记录物理内存页的地址(如果在的话)

5.         当进程访问某个虚拟地址,去看页表,如果发现对应的数据不在物理内存中,则缺页异常

6.         缺页异常的处理过程,就是把进程需要的数据从磁盘上拷贝到物理内存中,如果内存已经满了,没有空地方了,那就找一个页覆盖,当然如果被覆盖的页曾经被修改过,需要将此页写回磁盘

每个android进程拥有1g内核空间,3g用户空间,大小参数可配置,内核空间共享

Binder借助了内存映射的方法,在内核空间和接收方用户空间的数据缓存区之间做了一层内存映射,就相当于直接拷贝到了接收方用户空间的数据缓存区,从而减少了一次数据拷贝

参考:https://mubu.com/doc/explore/21079

https://www.cnblogs.com/dyllove98/archive/2013/06/12/3132940.html

android 应用虚拟内存介绍相关推荐

  1. Android Fragment 基本介绍

    Android Fragment 基本介绍 Android Fragment 基本介绍 Fragment Android是在Android 3.0 (API level 11)开始引入Fragment ...

  2. Android Pmem相关介绍

    http://fangjian0518.blog.163.com/blog/#m=0 Android Pmem相关介绍 2011-10-18 09:40:26|  分类: Android PMEM | ...

  3. Kotlin on Android 开发环境介绍

    Kotlin 被 Google 采纳为 Android 开发一级编程语言,到现在也一年多了,我们团队从去年 10 月份开始部分项目尝试用 Kotlin 开发,到现在决定推广到全部项目,因为一旦用上 K ...

  4. Android AIDL使用介绍(3) 浅说AIDL背后的Binder

    1.背景 在前面的博客中,我们已经学会了使用AIDL进行跨进程通信,AIDL的使用比较简单,可实际上跨进程通信是一个相当复杂的过程,例如进程A是怎么找到进程B的,如果有一个进程C冒充进程A,进程B又该 ...

  5. Android AIDL使用介绍(2)自定义数据类型的传递

    1.背景 默认情况下,AIDL只支持下列数据类型: Java八种基础数据类型(如 int.long.char.boolean 等); String字符串: CharSequence字符序列: List ...

  6. Android Canvas类介绍和Android Draw Rect 坐标图示

    当我们调整好画笔之后,现在需要绘制到画布上,这就得用Canvas类了.在Android中既然把Canvas当做画布,那么就可以在画布上绘制我们想要的任何东西.除了在画布上绘制之外,还需要设置一些关于画 ...

  7. linux wifi开发书籍,Android WIFI开发介绍.pdf

    Android WIFI开发介绍: WifiStateTracker 会创建WifiMonitor 接收来自底层的事件,WifiService 和WifiMonitor 是整个模块的核心.WifiSe ...

  8. Android中SlidingDrawer介绍【安卓进化三十四】

    Android中SlidingDrawer介绍[安卓进化三十四] 安卓中1.5后加入了SlidingDrawer[隐藏式抽屉],设计原理在你的UI布局有限的情况下,放不下太多的控件的时候,可以考虑用这 ...

  9. Android项目工程结构介绍

    Android项目工程结构介绍 (1)gradle和.idea Android Studio自动生成的文件,打包的时候一般会删掉再进行打包 (2)app 项目的代码资源都在其中,也是我们工作的核心目录 ...

最新文章

  1. List字符串数组如何去重
  2. [code]代码格式1
  3. Hibernate关联关系映射
  4. 160个Crackme007
  5. 企业云上安全事件突发,这五个问题值得运维大佬们日常自查!
  6. 在即将发布的Camel 2.21版本中改进了使用Apache Camel和ActiveMQ Artemis处理大型消息的功能...
  7. 事理图谱:一种纯学术需求、无法落地、漏洞百出的新技术或新概念?
  8. php bc 比较,php BC高精确度函数库
  9. PHP连接MongoDB
  10. 服务器系统用哪个版本好,windows服务器系统哪个版本好用
  11. 糖豆人终极淘汰赛服务器维护,糖豆人终极淘汰赛常见问题解决方法一览 糖豆人终极淘汰赛常见问题解决方法汇总...
  12. java memcmp_【转】 memcmp源码实现
  13. pyhton 网络爬取软考题库保存text
  14. 计算机基础题word,计算机应用基础试题(带答案)Word版
  15. 惊呆了!我用 Python 可视化分析和预测了 2022 年 FIFA 世界杯
  16. Java实现简单的KFC点餐系统(未实现可视化)
  17. 干货分享 | 杭州“边缘计算” 研讨会
  18. windows远程linux工具之tabby的使用
  19. 看图工具 -- 蓝湖 Axure 墨刀
  20. 华为Nova3e HL1ANNEM手机图纸-电路原理图纸

热门文章

  1. 90-0002 图鉴合成表
  2. 教你如何爬取某8APP的租房信息
  3. opencv进行复数的乘除法运算
  4. WinPcap打开适配器捕获数据
  5. 如何从官网找到Visual Studio Express 2015及其他版本(包括其他语言)
  6. 番茄助手Visual Assist X的简单使用以及消除中文注释警告
  7. JSBox APIs练习
  8. 【C/C++】结合计算机组成原理看C语言指针
  9. Android编程规范
  10. 【华为认证】五个点让你了解华为DATACOM和RoutingSwitching技术认证的区别