HarmonyOS Developer DevEco Studio使用指南-命令行工具
bytrace使用指导
简介
bytrace是开发人员用于追踪进程轨迹、分析性能的一种工具,主要对内核ftrace进行了封装和扩展,来支持用户态的打点。通过该工具可以打开想要查看的用户态和内核label(通过下面命令行bytrace -l,查看支持的所有label),然后通过命令行进行抓取trace信息到指定文件中。
参数说明
bytrace当前支持以下命令:
表1 命令行列表
Option | Description |
-h,--help | 查看option帮助 |
-b n,--buffer_size n | 指定n(KB)内存大小用于存取trace日志,默认2048KB |
-t n,--time n | 用来指定trace运行的时间(单位:s),取决于需要分析过程的时间 |
--trace_clock clock | trace输出的时钟类型,一般设备支持boot、global、mono、uptime、perf等,默认为boot |
--trace_begin | 启动抓trace |
--trace_dump | 将数据输出到指定位置(默认控制台) |
--trace_finish | 停止抓trace,并将数据输出到指定位置(默认控制台) |
-l,--list_categories | 输出手机能支持的trace模块 |
--overwrite | 当缓冲区满的时候,将丢弃最新的信息。(默认丢弃最老的日志) |
-o filename,--output filename | 指定输出的目标文件名称 |
-z | 抓取trace后进行压缩 |
使用实例
准备工作,使用bytrace工具需要先进入shell命令行:
hdc shell
以下是常用bytrace命令示例,供开发者参考:
- 查询支持的label。
bytrace -l
或者
bytrace --list_categories
- 设置4M缓存,抓取10秒,抓取label为ability的trace信息。
bytrace -b 4096 -t 10 --overwrite ability > /data/mytrace.ftrace
- 设置trace的输出时钟为mono。
bytrace --trace_clock mono -b 4096 -t 10 --overwrite ability > /data/mytrace.ftrace
- 抓取trace后进行压缩。
bytrace -z -b 4096 -t 10 --overwrite ability > /data/mytrace.ftrace
sdkmgr使用指导
sdkmgr(点击链接获取)是一个HarmonyOS SDK命令行管理工具,支持查看、安装和卸载HarmonyOS SDK,当前仅适用DevEco Studio 3.0 Release(3.0.0.993)及以前的版本。
解压sdkmgr工具包后,请在sdkmgr所在的目录打开CMD命令行工具,然后执行sdkmgr相关命令。
查看SDK组件
显示本地和远程组件命令格式如下:
sdkmgr list --[options] [<component>]
关于options参数,请参考Options选项说明。<component>表示组件,取值包括java/js/native/toolchains/previewer。
查询SDK组件的示例如下所示:
- 显示指定路径下所有组件的安装情况:
sdkmgr list --sdk-directory="/data/sdk"
- 显示java组件所有API Version的最新版本:
sdkmgr list java
安装SDK组件
安装一个或多个SDK组件命令格式如下:
sdkmgr install --[options] <component1> [<component2>]
关于options参数,请参考Options选项说明。<component>表示组件,具体写法请参考查看SDK组件中关于组件写法的介绍。
安装SDK组件的示例如下所示:
- 安装Java SDK最高API Version下的最新版本,并指定了SDK存储路径
sdkmgr install --sdk-directory="/data/sdk" java
- 同时安装API Version为5的Java SDK和JS SDK,默认安装路径为sdkmgr工具根目录的上一级目录。
sdkmgr install java:5 js:5
- 安装Java SDK指定API Version版本,需要使用http代理来安装,代理信息文件通过config参数进行指定。
sdkmgr install java:5 --config="/data/sdk/config.properties"
其中,config参数指定的配置文件config.properties中包含代理服务器信息和SDK存储路径。
sdk-directory="/data/sdk"
proxy-type=http
proxy=host:port
- 安装comp.txt中指定的组件,并安装到指定的目录。
sdkmgr install --component-file="/data/sdk/comp.txt" --sdk-directory="/data/sdk"
其中,comp.txt中包含的内容举例如下所示:
java:5
js:5
native:5
toolchains
previewer
卸载SDK组件
卸载一个或多个SDK组件命令格式如下:
sdkmgr uninstall --[options] <component1> [<component2>]
关于options参数,请参考Options选项说明。<component>表示组件,具体写法请参考查看SDK组件中关于组件写法的介绍。
卸载SDK组件的示例如下所示:
- 卸载本地的Java SDK,可以指定具体的API Version,如果不指定,则会卸载最高API Version的最新版本。
sdkmgr uninstall java:5
- 同时卸载本地已安装的API Version为5的最新Java SDK和JS SDK版本。
sdkmgr uninstall java:5 js:5
查看sdkmgr版本
查看sdkmgr版本号的命令格式为:
sdkmgr version | --version
查看sdkmgr帮助
查看sdkmgr帮助文档的命令格式为:
sdkmgr help | --help
Options选项说明
Options是sdkmgr的可选配置参数,这些参数可以直接在命令行中执行外,还可以将这些参数配置到sdkmgr配置文件(sdkmgr工具默认配置文件路径为sdkmanager/conf/config.properties)中。
说明
config=<filePath>、component-file=<filePath>和accept-license参数只能在命令行中执行,不能写到配置文件中。
选项 | 说明 |
config=<filePath> | sdkmgr配置文件存放目录,默认为sdkmanager/conf/config.properties。 |
sdk-directory=<filePath> | 指定存放SDK的根目录,默认路径为sdkmgr工具根目录的上一级目录。 |
component-file=<filePath> | 指定一个文本文件,文件内容指定了需要安装的组件。 |
node-home=<filePath> | <filePath>指定为Node.js所在的根目录。 |
proxy-type=<none | http | socks> | 代理类型,取值为none或者http或者socks。 |
proxy=<host:port> | 代理服务器的主机和端口。 |
accept-license | 自动签署SDK License协议。 |
no-ssl-verify | 访问HarmonyOS SDK下载路径时,是否进行HTTPS的SSL校验,默认进行SSL校验,设置该参数则会关闭SSL校验。 说明 关闭SSL证书校验,可能会带来安全风险,请谨慎使用。 |
hdc使用指导
简介
hdc(HarmonyOS Device Connector)是HarmonyOS为开发人员提供的用于调试的命令行工具,通过该工具可以在windows/linux/mac系统上与真实设备或者模拟器进行交互。
环境准备
hdc工具通过HarmonyOS sdk获取,存放于sdk的toolchains目录下,使用时将sdk的toolchains目录添加到环境变量。
- Windows环境变量设置方法:
○ 在此电脑 > 属性 > 高级系统设置 > 高级 > 环境变量中,添加HDC端口变量名为:HDC_SERVER_PORT,变量值可设置为任意未被占用的端口,如7035。
○ 在系统或者用户的path变量中,添加HDC工具路径,HDC工具路径为:HarmonyOS SDK安装目录/hmscore/{版本号}/toolchains。
环境变量配置完成后,关闭并重启DevEco Studio。
- macOS环境变量设置方法:
a. 打开终端工具,执行以下命令,打开.bash_profile文件。
vi ~/.bash_profile
b. 单击字母“i”,进入Insert模式。
c. 输入以下内容,在PATH路径下添加HDC工具路径(HarmonyOS SDK安装目录/hmscore/{版本号}/toolchains)和添加HDC_SERVER_PORT端口信息。
export PATH=$PATH:/Users/admin/Library/HarmonyOS/Sdk/hmscore/{版本号}/toolchains
export CLASSPATH
HDC_SERVER_PORT=7035
launchctl setenv HDC_SERVER_PORT $HDC_SERVER_PORT
export HDC_SERVER_PORT
d. 编辑完成后,单击Esc键,退出编辑模式,然后输入“:wq”,单击Enter键保存。
e. 执行以下命令,使配置的环境变量生效。
source ~/.bash_profile
f. 环境变量配置完成后,关闭并重启DevEco Studio。
注意事项
- 使用hdc,如果出现异常,可以尝试通过hdc kill -r命令杀掉并重启hdc服务。
- 如果出现hdc list targets获取不到设备信息的情况,可以通过任务管理器查看是否有hdc进程存在。若进程存在,则通过hdc kill -r命令杀掉该进程。
说明
- 命令行中被[]修饰的参数表示可选参数。
- 命令行中的参数若是斜体,表示在使用时该参数需替换为具体的信息,例如:file sendlocal remote命令中的local和remote,使用时需替换为本地待发送和远端待接收的文件路径。
开发指导
全局option
Option | 说明 |
-t [key] [command] | 指定连接唯一标识的目标设备。 |
-s SOCKSPEC | 指定服务监听的socket信息。 |
-h | 打印hdc帮助信息。 |
-v | 打印hdc版本信息。 |
- 显示hdc相关的帮助信息,命令格式如下:
hdc -h
- 返回值:
返回hdc的帮助信息。
- 使用方法:
hdc -h
- 显示hdc的版本信息,命令格式如下:
hdc -v
- 返回值:
返回hdc的版本信息。
- 使用方法:
hdc -v
- 连接设备时,若仅有一台,无需指定设备标识。若有多台,一次仅能连接一台,每次连接时需要指定连接设备的标识,命令格式如下:
hdc -t [key] [command]
- 参数:
参数名 | 说明 |
key | IP地址或USB序列号。 |
command | hdc支持的命令。 |
- 返回值:
若连接的设备不存在,返回 Invalid arguments ***。若附件的命令不存在,返回unknown command ***。
- 使用方法:
该方法需要与具体的操作命令搭配使用,下面以shell命令举例:
hdc list targets (获取设备信息)
hdc -t [key] shell (-t后面添加的key需要替换为查询到的某一个设备信息)
说明
一台开发机可连接多个设备,每个设备有唯一的标识。如果通过网络连接设备,标识为IP地址,如果通过usb连接,标识为USB序列号。该命令需要跟随具体的操作命令。
查询相关命令行
命令 | 说明 |
help | 打印hdc帮助信息。 |
version | 打印hdc版本信息。 |
list targets [-v] | 查询已连接的所有目标设备,添加-v选项,则会打印设备详细信息。 |
显示所有已经连接的设备列表,命令格式如下:
hdc list targets[-v]
- 返回值
若没有查询到设备信息,返回[Empty]。若查询到已经连接的的设备,返回设备列表。
- 使用方法:
hdc list targets
hdc list targets -v
服务进程相关命令
命令 | 说明 |
target mount | 读写模式挂载系统分区。 |
target boot | 重启目标设备,查看目标列表可用list targets命令。 |
smode [off] | 授予设备端hdc后台服务进程root权限, 使用off参数取消授权。 |
kill [-r] | 终止hdc服务进程,-r表示重启服务进程。 |
- 以读写模式挂载系统分区,命令格式如下:
hdc target mount
- 返回值
挂载成功,返回remount succeeded。挂载失败,返回具体的失败信息。
- 使用方法:
hdc target mount
- 授予设备端hdc后台服务进程root权限,命令格式如下:
hdc smode [off]
- 使用方法:
hdc smode
hdc smode off // 取消root权限
- 终止hdc服务进程,命令格式如下:
hdc kill [-r]
- 返回值
服务进程终止成功,无返回值。服务进程终止失败,返回具体的失败信息。
- 使用方法:
hdc kill
hdc kill -r
网络相关命令
命令 | 说明 |
tconn [host][:port] [-remove] | 通过指定ip地址+端口号连接目标设备。 |
tmode usb | 配置设备端hdc后台服务,使用usb进行通信。 |
tmode port [port-number] | 配置设备端hdc后台服务,使用tcp端口进行通信。 |
fport list [-b] | 列出所有中继连接,-b选项下列出反向连接列表。 |
fport local remote [–b] | 建立中继连接,-b选项下进行反向连接。 |
fport rm local [-b] | 删除指定的local中继连接,无参数则删除所有连接,-b选项下进行反向连接删除。 |
- 通过【ip地址:端口号】来指定连接的设备,命令格式如下:
hdc tconn [host][:port][-remove]
- 参数
参数名 | 说明 |
host:port | IP地址+端口号。 |
-remove | 表示断开与指定设备的连接。 |
- 返回值
设备连接成功,无返回值。设备连接失败,返回具体的失败信息。
- 使用方法:
hdc tconn 192.168.0.100:8710
- 该命令执行后,设备端对应的daemon进程重启,并优先选用usb连接方式,命令格式如下:
hdc tmode usb
- 返回值
进程重启成功,无返回值。进程重启失败,返回具体的失败信息。
- 使用方法:
hdc tmode usb
- 该命令执行后,设备端对应的daemon进程重启,优先使用网络方式连接设备,若未连接成功,再选择usb连接。命令格式如下:
hdc tmode port [port-number]
- 参数
参数名 | 说明 |
port-number | 监听连接的网络端口号。 |
- 返回值
进程重启成功,无返回值。进程重启失败,返回具体的失败信息。
- 使用方法:
hdc tmode port 8710
说明
执行完毕后,远端daemon将会退出并重启,默认启用TCP连接,若未添加监听端口,则监听随机端口。
文件相关命令
命令 | 说明 |
file send local remote | 从本地发送文件至远端设备。 |
file recv [-a] remote local | 从远端设备发送文件至本地。 |
- 从本地发送文件至远端设备,命令格式如下:
hdc file send local remote
- 参数
参数名 | 说明 |
local | 本地待发送的文件路径。 |
remote | 远程待接收的文件路径。 |
- 返回值
文件发送成功,返回传输成功的结果信息。文件发送失败,返回传输失败的具体信息。
- 使用方法:
hdc file send E:\example.txt /data/local/tmp/example.txt
- 从远端设备发送文件至本地,命令格式如下:
hdc file recv [-a] remote local
- 参数
参数名 | 说明 |
-a | 文件保留时间戳模式。 |
local | 本地待接收的文件路径。 |
remote | 远程待发送的文件路径。 |
- 返回值
文件接收成功,返回传输成功的结果信息。文件接收失败,返回传输失败的具体信息。
- 使用方法:
hdc file recv /data/local/tmp/a.txt ./a.txt
app相关命令
命令 | 说明 |
app install [-r/-d/-g] package | 安装指定的应用package。 |
app uninstall [-k] package | 卸载指定的应用包package。 |
- 安装HarmonyOS package,命令格式如下:
hdc app install [-r/-d/-g] package
- 参数
参数名 | 说明 |
package | HarmonyOS应用安装包。 |
-r | 替换已存在应用。 |
-d | 允许降级安装。 |
-g | 动态授权。 |
- 返回值:
package安装成功,无返回值。package安装失败,返回具体的失败信息。
- 使用方法,以安装com.example.hello包为例:
hdc app install com.example.hello
- 卸载HarmonyOS应用,命令格式如下:
hdc app uninstall [-k] package
- 参数:
参数名 | 说明 |
package | HarmonyOS应用安装包。 |
-k | 保留缓存数据。 |
- 返回值:
package卸载成功,无返回值。package卸载失败,返回具体的失败信息。
- 使用方法,以卸载com.example.hello包为例:
hdc app uninstall com.example.hello
调试相关命令
命令 | 说明 |
shell [COMMAND] | 进入交互命令环境,COMMAND表示需要执行的单次命令。 |
listpid | 显示可调试应用列表。 |
hilog [options] | 打印设备端的日志信息,options表示hilog支持的参数,可通过hdc hilog -h查阅支持的参数列表 。 |
- 抓取log信息,命令格式如下:
hdc hilog [options]
- 返回值:
返回抓取到的日志信息。
- 使用方法:
hdc hilog
- 进入交互命令环境,命令格式如下:
hdc shell [COMMAND]
- 返回值:
返回shell后面执行命令的结果信息。
- 使用方法:
hdc shell hilogcat