harmony 鸿蒙插件

  • 2022-08-09
  • 浏览 (1783)

插件

概述

基本概念

  • begetctl介绍

具体参考begetctl命令。 - bootchart 插件

bootchart是一个用于linux启动过程性能分析的开源工具软件,在系统中自动收集CPU占用率、磁盘吞吐率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程。begetctl命令参考:begetctl命令。 - bootevent 插件

bootevent是一个记录init进程及各个服务的启动关键事件的插件,记录内容包括事件名称,关联事件的服务的启动时间,事件发生时间。导出文件支持tracing解析,可用作指导优化系统启动过程。

约束与限制

bootchart和bootevent只支持标准系统, begetctl 支持小型系统和标准系统。

开发指导

参数说明

表1 begetctl 命令说明 |命令|说明|格式和示例| |:———-| :———-|:————–| |init group test [stage]|init moduletest 测试用|stage参见ServiceStatus| |param ls [-r] [name]|显示系统参数dac和selinux信息
-r: 展示所有参数信息
name:展示指定参数信息|begetctl param ls xxx.xxx 或
param ls xxx.xxx
例如:
begetctl param ls persist.sys.usb| |param get [name]|获取系参数统值|begetctl param get xxxx.xxx 或
param get xxxx.xxx
例如:
param get const.product.name| |param set name value|设置系统参数值|begetctl param set xxxx.xxx value 或
param set xxxx.xxx value
例如:
begetctl param set ohos.servicectrl.display 1| |param wait name [value] [timeout]|等待参数被设置成某值
timeout默认值:30秒|begetctl param wait xxx.xxx value 或
wait xxx.xxx value
例如:
param wait xx.sss 1| |param dump [verbose]|dump 系统参数信息|begetctl param dump
或 param dump| |param shell [name]|进入Parameter shell|begetctl param shell
或 param shell| |param save|持久化workspace中的所有带持久化标记的参数|begetctl param save
或 param save| |dump api|dump 显示init 系统参数接口信息|begetctl dump api| |getloglevel|获取当前init的log等级
读取persist.init.debug.loglevel
0:debug
1:info
2:warning
3:err
4:fatal|begetctl getloglevel| |setloglevel level|设置log等级为info
log等级设置范围0~4
0:debug
1:info
2:warning
3:err
4:fatal|begetctl setloglevel 1| |timer_stop servicename|停止服务计时器
servicename长度不超过96字符|begetctl timer_stop servicename|begetctl timer_stop appspawn| |timer_start servicename timeout|启动服务计时器
servicename长度不超过96
timeout默认值:10毫秒|begetctl timer_start servicename|begetctl timer_start appspawn| |start_service servicename|启动服务|begetctl start_service servicename 或
start_service servicename|begetctl start_service appspawn| |stop_service servicename|停止服务|begetctl stop_service servicename 或
stop_service servicename|begetctl stop_service appspawn| |service_control start servicename|启动服务|begetctl service_control start servicename 或
service_control start servicename|begetctl service_control start appspawn| |service_control stop servicename|停止服务|begetctl service_control stop servicename 或
service_control stop servicename|begetctl service_control stop appspawn| |sandbox -b pid|进入native应用沙盒|begetctl sandbox -b pid| |sandbox -p process_name|进程进沙盒|begetctl sandbox -p /bin/sh| |sandbox -n sandbox_name|进入配置的system或者chipset沙盒|begetctl sandbox -n system| |sandbox -s service_name|服务进沙盒|begetctl sandbox -s service_name| |sandbox -h|展示sandbox 命令帮助信息|begetctl sandbox -h| |modulectl uninstall moduleName|卸载动态插件|begetctl modulectl uninstall moduleName
例如:
卸载bootchart:
begetctl modulectl uninstall bootchart| |modulectl install moduleName|安装动态插件|begetctl modulectl install moduleName
例如:
安装bootchart:
begetctl modulectl install bootchart| |modulectl list|查询动态插件列表|begetctl modulectl list| |misc_daemon –write_logo xxx.rgb|写入开机logo
rgb文件最大不超过1024*2038,仅支持hi3516dv300|begetctl misc_daemon –write_logo logo.rgb 或
misc_daemon –write_logo logo.rgb| |reboot|重启系统|begetctl reboot 或
reboot| |reboot shutdown[:options]|关闭系统|begetctl reboot shutdown 或
reboot shutdown| |reboot suspend|暂停系统|begetctl reboot suspend 或
reboot suspend| |reboot updater|重新启动并进入updater|begetctl reboot updater 或
reboot updater| |reboot updater[:options]|重新启动并进入updater|begetctl reboot updater 或
reboot updater| |reboot flashd|重新启动并进入flashd|begetctl reboot flashd 或
reboot flashd| |reboot flashd[:options]|重新启动并进入flashd|begetctl reboot flashd 或
reboot flashd| |reboot charge|重新启动并进入charge|begetctl reboot charge 或
reboot charge| |reboot loader|重新启动并进入烧写模式|begetctl reboot loader 或
reboot loader| |bootevent disable|关闭bootevent插件功能|begetctl bootevent disable| |bootevent enable|开启bootevent插件功能|begetctl bootevent enable| |dump_service parameter_service trigger|命令行展示所有trigger信息|begetctl dump_service parameter_service trigger| |dump_service all|命令行展示所有服务的信息|begetctl dump_service all| |dump_service serviceName|命令行展示单个服务信息|begetctl dump_service param_watcher| |dump_service loop|dump loop 中fd信息|begetctl dump_service loop| |bootchart stop|停止图形分析,仅支持rk3568|begetctl bootchart stop| |bootchart start|开始图形分析|begetctl bootchart start| |bootchart disable|图形分析不使能|begetctl bootchart disable| |bootchart enable|图形分析使能|begetctl bootchart enable| |dac uid username|查询username 对应的uid|begetctl dac uid username
例如:
begetctl dac uid root| |dac gid groupname|groupname 对应的gid以及组成员|begetctl dac gid groupname
例如:
begetctl dac gid shell| |get log level|获取当前init的log等级
读取persist.init.debug.loglevel
0:debug
1:info
2:warning
3:err
4:fatal|begetctl get log level| |set log level|设置log等级为info
log等级设置范围0~4
0:debug
1:info
2:warning
3:err
4:fatal|begetctl set log level 1| |appspawn_time|查询应用孵化的最大最小时间|begetctl appspawn_time
例如:
begetctl appspawn_time| |dump_nwebspawn|dump nwebspawn 应用信息|begetctl dump_nwebspawn
例如:
打开备忘录
begetctl dump_nwebspawn| |dump_appspawn|dump appspawn 应用信息|begetctl dump_appspawn
例如:
begetctl dump_appspawn|

