100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > adb无法连接夜神模拟器处理以及文件传输

adb无法连接夜神模拟器处理以及文件传输

时间:2024-03-04 12:24:55

相关推荐

adb无法连接夜神模拟器处理以及文件传输

环境说明:win7系统

前言

平常通过电脑连接真机设备,可以正常连接,没有问题,一直没有连接过模拟器,今天因为需要用到root权限,而模拟器默认开启root 权限的,所以尝试连接模拟器,但是出现了问题,如下:

提示:显示adb server的版本号和当前的客户端不匹配,且查看设备时是没有设备号的,那么下一步操作也就无法进行

一、adb无法连接夜神模拟器处理过程

1.adb无法连接夜神模拟器,基础配置

百度找到解决办法:即夜神模拟器也要配置环境变量 ,具体过程如下:

(1)关闭所有的adb进程(如何通过命令行关闭进程见1.2节)

(2)找到sdk的adb.exe文件并复制

$where adbE:\SDK\platform-tools\adb.exe

(3)进入到夜神模拟器的bin目录,粘贴复制的adb.exe

提示:夜神模拟器bin目录下有两个adb文件:adb.exe和nox_adb.exe,复制过去的sdk\adb.exe是去替换nox_adb.exe的,所以当出现粘贴的adb.exe与原有的adb.exe产生冲突时,那么需要保留两个adb.exe,然后将复制过来的adb.exe更名为:nox_adb.exe,删除掉之前的nox_adb.exe,完成替换

(4)配置完成,重启模拟器

(5)再次adb devices连接,验证是否成功,我的成功了,就显示如下:

配置过程参考地址:/cz9025/article/details/78665223

2.关闭进程,重启服务

来说说如何关闭进程,首先需要知道:adb服务默认的占用端口是5037

1.2.1根据端口号查看当前的进程号

$netstat -ano|grep '5037'TCP127.0.0.1:50370.0.0.0:0LISTENING13232

#LISTENING:表示在监听

#13232:这是进程号

1.2.2查看进程对应的是不是adb程序

$ tasklist |findstr "13232"adb.exe13232 Console117,932 K

#第一列显示为:adb.exe,即就是adb的进程

#tip1:windows 下查看进程的命令:tasklist;Linux下查看进程命令是ps

#tip2:tasklist查看所有进程,tasklist|findstr "pid_number"查找对应进程的信息

1.2.3杀掉进程

杀掉进程可以选择两种方式:

方式1:打开任务管理器(Ctr+Alt+Delete),找到进程号:13232,点击该进程,结束进程

方式2:通过命令行的方式:taskkill

taskkill的具体用法详见:taskkill /?

$taskkill /? TASKKILL [/S system [/U username [/P [password]]]]{ [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]描述:使用该工具按照进程 ID (PID) 或映像名称终止任务。参数列表:/S system 指定要连接的远程系统。/U [domain\]user 指定应该在哪个用户上下文执行这个命令。/P [password] 为提供的用户上下文指定密码。如果忽略,提示输入。/FI filter 应用筛选器以选择一组任务。允许使用 "*"。例如,映像名称 eq acme*/PID processid 指定要终止的进程的 PID。使用 TaskList 取得 PID。/IM imagename 指定要终止的进程的映像名称。通配符 '*'可用来指定所有任务或映像名称。/T 终止指定的进程和由它启用的子进程。/F 指定强制终止进程。/? 显示帮助消息。筛选器:筛选器名有效运算符有效值----------- --------------- -------------------------STATUS eq, neRUNNING |NOT RESPONDING | UNKNOWNIMAGENAMEeq, ne映像名称PID eq, ne, gt, lt, ge, le PID 值SESSION eq, ne, gt, lt, ge, le 会话编号。CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为hh:mm:ss。hh - 时,mm - 分,ss - 秒MEMUSAGEeq, ne, gt, lt, ge, le 内存使用量,单位为 KBUSERNAMEeq, ne用户名,格式为 [domain\]userMODULES eq, neDLL 名称SERVICESeq, ne服务名称WINDOWTITLE eq, ne窗口标题说明----1) 只有在应用筛选器的情况下,/IM 切换才能使用通配符 '*'。2) 远程进程总是要强行 (/F) 终止。3) 当指定远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。例如:TASKKILL /IM notepad.exeTASKKILL /PID 1230 /PID 1241 /PID 1253 /TTASKKILL /F /IM cmd.exe /TTASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exeTASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM *TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"

taskkill也可以通过两种种方法杀掉指定进程:

(1)通过映像名称杀掉进程

$taskkill /im im_name -f

#im_name(映像名称)就是通过tasklist命令返回数据的第一列:adb.exe,详细可看下图

(2)通过进程号杀掉进程

$taskkill /pid pid_number -f

#pid_number就是通过netstat查看5037端口对应的进程号,可以通过tasklist再确认一下是不是adb的进程,再决定是否执行taskkill

温馨提示:

通过实践发现,如果不加强制终止:-f的参数,进程可能杀不死:

A:未加-f参数

B:加了-f参数

二、传输文件

需求是需要从手机中和电脑之间传输文件,adb提供了两个方法:adb pull 和push

(1)adb pull :从手机复制文件至电脑

#格式为:$adb pull 手机存储路径电脑存储路径

那么在执行此命令之前,首先需要连接上手机,知道要复制的文件存储路径是什么,所以完整步骤可参考以下:

$adb shell:进入到手机系统

$cdls:等来切换目录,找到你需要传输文件的地址

$pwd:通过pwd查看当前所在目录的地址,复制下来

$exit:然后退出,执行adb pull

执行成功如下:

(2)adb push :从电脑复制至手机

#格式为:$adb push 电脑存储路径手机存储路径

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。