目录

访问设备文件

开发者可以使用Device File Browser,在DevEco Studio上如PC端操作一样,对设备文件进行新建、删除、上传、下载等操作,而无需使用命令行,提升开发效率,当前支持普通文件视图与应用沙箱视图两种模式。

使用场景

使用约束

操作步骤

  1. 在菜单栏单击View > Tool Windows > Device File Browser,打开Device File Browser。

  2. 从下拉列表中选择设备(设备需已连接)。
  3. 选择设备后,显示文件/文件夹列表,可进行以下操作:

    1. 右键单击目录或文件,进行新建/删除操作。
    2. 右键单击Save As将选定的文件或目录下载到PC上,右键单击Upload将PC上的文件上传到设备指定目录。

      如果需要查看数据库文件,可以通过该方式将数据库文件(路径举例:data > app > el2 > 100 > database >项目名称 > entry > rdb > 数据库文件)下载到PC上,再通过其他工具进行可视化查看。

      从DevEco Studio 6.0.0 Beta2版本开始,支持使用快捷键Ctrl或Shift+鼠标左键(macOS为Command或Shift+鼠标左键),选中多个文件/目录下载到本地计算机;从DevEco Studio 6.0.2 Beta1版本开始,支持使用快捷键选中多个文件/目录删除。

    3. 焦点在Device File Browser框中,输入字母可以快速进行搜索。
    4. 双击某个文件可在DevEco Studio中将其打开。打开文件会默认下载文件到临时目录(%USER%\AppData\Local\Huawei\DevEcoStudio{版本号}\device-file-browser\{设备名称}\{设备上的文件路径}),关闭文件后,临时文件将被删除。
    5. 如果通过命令行方式上传文件到设备后,需要右键对应文件夹,选择Synchronize后才可以在Device File Browser窗口中显示该文件。

可访问目录

Device File Browser可访问的文件夹有五种类型:应用沙箱目录、一般暂存区目录、日志目录、设备公共目录、媒体库目录。

[h2]应用沙箱目录

此目录用于存放应用自身相关的数据、资源文件等,有两种访问方式。

[h2]一般暂存区目录

一般暂存区目录位于/data/local/tmp/路径下,支持新建、删除、上传、下载操作,在DevEco Studio进行调试、测试等操作时,将在此目录下生成相关的文件。

[h2]日志目录

应用运行时的日志通过HiLog工具实时输出,此工具的输出缓存区一般为256K,超出大小的历史日志将会以压缩包的形式保存在/data/log/hilog/路径下。

当需要查看历史日志时,需要将此目录下的压缩包文件和数据字典压缩包文件hilog_dict.XXX.zip下载到本地计算机,然后使用hilogtool工具解析出对应的日志原文件。

[h2]公共目录

用户的桌面、文档、下载等公共目录位于/storage/media/100/local/files/Docs路径下,支持删除、上传、下载操作。

[h2]媒体库目录

从API 22开始,新增媒体库目录/mnt/data/100/media_fuse/Photo,原有的/storage/media/100/local/files/Photo目录变为一个链接,点击后跳转到/mnt/data/100/media_fuse/Photo,支持通过该目录上传、下载、删除图片、视频文件。

Wearable设备不支持媒体库目录。

特殊目录

设备上存在两个特殊的目录:faultlog目录和图库目录,这两个目录有下载权限,但没有查看权限,Device File Browser中无法显示这两个目录,但其下的文件可以通过hdc命令查看并导出。

[h2]faultlog目录

当应用崩溃时,会在/data/log/faultlog/faultlogger路径下生成相关的崩溃日志,可通过以下方式查询并下载日志。
  1. 执行命令,查询此路径下的崩溃日志文件列表。
    • 设备版本低于5.1.0.54时,执行以下命令。
      hdc shell hidumper -s 1201 -a "-p Faultlogger"

    • 设备版本为5.1.0.54及以上时,崩溃日志文件名时间戳新增了毫秒级信息,执行以下命令。
      hdc shell hidumper -s 1201 -a "-p Faultlogger %s -LogSuffixWithMs"

  2. 执行命令,查看指定的崩溃日志文件的内容。
    hdc shell hidumper -s 1201 -a "-p Faultlogger -f {filename}"

  3. 执行命令,将文件保存到本地计算机指定的路径下。
    hdc file recv /data/log/faultlog/faultlogger/{filename} {path}

[h2]图库目录

图库目录中保存了录屏工具、照相机等系统应用生成的图片、视频文件,可通过以下方式将文件下载到本地计算机。

  1. 在图库中查看文件名及后缀,例如a.mp4。

  2. 查询文件路径,记录为{FilePath}。
    hdc shell mediatool query a.mp4 -u
    • 如果查询的结果中包含uri字段,则返回值第三行对应的文件路径不允许直接下载。

      需要再执行如下命令,指定该uri,将文件复制到有下载权限的路径中(如/data/local/tmp)。

      hdc shell mediatool recv file://media/Photo/2/VID_1744944984_000/a.mp4 /data/local/tmp

      命令返回值第二行即为文件路径{FilePath}。

    • 如果查询结果不包含uri字段,则返回值第二行即为文件路径{FilePath}。

  3. 指定上一个步骤中获取到的文件路径{FilePath},下载文件到本地。
    hdc file recv {FilePath} .\

命令行方式访问应用沙箱

可以通过命令行的方式访问debug应用的沙箱目录。

常见问题

沙箱视图下,打开沙箱文件夹时报错:[Fail][E003001] Invalid bundle name。

可能是以下原因:

  1. 应用不是debug应用,无法查看沙箱文件。
  2. 应用安装后,未运行过或重启了设备,导致应用沙箱暂未挂载。此场景下先手动运行一遍应用,然后在报错目录右键点击Synchronize即可打开目录。