adb原理

参考文档

  How ADB works        http://www.cnblogs.com/ifantastic/p/5186362.html

  http://blog.csdn.net/stpeace/article/details/24933813

Adb是Android调试桥的缩写。在看Adb命令前,先弄清楚原理,一图顶千言。

总结下:无论是执行adb命令和还是调用ddmlib库都是作为adb client连接到pc上的adb server服务(默认端口为5037)。adb server服务再连接到各个设备上运行着的adbd服务(默认监听端口为5555),建立连接后adb server负责在adb client 和adbd之间转发信息。

方式一是直接通过TCP连接设备。方式二是通过USB连接设备。

Adb命令

help  帮助信息

version  版本信息

服务启停

adb start-server  启动adb server

adb kill-server   停止adb server

设备相关

adb devices  显示所有设备(格式为 串号和状态)

  • -l   显示qulifiers (如: product:MT7-CL00 model:HUAWEI_MT7_CL00 device:hwmt7)

adb wait-for-device  device online前一直阻塞,可以作为不需要系统完全启动就能执行的命令的前缀使用:如 adb wait-for-device shell getprop

adb get-state

adb get-serialno

adb get-devpath

adb status-window  持续显示设备状态(有变化时更新)

adb connect <host>[:<port>]  通过TCP网络连接设备,即上图中的方式一。(默认端口:5555)

adb disconnect <host>[:<port>]  断开通过网络连接的设备

adb root  以root权限重启设备上的adbd服务

adb usb  重启adbd服务,监听USB

adb tcpip <port>  重启adbd服务,监听指定的TCP端口

adb指定目标设备选项(可以没有)

-a   所有设备

-d  USB连接的设备

-e  模拟器设备

-s <Serial-No>  按串号指定设备

-p <product name or path>  不清楚

-H <server_host> 指定连接的adb server主机

-P <server_port>  指定连接的adb server端口

adb remout  重新以读写模式挂载/system 和 /vendor 分区

adb reboot  重启设备

  • bootloader  重启进入bootloader模式
  • recovery  重启并进入recovery模式

文件传送

adb pull <path-dev> <path-pc>   把设备中的文件或目录拷贝到PC端

  • -p  显示进度

adb push <path-pc> <path-dev>  把PC端文件或目录拷贝到设备

  • -p  显示进度
  • -a  拷贝时间戳和模式

adb sync [<directory>]     把PC端改动的内容拷贝到设备(默认为/system,/vendor,/data)

  • -l 只列出,不拷贝

adb install <apkfile-pc>  安装应用

  • -r  替换
  • -s  安装到SD卡

  可能的错误信息:

    

adb uninstall <package-name>  移除应用

  • -k  保留数据和缓存目录

调用Android shell命令

adb shell  进入shell环境

adb shell [shell-cmd]  执行shell命令

  android shell命令总结:http://www.cnblogs.com/pixy/p/4741532.html

网络相关

adb forward <spec-local> <spec-remote>  socket定向绑定:

  spec格式为: 

    tcp:<port>
    localabstract:<unix domain socket name>
    localreserved:<unix domain socket name>
    localfilesystem:<unix domain socket name>
    dev:<character device name>
    jdwp:<process pid> (remote only)

  --no-rebind  如果local端已经绑定则失败

adb forward --remove <spec-local>  移除指定的定向绑定

adb forward --remove-all  

adb reverse --list  显示所有从设备发出的反向socket连接

adb reverse <spec-remote> <spec-local>  反向socket绑定

  spec格式为:

    tcp:<port>
    localabstract:<unix domain socket name>
    localreserved:<unix domain socket name>
    localfilesystem:<unix domain socket name>

  --norebind  <spec-remote>已经绑定则失败

adb reverse --remove <spec-remote>  移除反向绑定

adb reverse --remove-all  移除所有反向绑定

adb ppp <tty> [parm]  通过USB运行PPP

logcat

adb logcat [option] [FILTER-SPECS]  输出日志数据。可以重定向到文件:adb logcat>d:\logcat.txt

  options:

-s

沉默默认的过滤器,以下两种方式等效
logcat -s
tagName:I
logcat tagName:I *:s

-v <format>

指定输出格式,默认为

-f
<file>

Log to
file

-c

clear(flush) 所有log,然后退出

-d

dump log,退出

-g

获取log循环缓冲大小,退出

-b
<buffer>

请求其他循环缓冲,main(default),
radio, events

-B

output
log in binary

  FILTER-SPECS:   tagName:[PRIORITY]...

  PRIORITY:

V

Verbose

D

Debug

I

Info

W

Warn

E

Error

F

Fatal

S

Silent (supress all output) 

tagName和priority都可以用*作为通配符, logcat命令中必须使用-s选项或加*:s才能过滤掉无关的log

    

调试相关

adb bugreport  显示dumpsys, dumppstate, logcat信息

adb jdwp  显示有效地jdwp (java debug wire protocol) 进程

其他

adb emu <emu_command>  模拟器控制台命令

