V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Austin2035
V2EX  ›  分享创造

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

  •  2
     
  •   Austin2035 ·
    ausitn2035 · 2021-01-28 13:50:05 +08:00 · 5349 次点击
    这是一个创建于 1177 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简介:

    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)
    
    第 1 条附言  ·  2021-01-28 17:59:20 +08:00
    26 条回复    2021-03-22 17:30:08 +08:00
    alfchin
        1
    alfchin  
       2021-01-28 14:10:19 +08:00 via iPhone   ❤️ 1
    有意思。。。
    sadfQED2
        2
    sadfQED2  
       2021-01-28 14:10:37 +08:00 via Android
    Austin2035
        3
    Austin2035  
    OP
       2021-01-28 14:13:28 +08:00
    @sadfQED2 哈哈,你的有我的快没
    yuuko
        4
    yuuko  
       2021-01-28 14:20:20 +08:00   ❤️ 1
    有意思 star 了
    Austin2035
        5
    Austin2035  
    OP
       2021-01-28 14:31:33 +08:00
    @alfchin
    @yuuko
    多谢支持,它的主要特点就是,操作简单,反应快。
    如果反响不错,嘿嘿,我会加入更多功能滴,
    由于 hermit 是通过 api 操作的,理论上可以做到 auto.js 那种交互方式,
    进一步降低门槛。
    goodryb
        6
    goodryb  
       2021-01-28 14:44:07 +08:00
    所以虚拟机里面跑微信会不会被封号
    qa2080639
        7
    qa2080639  
       2021-01-28 14:46:03 +08:00
    Airtest
    Austin2035
        8
    Austin2035  
    OP
       2021-01-28 14:54:23 +08:00
    @qa2080639 我这个安装包只有 5M,和 airtest 不是一层面的东西
    @goodryb 提前养好微信号就不会,新注册一登陆就封。
    lopetver
        9
    lopetver  
       2021-01-28 17:09:01 +08:00
    突然有个邪恶的想法,再加些功能是不是可以做成类似灰鸽子之类的....
    demo06
        10
    demo06  
       2021-01-28 17:21:52 +08:00
    @lopetver 你是说后台运行之类的?
    thekkk
        11
    thekkk  
       2021-01-28 17:57:59 +08:00
    嚯~
    lzl299
        12
    lzl299  
       2021-01-28 18:25:28 +08:00
    @goodryb 上次用雷电模拟器被封了一个
    jowenz
        13
    jowenz  
       2021-01-28 20:31:42 +08:00
    和 uiautomator2 有什么不同呢。。能做到屏幕找图吗?试过几个自动化操作的,找图都是屏幕截图后,读取文件再比较与目标比较。。
    Austin2035
        14
    Austin2035  
    OP
       2021-01-28 21:45:39 +08:00 via iPhone
    @jowenz 这个是基于无障碍和 root 的,速度比较快,安装也比较方便,安装包大小只有 5M 。另外由于是基于 http 的,对多种语言都支持。如果反响好,后续我会继续完善。
    E520
        15
    E520  
       2021-01-29 09:47:51 +08:00
    免 root 吗
    Austin2035
        16
    Austin2035  
    OP
       2021-01-29 09:57:15 +08:00
    @E520 有了 root 才能体验完善。。
    xinyana
        17
    xinyana  
       2021-01-29 17:20:15 +08:00 via Android
    @lzl299 怕封号,用 tg 啊,微信对开发者不友好
    37miao
        18
    37miao  
       2021-02-01 17:55:43 +08:00
    等一个不需要 root 的版本,
    另外这个和 autojs 有啥区别
    Austin2035
        19
    Austin2035  
    OP
       2021-02-01 18:15:58 +08:00
    @37miao auto.js 不能对接 python 、Java 从电脑控制,另外批量搞起来也不太方便。
    如果是自动化测试,我想,还是用自己擅长的语言控制比较方便。
    至于批量方便,它也是支持的,只需要在批量安装软件到这些设备。然后代码批量实例化控制就行了。
    37miao
        20
    37miao  
       2021-02-01 18:18:22 +08:00
    @lookcos 牛批,坐等不需要 root 的版本
    Dawnnnnnn
        21
    Dawnnnnnn  
       2021-02-02 10:14:30 +08:00
    它与 airtest 比有啥优势吗?
    Austin2035
        22
    Austin2035  
    OP
       2021-02-02 10:17:21 +08:00
    @Dawnnnnnn 2.8M 超轻量,安装到被操作设备即可,另外写起来也优雅。再者,速度无敌。
    greatghoul
        23
    greatghoul  
       2021-02-03 10:43:27 +08:00   ❤️ 1
    日常用 automate 比较多,拖拽式的,陪孩子上兴趣班的时候,会写写自动化脚本玩一玩。

    你这个也不错,不过只能电脑上写代码,手机上写代码太麻烦了。
    javisZh
        24
    javisZh  
       2021-03-20 18:10:31 +08:00
    老哥,/viewer 不显示布局范围分析器图片(亮屏给了无障碍权限),一加 3T 和荣耀 Play 都是这样
    Austin2035
        25
    Austin2035  
    OP
       2021-03-21 10:46:10 +08:00
    @javisZh 应该是系统版本的问题。需要安卓版本大于 9.0.
    我即将更新一个 通过投射屏幕截图的版本,届时,将降低对安卓版本的依赖。
    javisZh
        26
    javisZh  
       2021-03-22 17:30:08 +08:00
    @lookcos 好,nice
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1011 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 19:00 · PVG 03:00 · LAX 12:00 · JFK 15:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.