STF minicap 支持 Android 10 版本

JamesChung · 2019年09月09日 · 最后由 chenyouan 回复于 2020年05月20日 · 3780 次阅读

minicap 已支持 Android 10 版本,
需要的同学请自取:https://github.com/JamesChungZLL/minicap

共收到 34 条回复 时间 点赞

非常感谢! git 上 stf 和 airtest 都没找到👍 👍

赞一个,docker 的 stf 最新的镜像支持了吗?

TD 回复

我暂时只单独更新了 minicap,没有用 stf 的镜像。不过可以你自己尝试一下把跟 docker 镜像里和 minicap 相关的资源文件替换掉

minitouch 怎么解决呢?

JamesChung 回复

好的,我可能暂时还完不成这个任务,先学习一下

大浪 回复

有关操控这一块,我没有用 minitouch 哎,自己用 java 写的,调用的 framework 层的影藏接口,从 Android4.4 到现在 10 都一直能用。

7楼 已删除
JamesChung 回复

大神,可以共享一下吗😂

大浪 回复

代码就不共享了,给你个思路吧,映射 InputManager 的 injuectEvent(方法名可能不对,但是应该差不多就是这个了)方法,然后参数设定可以参照 uiautomator2.0 的源代码,只有 mousedown、mousemove、mouseup 这三种事件。
加油哦

10楼 已删除
JamesChung 回复

根据这里的说法 android 10 support,这个 api getBuiltInDisplay应该是被废弃了,使用 getPhysicalDisplayToken进行代替。

343 行替换一下方法似乎更好。

供参考。我还没有 10 的源码哈

这里看的确是删除了。

最新的 master 上使用的是getPhysicalDisplayToken方法。

感谢提醒哈,我来看看哈

JamesChung 回复

3Q,在你回复前也写了一个,方案竟然和你一样,Android 5.0 以上 monkey 也是用的这个。
再次请教一下,我这边发现 minitouch 和自定义 touch 方案貌似不能共存。比如我连接一台 Android Q 和一台 Android 9,发现 Android 9 的 shell 会无响应,你这边有相同问题吗?

大浪 回复

我这边因为没有用 minitouch,所以没有遇到你的问题。我也可能没有明白的问题,要不你试试 MTC 真机的效果,里面的真机服务是我们提供的,右边的工具栏应用列表,启动、卸载应用都是用的 adb shell 命令,看看有没有你的现象。

小米 9 的 android 10 系统报错:
Vector<> have different types

不好意思伸个手,请问有直接编译好的 minicap 文件吗?

手里没有小米 9 的设备😜

剪烛 回复

需要仔细看下 readmine,里面的 minicap 文件都有的

剪烛 回复

加 VX,15906217298,我发你

请问一下楼主,我是上个月 docker 安装 stf 的,Android10 识别不了。用楼主的解决方法,应该替换哪些文件进行更新,是进 docker 里面操作吗?

sawchen-github 回复

docker 塞文件是有专门的命令的,具体哪个我忘了;另外不是替换,而是添加,添加 minicap 跟 Andorid10 相关的 so 文件,具体哪些,看一下 git 的 commit history 就知道啦

可以编译出来吗

小米 miui11 这一次更新好像都会导致 minicap 执行出现这个问题,不管是基于 Android10 还是 9 的 miui11 都报这个问题。
我提出一个方案:一旦遇到 minicap 执行出现问题就自动切换成使用隐藏接口快速截图的方案,sdk-level 27 之前包含 27 是

screenshot(Integer, Integer)

27 以上是

screenshot(Rect, Integer,Integer,Integer)

和 minicap 区别就是这个方案会不停地截图,可能流量会高点。

测试生 Android Q 连接不上 Airtest 工具 中提及了此贴 12月09日 17:05

请问,目前官网的 stf 不支持 android10,这个 minicap 要放到 stf 源码的哪个目录,需要改 stf 源码 吗

promise 回复

这个不清楚啊,你自己调试看看哈

仅楼主可见
promise 回复

stf 支持了 android10 没?

请问你们这个问题解决了吗?

有人想用 scrcpy 来代替 minicap 吗,我已经完成了 scrcpy 的测试,但是我没找到办法删除 minicap

大佬,小米 9 的 android 10 系统报错:
Vector<> have different types 怎么解决啊

张沛 回复

有呀,沟通一下子

Jacc 回复

我目前是直接改成了 Java 项目,但是有些 stf 的共功能我还是想要的,你有 stf push 到设备里的那个 STF Service 的使用文档吗。我想我直接使用那个 apk 来完成相关工作,而不再依赖于 stf 那个复杂的代码了。

仅楼主可见
仅楼主可见
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册