迫于找不到好用的 Android 自动化软件,自己做了一套,顺带开个源

2021-01-28 13:50:05 +08:00
 Austin2035

简介:

hermit,是一款支持多种语言的轻量级的安卓操作软件,支持快速的点击、滑动、读取与设置剪切板、模拟输入、寻找控件并点击等。摆脱 ADB,通过 HTTP API 的方式控制,对局域网和模拟器支持不错。

hermit 的工作方式

hermit 项目地址

APP: https://github.com/LookCos/hermit
Python 操作模块: https://github.com/LookCos/hermit-py
喜欢别忘了来颗 star
蓝奏云下载地址: https://wwi.lanzous.com/b05mv4csd 密码:22qz

使用方法

在要被操作的手机上安装 hermit APP,如果使用 python,请下载 pyhermit 并安装,其他语言请移步 github,根据 HTTP API 直接操作。

演示:群聊抢红包

import time
from pyhermit import Hermit

hm = Hermit('127.0.0.1:9999')

# 每隔 0.1 秒监视一次
while not hm._is_clickable('text', '微信红包'):
    time.sleep(0.1)

hm.click_text('微信红包')
# 模拟器配置低,打开红包过程略慢,需要等待 1 秒钟,才能再开。
hm.click_desc('开', 1)

演示:打开酷安并快速找到并进入 iPhone SE 区

import time
from pyhermit import Hermit
# 实例化
hm = Hermit('127.0.0.1:9999')
# 按下 home 键
hm.action_home()
hm.click_channel([
    {'text': '酷安'}, {'text': '闲聊'},
    {'text': '数码'}, {'text': '平板'},
    {'text': '手机'}, {'text': '苹果'}
])
# 如果没找到,就一直下滑,直到找到为止。
while not hm._is_clickable('text', 'iPhone SE'):
    hm.swipe_up(4)
    time.sleep(0.2)
hm.click_text('iPhone SE')

打开微信,并搜索 V2EX

import time
from pyhermit import Hermit

hm = Hermit('127.0.0.1:9999')

hm.click_text('微信', 1)
hm.shell_tap(670, 86)
time.sleep(1)
hm.input('id', 'com.tencent.mm:id/bhn', 'v2ex')
hm.click_id('com.tencent.mm:id/b3b', 1)
time.sleep(5) # 等待搜索结果
hm.swipe_up(5)
5725 次点击
所在节点    分享创造
26 条回复
alfchin
2021-01-28 14:10:19 +08:00
有意思。。。
sadfQED2
2021-01-28 14:10:37 +08:00
Austin2035
2021-01-28 14:13:28 +08:00
@sadfQED2 哈哈,你的有我的快没
yuuko
2021-01-28 14:20:20 +08:00
有意思 star 了
Austin2035
2021-01-28 14:31:33 +08:00
@alfchin
@yuuko
多谢支持,它的主要特点就是,操作简单,反应快。
如果反响不错,嘿嘿,我会加入更多功能滴,
由于 hermit 是通过 api 操作的,理论上可以做到 auto.js 那种交互方式,
进一步降低门槛。
goodryb
2021-01-28 14:44:07 +08:00
所以虚拟机里面跑微信会不会被封号
qa2080639
2021-01-28 14:46:03 +08:00
Airtest
Austin2035
2021-01-28 14:54:23 +08:00
@qa2080639 我这个安装包只有 5M,和 airtest 不是一层面的东西
@goodryb 提前养好微信号就不会,新注册一登陆就封。
lopetver
2021-01-28 17:09:01 +08:00
突然有个邪恶的想法,再加些功能是不是可以做成类似灰鸽子之类的....
demo06
2021-01-28 17:21:52 +08:00
@lopetver 你是说后台运行之类的?
thekkk
2021-01-28 17:57:59 +08:00
嚯~
lzl299
2021-01-28 18:25:28 +08:00
@goodryb 上次用雷电模拟器被封了一个
jowenz
2021-01-28 20:31:42 +08:00
和 uiautomator2 有什么不同呢。。能做到屏幕找图吗?试过几个自动化操作的,找图都是屏幕截图后,读取文件再比较与目标比较。。
Austin2035
2021-01-28 21:45:39 +08:00
@jowenz 这个是基于无障碍和 root 的,速度比较快,安装也比较方便,安装包大小只有 5M 。另外由于是基于 http 的,对多种语言都支持。如果反响好,后续我会继续完善。
E520
2021-01-29 09:47:51 +08:00
免 root 吗
Austin2035
2021-01-29 09:57:15 +08:00
@E520 有了 root 才能体验完善。。
xinyana
2021-01-29 17:20:15 +08:00
@lzl299 怕封号,用 tg 啊,微信对开发者不友好
37miao
2021-02-01 17:55:43 +08:00
等一个不需要 root 的版本,
另外这个和 autojs 有啥区别
Austin2035
2021-02-01 18:15:58 +08:00
@37miao auto.js 不能对接 python 、Java 从电脑控制,另外批量搞起来也不太方便。
如果是自动化测试,我想,还是用自己擅长的语言控制比较方便。
至于批量方便,它也是支持的,只需要在批量安装软件到这些设备。然后代码批量实例化控制就行了。
37miao
2021-02-01 18:18:22 +08:00
@lookcos 牛批,坐等不需要 root 的版本

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/749211

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX