news 2026/10/3 7:11:09

SoloPi 下载与使用指南:不写一行代码,搞定安卓性能测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SoloPi 下载与使用指南:不写一行代码,搞定安卓性能测试

SoloPi 下载与使用指南:不写一行代码,搞定安卓性能测试

关键词:SoloPi 下载、SoloPi 使用教程、Android 性能测试、录制回放、帧率 / CPU / 内存 / 流量采集、一机多控

做安卓测试的同学大概都有过这样的经历:想测一个 App 的内存和帧率,先要装 Android Studio、写 Instrumentation、加埋点、重新打包……一圈下来,测试还没开始,半天已经过去了。

SoloPi(Soloπ)就是为解决这个痛点而生的:它把性能采集和 UI 自动化变成"在手机上点几下"就能完成的事,不需要改被测应用的任何一行代码。这篇文章把下载渠道、安装配置、四大功能实测,以及踩坑经验一次讲清楚。


一、SoloPi 是什么

SoloPi 是蚂蚁集团(Ant Financial / 支付宝)开源的一款无线化、非侵入式的 Android 自动化测试工具,采用 Apache 2.0 协议,源码托管在 GitHub 的 alipay/SoloPi。

它的核心定位可以概括为三句话:

  • 不侵入:不需要被测 App 集成任何 SDK、不需要重新打包,纯黑盒采集;
  • 无线化:通过 ADB over Wi-Fi 连接,手机不用一直插着数据线;
  • 单人可完成:录制、回放、看性能曲线,全在一台手机上完成。

三大核心功能

功能说明典型场景
录制回放录下你在手机上的所有点击、滑动、输入操作,生成脚本后可在任意设备上回放冒烟回归、Bug 复现路径固化
性能测试实时采集 CPU、内存(PSS)、网络流量、FPS 等指标,悬浮窗展示并生成曲线图版本间性能对比、性能卡点排查
一机多控一台设备操作,多台设备同步执行多机型兼容性验证

注意:开源版本不包含"一机多控"功能,因为它当时还不够稳定。需要使用多机同步的话,得走官方商用渠道或自行基于源码扩展。

此外还有几个很实用但容易被忽略的能力:

  • 启动耗时计算:能测出 App 的真实冷启动时间,还支持通过广播与 UI 自动化脚本联动;
  • 环境模拟:可以限速网络,模拟弱网场景;
  • 性能数据导出:曲线图的统计数据(ff(x)积分、平均值、最小/最大值)可以直接拿来做测试报告。

二、下载渠道

目前有三条比较可靠的下载路径,建议按顺序取用。

1. GitHub Releases(推荐,版本最新)

这是唯一能拿到最新版本的渠道:

  • 项目主页:https://github.com/alipay/SoloPi
  • 安装包下载页:https://github.com/alipay/SoloPi/releases

截至目前的版本演进情况:

版本发布时间说明
v1.0.22026-08-19最新版,修复悬浮窗授权流程
v1.0.12026-08-181.x 系列首个版本
v0.12.02022-05-09长期被广泛使用的稳定老版本
v0.11.2 / v0.11.1 / v0.10.x …2019 ~ 2021历史版本

v1.0.2 的更新内容集中在权限体验上,非常值得升级:

修复悬浮窗授权流程: - 从系统悬浮窗设置返回后自动复查授权并继续流程 - 避免权限页面快速结束时回调丢失 - Android 6.0 及以上使用公开系统设置入口,并在入口不可用时回退到应用详情页

如果你之前遇到过"给了悬浮窗权限仍然不弹性能窗"的问题,升到 1.0.2 基本就好了。

2. 蒲公英(pgyer)

  • 下载页:https://www.pgyer.com/solopi

蒲公英上的是0.12.0 (build 1),大小约 5.1 MB,更新时间停留在 2022-11-03。它的优势是扫码即装,适合快速体验或者给不熟悉 GitHub 的同学分发;缺点是版本落后于 GitHub,无法获得 1.x 的权限修复。页面还明确提示"该应用来源于第三方产品,请甄别风险后进行安装",下载时留意一下。

3. 从源码自行构建

适合需要二次开发,或者想自己打一个内部分发包的团队:

macOS 10.14.3 Android Studio 3.2 Gradle 4.4(不建议升级) CMake 3.6.4111459(不建议升级) NDK 15.2.4203819 TargetApi 25 / MinApi 18

注意:务必关闭 Android Studio 的 Instant Run,否则编译出来的 App 无法正常工作。这是官方文档专门强调的一条。

源码目录结构大致如下,方便定位功能代码:

src/ ├── app # 应用业务逻辑 ├── shared # 核心功能 ├── common # 应用架构 ├── mdlibrary # ExportService 代理生成 ├── permission # 权限管理 ├── AdbLib # ADB 连接 └── androidWebscoket # Android WebSocket

三、安装与环境配置

第 1 步:手机开启开发者模式

  1. 打开「设置」→「关于手机」;
  2. 连续点击「版本号」7 次,系统提示"您现在处于开发者模式";
  3. 返回上一级,进入「开发者选项」,打开USB 调试。

(Android 8.0 及以上,先进入「系统」再找「关于手机」。)

第 2 步:安装 APK 并授权

安装 SoloPi 后首次启动,需要逐个授予权限,缺一不可:

  • 悬浮窗权限:性能悬浮窗、录制悬浮球都依赖它,不给就什么都看不到;
  • 无障碍服务:录制回放和控件识别依赖它;
  • 存储权限:用于保存脚本与数据;
  • 后台弹出界面(部分国产 ROM 需要):小米等机型必须打开,否则录制会"录了但没反应"。

第 3 步:配置 ADB 无线连接

性能采集需要走 ADB 通道。先配置 SDK 环境变量:

# 下载 platform-tools 后解压,把路径加到系统环境变量ANDROID_SDK=${sdk path}

Windows 10 以上在新的命令行窗口立即生效,老系统需要重启;Linux / macOS 可以用echo $ANDROID_SDK验证。

验证设备连接:

# Windows%ANDROID_SDK%\platform-tools\adb.exe devices# macOS / Linux$ANDROID_SDK/platform-tools/adb devices

能列出设备号就说明通了。然后切到 Wi-Fi 调试模式:

# 单设备adb tcpip5555# 多设备需要指定序列号adb-s${serial number}tcpip5555

看到restarting in TCP mode port: 5555就成功了,此时可以拔掉数据线。

如果命令行没有返回device,优先检查:设备驱动是否装好、USB 调试是否打开、部分机型需要把连接模式改成MTP(媒体传输协议)。


四、功能实测:四个维度的性能数据长什么样

下面是我在一台 Android 设备上,对目标应用「夜律 NightHabit」做的完整一轮采集,涵盖内存、CPU、流量、流畅度四项指标。

4.1 内存测试

选择「内存」指标后,SoloPi 会实时展示目标应用的 PSS 内存:

这一屏信息量其实很大,值得逐项拆解:

位置内容解读
顶部悬浮窗目标应用:夜律 NightHabit采集对象明确
悬浮窗可用内存 5004MB / 总内存 5942MB设备总内存约 5.8GB,可用余量充足,排除系统内存压力干扰
悬浮窗采样区间 20261002103552 - 20261002103637约 45 秒的采样窗口
曲线标题PSS-main-3163 - Memory指标为 PSS,进程号 3163
统计数据ff(x): 1723.96,平均 61.47,最小 52.62,最大 69.60全程波动约 17MB,平均值 61.47MB

曲线形态也很有代表性:第 8 秒附近有一个 52.62MB 的深谷,随后快速拉升到接近 69.60MB 的峰值,中后段在 58 ~ 62MB 之间趋于平稳。这种"启动期剧烈波动、稳定期平缓"的曲线,通常意味着应用在启动阶段做了较多初始化与内存分配(图片解码、缓存预建等),之后进入稳态。

做版本对比时,最该盯的就是这个稳态区间——如果新版本稳态从 61MB 涨到 80MB,那就是明确的内存劣化信号。

