One Click软件

文章目录

  • One Click软件
    • 软件功能
    • 开发工具
    • 支持平台
    • 软件实现原理
    • CommonCommand
      • 命令输入栏
      • 功能按钮区
      • 输出栏
    • simpleperf
      • list
      • stat
      • record
      • report
      • FlameGraph
    • XTS

软件功能

  • adb常用命令一键执行,如获取android设备号(adb devices)、拍照、截屏等
  • Linux常用命令一键执行(待开发)
  • Git常用命令一键执行(待开发)
  • simpleperf(Android性能分析工具)一键执行,并生成火焰图
  • XTS测试一键执行,测试结果解析,并针对fail项给出历史解决方案供参考

开发工具

  • Qt5.12

支持平台

  • Linux

软件实现原理

运用QThread启动多线程,实现主线程(界面)和子线程(processor)分离,运用QProcess (The QProcess class is used to start external programs and to communicate with them)启动/bin/bash脚本,在UI界面输入命令或点击按钮将命令通过发送信号(emit signal)的形式传递至processor,然后由processor启动bash执行命令,并将执行结果、状态、output同样已信号的方式返回至UI,显示在textEdit。

CommonCommand

CommonCommand模块界面包含3个部分

  • 命令输入栏
  • 功能按钮区
  • 输出栏

命令输入栏

手动输入执行命令,通常用于自定义带参命令的执行。
输入栏自动补全功能如下:

save command:保存当前输入的命令,以将该命令更新至补全词库(native_cmd_list.txt)
complete regular:补全模式选择

功能按钮区

目前已实现的功能有:adb device,root,remount,手机截屏,拍照等
示例:截屏
通过下面输出栏可以看到,这个按钮点击事件其实是在执行:adb shell screencap -p /storage/img_20220420171252.png;adb pull /storage/img_20220420171252.png capture(将图片pull到./capture),另外可以看到在执行命令时,最下方状态栏可以看到有绿灯闪烁,表示命令正在执行过程中,执行结束,灯灭。

输出栏

执行命令实时回显,如上图。类似shell终端,将输出结果实时显示在textEdit控件。

simpleperf

simpleperf = simple + perf
simple:不是简单的意思,而是采样
perf:performance–性能

list

list 命令列出设备上所有可用的事件。不同的设备可能支持不同的事件,因为它们具有不同的硬件和内核

可以看到输出栏可以拖拽出来方便查看,可双击也可直接拖拽

stat

获取一段时间内,要分析的进程中发生了多少事件。通过传入不同参数,我们可以选择要使用哪些事件、要监听哪些进程/线程,监听多长时间以及打印间隔,当前可支持客制化的参数如图所示,更详细的参数参见‘simpleperf stat -h’,当然你也可以直接在Command中的命令行执行自己客制化的参数

$ simpleperf stat -h
Usage: simpleperf stat [options] [command [command-args]]Gather performance counter information of running [command].
Options:
-p pid1,pid2,...                                                Stat events on existing processes.  #分析进程
-t tid1,tid2,...                                                   Stat events on existing threads.     #分析线程
-a                                                                    Collect system-wide information.      #收集系统范围的信息
--cpu cpu_item1,cpu_item2,...                        Collect information only on the selected cpus. #收集选择的cup信息
-e event1[:modifier1],event2[:modifier2],...     Select a list of events to count.      #选择要统计的事件表
--duration time_in_sec                                    Monitor for time_in_sec seconds.      #选择记监听时长(s)$ simpleperf stat -e cache-references,cache-misses -a --duration 1   Performance counter statistics:
#           count  event_name           # count / runtime,  runtime / enabled_time774,728,087  cache-references   # 96.513 M/sec              (100%)31,985,983   cache-misses         # 4.128672% miss rate  (100%)
Total test time: 1.001893 seconds.

默认分析命令: adb shell system/bin/simpleperf stat -e cache-references,cache-misses -a --duration 10

record

以采样方式生成profile data,当前可支持客制化的参数如图所示,更详细的参数参见‘simpleperf stat -h’,当然你也可以直接在Command中的命令行执行自己客制化的参数

默认执行命令:adb shell rm /data/local/tmp/perf.data;adb shell system/bin/simpleperf record -o /data/local/tmp/perf.data -e task-clock:u -f 1000 -g --duration 10 --log info --app com.tcl.camera;adb pull /data/local/tmp/perf.data
记录相机app10s内的性能数据,并pull到本地

$ simpleperf record -h
Usage: simpleperf record [options] [--] [command [command-args]]Gather sampling information of running [command].
Options:
-p pid1,pid2,...         Record events on existing processes.     #记录进程事件
-t tid1,tid2,...         Record events on existing threads. #记录线程事件
-a                       System-wide collection.                    #系统范围收集
--cpu cpu_item1,cpu_item2,...    Collect information only on the selected cpus.         #同stat
-e event1[:modifier1],event2[:modifier2],...    Select a list of events to count.                   #同stat
-f freq                 Set event sample frequency. It means recording at most [freq] samples every second.         #设置事件采样频率,意味着每秒最多采样[freq]次
--duration time_in_sec  Monitor for time_in_sec seconds              #同stat
-o record_file_name     Set record file name, default is perf.data.   #设置profile data文件名,默认perf.data
--call-graph fp | dwarf[,<dump_stack_size>]  Enable call graph recording.             #启用调用图记录
-g                   Same as '--call-graph dwarf'.

report

生成数据报告

默认执行命令:python scripts/report_sample.py > out.perf

$ simpleperf report
Cmdline: /system/bin/simpleperf record -g sleep 1
Arch: arm64
Event: cpu-cycles (type 0, config 0)
Samples: 56
Event count: 13885436
Overhead  Command     Pid    Tid    Shared Object                    Symbol
9.61%         sleep       14852  14852  [kernel.kallsyms]            vma_link
8.97%         sleep       14852  14852  linker64                     soinfo_do_lookup_impl
6.42%         sleep       14852  14852  linker64                     BionicAllocator::alloc_impl
6.11%         sleep       14852  14852  [kernel.kallsyms]            __follow_mount_rcu
5.83%         sleep       14852  14852  [kernel.kallsyms]            clear_page
...

FlameGraph

将数据报告绘制程火焰图

FlameGraph/stackcollapse-perf.pl out.perf > out.folded;FlameGraph/flamegraph.pl out.folded > graph.svg

XTS

  • 选择本地xts套件
  • 选择要执行的命令
  • 选择执行模块(目前只支持camera模块)
  • 输入要执行的test(输入为空,则运行整个模块)
  • run cts

    cts 运行结束之后会自动解析results/latest/result.xml,将结果显示在tableView中,并且会检索fail项的历史解决方案

  • 加载results文件

如果某一个fail项有历史解决方案,可以点击Resulotion栏中的连接直接转跳至相应网页

One Click软件简介相关推荐

  1. Sysinternals Suite 2012.06.28软件简介

    Sysinternals Suite 2012.06.28软件简介 Sysinternals Suite是微软发布的一套非常强大的免费工具程序集.Sysinternals Suite一共包括将近70个 ...

  2. CV之OpenCV:OpenCV库涉及概念、常见函数、常用案例、HALCON软件简介之详细攻略

    CV之OpenCV:OpenCV库涉及概念.常见函数.常用案例.HALCON软件简介之详细攻略 目录 CV入门 OpenCV使用过程 1.基本教程 OpenCV的相关概念 1.基本概念

  3. w ndows2000,华塑CAE软件简介

    华塑CAE软件简介 华塑CAE软件是华中科技大学模具技术国家重点实验室华塑软件研究中心推出的注塑模具成型华塑CAE3D系列软件,采用了国际上流行的OPENGL图形核心和高效精确的数值模拟技术,华塑CA ...

  4. Debussy软件简介及仿真教程

    ** Debussy软件简介及仿真教程 ** 一.Debussy 软件简介 Debussy 是 NOVAS Software, Inc(思源科技)开发的 HDL Debug & Analysi ...

  5. 哈尔滨理工大学matlab,微软用户-Matlab软件简介哈尔滨理工大学数学建模组ppt课件...

    <微软用户-Matlab软件简介哈尔滨理工大学数学建模组ppt课件>由会员分享,可在线阅读,更多相关<微软用户-Matlab软件简介哈尔滨理工大学数学建模组ppt课件(41页珍藏版) ...

  6. 机器视觉入门——VisionPro软件简介

    @机器视觉 VisionPro 软件简介 VisionPro是美国Cognex公司推出的一款图像处理算法.拖拽式操作,易于上手,方便进行简单项目快速应用.除此之外,提供.net脚本编程接口,十分灵活, ...

  7. 【LINGO】lingo 软件简介

    目录 lingo 软件简介 lingo 软件简介 LINDO是一种专门用于求解数学规划问题的软件包.由于LINDO执行速度很快.易于方便输入.求解和分析数学规划问题.因此在数学.科研和工业界得到广泛应 ...

  8. SketchUp:SketchUp草图大师软件简介、安装、使用方法之详细攻略

    SketchUp:SketchUp草图大师软件简介.安装.使用方法之详细攻略 目录 SketchUp软件的简介 SketchUp软件的安装 1.下载地址 2.安装图文教程

  9. MHDD硬盘修复软件简介

    MHDD硬盘修复软件简介   2008-08-28 11:47:05|  分类: 硬件维修 |  标签: |字号大中小 订阅 MHDD硬盘修复软件简介: 1.MHDD是俄罗斯Maysoft公司出品的快 ...

  10. 公文识别开发包软件简介

    公文识别开发包软件简介  公文OCR识别SDK开发包软件V12.0是一种光学字符识别(OCR)软件开发包(OCR SDK):OCR SDK12.0为软件开发人员.系统集成商.数据加工商(BPO).扫描 ...

最新文章

  1. python写数据结构书_有哪些用 Python 语言讲算法和数据结构的书?
  2. Hadoop高速入门
  3. resx文件在X64位编译,提示“未能加载文件或程序集”的问题?
  4. Mysql(1)——服务端与客户端建立连接
  5. java Lock 源码分析
  6. C# - 创建List属性的简单方法
  7. 事物日志恢复 mysql_浅谈SQL Server中的事务日志(五)----日志在高可用和灾难恢复中的作用...
  8. 12.二叉树的序遍历
  9. C#面向对象基础(四) 静态成员与实例成员
  10. nmea怎么转wgs84坐标c语言源码,NMEA-0813数据格式说明
  11. 文件打不开只读或服务器未响应,Recovery Toolbox for PowerPoint(PPT修复工具)
  12. yyuc php,php版微信公众平台实现预约提交后发送email的方法
  13. java异步编程书籍_《Java异步编程实战》(翟陆续)【摘要 书评 试读】- 京东图书...
  14. C++ dlib实现人脸识别
  15. 铁路订票系统的简单设计(转)
  16. 高质量前端:Code Review 很慢,你要忍一下。
  17. 通过IMAP方式迁移U-Mail邮件到Exchange 2013之Umail搭建!
  18. Python爬虫学习总结
  19. 错误:未报告的异常错误,必须对其进行捕获或声明以便抛出
  20. redis cluster 4.0.9 之四: redis-trib.rb add-node

热门文章

  1. 同济大学计算机专业辅修声乐,同济大学关于本科生修读辅修专业的管理办法
  2. nuvoton uboo2013引导流程 1 - 配置
  3. php 401认证,给phpMyAdmin增加401加密认证
  4. iOS Protocol 详解
  5. java咖啡机_JAVA咖啡机2010款
  6. [分享]下载电影文件英文标识的含义
  7. 诗词格律[5] 词的基本知识
  8. 基于maven自动构建和部署工具-JDeploy
  9. Dell 笔记本鼠标莫名乱跑
  10. 开源项目-绩效管理系统