SoloX:Android和iOS性能数据的实时采集工具

SoloX:Android和iOS性能数据的实时采集工具

github地址:https://github.com/smart-test-ti/SoloX

最新版本:V2.7.6

一、SoloX简介

SoloX是开源的Android/iOS性能数据的实时采集工具,目前主要功能特点:

  1. 无需ROOT/越狱: Android设备无需ROOT,iOS设备无需越狱。高效解决Android & iOS性能测试分析难题。
  2. 数据完整性: 可提供FPS、Jank、CPU、GPU、Memory、Battery 、Network等性能参数,这些您都可以轻松获得。
  3. 美观的报告看板: 可随时随地存储、可视化、编辑、管理和下载使用任何版本的SoloX收集的所有测试数据。
  4. 好用的监控设置: 支持在监控过程中设置告警值、收集时长、访问其他PC机器的移动设备。
  5. 比对模式: 支持两台移动设备同时对比测试。
    1. 🌱2-devices: 使用两台不同的设备测试同一个app。
    2. 🌱2-apps: 使用两台配置相同的设备测试两个不同的app。
  6. API收集性能数据: 支持python、API收集性能数据,帮助用户轻松集成在CI/CD流程。

二、环境要求

  1. 安装 Python 3.10 + Download
  2. 安装 adb和配置好环境变量 (SoloX自带的adb不一定适配你的电脑,建议自己安装) Download

💡 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] 下载, 可以尝试使用镜像下载,但是可能不是最新版本。

启动服务:python -m solox

启动服务自定义IP地址和端口:python -m solox --host={ip} --port={port}

启动服务后,建议使用谷歌浏览器访问使用。

四、使用方法

(1)通过浏览器直接使用

使用python -m solox启动服务后,将自动使用本机默认浏览器打开solox页面。

接入手机设备后,可以在左上方选择设备、应用包名、进程名,并点开始即可开始收集性能数据。本示例以京东读书为例。

开始收集数据中。

停止数据收集,将自动跳转到报告页面,可以查看分析报告、导出、编辑、删除报告。

查看分析报告,可以另存为html、png文件。

  1. 2-devices: 使用两台不同的设备测试同一个app。

  1. 2-apps: 使用两台配置相同的设备测试两个不同的app。操作方法类似,不再赘述。

但是貌似cpu、内存、网络没数据信息。

iOS设备操作使用方法同上。

(2)使用python收集

Android应用性能数据收集:

from solox.public.apm import APM

from solox.public.common import Devices



d = Devices()

pids = d.getPid(deviceId='9TM9K236030218xx', pkgName='com.jd.app.reader') # for android



apm = 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() # MB

flow = apm.collectFlow(wifi=True) # KB

fps = apm.collectFps() # HZ

battery = apm.collectBattery() # level:% temperature:°C current:mA voltage:mV power:w

gpu = 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报告

输出结果:

iOS应用性能数据收集:

rom solox.public.apm import APM

from solox.public.common import Devices



d = Devices()

#only supports one device

apm = APM(pkgName='com.jd.reader', platform='iOS')



# ************* 收集单个性能指标 ************* #

cpu = apm.collectCpu() # %

memory = apm.collectMemory() # MB

flow = apm.collectFlow(wifi=True) # KB

fps = apm.collectFps() # HZ

battery = apm.collectBattery() # level:% temperature:°C current:mA voltage:mV power:w

gpu = 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报告

输出结果:

(3)使用API收集

后台启动服务

# solox version >= 2.1.5



macOS/Linux: nohup python3 -m solox &

Windows: start /min python3 -m solox &

通过api收集数据:

Android: http://{ip}:{port}/apm/collect?platform=Android&deviceid=ca6bd5a5&pkgname=com.bilibili.app.in&target=cpu

iOS: http://{ip}:{port}/apm/collect?platform=iOS&deviceid=00008020-000A6C22022300ccc&pkgname=com.bilibili.app.in&target=cpu



target in ['cpu','memory','network','fps','battery','gpu']

以获取安卓应用CPU和fps信息为例。

http://192.168.0.100:60000/apm/collect?platform=Android&deviceid=9TM9K23603021817&pkgname=com.jd.app.reader&target=cpu

http://192.168.0.100:60000/apm/collect?platform=Android&deviceid=9TM9K23603021817&pkgname=com.jd.app.reader&target=fps

返回结果:

以获取iOS应用CPU和fps信息为例。

http://192.168.0.100:60000/apm/collect?platform=iOS&deviceid=00008020-000A6C220223002E&pkgname=com.360buy.jdmobile&target=cpu

http://192.168.0.100:60000/apm/collect?platform=iOS&deviceid=00008020-000A6C220223002E&pkgname=com.360buy.jdmobile&target=fps

返回结果:

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
要训练SOLO模型使用自己的数据集,你需要完成以下几个步骤: 1. 创建自己的数据集类: 在SOLO/mmdet/datasets文件夹下创建一个新的Python文件,例如pig_data.py。在这个文件中,你需要创建一个继承自CocoDataset的新类,并定义你的自定义类别列表。例如: ```python from .coco import CocoDataset from .registry import DATASETS @DATASETS.register_module class pig_data(CocoDataset): CLASSES = ['pig_standing', 'pig_kneeling', 'pig_side_lying', 'pig_action_unknown', 'pig_climbing', 'person'] ``` 2. 修改datasets/__init__.py文件: 在SOLO/mmdet/datasets/__init__.py文件中,导入并添加你的数据集类到__all__列表中。例如: ```python from .pig_data import pig_data # 导入你的自定义数据集类 __all__ = [ # 其他数据集类... 'pig_data', # 添加你的自定义数据集类 ] ``` 3. 配置训练文件: 在进行训练之前,你需要配置训练文件(通常是config文件)以使用你的自定义数据集。在配置文件中,你需要更改以下几个部分: - 修改`data_root`字段为你的数据集的根目录。 - 修改`classes`字段为你的自定义类别列表。 - 修改`data.train.type`字段为你的自定义数据集类的名称,例如`pig_data`。 - 修改`data.train.data_root`字段为你的训练集数据所在的路径。 - 修改`data.train.ann_file`字段为你的训练集标注文件的路径。 - 修改`data.train.img_prefix`字段为你的训练集图像文件的路径。 完成上述步骤后,你就可以使用SOLO模型训练你的自定义数据集了。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值