码迷,mamicode.com
首页 > 移动开发 > 详细

Android安全模型之Android安全机制(内存管理)

时间:2014-12-02 16:44:12      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:android   io   使用   java   文件   linux   as   size   算法   

Ashmem匿名共享内存

Android的匿名共享内存(Ashmem)机制基于Linux内核的共享内存,但是Ashmem与cache shrinker关联起来,增加了内存回收算法的注册接口,因此Linux内存管理系统将不再使用内存区域加以回收。Ashmem以内核驱动的形式实现,在文件系统中创建/dev/ashmem设备文件。如果进程A与进程B需要共享内存,进程A可通过open打开该文件,用ioctl命令ASHMEM_SET_NAME和ASHMEM_SET_SIZE设置共享内存的名称 和大小。mmap使用handle获得共享的内存区域;进程B使用同样的handle,由mmap获得同一块内存。handle在进程间的传递可通过 Binder等方式实现。

为有效回收,需要该内存区域的所有者通知Ashmem驱动。通过用户,Ashmem驱动程序,以及Linux内存管理系统的协调,使内存管理更适应嵌入式移动设备内存较少的特点。Ashmem机制辅助内存管理系统来有效管理不再使用的内存,同时通过Binder进程通信机制实现进程间的内存共享。

Ashmem不但以/dev/ashmem设备文件的形式适应Linux开发者的习惯,而且在Android系统运行时和应用程序框架层提供了访问接口。其中,在系统运行时提供了C/C++调用接口,在应用程序框架层提供了Java调用接口。而实际上,应用程序框架层的Java调用接口是通过JNI方法来调用系统运行时的C/C++调用接口的,最后进入到内核空间的Ashmem驱动程序中。

LMK机制



Android安全模型之Android安全机制(内存管理)

标签:android   io   使用   java   文件   linux   as   size   算法   

原文地址:http://my.oschina.net/fhd/blog/351465

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!