导航:首页 > 操作系统 > android目录树

android目录树

发布时间:2023-08-27 04:11:21

1. android跨进程通信-共享内存

还是先看共享内存的使用方法,我主要介绍两个函数:

通过 shmget() 函数申请共享内存,它的入参如下

通过 shmat() 函数将我们申请到的共享内存映射到自己的用户空间,映射成功会返回地址,有了这个地址,我们就可以随意的读写数据了,我们继续看一下这个函数的入参

共享内存的原理是在内存中单独开辟的一段内存空间,这段内存空间其实就是一个tempfs(临时虚拟文件),tempfs是VFS的一种文件系统,挂载在/dev/shm上,前面提到的管道pipefs也是VFS的一种文件系统。

由于共享的内存空间对使用和接收进程来讲,完全无感知,就像是在自己的内存上读写数据一样,所以也是 效率最高 的一种IPC方式。

上面提到的IPC的方式都是 在内核空间中开辟内存来存储数据 ,写数据时,需要将数据从用户空间拷贝到内核空间,读数据时,需要从内核空间拷贝到自己的用户空间,
共享内存就只需要一次拷贝 ,而且共享内存不是在内核开辟空间,所以可以 传输的数据量大

但是 共享内存最大的缺点就是没有并发的控制,我们一般通过信号量配合共享内存使用,进行同步和并发的控制

共享内存在Android系统中主要的使用场景是 用来传输大数据 ,并且 Android并没有直接使用Linux原生的共享内存方式,而是设计了Ashmem匿名共享内存

之前说到有名管道和匿名管道的区别在于有名管道可以在vfs目录树中查看到这个管道的文件,但是匿名管道不行, 所以匿名共享内存同样也是无法在vfs目录中查看到 的, Android之所以要设计匿名共享内存 ,我觉得主要是为了安全性的考虑吧。

我们来看看共享内存的一个使用场景,在Android中,如果我们想要将当前的界面显示出来,需要将当前界面的图元数据传递Surfaceflinger去做图层混合,图层混合之后的数据会直接送入帧缓存,送入帧缓存后,显卡就会直接取出帧缓存里的图元数据显示了。

那么我们如何将应用的Activity的图元数据传递给SurfaceFlinger呢?想要将图像数据这样比较大的数据跨进程传输,靠binder是不行的,所以这儿便用到匿名共享内存。

从谷歌官方提供的架构图可以看到,图元数据是通过BufferQueue传递到SurfaceFlinger去的,当我们想要绘制图像的时候, 需要从BufferQueue中申请一个Buffer,Buffer会调用Gralloc模块来分配共享内存 当作图元缓冲区存放我们的图元数据。

可以看到Android的匿名共享内存是通过 ashmem_create_region() 函数来申请共享内存的,它会在/dev/ashmem下创建一个虚拟文件,Linux原生共享内存是通过shmget()函数,并会在/dev/shm下创建虚拟文件。

匿名共享内存是通过 mmap() 函数将申请到的内存映射到自己的进程空间,而Linux是通过*shmat()函数。

虽然函数不一样,但是Android的匿名共享内存和Linux的共享内存在本质上是大同小异的。

要使用一块共享内存

2. 安卓文件无法复制到根目录

使用第三方软件复制。
安卓手机正常通过数据线连接手机和电脑的时候,只显示内存卡,不显示手机自身内存,这样您就无法把内存卡的东西复制到电脑里,但是可以通过第三方软件,比如豌豆荚、360助手或者手机助手连接手机和电脑的,这样可以查看到内存卡的内存还可以查看到手机内存的,您可以尝试将内存卡里的东西复制到手机内存里。
根目录指逻辑驱动器的最上一级目录,它是相对子目录来说的。打开“我的电脑”,双击C盘就进入C盘的根目录,双击D盘就进入D盘的根目录。其它类推。根目录在文件系统建立时即已被创建,其目的就是存储子目录(也称为文件夹)或文件的目录项。一“棵“目录树,树的最根本就是它的根(根目录)。

3. android系统的手机目录各个文件夹代表什么例如acct

1、acct文件夹:根目录/acct/ ,系统回收站,误删除的系统文件恢复ACCT计算机语言,系统调用禁止/启用系统记录进程信息。

2、cache文件夹:缓存(cache) 文件。只是内存中少部分数据的复制品,先于内存与CPU交换数据,因此速率很快。

3、config文件夹:(计算机系统)配置。如:系统里的config.sys就是系统自动配置文件,它是在用户开机这段时间对计算机进行初始化设置,也就是用户对系统的设置都由它来对计算机进行恢复。

4、system:Android 系统文件。主要包括usr(用户文件夹,包含共享、键盘布局、时间区域文件等) ,app(常规下载的应用程序,这些 apk 包都是受保护的), lib(系统底层库,如平台运行时库等)等。

5、etc:系统主要配置文件,比如APN接入点设置等核心配置等。

6、data:用户程序目录。存储手机系统文件和安装软件的数据文件,不能随便删除。

阅读全文

与android目录树相关的资料

热点内容
军团战争命令怎么样 浏览:66
单片机lacll指令 浏览:45
php正则匹配url参数 浏览:210
websphere编译后的目录 浏览:450
苹果app怎么从app资源库移除 浏览:53
大宜宾app怎么置顶 浏览:797
androidmars源码 浏览:552
编译器怎样从c盘到d盘 浏览:263
南拳pdf 浏览:472
怎么获得联通app登陆密码 浏览:217
压力大就试试解压神器 浏览:185
dedecmsphp文件修改 浏览:536
贷款解压省内都可以办理吗 浏览:469
思科服务器如何发布www任务 浏览:682
怎么在苹果里面下王者安卓版的 浏览:686
c语言改编程序没保存 浏览:437
msdos编译教程 浏览:978
怎么去文件夹后缀 浏览:445
粉笔app笔试真题在哪里 浏览:108
晋江小说阅读app怎么注册填写验证 浏览:157