Nautilus 和可移动存储设备之间有哪些层?

Nautilus 和可移动存储设备之间有哪些层?

我的问题有点大,但我不知道如何在不破坏它的情况下将其分解。

在 Ubuntu 中似乎没有很好的(有效)方法来安装 Nexus 4,所以我想编写某种 adb 包装器,因为 adb 运行良好。所以我的问题是:

Nautilus/Nemo 和可移动存储设备之间的层/系统部分是什么,它们如何工作?

  • 像 Nautilus 这样的 GUI 文件管理器如何获取文件夹内容和文件详细信息。它是否会在后台发出类似ls的命令?cd
  • 当您浏览 /media 时,哪个系统部分负责?它如何工作?我可以在这里的某个地方放置自己的处理程序吗?
  • 我所想的事情有可能实现吗?

答案1

MTP 有帮助吗?

在 Ubuntu 中似乎没有很好的(可行)安装 Nexus 4 的方法,[…]

我想知道你是否知道MTP 协议? 这似乎是通过 USB 访问不带 SD 卡的 Android 设备媒体数据的主要方式。

现代 Ubuntu 版本(>= 13.04)应该已经为 Nautilus 提供 MTP 支持。对于较旧的 Ubuntu 版本(例如,12.04)你可能需要手动安装库升级,或者从购电协议

您可能还需要在 Android 设备的“系统设置”→“存储”→“USB 连接(PC)”下打开 MTP 支持

GVFS、FUSE 等

[…] 我考虑编写某种 adb 包装器,因为 adb 运行良好。所以我的问题是:

Nautilus/Nemo 和可移动存储设备之间的层/系统部分是什么,它们如何工作?

  • 像 Nautilus 这样的 GUI 文件管理器如何获取文件夹内容和文件详细信息。它是否会在后台发出类似ls的命令?cd

其中涉及很多不同的层,但 Nautilus 肯定不会在后台运行这些 shell 命令;这会太慢。

你应该为你的项目研究的主要层是垂直起降系统。 根据维基百科, “GVFS 是 GNOME 桌面的虚拟文件系统,它允许用户通过 SFTP、FTP、WebDAV、SMB 轻松访问远程数据,并通过 Udev 集成、OBEX、MTP 等轻松访问本地数据。”

由于 GVFS 支持保险丝(这可能是我们讨论的另一个有趣的层面),你可以尝试类似数据库管理工具。它将 ADB 包装在 FUSE 驱动程序中,然后 Nautilus 可以通过 GVFS 使用。请注意,我还没有尝试过,但是,我很想听听你使用它的任何经验 :-)

  • 当您浏览 /media 时,哪个系统部分负责?它如何工作?我可以在这里的某个地方放置自己的处理程序吗?

我不太确定,但我认为u盘最终确保您看到 下的可移动存储设备/media

  • 我所想的事情有可能实现吗?

正如您在 adbfuse 中看到的那样,这当然是可能的;只需在网上搜索“fuse android adb”,您就会得到一些类似的项目 :-)

相关内容