{"id":50392533,"url":"https://github.com/smart-test-ti/SoloX","last_synced_at":"2026-06-16T10:01:01.901Z","repository":{"id":37015799,"uuid":"124478439","full_name":"smart-test-ti/SoloX","owner":"smart-test-ti","description":"💯SoloX - Real-time collection tool for Android/iOS performance data.（Android性能测试android performance\\iOS性能测试ios performance\\移动端性能测试mobile performance\\APP性能测试app performance\\app性能测试工具）","archived":false,"fork":false,"pushed_at":"2024-09-09T02:25:13.000Z","size":251876,"stargazers_count":1193,"open_issues_count":85,"forks_count":212,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-12-16T19:41:09.866Z","etag":null,"topics":["android-performance","battery","cpu","fps","ios-performance","jank","memory","network","performance-testing"],"latest_commit_sha":null,"homepage":"https://smart-test-ti.github.io/solox","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smart-test-ti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-09T02:49:24.000Z","updated_at":"2025-12-15T02:15:05.000Z","dependencies_parsed_at":"2024-01-14T16:10:07.585Z","dependency_job_id":"75c792be-1b4a-4904-b629-1b2b8d4c9a46","html_url":"https://github.com/smart-test-ti/SoloX","commit_stats":{"total_commits":247,"total_committers":7,"mean_commits":"35.285714285714285","dds":"0.30364372469635625","last_synced_commit":"4768305e630bcba0862c0b0b9638fbfb06d4ce20"},"previous_names":[],"tags_count":81,"template":false,"template_full_name":null,"purl":"pkg:github/smart-test-ti/SoloX","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smart-test-ti%2FSoloX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smart-test-ti%2FSoloX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smart-test-ti%2FSoloX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smart-test-ti%2FSoloX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smart-test-ti","download_url":"https://codeload.github.com/smart-test-ti/SoloX/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smart-test-ti%2FSoloX/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34400456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android-performance","battery","cpu","fps","ios-performance","jank","memory","network","performance-testing"],"created_at":"2026-05-30T19:00:29.697Z","updated_at":"2026-06-16T10:01:01.892Z","avatar_url":"https://github.com/smart-test-ti.png","language":"HTML","funding_links":[],"categories":["🔥 最近收录"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca\u003eEnglish\u003c/a\u003e | \u003ca href=\"./README.zh.md\"\u003e中文\u003c/a\u003e | \u003ca href=\"./FAQ.md\"\u003eFAQ\u003c/a\u003e | \u003ca href=\"https://mp.weixin.qq.com/s?__biz=MzkxMzYyNDM2NA==\u0026mid=2247484506\u0026idx=1\u0026sn=b7eb6de68f84bed03001375d08e08ce9\u0026chksm=c17b9819f60c110fd14e652c104237821b95a13da04618e98d2cf27afa798cb45e53cf50f5bd\u0026token=1402046775\u0026lang=zh_CN\u0026poc_token=HKmRi2WjP7gf9CVwvLWQ2cRhrUR3wmbB9-fNZdD4\" target=\"__blank\"\u003e使用文档\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"#\"\u003e\n\u003cimg src=\"https://cdn.nlark.com/yuque/0/2024/png/153412/1715927541315-fb4f7662-d8bb-4d3e-a712-13a3c3073ac8.png?x-oss-process=image%2Fformat%2Cwebp\" alt=\"SoloX\" width=\"100\"\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://pypi.org/project/solox/\" target=\"__blank\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/solox\" alt=\"solox preview\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pepy.tech/project/solox\" target=\"__blank\"\u003e\u003cimg src=\"https://static.pepy.tech/personalized-badge/solox?period=total\u0026units=international_system\u0026left_color=grey\u0026right_color=orange\u0026left_text=downloads\"\u003e\u003c/a\u003e\n\n\u003cbr\u003e\n\u003c/p\u003e\n\n## 🔎Preview\n\nSoloX - Real-time collection tool for Android/iOS performance data.\n\nQuickly locate and analyze performance issues to improve application performance and quality. No need for ROOT/jailbreak, plug and play.\n\n![10 161 9 178_50003__platform=Android lan=en (1)](https://github.com/smart-test-ti/SoloX/assets/24454096/61a0b801-23b4-4711-8215-51cd7bc9dc04)\n\n## 📦Requirements\n\n- Install Python 3.10 + [**Download**](https://www.python.org/downloads/)\n- Install adb and configure environment variables (SoloX's  adb may not necessarily fit your computer) [**Download**](https://developer.android.com/studio/releases/platform-tools)\n\n💡 If Windows users need to test ios, install and start Itunes. [**Documentation**](https://github.com/alibaba/taobao-iphone-device)  (Not support iOS17)\n\n## 📥Installation\n\n### default\n\n```shell\npip install -U solox    (pip install solox==version)\n```\n\n### mirrors\n\n```shell\npip install -i  https://mirrors.ustc.edu.cn/pypi/web/simple -U solox\n```\n\n💡 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.\n\n## 🚀Quickstart\n\n### default\n\n```shell\npython -m solox\n```\n\n### customize\n\n```shell\npython -m solox --host=ip --port=port\n```\n\n## 🏴󠁣󠁩󠁣󠁭󠁿Python API\n\n```python\n# solox version : \u003e= 2.8.5\nfrom solox.public.apm import AppPerformanceMonitor\nfrom solox.public.common import Devices\n\nd = Devices()\nprocessList = d.getPid(deviceId='ca6bd5a5', pkgName='com.bilibili.app.in') # for android\nprint(processList) # ['{pid}:{packagename}',...]\n\napm = AppPerformanceMonitor(pkgName='com.bilibili.app.in',platform='Android', deviceId='ca6bd5a5', surfaceview=True, \n                            noLog=False, pid=None, record=False, collect_all=False, duration=0)\n# apm = AppPerformanceMonitor(pkgName='com.bilibili.app.in', platform='iOS') only supports one device\n# surfaceview： False = gfxinfo (Developer - GPU rendering mode - adb shell dumpsys gfxinfo)\n# noLog : False (Save test data to log file)\n\n# ************* Collect a performance parameter ************* #\ncpu = apm.collectCpu() # %\nmemory = apm.collectMemory() # MB\nmemory_detail = apm.collectMemoryDetail() # MB\nnetwork = apm.collectNetwork(wifi=True) # KB\nfps = apm.collectFps() # HZ\nbattery = apm.collectBattery() # level:% temperature:°C current:mA voltage:mV power:w\ngpu = apm.collectGpu() # %\ndisk = apm.collectDisk()\nthermal = apm.collectThermal()\n# ************* Collect all performance parameter ************* #\n \nif __name__ == '__main__':\n  apm = AppPerformanceMonitor(pkgName='com.bilibili.app.in',platform='Android', deviceId='ca6bd5a5', surfaceview=True, \n                              noLog=False, pid=None, record=False, collect_all=True, duration=0)\n  # apm = AppPerformanceMonitor(pkgName='com.bilibili.app.in', platform='iOS',  deviceId='xxxx', noLog=False, record=False, collect_all=True, duration=0)\n  #duration: running time (second)\n  #record: record android screen\n  apm.collectAll(report_path=None) # report_path='/test/report.html'\n\n# in other python file\nfrom solox.public.apm import initPerformanceService  \n\ninitPerformanceService.stop() # stop solox\n```\n\n## 🏴󠁣󠁩󠁣󠁭󠁿Service API\n\n### Start the service in the background\n\n```\n# solox version \u003e= 2.1.5\n\nmacOS/Linux: nohup python3 -m solox \u0026\nWindows: start /min python3 -m solox \u0026\n```\n\n### Request performance data from api\n\n```shell\nAndroid: http://{ip}:{port}/apm/collect?platform=Android\u0026deviceid=ca6bd5a5\u0026pkgname=com.bilibili.app.in\u0026target=cpu\niOS: http://{ip}:{port}/apm/collect?platform=iOS\u0026pkgname=com.bilibili.app.in\u0026target=cpu\n\ntarget in ['cpu','memory','memory_detail','network','fps','battery','gpu']\n```\n\n## 🔥Features\n\n* **No ROOT/Jailbreak:** No need of Root for Android devices, Jailbreak for iOS devices. Efficiently solving the test and analysis challenges in Android \u0026 iOS performance.\n* **Data Integrality:** We provide the data about CPU, GPU, Memory, Battery, Network,FPS, Jank, etc., which you may easy to get.\n* **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.\n* **Useful Monitoring Settings:** Support setting alarm values, collecting duration, and accessing mobile devices on other PC machines during the monitoring process.\n* **PK Model:** Supports simultaneous comparative testing of two mobile devices.\n\n  - 🌱2-devices: test the same app on two different phones.\n  - 🌱2-apps: test two different apps on two phones with the same configuration.\n* **Collect In Python/API:** Support Python and API to collect performance data, helping users easily integrate into automated testing processes.\n\n## Develop\n\n* https://github.com/pallets/flask\n* https://github.com/tabler/tabler\n\n#### debug\n\n* remove [solox] moudel in all python file\n\n```python\n\nexample\nfrom solox.view.apis import api  \nchange to \nfrom view.apis import api\n\n```\n\n* run [python ./solox/debug.py]\n\n```python\ncd solox\npython debug.py\n```\n\n## Browser\n\n\u003cimg src=\"https://cdn.nlark.com/yuque/0/2023/png/153412/1677553244198-96ce5709-f33f-4038-888f-f330d1f74450.png\" alt=\"Chrome\" width=\"50px\" height=\"50px\" /\u003e\n\n## Terminal\n\n- windows: PowerShell\n- macOS：iTerm2 (https://iterm2.com/)\n\n## 💕Thanks\n\n- https://github.com/alibaba/taobao-iphone-device\n- https://github.com/Genymobile/scrcpy\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmart-test-ti%2FSoloX","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmart-test-ti%2FSoloX","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmart-test-ti%2FSoloX/lists"}