是否可以在扎根的Android 4.x上创建自动增长的tmpfs ramdisk?如果是,怎么办?
是否可以在扎根的Android 4.x上创建自动增长的tmpfs ramdisk?如果是,怎么办?
Answers:
如果您这样做cat /proc/filesystems
,则应注意tmpfs。因此,如果您有权访问该mount
命令,则应该能够
mkdir MYDIRECTORY
)mount -t tmpfs tmpfs MYDIRECTROY
)默认情况下,tmpfs挂载将使用系统上可用RAM的一半。因此,您可以将其视为“自动收缩”,而不是“自动增长”,即使用得越多,可用的RAM就越少。在最坏的情况下,您的系统可能会开始交换(不需要)。您可以使用选项为该安装使用不同的RAM大小。
2017年2月28日更新:由于Android施加的限制,您应在可写入所有应用程序的文件下方选择一个挂载点。就像SD卡一样。
mount -o size=16M -t tmpfs tmpfs /data/local/tmp
ls -Fal
在挂载目录中发布?
ls -Fal
挂载目录中的文件没有输出。我只是得到提示。如果我从父母那里列出目录,我会得到drwxrwxrwt root root 2014-04-06 20:18 tmp
从OP附带的链接中,关键部分进行了总结:
从2.4版本开始,Linux内核支持tmpfs。[3] tmpfs(以前称为shmfs)基于引导期间使用的ramfs代码
强调我的,那就是RAMDisk的目的!它使内核可以临时挂载根文件系统,并在启动时继续执行必要的脚本。
在Android的情况下也是如此,无论是通过Odin,fastboot,Kies,Sony Update Software,Heimdall等boot.img
方式闪现到/boot
分区的每一个,都包含“ ramfs代码”,该代码具有包含相关代码的目录结构被包含在内:
/dev
用于设备文件/sbin
用于系统二进制文件/sys
安装后 用于与设备文件进行交互的用途/proc
启动脚本读取ramfs目录结构,并/system
在启动的早期阶段成功挂载ramfs目录结构。
与问题中OP的关键字有关:
创建一个自动增长的...
它本身并不会自动增长,而是受ramfs结构和可用RAM数量的限制,更重要的是,它在重新启动后会消失!
混淆来自“ RAMDisk”与“ RAMDrive”的可互换混合使用,从技术上讲,RAMDrive是本机交换分区中的交换空间,通常在台式机Linux上发现。如果您考虑使用DOS的旧DOS时代。 ,以模拟驻留在内存中的磁盘驱动器,并且将程序复制到该磁盘并加载得更快时,执行速度不会更快,而不是从旧的MFM / RLL磁盘驱动器中加载(曾经见过DOS目录列表在这些驱动器上滚动得非常慢?),也被称为RAMDisk!(更糟糕的是,那时,不同的制造商生产RAMDRIVE.SYS甚至RAMDISK.SYS!)
就Linux内核而言,无论是台式机还是Android,RAMDisk都是tmpfs,但不适合普通用户存储数据/文档等,因为它仅供内核本身使用!
要注意下面的@nil注释,可以将其挂载,但是它要付出一定的代价,分配给tmpfs
获取器的资源将减少一半,并且会用掉剩余的任意RAM量的一半。实际上,从在设备上运行Android的角度来看,这不是一个理想的途径。
这就是该/sdcard
进来,到店用户数据/文件,因为这个原因独自一人,因此为什么我省略了事实,你可以,但话又说回来,为什么?
mount -t tmpfs
。
mount -t tmpfs
后开始,即完成安装后,系统的其余部分将像在开机后(在Android环境中)那样启动。此外,例如,通过事后这样做adb shell
,您正在减少系统资源,尤其是在内存和资源有限的智能手机的情况下!