4.2 CPU 测试

切换到「CPU」指标后,可以看到实时负载与曲线:

  • 悬浮窗实时值:全局 3.52%,CPU 占用核数0 核,内存占用 0MB;
  • 曲线指标:全局占用 - CPU(单位 %);
  • 统计数据:ff(x): 104.79,平均5.51%,最小1.00%,最大27.04%。

曲线特征非常清晰:前 10 秒是启动期的密集波动(4% ~ 10%),第 10 秒后掉到 1% ~ 2% 的低位平稳区,唯独在约第 16 秒出现了一根 27.04% 的孤立尖峰。

这里有两个关键判读点:

  1. 孤立尖峰通常对应一次一次性动作——页面跳转、大图加载、列表批量渲染。结合内存曲线的峰值位置一起看,很容易定位到是哪一步操作引起的;
  2. 低位数平稳段就是"稳态 CPU",这才是版本对比时最有价值的数字。平均值容易被启动期的波动带偏,建议以稳定段的平均值为准。

顺带一提,悬浮窗里的「CPU 负载」「CPU 占用核数」「内存占用」都带滑块,可以在采集过程中动态调整阈值,用来做超标告警。

4.3 流量测试

流量维度 SoloPi 支持两个视角:上行速率和累计流量。

视角一:进程上行速率

  • 悬浮窗汇总:total: 下 0.0K / 累计 62.0K,total: 上 0.0K / 累计 58.6K;
  • 曲线:进程上行速率-main-5902 - Network,单位 KB/s;
  • 统计:ff(x): 0.30,平均0.02 KB/s,最小0.00,最大0.21。

这张图几乎是"安静应用"的教科书样本:绝大多数采样点贴着 0,只有 3 根窄脉冲(约 0.16 ~ 0.21 KB/s),说明应用在这段时间没有持续的网络请求,只发了几次心跳类的小包。

视角二:累计全局下行流量

切换指标下拉框到「累计全局下行流量」后:

  • 悬浮窗累计:下 71.5K,上 68.3K(比上一屏略有增长);
  • 统计:ff(x): 496.50,平均24.79,最小0.00,最大46.85(单位 KB)。

曲线是一条单调递增的阶梯:前 2 秒纹丝不动(0 ~ 2KB),第 3 秒突然跳升到约 8KB,随后以每 2 秒一跳的节奏稳定爬升到 44KB 附近。阶梯状说明数据是分批次按需拉取的,而不是持续流式下载——通常对应列表分页加载或图片懒加载。

流量测试最容易被忽略的一点:悬浮窗右侧有个「清零」按钮。想测某个具体操作(比如"点进详情页")消耗多少流量,先在操作前点清零,操作后再读累计值,比看全程曲线精确得多。

4.4 流畅度测试(帧率 FPS)

最后是流畅度,指标下拉框选择「帧率 - FPS」:

这一屏的数据恰恰暴露了 SoloPi 使用中最值得警惕的一类问题。统计数据是这样的:

ff(x): 144416.97 平均值: 7663.68 最小值: 37.00 最大值: 94301.00

平均帧率 7663 FPS、最大 94301 FPS——这在物理上显然不可能。对比其他三项指标的合理数值,可以判断这不是应用真的"飞起来了",而是帧率指标采集异常。

常见的成因有这几类,遇到时可以按顺序排查:

  1. 设备 / 系统版本兼容性问题:不同 ROM 的帧率数据源(如gfxinfo、SurfaceFlinger 统计)实现差异较大,部分机型会返回累计帧数而非瞬时帧率,导致数值量级失控;
  2. 无障碍服务或悬浮窗权限未完全生效:采集链路缺环时可能读到脏数据;
  3. 采样窗口过短:本次样本区间20261002105125 - 20261002105354仅约 2.5 分钟,前两个点的异常值就足以把平均值彻底带偏。

