在安卓模拟器上重新挂载SD卡

9
在模拟器上,我可以从设置中卸载SD卡。然后我可以将其挂载到我的操作系统上,然后正常地卸载它。但是我无法弄清楚如何在不重启模拟器的情况下重新将其挂载回去。提示:adb命令remount与此无关,它只涉及/system;emulator命令也与此无关,它只涉及启动模拟器。将SD卡在两个位置挂载肯定会造成混乱(我已经尝试过了)。更多信息:mount输出如下:/dev/block//vold/179:0 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0。尝试使用与上述相同的选项从shell再次挂载会导致segfault。不知道为什么block//vold中有双斜杠,我猜这只是一个笔误。

卸载和挂载SD卡的用例是什么? - Fred Grott
如果你想以更好的方式访问它们,那么可以使用adb。 - o0'.
如果您有一个创建文件的应用程序,那么您肯定希望这样做。 - o0'.
2个回答

10

根据开发人员指南的建议,这是不可能实现的:

SD卡仿真

您可以创建磁盘映像,然后在启动时将其加载到模拟器中,以模拟用户SD卡在设备中的存在。为此,您可以使用android工具创建具有新AVD的新SD卡映像,或者您可以使用SDK中包含的mksdcard实用程序。

以下各节描述了如何创建SD卡磁盘映像,如何将文件复制到其中以及如何在启动时将其加载到模拟器中。

请注意,您只能在模拟器启动时加载磁盘映像。同样,您无法从正在运行的模拟器中删除模拟的SD卡。但是,您可以使用adb或模拟器浏览、发送文件到模拟的SD卡,并从中复制/删除文件。

模拟器支持仿真SDHC卡,因此您可以创建任何大小(最大可达128GB)的SD卡映像。

尽管Android会卸载SD卡,但模拟器进程仍保持支持文件打开状态。

$ ls -go /proc/`pidof emulator`/fd | grep sdcard.img
lrwx------ 1 64 2010-05-13 01:50 10 -> /home/x/.android/avd/WithSD.avd/sdcard.img

对QEMU更熟悉的人可能能提供更多见解,但如果我是你,我会尝试使用NFS来解决这个问题。


嗯,我在卸载SD卡之后,通过进入“设置”->“SD卡”->“卸载”,没有遇到任何问题。但我承认这可能只是我的运气好。 - telent
请注意,从4.1.2系统镜像开始,不再有“设置”->“SD卡”,而是“设置”->“存储”,也不再有“卸载”选项,只有“擦除SD卡”。因此,在模拟器上不再可能使用这种解决方法,必须在设备上完成。 - louielouie

-1

我尝试了前往“设置”并卸载SD卡,这个方法行得通。你也可以试试看,重新挂载它非常简单。

不过貌似无法通过adb/cli来完成此操作。


我只是在确认@telent上面提到的内容;请看第三行,“我还没有找出如何重新挂载模拟器(而不需要重新启动它)。”- 他似乎表明即使在操作系统内部,他也无法重新挂载,更不用说通过adb了。 - Michael De Silva
确切地说:它无法重新挂载。这就是我所问的。那么这个回答的意义是什么呢?真的很抱歉我的无礼。 - o0'.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接