使用 Golang 来控制你的 Android 设备~ - V2EX
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 6631 次点击
    这是一个创建于 1896 天前的主题,其中的信息可能已经有所发展或是发生改变。

    接着上次的 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     Solana     4833 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 09:47 PVG 17:47 LAX 02:47 JFK 05:47
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86