所有指令控制: http://adbshell.com/

golang与手机如何实现一些自动化操作?虽然不太会把电脑开起来操作手机,不过pi也应该可以与手机互动吧。

比如说来个无人值守功能啥的,语音信箱啥的....任凭想像。

第一步是实现手机与linux的连接,这里使用华为安卓手机,并没有root,反正试过几次都没成功。

ubuntu安装adb

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb

没试过,我是用:https://www.xda-developers.com/install-adb-windows-macos-linux/ 这里介绍的方法

下载即用https://dl.google.com/android/repository/platform-tools-latest-linux.zip

查找设备:adb devices

换了根线就成功了

传数据到手机需要adb shell进入手机系统中,然后上传到手机  adb push 本机 手机

adb pull 获取手机中的文件。

之前的自动跳一跳利用截屏,分析颜色,按住等操作就构成了。

收集一下adb指令,看看有些什么可以利用的,据说这里有更详细的整理GitHub - mzlogin/awesome-adb: ADB Usage Complete / ADB 用法大全

adb root 获取root权限

adb shell input keyevent 82 点亮屏幕 (这里是模拟按了一个键)

adb reboot [bootloader|recovery]    重启设备,可选参数进入bootloader(刷机模式)或recovery(恢复模式)

adb install test.apk -r     adb uninstall -k <package_name>    安装与卸载

adb shell wm size  获取屏幕分辨率

adb shell getprop 获取手机相关信息

adb -s 1b71651 shell  进入某机shell

adb shell service list  后台服务列表

adb shell cat /proc/meminfo 系统内存情况

adb shell input keyevent {key_code}   发送按键

adb shell input text {text} 发送文本

adb shell am start -a android.media.action.STILL_IMAGE_CAMERA 打开照相

adb启动程序命令:adb shell am start_我是程序员-CSDN博客   这里讲了启动一些其它的

Android adb shell am 命令介绍_Lincoln 的专栏-CSDN博客   还有这里也介绍了一些

adb shell am start -a android.intent.action.VIEW geo:0,0?q=beijing   直接启动了地图软件,搜索北京

adb shell am start -a "android.intent.action.VIEW" -t "audio/mp3" -d "file:///mnt/sdcard/music/Honor.mp3" 播放音乐

adb shell input keyevent 85(86暂停,87下一首,88上一首 126暂停)

0 –>  “KEYCODE_UNKNOWN”1 –>  “KEYCODE_MENU”
2 –>  “KEYCODE_SOFT_RIGHT”
3 –>  “KEYCODE_HOME”
4 –>  “KEYCODE_BACK”
5 –>  “KEYCODE_CALL”
6 –>  “KEYCODE_ENDCALL”
7 –>  “KEYCODE_0”
8 –>  “KEYCODE_1”
9 –>  “KEYCODE_2”
10 –>  “KEYCODE_3”
11 –>  “KEYCODE_4”
12 –>  “KEYCODE_5”
13 –>  “KEYCODE_6”
14 –>  “KEYCODE_7”
15 –>  “KEYCODE_8”
16 –>  “KEYCODE_9”
17 –>  “KEYCODE_STAR”
18 –>  “KEYCODE_POUND”
19 –>  “KEYCODE_DPAD_UP”
20 –>  “KEYCODE_DPAD_DOWN”
21 –>  “KEYCODE_DPAD_LEFT”
22 –>  “KEYCODE_DPAD_RIGHT”
23 –>  “KEYCODE_DPAD_CENTER”
24 –>  “KEYCODE_VOLUME_UP”
25 –>  “KEYCODE_VOLUME_DOWN”
26 –>  “KEYCODE_POWER”
27 –>  “KEYCODE_CAMERA”
28 –>  “KEYCODE_CLEAR”
29 –>  “KEYCODE_A”
30 –>  “KEYCODE_B”
31 –>  “KEYCODE_C”
32 –>  “KEYCODE_D”
33 –>  “KEYCODE_E”
34 –>  “KEYCODE_F”
35 –>  “KEYCODE_G”
36 –>  “KEYCODE_H”
37 –>  “KEYCODE_I”
38 –>  “KEYCODE_J”
39 –>  “KEYCODE_K”
40 –>  “KEYCODE_L”
41 –>  “KEYCODE_M”
42 –>  “KEYCODE_N”
43 –>  “KEYCODE_O”
44 –>  “KEYCODE_P”
45 –>  “KEYCODE_Q”
46 –>  “KEYCODE_R”
47 –>  “KEYCODE_S”
48 –>  “KEYCODE_T”
49 –>  “KEYCODE_U”
50 –>  “KEYCODE_V”
51 –>  “KEYCODE_W”
52 –>  “KEYCODE_X”
53 –>  “KEYCODE_Y”
54 –>  “KEYCODE_Z”
55 –>  “KEYCODE_COMMA”
56 –>  “KEYCODE_PERIOD”
57 –>  “KEYCODE_ALT_LEFT”
58 –>  “KEYCODE_ALT_RIGHT”
59 –>  “KEYCODE_SHIFT_LEFT”
60 –>  “KEYCODE_SHIFT_RIGHT”
61 –>  “KEYCODE_TAB”
62 –>  “KEYCODE_SPACE”
63 –>  “KEYCODE_SYM”
64 –>  “KEYCODE_EXPLORER”
65 –>  “KEYCODE_ENVELOPE”
66 –>  “KEYCODE_ENTER”
67 –>  “KEYCODE_DEL”
68 –>  “KEYCODE_GRAVE”
69 –>  “KEYCODE_MINUS”
70 –>  “KEYCODE_EQUALS”
71 –>  “KEYCODE_LEFT_BRACKET”
72 –>  “KEYCODE_RIGHT_BRACKET”
73 –>  “KEYCODE_BACKSLASH”
74 –>  “KEYCODE_SEMICOLON”
75 –>  “KEYCODE_APOSTROPHE”
76 –>  “KEYCODE_SLASH”
77 –>  “KEYCODE_AT”
78 –>  “KEYCODE_NUM”
79 –>  “KEYCODE_HEADSETHOOK”
80 –>  “KEYCODE_FOCUS”
81 –>  “KEYCODE_PLUS”
82 –>  “KEYCODE_MENU”
83 –>  “KEYCODE_NOTIFICATION”
84 –>  “KEYCODE_SEARCH”
85 –>  “TAG_LAST_KEYCODE”

