总结

该问题已经被官方在 1.7.x 的版本中进行修复。但 io.appium.android.ime 仍然会重复安装 以下为对于该问题的查找记录

1.6.x 版本说明

在 appium1.6.x 版本中 每次进行安卓用例测试时 appium 都会安装 unlock.app、setting.app、ime.app
关于这个的解决方式可参考如下 blog
appium 解决每次运行都需要安装 Unlock 以及 AppiumSetting 的问题
或者在 appium 设计到该处问题的源码位置,将其添加判断以上 app 是否安装的逻辑即可

1.7.x 版本说明

当前 npm 版本为 1.7.2 版本,官方已经修复了这个问题,在 1.7.2 的changeLog中说明如下:
image.png;

由于这个问题设计到的代码在 appium-android-driver 这个封装好的组件中,所以具体看一下是什么时候更改的,是在 17 年 10 月份的这次代码提交中修复了该问题。
从 commit 继续往下看,9 月份这里也进行过改动,但是 10 月份改动之后与当前 npm 版本是一致的。
Fix handling of settings and unlock app pushing
image.png

对于 installOrUpgrade 这个函数,它的定义在封装好的 android-adb 类库里面,那么接下来去这里看一下对于这个函数的更改
android-adb commit
这个函数同样进行了两次更改,在 9 月份的更改中采用了外部传参的方式判断是否安装但是在 10 月份的 commit 中又去掉了外部传参的参数,改为在该函数中判断是否安装
image.png

对于这个的总结就是该问题已经被官方在 1.7.x 的版本中进行修复。

2018 年 1 月

2018 年 3 月补充
上述提到三个 app
unlock.app、setting.app、io.appium.android.ime 前两个已经不会被重复安装,但是第三个仍然会重复安装
如果在配置中增加了'desired_caps['unicodeKeyboard'] = True' 就会出现第三个 app 的重复安装情况
可能是因为 ime.app 并不是必须安装的 所以官方没有将这个 app 处理

转载请附上本文连接及作者:进击的程序茗 公众号:jjdcxm


↙↙↙阅读原文可查看相关链接,并与作者交流