OpenHarmony研发工具链子系统

OpenHarmony研发工具链子系统

简介

在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 sendlocal 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

相关推荐
轻口味9 小时前
【每日学点HarmonyOS Next知识】截图组件截取列表、Toggle组件、Web组件请求头、列表选择弹窗、游戏加速
前端·游戏·harmonyos·harmonyosnext
鸿蒙开发工程师—阿辉10 小时前
HarmonyOS Next元服务网络请求封装实践
网络·华为·typescript·harmonyos·元服务
__Benco14 小时前
OpenHarmony 5.0.0 Release
harmonyos
别说我什么都不会15 小时前
鸿蒙轻内核M核源码分析系列二一 03 文件系统LittleFS
操作系统·嵌入式·harmonyos
全栈若城16 小时前
04 高效HarmonyOS NEXT编程:ArkTS数据结构优化与属性访问最佳实践
harmonyos·harmonyos next
盖世栗子16 小时前
鸿蒙OS(HarmonyOS),RelativeContainer的用法和特性
harmonyos
拔丝豌豆16 小时前
【HarmonyOS Next】跨模块交互的事件路由
harmonyos
MardaWang17 小时前
HarmonyOS 应用程序包结构 (编译态)
华为·harmonyos
枫叶丹419 小时前
【HarmonyOS Next之旅】DevEco Studio使用指南(一)
华为·harmonyos·deveco studio·harmonyos next