English | 中文 | FAQ | 使用文档
🔎Preview
SoloX - Real-time collection tool for Android/iOS performance data.
Quickly locate and analyze performance issues to improve application performance and quality. No need for ROOT/jailbreak, plug and play.

📦Requirements
- Install Python 3.10 + Download
- Install adb and configure environment variables (SoloX's adb may not necessarily fit your computer) Download
💡 If Windows users need to test ios, install and start Itunes. Documentation (Not support iOS17)
📥Installation
default
pip install -U solox (pip install solox==version)
mirrors
pip install -i https://mirrors.ustc.edu.cn/pypi/web/simple -U solox
💡 If your network is unable to download through [pip install -U solox], please try using mirrors to download, but the download of SoloX may not be the latest version.
🚀Quickstart
default
python -m solox
customize
python -m solox --host=ip --port=port
🏴Python API
from solox.public.apm import AppPerformanceMonitor
from solox.public.common import Devices
d = Devices()
processList = d.getPid(deviceId='ca6bd5a5', pkgName='com.bilibili.app.in')
print(processList)
apm = AppPerformanceMonitor(pkgName='com.bilibili.app.in',platform='Android', deviceId='ca6bd5a5', surfaceview=True,
noLog=False, pid=None, record=False, collect_all=False, duration=0)
cpu = apm.collectCpu()
memory = apm.collectMemory()
memory_detail = apm.collectMemoryDetail()
network = apm.collectNetwork(wifi=True)
fps = apm.collectFps()
battery = apm.collectBattery()
gpu = apm.collectGpu()
disk = apm.collectDisk()
thermal = apm.collectThermal()
if __name__ == '__main__':
apm = AppPerformanceMonitor(pkgName='com.bilibili.app.in',platform='Android', deviceId='ca6bd5a5', surfaceview=True,
noLog=False, pid=None, record=False, collect_all=True, duration=0)
apm.collectAll(report_path=None)
from solox.public.apm import initPerformanceService
initPerformanceService.stop()
🏴Service API
Start the service in the background
# solox version >= 2.1.5
macOS/Linux: nohup python3 -m solox &
Windows: start /min python3 -m solox &
Request performance data from 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&pkgname=com.bilibili.app.in&target=cpu
target in ['cpu','memory','memory_detail','network','fps','battery','gpu']
🔥Features
-
No ROOT/Jailbreak: No need of Root for Android devices, Jailbreak for iOS devices. Efficiently solving the test and analysis challenges in Android & iOS performance.
-
Data Integrality: We provide the data about CPU, GPU, Memory, Battery, Network,FPS, Jank, etc., which you may easy to get.
-
Beautiful Report: A beautiful and detailed report analysis, where to store, visualize, edit, manage, and download all the test cases collected with SoloX no matter where you are or when is it.
-
Useful Monitoring Settings: Support setting alarm values, collecting duration, and accessing mobile devices on other PC machines during the monitoring process.
-
PK Model: Supports simultaneous comparative testing of two mobile devices.
- 🌱2-devices: test the same app on two different phones.
- 🌱2-apps: test two different apps on two phones with the same configuration.
-
Collect In Python/API: Support Python and API to collect performance data, helping users easily integrate into automated testing processes.
Develop
debug
- remove [solox] moudel in all python file
example
from solox.view.apis import api
change to
from view.apis import api
- run [python ./solox/debug.py]
cd solox
python debug.py
Browser
Terminal
💕Thanks