V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
hongxi2200
V2EX  ›  Go 编程语言

使用 Golang 来控制你的 Android 设备~

  •  1
     
  •   hongxi2200 ·
    electricbubble · 2020-08-06 08:08:20 +08:00 · 6054 次点击
    这是一个创建于 1576 天前的主题,其中的信息可能已经有所发展或是发生改变。

    接着上次的 IOS 版的 gwda 使用 Golang 来控制你的 iOS 设备~
    这次把拖更的 Android 版也补上

    项目地址: https://github.com/electricbubble/guia2

    Golang 实现的 appium-uiautomator2-server 客户端库,用于控制 Android 设备,实现 UI 自动化操作。(无需 root )

    常用操作已经都实现了,还有 4 个 函数使用频率应该很低,但也争取这几天抓紧时间补上。

    放一个示例代码的执行 GIF

    example

    22 条回复    2020-08-09 15:48:15 +08:00
    playniuniu
        1
    playniuniu  
       2020-08-06 08:24:30 +08:00
    赞一个
    hongxi2200
        2
    hongxi2200  
    OP
       2020-08-06 08:33:32 +08:00
    ydongd
        3
    ydongd  
       2020-08-06 09:02:00 +08:00
    是相当于一个点击模拟吗
    hongxi2200
        4
    hongxi2200  
    OP
       2020-08-06 09:14:10 +08:00
    @ydongd

    不仅仅是 `点击` 操作哈

    // 点击
    _ = driver.Tap(x, y)

    // 滑动
    _ = driver.Swipe(startX, startY, endX, endY)

    // 拖拽
    _ = driver.DragPoint(startPoint, endPoint)

    // 元素的点击
    _ = element.Click()

    // 输入文本
    _ = driver.SendKeys("abc")
    zarte
        5
    zarte  
       2020-08-06 09:28:23 +08:00
    赞个
    zarte
        6
    zarte  
       2020-08-06 09:29:28 +08:00
    啥时候能有不用按照 apk 的就好了
    hongxi2200
        7
    hongxi2200  
    OP
       2020-08-06 09:44:45 +08:00
    @zarte emmm 那就需要 root 了。。
    zcljy
        8
    zcljy  
       2020-08-06 16:28:24 +08:00
    @hongxi2200 图好像挂了 想看看效果 谢谢
    vus520
        9
    vus520  
       2020-08-06 18:51:53 +08:00
    跟 AirTest 一样吗
    hongxi2200
        10
    hongxi2200  
    OP
       2020-08-06 19:25:21 +08:00
    hongxi2200
        11
    hongxi2200  
    OP
       2020-08-06 19:28:52 +08:00
    @vus520 直接和 AirTest 比的话。。我这个就差远了,但最基础的功能是接近的。。
    以图片来进行位置的获取并点击,这样的操作我这几天会更新一个 扩展库 来实现哒,类似于 [gwda-ext-opecv]( https://github.com/electricbubble/gwda-ext-opencv)
    sadfQED2
        12
    sadfQED2  
       2020-08-07 12:42:46 +08:00 via Android
    底层原理是用的无障碍吗?我也写了一个类似的东西,底层用的是 xposed 提权,然后引入了 opencv 做图像处理。另外提供了 webapi 做远程控制

    https://github.com/Jinnrry/RobotHelper
    hongxi2200
        13
    hongxi2200  
    OP
       2020-08-07 19:10:55 +08:00
    @sadfQED2

    appium-uiautomator2-server 实际用的就是 UiAutomator2 哈

    话说,你的这个让我想起来了另一个作者的项目 https://github.com/w296488320/XposedAppium

    你们也很酷喔
    sadfQED2
        14
    sadfQED2  
       2020-08-07 20:13:38 +08:00 via Android
    @hongxi2200 哈哈哈
    hongxi2200
        15
    hongxi2200  
    OP
       2020-08-07 20:15:12 +08:00
    @sadfQED2 你的 webapi 要是支持 WebDriver 协议标准,那就更酷哇
    sadfQED2
        16
    sadfQED2  
       2020-08-07 20:37:25 +08:00 via Android
    @hongxi2200 哈哈哈,确实。不过写这个 webapi 是方便爬虫部署用的,不是拿来做测试用的。
    hongxi2200
        17
    hongxi2200  
    OP
       2020-08-08 09:23:24 +08:00
    @sadfQED2 嘿,我是纯粹为了搞着玩玩
    loading
        18
    loading  
       2020-08-09 07:33:05 +08:00
    建议换一个演示的 app
    hongxi2200
        19
    hongxi2200  
    OP
       2020-08-09 09:40:22 +08:00
    @loading 😂我手上没有 Android 手机。。只能用模拟器。。然而好多 App 都限制了模拟器使用。。打开就闪退。。
    hongxi2200
        20
    hongxi2200  
    OP
       2020-08-09 09:42:15 +08:00
    @loading 不过我昨天用一台 Mi10 Pro 也测试了下,但因为不是我的手机。。我也只是临时用了一下,没有代码问题。。
    loading
        21
    loading  
       2020-08-09 11:00:12 +08:00
    @hongxi2200 我的意思是你这个 app 有点敏感,你这个 repo 这么优秀,别太作呢。
    hongxi2200
        22
    hongxi2200  
    OP
       2020-08-09 15:48:15 +08:00
    @loading 的确是我没太注意这方面,借用了台 MI8 重新替换了 示例代码 和 GIF 了哈 https://github.com/electricbubble/ImageHosting/blob/master/img/202008091517_guia2.gif
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5509 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 08:20 · PVG 16:20 · LAX 00:20 · JFK 03:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.