Windows|Windows PC连接Android adb shell的方法
今天突发奇想,想用跟笔记本连接的键鼠操作自己的安卓设备(具体操作先挖个坑之后再填)。
首先遇到的问题就是,如何用Windows PC连接自己的安卓设备,因为笔者的笔记本的USB接口有限,又有多部安卓设备,还想同时对多部Android设备进行调试,以下是探索到方法:
一、查看Windows的环境变量:
-
win徽标键+R
打开运行框 - 键入
cmd
打开命令指示符 -
echo %PATH%
获取当前的环境变量(误删环境变量/误删PATH时可以依照此方法获取环境变量)
环境变量里有C:\Android\;
表明已经安装ADB(Android Debug Bridge)
- 在cmd命令指示符里执行
adb keygen C:\Android\.android\adbkey
- 在
C:\Android\.android\
建立了两个文件:adbkey
(私钥)和adbkey.pub
(公钥)
/data/misc/adb/adb_keys
(需要root访问权限)#TODO 挖个坑之后来补二、(延伸学习)公、私钥工作的原理: 当你执行“adb shell”时,adb.exe会将当前PC的公钥(或者公钥的hash值)(fingerprint)发送给android设备;这时,如果android上已经保存了这台PC的公钥,则匹配出对应的公钥进行认证,建立adb连接;如果android上没有保存这台PC的公钥,则会弹出提示框,让你确认是否允许这台机器进行adb连接,当你点击了允许授权之后,android就会保存了这台PC的
adbkey.pub
(公钥);三、在Android设备中开启USB调试
- "设置 - 关于手机 - 版本号" 连按,直到系统弹出"进入开发者模式"的提示
- "设置 - 开发者选项 - USB调试" 开启
- 用USB将PC与Android设备连接;
- cmd命令指示符执行
adb devices
REM OUTPUT:
REM[serialNumber] [state]
REM[state]: offline/device
adb shell
REM 错误信息一
adb server is out of date.killing...
ADB server didn't ACK
* failed to start daemon *
REM 错误信息一 的 解决方法一:
REM用管理员模式运行cmd
@echo off
REM 错误信息一 的 解决方法二:
tasklist /FI "IMAGENAME eq adb.exe"
REMget the pid of adb.exe METHOD 1
REM or
tasklist | findstr "adb"
REMget the pid of adb.exe METHOD 2REM [Optional]:
REMtasklist /?
REMcmd查询参数帮助的方法,BTW cmd的class attribute帮助文档做的很清晰,值得参考与借鉴taskkill /f /pid 【Windows|Windows PC连接Android adb shell的方法】REMkill a task of pid
REM or
taskkill /f /im "adb.exe"
REMkill a task by image_nameadb kill-server
adb start-server
pause>nul
(方法二)局域网内无线调试:
- 在使用(方法一)有线连接到
adb devices
的时候执行adb tcpip 5555
再断开连接
(步骤1的其他方式:若Android设备已经获取Root权限,也可以在Android设备中安装"终端模拟器(Terminal)",并且在"终端模拟器"中依次执行以下命令:)
setprop service.adb.tcp.port 5555
stop adbd
start adbd
- 在Android设备已连接WiFi的详情找到Android设备的IP地址,例如
192.168.1.100
- 管理员模式运行cmd/PowerShell,执行指令
adb connect 192.168.1.100:5555
这里的端口号5555跟第一步设置为相同即可 adb shell
推荐阅读
- android第三方框架(五)ButterKnife
- Android中的AES加密-下
- 带有Hilt的Android上的依赖注入
- android|android studio中ndk的使用
- Android事件传递源码分析
- RxJava|RxJava 在Android项目中的使用(一)
- Android7.0|Android7.0 第三方应用无法访问私有库
- 深入理解|深入理解 Android 9.0 Crash 机制(二)
- android防止连续点击的简单实现(kotlin)
- Android|Android install 多个设备时指定设备