Android adb你真的会用吗?
前言
本文基于Android官方文档, 以及个人工作的使用经验, 总结下adb的常用用法, 备忘。
1.adb 简介
adb全名Andorid Debug Bridge. 顾名思义, 这是一个Debug工具。
然而, 为何称之为Bridge呢? 因为adb是一个标准的CS结构的工具, 是要连接开发电脑和你的调试手机的.包含如下几个部分:
- Client端, 运行在开发机器中, 即你的开发PC机, 用来发送adb命令。
- Deamon守护进程,,运行在调试设备中,,即的调试手机或模拟器。
- Server端, 作为一个后台进程运行在开发机器中, 即你的开发PC机, 用来管理PC中的Client端和手机的Deamon之间的通信。
2.常用用法
2.1 adb devices
列举当前连接的调试设备

2.2 adb logcat
打印log信息
| 指令 | 说明 | 备注 |
| adb logcat | 打印log | / |
| adb logcat -c | 清除手机的log buffer | 有些手机权限控制,不支持 |
| adb logcat -b<buffer> | 打印指定buffer的log信息 |
buffer有: main(主log区,默认), events(事件相关的log), radio(射频, telephony相关的log) |
| adb logcat -v<format> | 格式化输出log | 常用的用adb logcat -v time显示时间 |
| adb logcat -f<filename> | 输出log到指定文件 | / |
2.3 adb shell -> cd data/data/-> ls
获取所有应用包名

2.4 adb install/uninstall
安装卸载apk

2.5 adb pull/push
调试设备和开发PC之间拷贝文件
// 拷贝本地文件到调试设备中

// 拷贝本地文件到调试设备中

2.6 adb start/kill server
启动/杀死adb简介中提到的Server端进程.
由于adb并不稳定, 有时候莫名的问题掉线时, 可以先kill-server, 然后start-server来确保Server进程启动. 往往可以解决问题。
3.高阶用法
3.1 adb connect/disconnect
通过wifi进行远程连接手机进行调试的.
https://developer.android.com/studio/command-line/adb.html#wireless
需先连上usb模式, 开启远程调试模式:
$ adb tcpip 5555
3.2 adb shell am
am即activity manager.
该命令用来执行一些系统动作, 例如启动指定activity, 结束进程, 发送广播, 更改屏幕属性等. 调试利器.
| 指令 | 说明 | 备注 |
|---|---|---|
| start <Intent> | 根据intent指向启动Activity | Intent可以是显示的指向activity, 也可以是ACTION方式, 并且可以添加flag, data等参数信息. |
| startservice <Intent> | 启动Service | 可以添加flag, data等参数信息. |
| broadcast <Intent> | 发送广播 | 可以添加flag, data等参数信息. |
| monitor | 启动一个Crash和ANR的监听器 | 如有Crash或ANR会在控制台输出相关信息. |
| force-stop <Package> | 强制停止该包相关的一切 | 传入package name. |
| kill <Package> | 杀死该包相关的所有进程 | 传入package name. |
| kill-all | 杀死所有后台进程 | |
| display-size WxH | 改变显示的分辨率 | 例如adb shell am display-size 1280x720, 手机可能不支持. |
| display-density <dpi> | 改变显示的density | 例如adb shell am display-density 320, 手机可能不支持. |
3.3 adb shell pm
pm即package manager.
用来执行package相关的操作, 例如安装卸载, 查询系统的安装包等.
| 指令 | 说明 | 备注 |
|---|---|---|
| list packages <Filter> | 列出满足filter条件的所有包 | |
| list permissions <Group> | 列出该Group的所有权限 | |
| list features | 查看系统支持哪些feature | 例如蓝牙, wifi, 摄像头等. |
| install <Path>/uninstall <Package> | 安装卸载 | |
| clear <Package> | 清除应用数据 |
3.4 adb shell screencap
截屏, 比截屏快捷键更加方便快捷.

3.5 adb shell screenrecord
录屏, 做demo的话, 可以很方便的用这个命名录制视频, 然后借助工具将其转换成gif图, 超赞. 如下:

