关于 adb 的问题,搞安卓的同学进来帮忙看看

2023-07-13 13:45:59 +08:00
 yangyuhan12138

我想使用 appnium 或者 airtest 做个小的辅助工具,就是写一段脚本,然后它自动帮你在手机上点点点,但是这两个东西都依赖 adb,他们都是调用 adb 去操作手机的.

现在问题是我想让我的脚本直接在手机上运行(我会安装一个 termux),也就是说在手机的 linux 环境下需要与手机的安卓环境建立一个 adb 连接才行.

所以我的问题就是,有没有什么方法可以建立这个连接,我不希望使用 wifi 或者 usb 中的任意一种连接方式,最终我想把我写好的脚本,直接安装到手机上运行.

有什么方法可以实现吗,或者有没有什么 workround 都可以.

无障碍服务我试过了不行,因为获取不到页面上的信息,目标应用好像是 flutter 写的,只能拿到一个 layout.什么有用的信息都拿不到,所以感觉无障碍服务可以 pass 了.

3524 次点击
所在节点    程序员
35 条回复
yfugibr
2023-07-13 13:47:43 +08:00
Asakijz
2023-07-13 13:48:44 +08:00
auto.js 可能符合你的要求?
Asakijz
2023-07-13 13:49:31 +08:00
@Asakijz 没看到结尾,我的问题
Supplied
2023-07-13 13:49:52 +08:00
shizuku
hicdn
2023-07-13 14:35:27 +08:00
termux 里安装 adb ,手机开 wifi adb ,termux 里 adb connect
qiaofanxing
2023-07-13 15:24:53 +08:00
shizuku 很好用
yangyuhan12138
2023-07-13 15:28:18 +08:00
@hicdn 我先前试了这个方案,显示的连接成功,但是我 adb devices 没有东西我不知道为啥,可能是我用的 adb 不对?我先前用的是 pkg install adb,然后我现在看到 termux 好像专门有个 adb 那个好像权限不太一样?我准备待会儿试试
huangminzone
2023-07-13 15:29:36 +08:00
开 5555 端口或者 root 就可以实现单机
Masoud2023
2023-07-13 15:47:24 +08:00
只为了解决 adb:

1. 能 root 的话改 build.prop 就行
2. 不能 root 的 11 以上能开 adb over wifi
3. 11 以下的话 shizuku
jiager
2023-07-13 16:07:00 +08:00
看下这个帖子,因为我用的是 python ,其实这个方法无论什么语言都可行,因为最终实现方式是调用 adb
https://www.v2ex.com/t/956266
yangyuhan12138
2023-07-13 16:10:03 +08:00
@yfugibr
@Supplied
@qiaofanxing
@Masoud2023
shizuku 好像是要我先有 adb 吧,而且我没看到他可以干啥,看起来像是给普通的应用程序提供了一些 api 可以调用 adb?但是我是想在 termux 运行 appium,我需要达到的目的可能是 termux 中 使用 adb devices 能看到我当前这个手机;先前我试了在 termux 中用 wifi 连接 adbd,连接是连接成功了 但是我输入 adb devices 没有东西出来;这个问题应该可以解决,我还在尝试中...但是他好像依赖了"WIFI",要是我没有局域网怎么办,我想的是 termux 用 adb 连接当前的安卓手机 使用 localhost...他们本来就在一个设备上..但是无线调试如果我没有 WiFi 的话他甚至不让我打开这个选项....
forQ
2023-07-13 16:16:00 +08:00
开启手机无线调试,配对成功后,再 connect
yangyuhan12138
2023-07-13 16:21:41 +08:00
@jiager 这个确实是实现了 termux 里边使用 adb,但是最终还是依赖了 WiFi 呀有没有可能连 wifi 都不要,或者说 这个方案 如果 WiFi 断开连接之后 termux 还能操作手机吗?
qiaofanxing
2023-07-13 16:26:17 +08:00
@yangyuhan12138 #11 “安装”是什么意思呀,你手机上都没有 adb 权限的话,当用户应用装上去权限也不够的。
cairnechen
2023-07-13 16:28:25 +08:00
回想起了以前玩家国梦的时候用 UIAutomator2 刷金币的时光
azhangbing
2023-07-13 16:34:42 +08:00
手机开启无线调试后 可以调用 adb 就是 1 楼说的 shizuku 的方式
yangyuhan12138
2023-07-13 16:46:56 +08:00
@qiaofanxing 就是 appium 那种脚本 直接放到 termux 上去运行,相当于 appium 的服务端,adb 的服务端客户端,还有 appium 的脚本都放在 termux 上运行.
yangyuhan12138
2023-07-13 16:55:44 +08:00
@forQ 确实 我之前 adb pair 完了 没有 connect,所以没有 devices
LykorisR
2023-07-13 16:58:59 +08:00
可以利用无线调试,让程序内置一个魔改的 adb 就行,然后引导用户开启无线 adb ,还有 adb 无线的话是需要配对的
无线连接上之后就可以有权限了,但是无论如何都一定需要一次 adb ,不管你是电脑还是什么,shizuku 也是需要一次开启权限的
yangyuhan12138
2023-07-13 17:02:50 +08:00
@LykorisR 第一次怎么样设置都可以,我想要的时候边不用 WIFI 也能用 adb

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

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

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

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

© 2021 V2EX