研发工具链子系统

简介

在OpenHarmony中,研发工具链子系统主要为开发人员提供了开发时用于调试的命令行以及追踪性能轨迹、查看性能的工具。

本子系统主要实现了以下功能:

  • bytrace,开发人员用于追踪进程轨迹、查看性能的一种工具,主要对内核ftrace进行了封装和扩展,来支持用户态的打点。
  • hdc,开发人员用于调试的命令行工具,通过该工具可以在windows/linux/mac等系统上与开发机或者模拟器进行交互。
  • profiler,旨在为开发者提供一套性能调优平台,可以用来分析内存、性能等问题。

系统架构

工具链子系统的架构图如下:

图 1 研发工具链子系统架构图

目录

/developtools             # 研发工具链子系统目录结构
├── bytrace_standard      # bytrace组件代码目录
│   └── bin               # bytrace组件功能实现目录
│   └── innerkits         # 对内部子系统暴露的头文件存放目录
├── hdc_standard          # hdc组件代码目录
│   └── src               # hdc组件功能实现目录
│   └── prebuilt          # 预编译目录
├── profiler              # 性能调优组件代码目录
│   └── device            # 设备侧代码目录
│   └── host              # host端代码目录
│   └── interfaces        # 模块间和对外提供的接口代码目录
│   └── trace_analyzer    # bytrace解析模块的代码目录
│   └── protos            # proto格式文件的代码目录

使用说明

1. bytrace

bytrace当前支持如下命令:

表 1 命令行列表

Option

Description

-h,--help

查看帮助信息

-b n,--buffer_size n

指定n(KB)内存大小用于存取trace日志,默认2MB

-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命令示例,供开发者参考:

  • 查询支持的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
    

2. hdc

hdc当前支持如下命令:

表 2 hdc命令列表

Option

Description

-t key

用于指定连接该指定设备标识key

-s socket

用于指定服务监听的socket配置

-h/help -v/version

用于显示hdc相关的帮助、版本信息

list targets[-v]

显示所有已经连接的目标设备列表

target mount

以读写模式挂载/system等分区

target boot [bootloader|recovery]

重启目标设备,默认启动系统,可支持bootloader,recover等引导模式

smode [off]

授予后台服务进程root权限, 使用off参数取消授权

kill

终止服务进程

tconn host[:port][-remove]

通过【ip地址:端口号】来指定连接的设置

tmode usb

执行后设备端对应daemon进程重启,并首先选用usb连接方式

tmode port port-number

执行后设备端对应daemon进程重启,并优先使用网络方式连接设备,如果连接设备再选择usb连接

fport local remote -b

创建端口、文件、设备转发

fport list

查看所有已建立的映射连接列表,显示的参数包括转发配置字符串,转发类型,转发参数

fport rm local

删除已映射的给定配置字符串连接(配置字符串值可以通过list获取),没有指定则删除所有

file send local remote

发送文件至远端设备

file recv [-a] remote local

从远端设备接收文件至本地

app install [-r/-d/-g] package

安装OpenHarmony package

app install-multiple [-rdg] --hap path

安装指定路径下的所有OpenHarmony package

app uninstall [-k] package

卸载OpenHarmony应用

hilog

支持查看抓取log调试信息

bugreport [PATH]

支持抓取bugreport调试信息

shell [command]

远程执行命令或进入交互命令环境

以下是常用hdc命令示例,供开发者参考:

  • 往设备中推送文件

    hdc file send  E:\c.txt  /sdcard
    
  • 重启设备

    hdc target boot
    
  • 查看日志

    hdc hilog
    
  • 进入命令行交互模式

    hdc shell
    
  • 配置服务监听的socket。

    hdc -s 192.168.1.100:1234 
    
  • 重启至bootloader模式。

    hdc target boot bootloader
    
  • 网络连接。

    hdc tconn 192.168.0.100:8710
    

3. profiler

性能调优组件包含系统和应用调优框架,旨在为开发者提供一套性能调优平台,可以用来分析内存、性能等问题。

该组件整体分为PC端和设备端两部分:

  • PC端最终作为deveco studio的插件进行发布,内部主要包括分为UI绘制、设备管理、进程管理、插件管理、数据导入、数据存储、 数据分析、Session管理、配置管理等模块。

  • 设备端主要包括命令行工具、服务进程、插件集合、应用程序组件等模块。设备端提供了插件扩展能力,对外提供了插件接口,基于该扩展能力可以按需定义自己的能力,并集成到框架中来,目前基于插件能力已经完成了实时内存插件和trace插件。详细内容见性能调优组件。

相关仓

研发工具链子系统

developtools_hdc_standard

developtools_bytrace_standard

developtools_profiler