Android4.4及以上系统可用.
3.6 adb shell dumpsys
强大的dump工具, 可以输出很多系统信息. 例如window, activity, task/back stack信息, wifi信息等.
探索Activity之launchMode和探索Activity之启动Intent flag和Affinity就是用adb shell dumpsys activity来输出task信息的.
常用dumpsys:
| 指令 | 说明 | 备注 | 细分参数 |
|---|---|---|---|
| activity | 输出app组件相关信息 | 还可以用细分参数获得单项内容, 下同. 例如adb shell dumpsys activity activities来获取activity task/back stack信息. | activites, service, providers, intents, broadcasts, processes |
| alarm | 输出当前系统的alarm信息 | / | / |
| cpuinfo | 输出当前的CPU使用情况 | / | / |
| diskstats | 输出当前的磁盘使用状态 | / | / |
| batterystats | 电池使用信息 | / | / |
| package | package相关信息, 相当于pm功能的集合 | 输出诸如libs, features, packages等信息 | / |
| meminfo | 输出每个App的内存使用和系统内存状态 | 可以指定包名, 例如adb shell dumpsys meminfo com.anly.githubapp | / |
| window | 输出当前窗口相关信息 | / | policy, animator, tokens, windows |
Android adb你真的会用吗?的更多相关文章
- Android adb你真的会用吗?
引言 本文基于Android官方文档, 以及个人工作的使用经验, 总结下adb的常用用法, 备忘. 1, adb简介 adb全名Andorid Debug Bridge. 顾名思义, 这是一个Debu ...
- android adb常用命令
android adb命令: adb root --获取root.adb remount --获取文件操作权限(push)adb shell pm list package 获取包名列表com.mqt ...
- Android adb push 和 pull操作
由于安卓真机本地调试时,每次启动并生成apk然后安装到设备比较费时,而很多情况是仅仅修改了hot 脚本文件(cocos2dx + lua). 所以,使用热更机制把修改后的lua文件push到热更目录( ...
- Android学习笔记1 android adb启动失败问题 adb server is out of date. killing...
下面是Android的学习笔记,原文地址. 我是使用adb devices出现如下红字错误, 使用第一种方法方法,结果关掉豌豆荚就可以了. android adb启动失败问题 adb server i ...
- 【转】Linux下Android ADB驱动安装详解
原文网址:http://blog.csdn.net/zhenwenxian/article/details/5901350 Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比 ...
- Android ADB命令详解
adb的全称为Android Debug Bridge.是android司机经常用到的工具 . 你能在本篇文章中学到什么? adb基本指令 Shell AM&PM adb模拟用户事件 logc ...
- Android ADB命令教程二——ADB命令详解
Android ADB命令教程二——ADB命令详解 转载▼ 原文链接:http://www.tbk.ren/article/249.html 我们使用 adb -h 来看看,adb命令里面 ...
- Android ADB命令?这一次我再也不死记了!【简单说】
https://www.jianshu.com/p/56fd03f1aaae adb的全称为Android Debug Bridge.是android司机经常用到的工具.但是问题是那么多命令写代码已经 ...
- Android adb shell data目录,Permission denied
Android adb shell进入data目录,Permission denied 权限被拒绝 在shell里面输入su root,去申请root权限,注意:有小部分手机是需要点击授权,再次执行c ...
随机推荐
- js进阶 11-3 jquery中css属性如何操作
js进阶 11-3 jquery中css属性如何操作 一.总结 一句话总结:通过css()方法 1.attr和css是有交叉的,比如width,两者中都可以设置,那么他们的区别是什么? 其实通俗一点 ...
- [CortexM0--stm32f0308]Option Byte
问题描写叙述 option byte,算是IC中比較简单的功能,就是用户能够写入数据,对IC的某些功能进行配置.而IC在reset时,会载入当中的内容,进行推断,从而使用户的配置生效. option ...
- BZOJ 3932 - 主席树
传送门 题目分析 在只打会主席树模板的情况下做了这道题,也算是深有体会. 首先任务可以差分:一个任务是(s, e, p), 则在s处+1, 在e+1处-1,符合前缀.但是我们要查询指定时间的前k任务之 ...
- Swagger 专题
随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染.前后端分离的形态,而且前端和后端在各自的技术道路上越走越远. 前端和后端的唯一联系,变成了API接口:API文档成了前后端 ...
- Fiddler快速入门(还有一个功能就是不经过网络,直接模拟一个响应返回给客户端)
Fiddler是一个免费.强大.跨平台的HTTP抓包工具.Wireshark也是一个强大的抓包工具,不过Wireshark是一个通用的抓包工具,主要精力放在各种协议上了,针对HTTP的特定功能较少.所 ...
- 【25.47%】【codeforces 733D】Kostya the Sculptor
time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- JVM参数调优:Eclipse启动实践
本文主要参考自<深入理解 Java 虚拟机>.这本书是国人写的难得的不是照搬代码注释的且不是废话连篇的技术书,内容涵盖了 Java 从源码到字节码到执行的整个过程,包括了 JVM(Java ...
- CLR托管内存
在物理内存中观察CLR托管内存及GC行为 虽然看了一些书,还网络上的一些博文,不过对CLR托管内存细节依然比较模糊.而且因为工作原因总会有很多质疑,想要亲眼看到内存里二进制数据的变化. 所以借助w ...
- GIT 单个文件还原到历史版本号
首先检查在历史文件中的版本号信息:git log <file> 将文件还原到历史版本号:git reset 版本号 <file> 文档工作区的检测:git checkout - ...
- Opencv 张正友相机标定傻瓜教程
注: 程序所用的OpenCV版本是 2.4.10 ,3.0以上的版本可能会有不同 先贴一下完整的工程代码: #include "opencv2/core/core.hpp" #in ...