开发实例

bootchart 使用示例

预制条件: 1. 准备bootchart测试环境:linux操作系统下安装python及pycairo pip install pycairo。 2. 在linux解压bootchart-master.tar。

 tar -zxvf  bootchart-master.tar

执行步骤: 1. 启动系统。 2. 执行命令行:begetctl bootchart enable。 3. 重启系统。 4. 执行命令行:begetctl bootchart stop。 5. 执行命令行:begetctl bootchart disable。 6. 在/data/service/el0/startup/init/目录下导出如下文件并存放在bootchart文件夹:
header
proc_diskstats.log
proc_ps.log
proc_stat.log
7. 使用tar -zcvf bootchart.tgz * 命令进行打包(只支持linux版本)并将该打包文件拷贝到linux:bootchart-master目录下。 8. 在bootchart-master目录下运行命令: python3 pybootchartgui.py -f pdf bootchart.tgz

预期结果:
        在bootchart-master目录下生成bootchart.pdf。

bootevent 使用示例

  1. 在服务的cfg文件中配置bootevent事件,支持配置一个或多个bootevent事件。

    配置单个bootevent事件:

    bootevents : "bootevent.xxxbootevent",
    

    配置多个bootevent事件:

    bootevents : ["bootevent.xxxbootevent1", "bootevent.xxxbootevent2.xxx"],
    

    注意: 配置的bootevent事件必须以“bootevent.”开始。

  2. 服务代码中发送bootevent事件。

    服务自身代码中调用init提供的SetParameter接口发送bootevent事件,例如发送上一步骤中设置的XXXbootevent1事件:

    SetParameter("bootevent.XXXbootevent1", "true");
    
  3. 命令行启用bootevent功能。

    • 执行begetctl bootevent enable命令后再次启动系统,bootevent功能开启。
    • 执行begetctl bootevent disable命令后再次启动系统,bootevent功能关闭。
  4. 导出文件支持trace分析。

    • 导出的bootevent文件目录:/data/service/el0/startup/init/。
    • 导出文件命名规则:“时间戳.bootevent”。
    • 导出的bootevent信息文件可以通过trace分析工具进行可视化展示。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙子系统开发

harmony 鸿蒙AI框架开发指导

harmony 鸿蒙Neural Network Runtime设备接入指导

harmony 鸿蒙应用特权配置指南

harmony 鸿蒙开发实例

harmony 鸿蒙搭建环境

harmony 鸿蒙开发指导

harmony 鸿蒙概述

harmony 鸿蒙ArkCompiler开发指导

harmony 鸿蒙窗口标题栏定制开发指导(ArkTS)

0  赞