Golang Go语言控制你的Android设备

Golang Go语言控制你的Android设备

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

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

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

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

放一个示例代码的执行 GIF

example


更多关于Golang Go语言控制你的Android设备的实战教程也可以访问 https://www.itying.com/category-94-b0.html

23 回复

赞一个

更多关于Golang Go语言控制你的Android设备的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


是相当于一个点击模拟吗



不仅仅是 点击 操作哈

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

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

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

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

// 输入文本
_ = driver.SendKeys(“abc”)

赞个

啥时候能有不用按照 apk 的就好了

emmm 那就需要 root 了。。

图好像挂了 想看看效果 谢谢

跟 AirTest 一样吗

直接和 AirTest 比的话。。我这个就差远了,但最基础的功能是接近的。。
以图片来进行位置的获取并点击,这样的操作我这几天会更新一个 扩展库 来实现哒,类似于 [gwda-ext-opecv]( https://github.com/electricbubble/gwda-ext-opencv)

底层原理是用的无障碍吗?我也写了一个类似的东西,底层用的是 xposed 提权,然后引入了 opencv 做图像处理。另外提供了 webapi 做远程控制

https://github.com/Jinnrry/RobotHelper



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

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

你们也很酷喔

你的 webapi 要是支持 WebDriver 协议标准,那就更酷哇

哈哈哈,确实。不过写这个 webapi 是方便爬虫部署用的,不是拿来做测试用的。

嘿,我是纯粹为了搞着玩玩

建议换一个演示的 app

😂我手上没有 Android 手机。。只能用模拟器。。然而好多 App 都限制了模拟器使用。。打开就闪退。。

不过我昨天用一台 Mi10 Pro 也测试了下,但因为不是我的手机。。我也只是临时用了一下,没有代码问题。。

我的意思是你这个 app 有点敏感,你这个 repo 这么优秀,别太作呢。

的确是我没太注意这方面,借用了台 MI8 重新替换了 示例代码 和 GIF 了哈 https://github.com/electricbubble/ImageHosting/blob/master/img/202008091517_guia2.gif

在利用Golang(Go语言)来控制Android设备时,我们主要依赖于一些现有的库和协议来实现通信和控制。以下是一个简要的概述和几个关键步骤:

  1. ADB(Android Debug Bridge): ADB是Android SDK中的一个命令行工具,它允许你与连接的Android设备进行通信。你可以通过Go语言的标准库os/exec来调用ADB命令,从而实现对设备的控制。例如,可以执行adb shell命令来在设备上运行shell命令。

  2. Go Mobile: Go Mobile是Go语言的一个官方项目,它提供了构建移动应用(包括Android应用)的支持。虽然它主要用于开发应用,但你也可以通过它提供的API与Android设备的底层功能进行交互。

  3. WebSocket或HTTP: 如果你的Android设备上有运行的服务(如一个WebSocket服务器或HTTP服务器),你可以通过Go语言编写客户端来与这些服务进行通信,从而间接控制设备。

  4. 使用第三方库: 社区中可能存在一些已经封装好的Go语言库,这些库提供了与Android设备交互的更高层次的抽象。你可以搜索并尝试使用这些库来简化你的工作。

需要注意的是,控制Android设备通常需要设备的root权限或特定的权限设置。此外,确保你的操作符合设备的安全策略和隐私政策。

总之,通过ADB、Go Mobile、WebSocket/HTTP通信以及第三方库,你可以使用Go语言来实现对Android设备的控制。

回到顶部