七、pocoservice无限重启的解决办法

1. 前言

经常有同学会遇到poco不断重启的问题,但是又不知道如何处理,所以今天我们就来详细聊一聊 “poco重启” 这个话题。

2. poco重启的表现

首先,poco重启的表现是非常明显的,设备屏幕会一直闪烁;或者设备画面底部会出现一个提示: pocoservice:poco service is running one ,并且我们还可以看到log里面会重复刷下述的日志:

image

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个图标:

image

另外一个是只有几K的apk,它在手机桌面上不会出现图标,我们可以在应用列表中找到它:

image

但对于新发布的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版本:

  1. 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打造……”:

image

除了点击确定之外,还可以下载我们最新发布的1.2.12版本的IDE,安装里面最新版本的 pocoservice.apk ,在高版本Android设备上将不会再出现这个版本过低的提示。

4. 小结

最后,附上poco重启排查的思维导图,有需要的同学可以收藏起来哦:

image