SoloX:Android和iOS性能数据的实时采集工具
github地址:https://github.com/smart-test-ti/SoloX
SoloX是开源的Android/iOS性能数据的实时采集工具,目前主要功能特点:
- 无需ROOT/越狱: Android设备无需ROOT,iOS设备无需越狱。高效解决Android & iOS性能测试分析难题。
- 数据完整性: 可提供FPS、Jank、CPU、GPU、Memory、Battery 、Network等性能参数,这些您都可以轻松获得。
- 美观的报告看板: 可随时随地存储、可视化、编辑、管理和下载使用任何版本的SoloX收集的所有测试数据。
- 好用的监控设置: 支持在监控过程中设置告警值、收集时长、访问其他PC机器的移动设备。
- 比对模式: 支持两台移动设备同时对比测试。
- 🌱2-devices: 使用两台不同的设备测试同一个app。
- 🌱2-apps: 使用两台配置相同的设备测试两个不同的app。
- API收集性能数据: 支持python、API收集性能数据,帮助用户轻松集成在CI/CD流程。
💡 Python 3.6 ~ 3.9 , 请安装solox版本低于2.5.4.
💡 如果Windows用户需要测试iOS,请先安装Itunes. 参考
默认安装:pip install -U solox (指定版本:pip install solox==版本)
指定镜像地址安装:pip install -i Simple Index -U solox
💡 如果网络无法通过 [pip install -U solox] 下载, 可以尝试使用镜像下载,但是可能不是最新版本。
启动服务自定义IP地址和端口:python -m solox --host={ip} --port={port}
使用python -m solox启动服务后,将自动使用本机默认浏览器打开solox页面。
接入手机设备后,可以在左上方选择设备、应用包名、进程名,并点开始即可开始收集性能数据。本示例以京东读书为例。
停止数据收集,将自动跳转到报告页面,可以查看分析报告、导出、编辑、删除报告。
Android应用性能数据收集:
from solox.public.apm import APMfrom solox.public.common import Devicesd = Devices()pids = d.getPid(deviceId='9TM9K236030218xx', pkgName='com.jd.app.reader') # for androidapm = APM(pkgName='com.jd.app.reader',platform='Android', deviceId='9TM9K236030218xx',surfaceview=True, noLog=True, pid=None)# apm = APM(pkgName='com.bilibili.app.in', platform='iOS') only supports one device# surfaceview: False = gfxinfo (手机开发者 - GPU渲染模式 - adb shell dumpsys gfxinfo)# noLog : False (为false时才会存储测试数据到log文件中)# ************* 收集单个性能指标 ************* #cpu = apm.collectCpu() # %memory = apm.collectMemory() # MBflow = apm.collectFlow(wifi=True) # KBfps = apm.collectFps() # HZbattery = apm.collectBattery() # level:% temperature:°C current:mA voltage:mV power:wgpu = apm.collectGpu() # % only supports ios# ************* 收集全部的性能指标 ************* #apm = APM(pkgName='com.jd.app.reader',platform='Android', deviceId='9TM9K236030218xx',surfaceview=True, noLog=False, pid=None, duration=20, record=False) # duration : 秒 (持续执行时间) record: 是否录屏(只支持安卓)# apm = APM(pkgName='com.bilibili.app.in.ios', platform='iOS', deviceId='xxxx',noLog=False, duration=20)if __name__ == '__main__':apm.collectAll() # 会生成HTML报告
rom solox.public.apm import APMfrom solox.public.common import Devicesd = Devices()#only supports one deviceapm = APM(pkgName='com.jd.reader', platform='iOS')# ************* 收集单个性能指标 ************* #cpu = apm.collectCpu() # %memory = apm.collectMemory() # MBflow = apm.collectFlow(wifi=True) # KBfps = apm.collectFps() # HZbattery = apm.collectBattery() # level:% temperature:°C current:mA voltage:mV power:wgpu = apm.collectGpu() # % only supports ios# ************* 收集全部的性能指标 ************* #apm = APM(pkgName='com.jd.reader', platform='iOS', deviceId='00008020-000A6C220223002E',noLog=False, duration=20)if __name__ == '__main__':apm.collectAll() # 会生成HTML报告
# solox version >= 2.1.5macOS/Linux: nohup python3 -m solox &Windows: start /min python3 -m solox &
Android: http://{ip}:{port}/apm/collect?platform=Android&deviceid=ca6bd5a5&pkgname=com.bilibili.app.in&target=cpuiOS: http://{ip}:{port}/apm/collect?platform=iOS&deviceid=00008020-000A6C22022300ccc&pkgname=com.bilibili.app.in&target=cputarget in ['cpu','memory','network','fps','battery','gpu']
http://192.168.0.100:60000/apm/collect?platform=Android&deviceid=9TM9K23603021817&pkgname=com.jd.app.reader&target=cpuhttp://192.168.0.100:60000/apm/collect?platform=Android&deviceid=9TM9K23603021817&pkgname=com.jd.app.reader&target=fps
http://192.168.0.100:60000/apm/collect?platform=iOS&deviceid=00008020-000A6C220223002E&pkgname=com.360buy.jdmobile&target=cpuhttp://192.168.0.100:60000/apm/collect?platform=iOS&deviceid=00008020-000A6C220223002E&pkgname=com.360buy.jdmobile&target=fps
相关文章:
SoloX:Android和iOS性能数据的实时采集工具
SoloX:Android和iOS性能数据的实时采集工具 github地址:https://github.com/smart-test-ti/SoloX 最新版本:V2.7.6 一、SoloX简介 SoloX是开源的Android/iOS性能数据的实时采集工具,目前主要功能特点: 无需ROOT/越狱…...
【知识点随笔分析 | 第五篇】简单介绍什么是QUIC
前言: 随着互联网的快速发展,传统的基于TCP的协议开始显现出一些局限性。TCP在连接建立和拥塞控制方面存在一定的延迟,这可能导致用户在访问网页、观看视频或玩网络游戏时感受到不必要的等待时间。而QUIC作为一种新兴的传输协议,试…...
vscode ssh 远程免密登录开发
存放代码的机器运行 sshd, vscode 所在机器保证可以通过 ssh 登录服务器vscode 机器通过 ssh-keygen 生成 ssh 公私钥对(已有可以忽略)将客户端的 id_rsa.pub 加入到服务器的鉴权队列 cat id_rsa.pub >> authorized_keysvscode 配置ssh登录即可.ctrlp, remote-ssh: open …...
辅助驾驶功能开发-测试篇(2)-真值系统介绍
1 真值系统概述 1.1 真值评测系统核心应用 快速构建有效感知真值,快速完成感知性能评估,快速分析感知性能缺陷。 主要应用场景包括: 1. 感知算法开发验证: 在算法开发周期中,评测结果可以作为测试报告的一部分,体现算法性能的提升。 2. 遴选供应…...
运行程序时msvcr110.dll丢失的解决方法,msvcr110.dll丢失5的个详细解决方法
在使用电脑的过程中,我们经常会遇到各种问题,其中之一就是 msvcr110.dll 丢失的问题。msvcr110.dll 是 Microsoft Visual C Redistributable 的一个组件,用于支持使用 Visual C 编写的应用程序。如果您的系统中丢失了这个文件,您可…...
已解决 Bug——IndexError: index 3 is out of bounds for axis 0 with size 3问题
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页: 🐅🐾猫头虎的博客🎐《面试题大全专栏》 🦕 文章图文并茂🦖…...
WEB3 solidity 带着大家编写测试代码 操作订单 创建/取消/填充操作
好 在我们的不懈努力之下 交易所中的三种订单函数已经写出来了 但是 我们只是编译 确认了 代码没什么问题 但还没有实际的测试过 这个测试做起来 其实就比较的麻烦了 首先要有两个账号 且他们都要在交易所中有存入 我们还是先将 ganache 的虚拟环境启动起来 然后 我们在项目…...
c++-vector
文章目录 前言一、vector介绍二、vector使用1、构造函数2、vector 元素访问3、vector iterator 的使用4、vector 空间增长问题5、vector 增删查改6、理解vector<vector< int >>7、电话号码的字母组合练习题 三、模拟实现vector1、查看STL库源码中怎样实现的vector2…...
十四天学会C++之第二天(函数和库)
1. 函数的定义和调用 在C中,函数是组织和结构化代码的关键工具之一。它们允许您将一段代码封装成一个可重复使用的模块,这有助于提高代码的可读性和维护性。 为什么使用函数? 函数在编程中的作用不可小觑。它们有以下几个重要用途…...
蓝桥杯每日一题2023.10.3
杨辉三角形 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 40分写法: 可以自己手动构造一个杨辉三角,然后进行循环,用cnt记录下循环数的个数,看哪个数与要找的数一样,输出cnt #include<bits/stdc.h> using na…...
JavaScript系列从入门到精通系列第十二篇:JavaScript中对象的简介和对象的基本操作以及JavaScript中的属性值和属性名
文章目录 前言 一:对象分类 1:内建对象 2:宿主对象 3:自建对象 二:对象的基本操作 1:创建对象 2:向对象中添加属性 3:读取对象中的属性 4:修改对象中的属性 三…...
OpenCV实现视频的追踪(meanshift、Camshift)
目录 1,meanshift 1.1 算法流程 1.2 算法实现 1.3 代码实现 1.4 结果展示 1,meanshift 1.1 算法流程 1.2 算法实现 1.3 代码实现 import numpy as np import cv2 as cv# 读取视频 cap cv.VideoCapture(video.mp4)# 检查视频是否成功打开 if n…...
并查集详解(原理+代码实现+应用)
文章目录 1. 并查集概念2. 并查集原理2.1 合并2.1 找根 3. 并查集实现3.1 结构定义3.2 FindRoot(找根)3.3 Union(合并)3.4 IsInSet(判断两个值是否在一个集合里)3.5 SetCount(并查集中集合个数&…...
第k小的数
补充习题: 第k小的数 问题描述 有两个正整数数列,元素个数分别为 N N N和 M M M.从两个数列中分别任取一个数相乘,这样一共可以得到 N M N\times M NM个数,询问这 N M N\times M NM个数中第 K K K小的数是多少. 数据范围: N , M < 200000 , K < 2.1 ∗ 1 0 10 , …...
基于electron25+vite4创建多窗口|vue3+electron25新开模态窗体
在写这篇文章的时候,查看了下electron最新稳定版本由几天前24.4.0升级到了25了,不得不说electron团队迭代速度之快! 前几天有分享一篇electron24整合vite4全家桶技术构建桌面端vue3应用示例程序。 https://www.cnblogs.com/xiaoyan2017/p/17…...
红米手机 导出 通讯录 到电脑保存
不要搞什么 云服务 不要安装什么 手机助手 不要安装 什么app 用 usb 线 连接 手机 和 电脑 手机上会跳出 提示 选择 仅传输文件 会出现下面的 一个 盘 进入 MIUI目录 然后进入 此电脑\Redmi Note 5\内部存储设备\MIUI\backup\AllBackup\20230927_043337 如何没有上面的文件&a…...
常见web信息泄露
一、源码(备份文件)泄露 1、git泄露 Git是一个开源的分布式版本控制系统,在执行git init初始化目录的时候,会在当前目录下自动创建一个.git目录,用来记录代码的变更记录等。发布代码的时候,如果没有把.git这个目录删除ÿ…...
找不到VCRUNTIME140_1.dll怎么办,VCRUNTIME140_1.dll丢失的5个解决方法
在当今的数字时代,我们的生活和工作都离不开电脑。然而,随着科技的发展,我们也会遇到各种各样的问题。其中,VCRUNTIME140_1.dll丢失的问题是许多人都会遇到的困扰。这个问题可能会导致许多应用程序无法正常运行,给我们…...
C#生成自定义海报
安装包 SixLabors.ImageSharp.Drawing 2.0 需要的字体:宋体和微软雅黑 商用的需要授权如果商业使用可以使用方正书宋、方正黑体,他们可以免费商用 方正官网 代码 using SixLabors.Fonts; using SixLabors.ImageSharp; using SixLabors.ImageSharp.Draw…...
BP神经网络的MATLAB实现(含源代码)
BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络模型之一 具体数学推导以及原理在本文不做详细介绍,本文将使用MATLAB进行B…...
ZeroAPI:基于订阅与任务感知的AI模型智能路由插件设计与实践
1. 项目概述:ZeroAPI,一个为AI订阅服务而生的智能路由插件如果你和我一样,手头订阅了不止一个AI服务——比如OpenAI的ChatGPT Plus、月之暗面的Kimi、智谱AI的GLM,可能还有MiniMax或者通义千问——那你一定遇到过这个烦恼…...
观察Taotoken Token Plan套餐在长期项目中的成本控制效果
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观察Taotoken Token Plan套餐在长期项目中的成本控制效果 对于需要长期、稳定调用大模型API的项目而言,成本的可预测性…...
对比直接使用厂商API,Taotoken在路由容灾上的体验差异
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用厂商API,Taotoken在路由容灾上的体验差异 1. 引言:服务稳定性的现实挑战 在将大模型能力集成…...
掌握AI专著撰写技巧,借助工具3天完成20万字专著创作!
学术专著的生命力在于逻辑的严谨性,而逻辑论证正是写作中最容易出现问题的地方。专著的撰写必须围绕核心观点展开系统的论证,既需要对每一个论点进行详细的阐述,还要面对不同学派的争议观点,同时保证理论框架的自洽,避…...
告别CubeMX代码洁癖:教你如何把main()函数挪到自己的.c文件里(STM32F4实战)
重构STM32工程的艺术:将main()迁移到自定义文件的实战指南 每次打开CubeMX生成的工程,看到那个被各种初始化代码塞满的main.c文件,你是否也感到一丝不适?作为一名有追求的嵌入式开发者,我们渴望对项目结构拥有绝对掌控…...
从锂电池热失控到锡须短路:高可靠性系统安全工程实践
1. 从“工程恐怖故事”到系统安全文化的反思最近在整理资料时,翻到一篇十多年前的旧文,标题叫《工程恐怖:机毁人亡》。文章汇集了几位航空与国防领域工程师亲历的、令人脊背发凉的真实事故案例。这些故事没有出现在主流新闻的头条,…...
内向技术人突破领导力瓶颈:从深度思考到战略沟通的进阶指南
1. 项目概述:内向工程师的“天花板”与破局之路 在技术圈子里待久了,你会发现一个有趣的现象:身边那些能写出精妙算法、搞定复杂架构的工程师,往往在茶水间的闲聊中显得沉默寡言,在大型会议上也更倾向于坐在后排。这并…...
热潮下的冷思考:从OpenClaw“龙虾”困境看AI Agent的理性选择与国产平替
2026年初,开源AI智能体项目OpenClaw(俗称“小龙虾”)以一种近乎野蛮的方式闯入大众视野。两天内GitHub星标突破17万,线下排队安装,甚至催生了“代装龙虾”的灰色产业。然而,这场技术狂欢的B面,却…...
省下PLC的钱!用海康VC3000工控机GPIO控制LED灯(C# WinForm实战)
海康VC3000工控机GPIO控制实战:低成本替代PLC的完整方案 在工业自动化领域,PLC(可编程逻辑控制器)长期以来都是控制系统的核心组件。但对于简单的指示灯控制、报警系统或小型继电器控制这类基础应用,动辄数千元的PLC模…...
ncmdumpGUI:解锁网易云音乐NCM文件格式的终极解决方案
ncmdumpGUI:解锁网易云音乐NCM文件格式的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 还在为网易云音乐下载的NCM格式文件无法在其…...

