比如:按Home键:adb shell input keyevent KEYCODE_HOME

滑动屏幕  adb shell input touchscreen swipe {x1} {y1} {x2} {y2}

点击屏幕 adb shell input touchscreen tap {x} {y}

录制屏幕 adb shell screenrecord /sdcard/test.mp4

adb shell screenrecord --size 848*480 /sdcard/test.mp4

打电话:adb shell am start -a android.intent.action.CALL -d tel:10086

MAC: adb shell  cat /sys/class/net/wlan0/address

屏幕密度  adb shell wm density

划动解锁  adb shell input swipe 300 1000 300 500

输入文本 adb shell input text hello

把微信调到前台 adb shell am start -n com.tencent.mm/.ui.LauncherUI

设备型号 adb shell getprop ro.product.model

电池情况 adb shell dumpsys battery

IP地址 adb shell ifconfig | grep Mask

CPU信息 adb shell cat /proc/cpuinfo

屏幕截图 adb exec-out screencap -p > sc.png

另一种截屏,没试过 adb shell screencap -p | sed "s/\r$//" > sc.png

----------------------------------------------------------------------------------------------------

adb shell 里有个很实用的命令叫 input,通过它可以做一些有趣的事情。

input 命令的完整 help 信息如下:

Usage: input [<source>] <command> [<arg>...]

The sources are:
      mouse
      keyboard
      joystick
      touchnavigation
      touchpad
      trackball
      stylus
      dpad
      gesture
      touchscreen
      gamepad

The commands and default sources are:
      text <string> (Default: touchscreen)
      keyevent [--longpress] <key code number or name> ... (Default: keyboard)
      tap <x> <y> (Default: touchscreen)
      swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
      press (Default: trackball)
      roll <dx> <dy> (Default: trackball)

比如使用 adb shell input keyevent <keycode> 命令,不同的 keycode 能实现不同的功能,完整的 keycode 列表详见 KeyEvent,摘引部分我觉得有意思的如下:

keycode含义
3HOME 键
4返回键
5打开拨号应用
6挂断电话
24增加音量
25降低音量
26电源键
27拍照(需要在相机应用里)
64打开浏览器
82菜单键
85播放/暂停
86停止播放
87播放下一首
88播放上一首
122移动光标到行首或列表顶部
123移动光标到行末或列表底部
126恢复播放
127暂停播放
164静音
176打开系统设置
187切换应用
207打开联系人
208打开日历
209打开音乐
210打开计算器
220降低屏幕亮度
221提高屏幕亮度
223系统休眠
224点亮屏幕
231打开语音助手
276

如果没有 wakelock 则让系统休眠

 

 

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