adb 命令

摘要:
Android调试桥adb是一个通用命令行工具,允许您与模拟器实例或连接的Android设备进行通信。然后启动cmd并输入“adb”以检查配置是否成功。adb的工作原理启动adb客户端时,客户端首先检查是否有正在运行的adb服务器进程。当服务器启动时,它绑定到本地TCP端口5037并侦听adb客户端发送的命令-所有adb客户端都使用端口5037与adb服务器通信。模拟器adb路径:{安装路径}Noxinadbshellandroid底层设备是Linux系统。

Android 调试桥

adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用。

Tips: 在 android_sdk/platform-tools/ 中找到 adb 工具,然后根据其具体的路径配置好环境变量。然后启动cmd 输入‘adb’即可查看是否配置成功。

adb 的工作原理

启动一个 adb 客户端时,此客户端首先检查是否有已运行的 adb 服务器进程。如果没有,它将启动服务器进程。当服务器启动时,它与本地 TCP 端口 5037 绑定,并侦听从 adb 客户端发送的命令—所有 adb 客户端均使用端口 5037 与 adb 服务器通信。

启用 adb 调试

要在通过 USB 连接的设备上使用 adb,您必须在设备系统设置中启用 USB debugging(位于 Developer options 下)。

在运行 Android 4.2 及更高版本的设备上,Developer options 屏幕默认情况下处于隐藏状态。如需将其显示出来,请转到 Settings > About phone 并点按 Build number 七次。返回上一屏幕,在底部可以找到 Developer options。

注:当您连接运行 Android 4.2.2 或更高版本的设备时,系统将显示一个对话框,询问您是否接受允许在这台计算机上调试的 RSA 密钥。这种安全机制可以保护用户设备,因为它可以确保只有在您能够解锁设备并确认对话框的情况下才能执行 USB 调试和其他 ADB 命令。

adb常用命令

查看adb版本

adb  version

连接夜神模拟器(此处分别演示模拟器和真机连接)

adb connect 127.0.0.1:62001

Tips:

夜神模拟器的端口是规律的,第一个模拟器端口是62001,第二个模拟器端口是62025,第三个是62025+1,依此类推。

查看设备信息

adb devices

如果出现如下提示:

adb server version (31) doesn't match this client (36); killing...

  • 原因: adb版本不对 ,Androd SDK的版本和模拟器的adb版本不一致
  • 解决方案:将Android SDK的 adb替换掉模拟器的adb即可。模拟器adb路径 :{安装Path}Noxin
adb shell

android 设备底层是 linux 系统。 shell 是 linux 系统的字符交互界面。

adb shell

 

#进入指定设备shell

adb  -s 127.0.0.1:62001 shell

 

#退出adb shell

exit

进入adb shell后有两种状态显示:#代表有root权限,$代表没有root权限

root@android:/ #

 

shell@mx4:/ $

root知识小科普

“To err is human, but to really foul up everything, you need root password.”

“人非圣贤孰能无过,但是拥有root密码就真的万劫不复了。”

root用户是系统中唯一的超级管理员,它具有等同于操作系统的权限。一些需要root权限的应用,譬如广告阻挡,卸载系统预装App是需要root权限的。可问题在于root比windows的系统管理员的能力更大,足以把整个系统的大部分文件删掉,导致系统完全毁坏,不能再次使用。所以,用root进行不当的操作是相当危险的,轻微的可以死机,严重的甚至不能开机。所以,在Unix、Linux及Android中,除非确实需要,一般情况下都不推荐使用root。

在设备安装apk

adb install | -r <apkName>  -r 覆盖原安装文件 -s 可以指定设备

eg:

 

#默认安装

adb install "C:UsersShuqingDesktopAppium 自动化测试教程wandoujia.apk"

 

#覆盖安装

adb install -r  "C:UsersShuqingDesktopAppium 自动化测试教程wandoujia.apk"

 

#指定设备安装

adb  -s 127.0.0.1:62001 install  C:UsersShuqingDesktopAppiumkaoyan3.1.0.apk 自动化测试教程wandoujia.apk"

 

如遇到报错:Failure [INSTALL_FAILED_INVALID_URI]

解决方案: cmd命令行下执行以下命令:

  • 第一步、adb remount
  • 第二步、adb shell
  • 第三步、cd /data
  • 第四步、chmod 777 local
  • 重新安装apk,ok了。
卸载apk

1.首先进入设备的/data/app目录找到app包名

adb shell

cd /data/app/

 

2.执行命令删除

adb uninstall  | -k  <apkName>  卸载软件

 

adb uninstall  com.wandoujia.phoenix2

Tips:安装后的包名系统会在末尾加上-1之类的数字,要去掉才可以成功卸载。 软件名称为包名,不要包含.apk
-k 加 -k 参数,为卸载软件但是保留配置和缓存文件.

查看设备上面安装的应用包名

adb shell pm list package

文件读取写入

将文件从PC写入到设备

adb push <local> <remote>

eg:

adb push C:UsersShuqingDesktopkyb.txt /sdcard

C:UsersShuqingDesktopkyb.txt: 1 file pushed. 0.1 MB/s (462 bytes in 0.005s)

将文件从设备读取到PC

adb pull <remote> <local>

eg:

adb pull /sdcard/server.log  C:UsersShuqingDesktop

/sdcard/server.log: 1 file pulled. 0.0 MB/s (196 bytes in 0.004s)

注意:由于权限问题,不能直接pull到电脑磁盘根目录,否则会报错:

C:UsersShuqing>adb pull /sdcard/server.log  D:\

adb: error: cannot create file/directory 'D:\': No such file or directory

屏幕截图

$ adb shell screencap /sdcard/screen.png

adb pull /sdcard/screen.png  C:UsersShuqingDesktop

adb服务启动和关闭

adb kill-server                        关闭adb服务

adb start-server                      开启adb服务

Tips:如果5037端口被占用可以使用如下命令释放端口

 

C:UsersShuqing> netstat -ano | findstr "5037"

  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       11072

  TCP    127.0.0.1:5037         127.0.0.1:59519        TIME_WAIT       0

 

taskkill -f -pid XXX

 

小结

  1. adb是自动化非常重要的一个工具
  2. 目前很多PC客户端手机助手也是基于adb连接原理进行封装的。
  3. 可以将常用的adb命令封装成bat命令,随时可以运行。如:

adbdevices.bat

adb devices

pause

AdbConnect.bat

adb connect 127.0.0.1:62025

adb devices

pause

参考文档

免责声明:文章转载自《adb 命令》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇NLP常用Python开发工具利用 Charles Proxy 下载旧版本 iOS App下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

一文详解云上自动化部署集群管理工具 Nebula Operator

本文首发于 Nebula Graph 公众号:Nebula Operator 开源啦!一文详解这个云上自动化部署集群管理工具 在介绍 Nebula Operator 之前,让我们先来了解下什么是 Operator。 Operator 是一种封装、部署和管理 Kubernetes 应用的方法,通过扩展 Kubernetes API 的功能,来管理用户创建、...

Linux中查找最耗性能的JAVA代码

    在这里总结一下查找Linux、Java环境下最耗CPU性能的代码段的方法。基本上原理就是使用top命令查看最耗cpu的进程和线程(子进程)。使用jstack把java线程堆栈给dump下来。然后,在堆栈信息中查找出对应的代码块。具体操作如下: 一、查找最耗cpu的进程执行:top 输出: PID USER PR NI VI...

使用create-react-app构建的项目(并引入react-app-polyfill做IE兼容)在开发环境下的IE浏览器中报错的解决方案

个人所负责的一个项目,需要兼容IE11,所以已经按照react-app-polyfill官方指定的方案进行兼容配置即在项目src/index.js中: //The first lines in src/index.js import 'react-app-polyfill/ie11'; import 'react-app-polyfill/stable';...

mysql安装和遇到的问题处理

遇到需要在新系统上安装MySQL的事情,简单记录一下过程。 声明:最好的文档是官方文档,我也是看的官方文档,只是中间遇到点问题,记录一下出现的问题和处理方式。贴一些官方文档地址。 用tar包的安装方式:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html 用yum源等其他安装方式:...

mac安装ps破解版(亲测可用)

作为前端开发人员,也需要慢慢学会切图仔的技能包,那也就少不了Photoshop这款软件。今天在这里分享下mac下的Adobe PhotoshopCS6,这个软件大家应该都很熟悉,下载的时候最好使用百度网盘的平台进行下载,选择试用会员就可以(下载的贼快),ok。下面开始介绍安装过程...... 软件下载准备1.Adobe PhotoshopCS62.破解工具...

PC端通过ADB命令 无线向 andriod端发送文件

1、pc 通过ABD连接andriod端(andriod端安装wifiadb,PC端 在cmd中 adb connect Android端IP ) 2、cmd 输入命令 adb push pc端文件路径 android端文件路径  andriod端文件上传PC 3、adb pull android端文件路径 pc端文件路径 软件:WiFiadb(安卓端安装...