引言

本文基于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

列举当前连接的调试设备

$ adb devices
List of devices attached
DU2SSE1467010378    device

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 install/uninstall

安装卸载apk

// 安装apk时指定apk file路径
$ adb install ~/Downloads/mobileqq_android.apk
[100%] /data/local/tmp/mobileqq_android.apk pkg: /data/local/tmp/mobileqq_android.apk Success // 卸载apk时指定包名 $ adb uninstall com.tencent.mobileqq Success 

2.4 adb pull/push

调试设备和开发PC之间拷贝文件.

// 拷贝本地文件到调试设备中
$ adb push ~/temp/GithubApp.trace /sdcard/
[100%] /sdcard/GithubApp.trace// 从调试设备中拷贝文件到本地
$ adb pull /sdcard/GithubApp.trace ~/ [100%] /sdcard/GithubApp.trace 

2.5 adb start/kill-server

启动/杀死adb简介中提到的Server端进程.

由于adb并不稳定, 有时候莫名的问题掉线时, 可以先kill-server, 然后start-server来确保Server进程启动. 往往可以解决问题.

2.5 adb shell

进入调试设备的shell界面, 此时可以使用调试设备中的很多指令. 下文高阶用法中很多就是.

$ adb shell
shell@hwH60:/ $

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

截屏, 比截屏快捷键更加方便快捷.

$ adb shell screencap /sdcard/screen.png

$ adb pull /sdcard/screen.png ~/temp
[100%] /sdcard/screen.png 

3.5 adb shell screenrecord

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

screenrecord gif

Android4.4及以上系统可用.

2.5 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

作者:anly_jun
链接:https://www.jianshu.com/p/5980c8c282ef
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://www.cnblogs.com/givemelove/p/8492391.html

Android adb你真的会用吗?相关推荐

  1. Android ADB 源码分析(三)

    前言 之前分析的两篇文章 Android Adb 源码分析(一) 嵌入式Linux:Android root破解原理(二) 写完之后,都没有写到相关的实现代码,这篇文章写下ADB的通信流程的一些细节 ...

  2. adb android源码分析,Android Adb 源码解析(base on Android 9.0)

    Adb 框架 Adb架构 Android Adb 一共分为三个部分:adb.adb server.adbd,源码路径:system⁩/⁨core⁩/⁨adb. adb和adb server 是运行在P ...

  3. Android ADB设备离线,无法发出命令

    本文翻译自:Android ADB device offline, can't issue commands I can't connect to my device anymore using AD ...

  4. Android ADB工具-管理设备 app(二)

    Android ADB工具-管理设备 app(二) 标签(空格分隔): Android 4.管理设备 app 命令 功能 adb install [-r|-s] <apkfile> 安装 ...

  5. 关于Android adb实现框架和应用

    关于Android adb实现框架和应用 链接: https://pan.baidu.com/s/1tMSw6OnbgQz5GH2E8i6JKw 提取码: 7a5u 另外我的相关培训视频请看: 欢迎观 ...

  6. Android Adb 源码分析

    扭起屁股得意洋洋 最近,我负责的项目因为临近量产,把之前的userdebug版本关闭,转成了user版本,增加selinux的权限,大家都洋溢在项目准备量产的兴奋和喜悦之中不能自拔 谁知,好景不长,u ...

  7. android 系统(6)---Android ADB 命令大全

    原文链接:https://github.com/mzlogin/awesome-adb ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也 ...

  8. android adb工具linux,Ubuntu Android ADB 使用

    ADB (Android Debug Bridge)是Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态.使用它我们也可以利用命令来进行一些常规操作,例如软件安装 ...

  9. android+adb+push到系统下,Android adb push 应用到app/system

    Android adb push 应用到app/system 准备工作 具体操作 准备工作 1.准备打包好的apk(必须签名) test.apk 2.设备已经链接到电脑 具体操作 1.push apk ...

最新文章

  1. BZOJ 2135 刷题计划(贪心,求导,二分)【BZOJ 修复工程】
  2. Linux有问必答-如何创建和挂载XFS文件系统
  3. python的jupyter的使用教程-强大的jupyter,python开发者的福音
  4. CTO在企业技术创新中的作用和地位
  5. Windows进程与线程学习笔记(五)—— 模拟线程切换
  6. et操作 python wps_拿起来就用的office二次开发(python,win32com使用经历总结)
  7. GAE 随机获取实体
  8. android 动画 返回,Android“菜单图标变返回”动画
  9. 字节跳动社招面试记录,java异常处理关键字
  10. 1108 Finding Average (20)(字符串)
  11. jq json格式化工具
  12. SPSS入门教程——如何分析两个变量之间的关联度?
  13. suse linux 10 下载,SUSE Linux 10下载
  14. sublime text3格式化代码快捷键
  15. Verilog编写FSM有限状态机来检测序列11011,则输出1;可对序列进行重复检测
  16. Python 计算平方数
  17. whois域名查询工具在线使用
  18. Shiro框架Given final block not properly padded问题解决
  19. 汇编语言小写字母转大写字母
  20. 亚商投资顾问 早餐FM/0411中证金融下调证券公司保证金比例

热门文章

  1. 软件工程个人作业03
  2. UVA 331 Mapping the Swaps
  3. 分析vue-cli@2.9.3 搭建的webpack项目工程
  4. Unity3d 布娃娃系统
  5. 2016 年 3 月 TIOBE 编程语言排行榜
  6. 嵌入式C语言查表法的项目应用
  7. 【SVM】A Practical Guide to Support Vector Classication
  8. PHP扩展开发-01:第一个扩展
  9. AJAX Control Toolkit - DropDown
  10. linux互信封装脚本,使用shell脚本实现自动SSH互信功能