所以这里给一条实测经验:拿到任何 SoloPi 曲线,先做一次"数值合理性"体检——内存是否在几十到几百 MB、CPU 是否在 0 ~ 100%、帧率是否在 0 ~ 120 之间。任何一项明显越界,先排查采集环境,再谈优化结论。否则你可能会拿着 7663 FPS 的数据去开性能评审会。

一个更稳妥的做法:同一指标至少采两轮,交叉验证稳定性;如果两轮差异巨大,说明采集本身不可信。


五、避坑清单

SoloPi 的坑基本都集中在国产 ROM 的权限和 ADB 行为差异上,官方文档里也专门列了一节"Known issues":

厂商需要额外处理
小米开发者选项中「USB 安装」和「USB 调试」都要打开;另外必须给 SoloPi 开启「后台弹出界面」权限(设置 → 应用管理 → SoloPi → 权限)
vivo若开发者选项中有「USB 安全访问」之类的开关,必须打开,否则录制和一机多控可能不工作
华为需同时打开「USB 调试」和「仅充电模式下允许 ADB 调试」,否则拔掉 USB 线后 ADB 调试会一并关闭
OPPO系统会每 10 分钟自动取消「USB 调试」勾选,导致 SoloPi 不可用;解决办法是保持手机与电脑连接
魅族若被测应用包含支付等高安全等级功能,需要先关闭系统的安全支付功能
全部强烈建议关闭系统的「安全输入法」(若有),否则输入密码等文本输入场景可能失效

其余几条高频问题:

  • 悬浮窗不弹:优先升级到 v1.0.2;其次确认悬浮窗权限和「后台弹出界面」都已授予。
  • 编译后 App 不工作:检查是否关掉了 Instant Run,以及 Gradle 是否被升级(官方明确不建议升级 Gradle 和 CMake)。
  • adb devices没输出:装设备驱动 / 开 USB 调试 / 连接模式改 MTP,三选一排查。
  • Wi-Fi 调试断连:adb tcpip 5555在重启或断连后需要重新执行。

六、小结

SoloPi 最大的价值在于把性能测试的门槛降到了"点几下手指":

  • 下载:优先GitHub Releases(最新 v1.0.2),要扫码快装可以用蒲公英(0.12.0);
  • 配置:开发者模式 + USB 调试 + 悬浮窗/无障碍/存储权限 +adb tcpip 5555;
  • 使用:选中目标应用 → 勾选指标 → 悬浮窗实时看 → 结束后看曲线和ff(x)/ 平均 / 最值;
  • 心法:先验证数据合理性,再下性能结论;版本对比只看稳态段。

它不能替代完整的性能工程体系(比如方法级 Profiling、内存泄漏检测还得靠 MAT / Android Profiler),但作为快速横向对比、版本回归、日常巡检的工具,它足够轻、足够快,也确实省时间。


参考链接

  • SoloPi 开源仓库:https://github.com/alipay/SoloPi
  • 版本发布页(APK 下载):https://github.com/alipay/SoloPi/releases
  • 蒲公英下载页:https://www.pgyer.com/solopi
  • TesterHome 项目页:https://testerhome.com/opensource_projects/82
  • 问题反馈专区:https://testerhome.com/topics/node152
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/3 7:09:41

遗传编程与遗传算法在算法交易中的分工与实践

简介:一款以苹果股票价格预测为研究对象的算法交易程序,采用Python实现,面向对量化交易与进化计算感兴趣的开发者。项目内置两种独立策略:遗传编程模块通过进化树形种群最小化预测价格与实际价格的误差,融合纳斯达克、…

作者头像 李华
网站建设 2026/10/3 7:09:09

国内吧台椅生产工厂哪家性价比高?

本文为第三方独立整理的便民科普参考内容,无任何商业合作关系,内容仅基于公开信息整理,不构成消费推荐或决策依据。一、吧台椅采购前置需求梳理选择生产工厂前,建议先明确自身核心需求,缩小筛选范围:明确使…

作者头像 李华
网站建设 2026/10/3 7:07:41

OpenClaw技术架构与智能体:从网关到统一API的TaoToken接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华