adb backup  备份系统数据到文件

  • -f <file>  指定文件名(省确为backup.ab)
  • -apk | -noapk  是否备份.apk(默认为-noapk)
  • -obb | -noobb  是否备份apk扩展文件.obb,默认为noobb
  • -shared | -noshared  是否备份Shared Storeage,SD 卡内容(默认为noshared)
  • -all  备份所有安装的应用
  • -system|-nosystem  -all是否包括系统应用,(默认为system)
  • [<packages...>]  要备份的应用列表。如果有-all或-shared,可以没有此项。

adb restore <file>  从备份文件恢复数据。

adb disable-verity

adb keygen <file>  生成密钥对,<file>文件中存放私钥,<file>.pub中存放公钥。已存在文件会被覆盖。

Android adb 命令使用总结的更多相关文章

  1. Android ADB命令教程二——ADB命令详解

    Android ADB命令教程二——ADB命令详解 转载▼ 原文链接:http://www.tbk.ren/article/249.html       我们使用 adb -h 来看看,adb命令里面 ...

  2. MacBook下配置android adb命令使用环境

    想在Mac下使用android adb命令,常用的两种配置方式: 在MacBook下配置adb命令环境(方法一) 1.下载并安装IDE (android studio) 人性化的安装,直接点击下一步下 ...

  3. 【转】android adb命令

      1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器): andr ...

  4. Android adb 命令图解

    做了这么长时间的开发与管理,在命令上总是自见则过,往往却忽视了在其命令上的分享过程,所以现在稍微有点时间就把 其命令的相关操作来简单的扫盲一番吧,也系统通过这种方式去授之以渔而不是鱼,好了,我以图解的 ...

  5. Android ADB命令详解

    adb的全称为Android Debug Bridge.是android司机经常用到的工具 . 你能在本篇文章中学到什么? adb基本指令 Shell AM&PM adb模拟用户事件 logc ...

  6. android adb命令 抓取系统各种 log

    getLog.bat: adb root adb remount adb wait-for-device adb logcat -v time > C:\log.txt 在Android中不同的 ...

  7. Android ADB命令?这一次我再也不死记了!【简单说】

    https://www.jianshu.com/p/56fd03f1aaae adb的全称为Android Debug Bridge.是android司机经常用到的工具.但是问题是那么多命令写代码已经 ...

  8. Android adb命令,linux中各种命令

    常用的ADB命令 1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器 ...

  9. mac终端配置Android ADB命令

    不得不说mac是一款开发利器,不仅可以开发ios,而且对于Android开发也是不错的选择,下面我就对mac配置adb命令,进行简要的说明.下面我将一下mac环境下的配置步骤:1.在自己的目录(hom ...

随机推荐

  1. JQuery的AJAX封装加例子

    将json字符串转换为javascript对象有两种方法:var strs = eval("(" + data + ")");var strs = $.pars ...

  2. 集群管理 secondaryNameNode和NameNode(转)

    为了达到以下负责均衡,需要调整以下 改变负载 三台机器,改变负载 host2(NameNode.DataNode.TaskTracker) host6(SecondaryNameNode.DataNo ...

  3. 今天连续几次被其他电脑客户端踢下线,也不知是否是ip冲突

    可能是利用ip然后我的网络也没有关掉共享,其次就是远程开启了一个叫做"学生端"的应用,好在我改密码连续两次改的快

  4. linux之间文件传输问题

    如果linux服务器使用了秘钥登陆,可以先关闭秘钥登陆 http://blog.chinaunix.net/uid-23634108-id-2393471.html 然后:scp -P 端口号  no ...

  5. ASP.NET Web.Config 读写辅助类

    using System; using System.Configuration; using System.Web; using System.Web.Configuration; namespac ...

  6. SQL Server2008跟SQL Server2008R2的区别(转)

    QL Server 2008 R2基于SQL Server 2008提供可靠高效的智能数据平台构建而成,SQL Server 2008 R2 提供了大量新改进,可帮助您的组织满怀信心地调整规模.提高 ...

  7. 建模算法(十)——灰色理论之关联度分析

    一.数据变换技术 为了保证建模的质量和系统分析结果的准确性,对原始的数据要进行去量纲处理. 1.定义 设有序列,则成映射为序列x到序列y的数据变换. (1) f 是初值化变换. (2) f 是均值化变 ...

  8. Servlet跳转方式

    servlet之间的跳转,有两种方式: 1.redirect方式,是新的请求,数据不相同 2.forward方式是同一个请求,数据相同

  9. mysql忘记root密码

    skip-grant-tables:非常有用的mysql启动参数 介绍一个非常有用的mysql启动参数—— --skip-grant-tables.顾名思义,就是在启动mysql时不启动grant-t ...

  10. mtr命令

    mtr 命令详解 一般在windows 来判断网络连通性用ping 和tracert,ping的话可以来判断丢包率,tracert可以用来跟踪路由,在Linux中有一个更好的网络连通性判断工具,它可以 ...