OpenHarmony开发者论坛

标题: OpenHarmony设备截屏的5种方式 [打印本页]

作者: westinyang    时间: 2023-10-25 17:37
标题: OpenHarmony设备截屏的5种方式
[md]> 关于作者:[I'm westinyang](https://kaihongpai.feishu.cn/wiki/CqWLwJRadibxztkrIWZcogWxnXd)

> 演示视频:https://www.bilibili.com/video/BV1ju4y1U7uk

# 序言

早在今年3月初,刚接触OpenHarmony标准系统应用开发的时候,就搜索过如何通过命令的方式对OpenHarmony设备进行截图,搜索引擎找过很多次都没有自己想要的答案,经过不断的探索研究,总结以下几种截图方式。

# 方式1:系统控制中心

- 顶部下滑在控制中心里点击截屏
- 这种方式最普遍,截图后可到相册查看,不过要注意有些三方移植固件可能不支持这个功能
- 通过下面这条命令可以拉取设备截图目录到电脑上

```shell
hdc file recv /storage/media/100/local/files/Pictures/Screenshots
```

# 方式2:OHScrcpy投屏工具 `推荐`

> OHScrcpy是我在2023-06-03开发的一款OpenHarmony设备投屏PC的工具,目前最新版为1.0-Beta3,下面有视频演示、下载地址和相关话题
>
> - 1.0 Beta1:[OHScrcpy:OpenHarmony开源鸿蒙首款投屏工具横空出世~](https://www.bilibili.com/video/BV1xz4y1q7S1)
> - 1.0 Beta2:[OpenHarmony开源鸿蒙投屏工具OHScrcpy1.0-Beta2,支持点触交互](https://www.bilibili.com/video/BV1W14y1o75Y)
> - 1.0 Beta3:[OpenHarmony多屏协同OHScrcpy Beta3:键盘控制、滑动解锁](https://www.bilibili.com/video/BV13N411q7FX)
> - 下载地址:[https://www.bilibili.com/read/cv24125018](https://www.bilibili.com/read/cv24125018)
> - 相关话题:[https://github.com/Genymobile/scrcpy/issues/4137](https://github.com/Genymobile/scrcpy/issues/4137)

右键选择截屏或者按F1快捷键,如下图所示

![](data/attachment/forum/202310/25/171126wqqnnqk856ws6t3z.jpg "微信截图_20230724070828.jpg")

# 方式3:DevEcoStudio截屏功能

点击下方日志,再点击左下角设备截屏按钮即可

![](data/attachment/forum/202310/25/171158to888cmcpftgrpf1.png "微信截图_20230724071800.png")

# 方式4:hdc shell snapshot_display

> 一般质量jpeg

> 官方没有文档描述,通过反编译和分析DevEcoStudio部分jar包,看到内部的一些实现

```shell
hdc shell "snapshot_display -f /data/0.jpeg"
hdc file recv /data/0.jpeg
```

# 方式5:hdc shell wukong

> 高质量png

> wukong本来是OpenHarmony提供的一个稳定性测试工具,同时也附带的有截屏功能,[官方文档](https://docs.openharmony.cn/page ... kong-guidelines.md/)

```
hdc shell wukong special -p
```

执行上面的命令会输出如下内容

```log
PS C:\Users\westinyang\Desktop> hdc shell wukong special -p
Start connect to AAMS
Success connect to AAMS
INF : (  115) EnvInit : "Report currentTestDir: (/data/local/tmp/wukong/report/20230724_072217/)"
INF : (  120) EnvInit : "Report CSV: (/data/local/tmp/wukong/report/20230724_072217/wukong_report.csv)"
INF : (  121) EnvInit : "Report JSON: (/data/local/tmp/wukong/report/20230724_072217/data.js)"
INF : (  124) EnvInit : "Report exception dir: (/data/local/tmp/wukong/report/20230724_072217/exception/)"
INF : (   92) StartCrashDirListen : create listener thread
INF : (   94) StartCrashDirListen : thread detach
INF : (   68) InitCsvFile : "CSV: (/data/local/tmp/wukong/wukong_20230724_072217.csv)"
INF : (   55) ListenCrashDir : init notify
INF : (   60) ListenCrashDir : add_watch
```

截屏就在这段输出中的 currentTestDir 目录中,使用如下命令拉取到电脑,注意这个路径是随机的

```shell
hdc file recv /data/local/tmp/wukong/report/20230724_072217/
```

# 持续关注

- 关于作者:[I'm westinyang](https://kaihongpai.feishu.cn/wiki/CqWLwJRadibxztkrIWZcogWxnXd)
- 哔哩哔哩:[个人主页](https://space.bilibili.com/74433635)
[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5