A. 各模拟器adb连接端口
模拟器名称 默认连接端口
夜神安卓模拟器 62001
逍遥模拟器 21503
蓝叠模拟器 5555
雷电 5555
天天 5037
mumu 7555
Genymotion 5555
腾讯手游助手 adb connect 127.0.0.1:5555
通用方法:
如何查看安卓模拟器的ADB端口号?
B. adb 命令获取手机ip地址
1、用windows + r 打开命令行
2、 adb devices 看是否连接到手机
3、adb shell netcfg 这个命令可以查看端口信息
4、adb shell ifconfig wlan0 wlan0就是查看的端口
C. 如何查看模拟器的adb 端口&adb常用命令
在开发中经常会借助一下模拟器进行测试
在不同模拟器中切换时经常会发现android studio 及monitor不能找到我们需要调试的模拟器
以天天模拟器为例 ,已经有2台模拟器,只成功链接1台
用tasklist查看进程pid(当然任务管理器是更好用的)
查看占用端口1992、8716的进程(10836是多开控制台)
30054 端口是与30055配对的
那么我们可以得知另外一台模拟器的adb端口应该是30104
在cmd下面执行命令
PID , 端口 互查,tasklist,netstat_网络文库
Android 调试系统是一个面对客户服务系统,包括三个组成部分:
接着服务器将所有运行中的模拟器或设备实例建立连接。它通过扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备。一旦服务器找到 了adb守护程序,它将建立一个到该端口的连接。请注意任何模拟器或设备实例会取得两个连续的端口——一个偶数端口用来相应控制台的连接,和一个奇数端口 用来响应adb连接。比如说:
模拟器1,控制台:端口5554
模拟器1,Adb端口5555
adb 链接多手机开发
分享是一种美德,牵手是一种生活方式。
最后感谢提供的分享平台,你觉得有用可以收藏方便以后查阅。
个人分享内容分类
今日头条号--牵手生活 :android 破解与逆向(暂未接触ios逆向)
csdn--牵手生活 :android 入门级介绍、部分工具类分享。
--牵手生活 :侧重ios开发方面的知识点
D. 真机测试:adb和360MobileLink.exe 端口冲突怎么办
安装好android SDK后,使用360助手连接真机,adb命令 adb devices 查看设备,运行停止报错。
adb命令:netstat -aon|findstr 5037 查看占用5037端口的的进程的pid号
尝试根据pid号杀死进程失败,因为流氓360会中途占用5037端口。
解决方案:卸载360助手,或者使用豌豆荚
E. adb shell 端口占用
某天,使用adb shell连接手机时,提示以下出错信息:
error: device offline
以下是解决方法,记录一下.
运行命令:adb nodaemon server
提示如下:
cannot bind 'tcp:5037'
怪了,5037端口好像是被占用了
运行命令查看是哪个进程占用的:
netstat -ano|findstr "5037"
这样查到是pid为11068的进程占用了
这样就好办了。
运行任务管理器,找到pid为11068的那行,右键“打开文件位置”,这里发现我的C:\windows\下居然也有一个adb.exe,估计是装手机软件时,不知哪家带着安装上去的(之前是没有的),这样就把这个adb先在任务管理器中,右键-结束进程,然后把C:\windows\adb.exe删除。
然后执行adb shell,问题解决!
看来是电脑中存在多个adb的问题,造成了端口占用。
F. 干货|做App测试,那些必知必会的Adb常用命令
> 本文节选自霍格沃兹测试学院内部教材
为了让大家更好的学习Adb常用命令,我们先从安装Android环境搭建开始讲解哦。
安装jdk
### **
**
**
**
### 因为 Android SDK 是依赖于 java 环境的,所以需要先把 java 的环境搭建好。Java
环境可以参考搭建帖子:https://ceshiren.com/t/topic/4001
安装Android SDK
###
###
### adb 包含在 Android SDK 平台工具软件包中。具体的 Android SDK
环境搭建步骤请参考帖子:https://ceshiren.com/t/topic/4001
adb简介
adb 全称为 Android Debug Bridge(Android 调试桥),是 Android SDK 中提供的用于管理 Android
模拟器或真机的工具。
adb 是一种功能强大的命令行工具,可让 PC 端与 Android 设备进行通信。adb 命令可执行各种设备操作,例如安装和调试应用。
adb组成
采用了客户端-服务器(C/S)模型,包括三个部分:
* adb client
* adb server
* adb daemon
ADB client:运行在电脑上,可以在命令行中运行 adb 命令来调用该客户端。Client 本质上就是 Shell,用来发送命令给
Server。发送命令时,首先检测 PC 上有没有启动 Server,如果没有 Server,则会自动启动一个,然后将命令发送到 Server。
ADB server:是运行在电脑上的后台进程,用于管理客户端与运行在模拟器或真机的守护进程通信。
ADB Daemon:守护进程作为一个后台进程在 Android 设备或模拟器系统中运行。它的作用是连接 adb 服务端,并且为运行在主机上的 adb
客户端提供一些服务。
adb工作原理
当 adb 客户端启动时,客户端会先检查 adb 服务端是否启动。如果没有,会先启动服务端进程。adb 服务端在启动后,会与 5037 端口绑定,并监听
adb 客户端发出的命令。
然后,服务端会与所有正在运行的 Android 设备建立连接。它通过扫描 5555 到 5585 之间的奇数号端口查找 Android 设备。服务端一旦发现
Android 设备上的 adb 守护进程在运行,便会与相应的端口建立连接。每个 Android 设备都使用一对端口,偶数端口用于控制台连接,奇数端口用于
adb 连接。
例如:服务端与所有 Android 设备建立连接后,就可以使用 adb 命令来访问这些设备了。服务端会管理已经建立的连接,并处理来自 adb 客户端的命令。
启动adb调试
### Android 真机可以通过 USB 连接到 adb,连接时需要在设备的系统设置中启用 USB 调试(位于开发者选项下),启动 USB
调试后,设备上的 adb 守护进程就会被启动,adb 服务端才可以和设备建立连接。除了用 USB 的方式连接之外,也可以通过 WLAN
的方式连接,这种方式不做赘述。
1. 模拟器:不需要手动设置 USB 调试开关,默认是打开的
2. 真机通过 USB 连接
* 安装 Android 手机驱动
* 设备启用 USB 调试
adb命令格式
*
adb [-d|-e|-s <serialNumber>] <command>
* -d:指定当前唯一通过 USB 连接的 Android 设备为命令目标
* -e:指定当前唯一运行的模拟器为命令目标
* -s:指定相应 serialNumber 号的设备/模拟器为命令目标
方括号中的内容是可选的,尖括号内容的是必填的。方括号中参数可以指定设备,关于设备的指定有三个参数可以使用。-d、-e 和 -s,其中使用最多的是 -s
参数,在连接多台设备的时候,一般都是使用 -s 加上设备的序列号这种方式去指定具体设备。
adb 可以同时连接多台设备,但是一次只能对一台设备执行命令。所有连接多台设备的时候,是必须要制定设备,命令才可以执行成功的。
查询设备
把 Android 设备连接到 adb 服务端后,需要确认设备的连接状态。这时可以使用查询命令进行查询。
**连接模拟器** (以 mumu 模拟器为例)
* *
adb connect 127.0.0.1:7555adb devices
* `adb connect` 命令可以通过 WLAN 的方式连接到模拟器,7555 为 mumu 模拟器的端口
* `adb devices` 可以查询设备连接的状态
Windows 系统中,连接模拟器需要先执行 connect 命令去连接模拟器,127.0.0.1 是本地的 IP
地址,因为模拟器就是安装在本地的,所以要使用本地的 IP 地址,加上模拟器本身规定的一个端口号。mumu 的端口号是
7555,如果使用的是其他的模拟器的话,需要先去了解它的端口号是什么,然后再去连接。MacOS 系统中连接模拟器不需要先执行 connect 命令,直接执行
`adb devices` 命令即可。
**连接真机**
**
**
真机直接用 USB 连接到电脑,不需要执行 connect 命令。
直接用 `adb devices`命令查看已经连接的设备列表即可。
feier@ ~ % adb devices
List of devices attached
emulator-5554 device
直接命令后,如果设备已经成功连接,那么设备列表中就会展示已连接设备的信息。以图中的信息为例:
* emualotr-5554:设备序列号
* device:设备连接状态为成功
安装卸载应用
测试过程中,如果需要安装或者卸载应用,可以直接用 adb 命令来操作。
* 普通安装:`adb install <apk路径>`
* 覆盖安装:`adb install -r <apk路径>`
* 完全卸载:`adb uninstall <包名>`
* 保留配置文件:`adb uninstall -k <包名> `
设备与电脑传输文件
adb 命令支持电脑和 Android 设备之间的文件互传。比如我们需要提取 Android 设备中的日志文件到本地,就可以通过 adb 命令的方式来完成。
* 从电脑上传文件至设备:`adb push <电脑路径> <设备路径>`
* 从设备复制文件至电脑:`adb pull <设备路径> <电脑路径>`
日志
打印链接设备的 log 信息
* 屏幕输出日志:`adb logcat`
* 通过标签过滤:`adb logcat -s 标签`
* 显示时间:`adb logcat -v time`
* 输出所有信息:`adb logcat -v long`
* 输出日志到文件:`adb logcat -v time > log.txt`
* 清除旧日志信息:`adb logcat -c`
adb shell命令
使用 adb shell 命令相当于远程登录了 Android 系统,可以进入 Android 设备的系统内部。进入系统内部既可以执行一些简单的 Linux
命令也支持很多特有的命令。
使用 adb shell 命令有两种方式。
一种是直接在 adb shell 后面跟上命令。
*
adb [-s serial_number] shell <command>
比如:
* * * * * * * * * * *
feier@ ~ % adb shell .propdevetc...
另一种方式是在设备上启动交互式 shell
*
adb [-s serial_number] shell
进入 shell 之后,再执行对应的命令。
比如我们进入设备内部,可以查看设备内部的目录结构和内容
* * * * * * * * * * *
feier@ ~ % adb shellroot@x86:/ # .propdev...
要退出交互式 shell,可以按 Ctrl + D 键或输入 exit。
**Android常用测试命令**
下面整理出了Android常用的一些测试命令及用法。
设备截图/录屏
在测试过程中,如果需要截图或者是录屏,也可以直接使用 adb 命令来完成。
* 截图:`adb shell screencap <设备路径>`
* 录屏:`adb shell screenrecord <设备路径>`
调用Activity管理器
在 adb shell 中,可以使用 Activity 管理器 (am) 工具发出命令以执行各种系统操作,如启动
Activity、强行停止进程、修改设备屏幕属性,等等。
在测试过程中,如果需要启动 app 或者强制关闭 app,可以通过 adb 命令来实现。
* 启动应用:`adb shell am start -n <包名>/<Activity名>`
* 强制停止应用:`adb shell am force-stop <包名>`
调用软件包管理器
在 adb shell 中,可以使用软件包管理器 (pm) 工具发出命令,以对设备上安装的应用软件包执行操作和查询。
如果需要查询设备里都安装了什么应用,就可以使用 adb shell pm list 来查看,还可以加上不同的参数去查看不同类型的应用。而且也可以通过 adb
命令来清除应用相关的数据。
* 显示设备中安装的所有应用:`adb shell pm list packages`
* 只显示系统应用:`adb shell pm list packages -s`
* 只显示第三方应用:`adb shell pm list packages -3`
* 删除与软件包关联的所有数据:`adb shell pm clear <包名>`
adb shell mpsys
mpsys 是一种在 Android 设备上运行的工具,可提供有关系统服务的信息。可以使用 adb 从命令行调用
mpsys,获取在连接的设备上运行的所有系统服务的诊断输出。
比如在测试中,如果需要通过 adb 命令启动 app,则需要知道 app 的包名和入口的 Activity
名。这个时候,就可以通过下面这条命令获取到这两个信息。
这个场景,需要先把要获取信息的应用启动,让它在前台运行,然后执行命令
`adb shell mpsys activity | grep mFocusedActivity`
* * *
feier@ ~ % adb shell mpsys activity | grep mFocusedActivity mFocusedActivity: ActivityRecord{9dae968 u0 com.xueqiu.android/.common.MainActivity t139}
下方的日志中就会展示出来当前的包名和 Activity 名称。
* 包名:`com.xueqiu.android`
* Activity 名:`.common.MainActivity`
adb shell mpsys
adb 命令还支持直接获取应用的页面信息。这个页面信息包含了页面中元素的属性,可以方便做自动化测试的时候去定位元素。获取到的页面布局会输出到一个 xml
文件中。
* 当前窗口的 UI 布局简化信息:`adb shell uiautomator mp --compressed`
* *
feier@ ~ % adb shell uiautomator mp --compressedUI hierchary mped to: /sdcard/window_mp.xml
不指定输出文件路径时,mp 下来的文件默认存储路径为 `/sdcard/window_mp.xml`
可以通过 adb pull 命令把文件传输到电脑中,然后用 uiautomatorviewer 工具打开查看布局。
* 指定输出文件路径:`adb shell uiautomator mp file <设备路径>`
adb常用命令就先讲到这里啦,下期我们分享App常见bug解析。大家还想看什么内容的文章也可以留言告诉我们哦!
** _
来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力
QQ交流群:484590337
公众号 TestingStudio
视频资料领取:https://qrcode.testing-studio.com/f?from=jianshu&url=https://ceshiren.com/t/topic/15844
点击查看更多信息
G. 如何查看adb端口占用情况
AS在连接真机的时候除了USB连接失败,还会发生adb端口被占用的情况,如5037被端口占用,这里将介绍如何查看端口、查找对应程序、关闭占用端口的程序,恢复AS的测试功能;
出现上面的错,我们通常使用的adb kill-server方式是没有用的,因为此时是其他进程的监听了该端口,而不是adb。我们需要找到这个进程并关闭它;
.
H. 电脑怎么使用adb
先打开winows菜单输入cmd命令,然后点确定并进入命令模式,之后输入命令D:,再回车输入cd,紧接着选你的sdk路径并复制路径,紧接点击cmd和选择编辑、粘贴并将复制的路径粘贴到命令行回车,最后打开adb即可。ADB就是起到调试桥的作用,用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如手机)。它的主要功能有运行设备的shell(命令行);管理模拟器或设备的端口映射等。
更多关于电脑怎么使用adb,进入:https://www.abcgonglue.com/ask/9c68041616094533.html?zd查看更多内容
I. Android adb端口占用解决方法
在开发过程中,有时候会遇到adb端口(adb默认端口是:5037)被其他的进程占用,导致手机无法正常连接调试。这就需要我们找到占用adb端口的进程并杀掉,保证adb端口正常运行。
输入命令行: adb nodaemon server
输入命令行: netstat -ano | findstr "5037"
1)使用快捷键 Esc + Shift + Ctrl 打开任务管理器,选择 查看 —— 选择列 ;
2)在 进程页列 勾选 PID 并 确定 。
根据 PID 选择占用进程,然后结束进程。
打开DOS命令窗口,输入SDK安装目录(因人而异): cd E:android-sdk-windowsplatform-tools 回车,再输入所在盘符 e: 回车,进入adb所在目录; 再输入 adb kill-server 结束服务,然后输入 adb start-server 成功启动服务即可。