七、pocoservice无限重启的解决办法
1. 前言
经常有同学会遇到poco不断重启的问题,但是又不知道如何处理,所以今天我们就来详细聊一聊 “poco重启” 这个话题。
2. poco重启的表现
首先,poco重启的表现是非常明显的,设备屏幕会一直闪烁;或者设备画面底部会出现一个提示: pocoservice:poco service is running one
,并且我们还可以看到log里面会重复刷下述的日志:
3. poco重启的常规原因及解决方案
那poco重启可能是有哪些原因导致的呢?我们来详细看下:
1)未设置 允许自动启动、允许后台运行
这是“最最最”常见的1个原因,所以放在第一位来说。在许多品牌手机上,我们都需要检查系统设置中,是否有 电池优化相关 或者 后台活跃相关 的选项,并将 PocoService.apk
设为允许自动启动、允许后台运行,否则就非常容易出现poco无限重启的问题。
这里我们列举几个常见手机品牌的设置方式:
- 华为:手机管家-应用启动管理-PocoService.apk-手动管理,允许自启动开启,允许后台活动开启
- OPPO:设置-电池-应用耗电管理-PocoService.apk-允许应用自启动,允许完全后台行为
- VIVO:电池-后台高耗电-> PocoService 开启
- 一加:设置-电池优化-PocoService-不优化
当然,不同手机品牌,甚至同品牌不同型号手机的配置方式,都有可能不大一样,同学们要自己查找手机里面与 电池优化 和 后台活跃 相关的设置即可,保证给 pocoservice.apk
足够的活跃权限且不被电池优化行为干掉。
2)电脑或者手机上设置了网络代理
网络代理会影响 pocoservice.apk
的启动,所以我们务必关闭PC或手机上连接的网络代理Proxy 。
3)与uiautomator同时启动
pocoservice.apk
不能和 uiautomator
同时启动,否则会相互冲突。
4)Android版本过低
Poco支持 Android SDK API
≥ 19,即Android 4.4及以上,如果Android版本过低,可能影响 pocoservice.apk
的正常运行。
5)重启/重装
如果上述原因都排除之后,仍然无法解决 pocoservice.apk
重启的问题;我们可以尝试 重启手机 ;或者卸载掉手机里面的2个poco相关的apk,再从最新的IDE版本或者pocoui库里面找到最新的pocoservice的apk,重新安装 到我们的手机上。
需要注意的是,使用1.2.11及更低版本的AirtestIDE(及1.0.83及更低版本的pocoui),poco相关的apk包含2个,所以如果是安装的这些版本的poco apk,我们需要卸载/重装2个apk,其中1个是pocoservice.apk,它会在我们的手机界面上出现1个图标:
另外一个是只有几K的apk,它在手机桌面上不会出现图标,我们可以在应用列表中找到它:
但对于新发布的1.2.12版本的IDE(及1.0.84版本的pocoui),已经将2个apk合二为一,大大简化了安装流程,同学们只需要安装/卸载1个 pocoservice.apk
即可。
举个例子,如同学们之前使用的是1.2.11或者更低版本IDE安装的 pocoservice.apk
,想要升级到1.2.12版本的 pocoservice.apk
,只需要卸载手机桌面上带图标的那个 pocoservice.apk
即可,在1.2.12版本的IDE选择Android poco,将会在我们的手机上安装最新版本的 pocoservice.apk
(只会安装1个,仅需安装1次)。
3. 与IDE版本相关的poco重启问题
1)使用1.2.12版本的IDE但设置的Python环境里pocoui不是最新版
如果同学们使用了最新版的IDE1.2.12版本来查看设备的控件树(即设备安装了1.2.12里面的最新的 pocoservice.apk
),但是IDE却设置了本地Python环境,且该Python环境的 pocoui
并未更新到最新版(即1.0.84版本),则在运行脚本时,poco会出现不断重启的情况。
解决办法是将IDE设置的本地Python环境里面的 pocoui
更新至最新的1.0.84版本:
pip install -U pocoui
意思是,如果同学们的设备安装了最新版的 pocoservice.apk
,在IDE上查看控件树就必须使用最新版的IDE,即1.2.12;运行poco脚本时,运行环境里面的 pocoui
也必须是最新版,即1.0.84版本。
2)1.2.11版本的pocoservice不支持在低版本Android使用
1.2.11版本IDE里面的 pocoservice
升级后,兼容了一些H5页面的控件识别,但 在部分低版本Android设备不能正常安装使用(常见于模拟器,因为模拟器的Android版本一般较低)。
或者在低版本Android设备成功安装后,使用时发现 poco 一直在重启。
这时同学们可以卸载该版本安装的 2个 pocoservice.apk
,然后安装比1.2.11版本更低版本IDE的2个 poco apk 使用。
但更好的方式是,卸载之后,安装我们最新发布的1.2.12版本IDE里面的 pocoservice.apk
使用,仅需要安装1个apk即可。
3)1.2.11及旧版本在高版本Android上弹出版本过低提示
1.2.11及更低版本IDE里面的 pocoservice.apk
,在高版本Android设备上启动时,会提示“此应用专为旧版Android打造……”:
除了点击确定之外,还可以下载我们最新发布的1.2.12版本的IDE,安装里面最新版本的 pocoservice.apk
,在高版本Android设备上将不会再出现这个版本过低的提示。
4. 小结
最后,附上poco重启排查的思维导图,有需要的同学可以收藏起来哦: