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}\Nox\bin
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:\Users\Shuqing\Desktop\Appium 自动化测试教程\wandoujia.apk"

#覆盖安装

adb install -r  "C:\Users\Shuqing\Desktop\Appium 自动化测试教程\wandoujia.apk"

#指定设备安装

adb  -s 127.0.0.1:62001 install  C:\Users\Shuqing\Desktop\Appium\kaoyan3.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:\Users\Shuqing\Desktop\kyb.txt /sdcard

C:\Users\Shuqing\Desktop\kyb.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:\Users\Shuqing\Desktop

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

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

C:\Users\Shuqing>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:\Users\Shuqing\Desktop

adb服务启动和关闭

adb kill-server                        关闭adb服务

adb start-server                      开启adb服务

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

C:\Users\Shuqing> 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

参考文档

Android 调试桥介绍 (adb)的更多相关文章

  1. 在 MAC OS X 安装 ADB (Android调试桥)

    什么是 ADB? Android调试桥( adb )是一个开发工具,帮助安卓设备和个人计算机之间的通信. 这种通信大多是在USB电缆下进行,但是也支持Wi-Fi连接. adb 还可被用来与电脑上运行的 ...

  2. Android调试桥 adb安装详解

    Android调试桥(adb) 一.简介 Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Uni ...

  3. 转:Android 调试桥(adb)是多种用途的工具

    转自:http://my.oschina.net/xuwa/blog/1574 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入 ...

  4. Android 调试桥(adb)是多种用途的工具

    Android 调试桥 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入adb: 在设备上运行shell命令 通过端口转发来管理 ...

  5. Android 调试桥 (adb) 是 命令行命令--官方拷贝过来的,留作自己查看

    Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令 ...

  6. Android调试桥-Android Debug Birdge详解

    原文:http://android.eoe.cn/topic/summary Android调试桥-Android Debug Birdge Android调试桥(adb)是一个多功能的命令行功具,它 ...

  7. windows下adb(android调试桥)基本命令(持续更新。。。)

    前言:刚开始学习android(坚持每天1篇笔记哈^_^),比较实用的命令是adb,所以就先学习这些,主要用真机调试,模拟器用的是genymotion,所以emulator暂时不大需要哈,可以后续再补 ...

  8. 安卓调试桥(ADB)环境变量的配置

    第一步,打开环境变量配置窗口.右击计算机,属性-高级系统设置-环境变量. 第二步,添加android系统环境变量.在系统变量下点击新建按钮,输入环境变量名ADB(自己随便写)           变量 ...

  9. 用联想wndows8系统做android调试开发,adb server无法启动的原因

    今天换了台笔记本,联想V480的,装好开发软件,配置好一环境,于是打算先试一下能不能用,结果在eclipse devices中死活看不到设备,于是开如找各种问题,最后在度娘的帮助下终于找到了答案,我的 ...

随机推荐

  1. Java 返回字符串中第一个不重复字符的下标 下标从0开始

    比如abcdefgabdef 其中字符c和g不重复,返回c的小标,下标从0开始,那么是2 package com.example.demo; import org.testng.annotations ...

  2. 团队——Alpha版本发布

    这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求的链接 团队名称 杨荣模杰和他的佶祥虎 这个作业的目标 发布并说明产品Alpha版本 一.团队成员的学号姓名列表 学号 姓名 2017311 ...

  3. HDU4814——数学,模拟进制转换

    本题围绕:数学公式模拟进制转换 HDU4814 Golden Radio Base 题目描述 将一个十进制的非负整数转换成E(黄金分割数)进制的数 输入 不大于10^9的非负整数,处理到文件尾 输出 ...

  4. UVALive - 4097:Yungom(逼近 贪心)(DP)

    pro:有D个字母,每个字母有自己的权值,现状需要用它们拼出N个单词,使得这些单词互相不为另外一个的前缀. 且单词的权值和最小.D<=200; N<=200; sol:如果建立字典树,那个 ...

  5. 一行代码搞定WordPress面包屑导航breadcrumb

    有好几位网友在问WordPress面包屑导航breadcrumb怎么操作,网上有些教程是去function文件中定义,其实不用那么复杂,很简单一行代码就能搞定.下面随ytkah一起来看看.如果是单页, ...

  6. django-购物车添加

    商品详情页detail.html添加加入购物车按钮 <a href="javascript:;" sku_id="{{ sku.id }}" class= ...

  7. WinDbg命令窗口的使用

    调试器命令窗口是windbg中的主要调试信息窗口.可以在此窗口中输入调试程序命令并查看命令输出.Windbg的命令窗口是我们进行调试时,主要打交道的窗口.界面如下 对于windbg,“调试器命令窗口” ...

  8. 使用if和switch制作简单的年龄生肖判断

    -年 查询 --> var oDiv =document.getElementById("cont"); var oYear = document.getElementByI ...

  9. Collecting metrics with the PostgreSQL and TimescaleDB output plugin for Telegraf

    转自:https://docs.timescale.com/v1.3/tutorials/telegraf-output-plugin 文章演示了如何使用pg output 插件 以及Telegraf ...

  10. fake_useragent 本地运行各种报错解决办法