参考文档:https://www.cnblogs.com/bravesnail/articles/5850335.html
非常感谢作者的分享,以下是我学习的记录。
Android 常用adb 命令汇总
---------------------------------------------------
运行在 Android 设备上的 adb 后台进程
adb shell ps | findstr adbd

通过 adb 来管理多台设备,其一般的格式为:
adb [-e | -d | -s <设备序列号>] <子命令>
adb devices , 获取设备列表及设备状态
adb get-state , 获取设备的状态
    设备的状态有 3 钟,device , offline , unknown
device:设备正常连接
offline:连接出现异常,设备无响应
unknown:没有连接设备
db kill-server , adb start-server , 结束 adb 服务, 启动 adb 服务,通常两个命令一起用
adb logcat , 打印 Android 的系统日志,ctrl+c 结束
adb bugreport , 打印dumpsys、dumpstate、logcat的输出,也是用于分析错误
    输出比较多,建议重定向到一个文件中
adb bugreport > d:\bugreport.log
adb install , 安装应用,覆盖安装是使用 -r 选项
adb version
adb uninstall , 卸载应用,后面跟的参数是应用的包名,请区别于 apk 文件名
    '-k' means keep the data and cache directories , -k 选项,卸载时保存数据和缓存目录
adb pull , 将 Android 设备上的文件或者文件夹复制到本地
    例如复制 Sdcard 下的 pull.txt 文件到 D 盘:
    adb pull sdcard/pull.txt d:\
    如果需要重命名为 rename.txt:
    adb pull sdcard/pull.txt d:\rename.txt

adb push , 推送本地文件至 Android 设备
    例如推送 D 盘下的 push.txt 至 Sdcard:
    adb push d:\push.txt    sdcard/
    sdcard 后面的斜杠不能少,否则会出现下面的错误:
adb reboot , 重启 Android 设备
    bootloader , 重启设备,进入 fastboot 模式,同 adb reboot-bootloader 命令
    recovery , 重启设备,进入 recovery 模式,经常刷机的同学比较熟悉这个模式

adb forward , 将 宿主机上的某个端口重定向到设备的某个端口    
-----------------------------------
adb  shell
    简单点讲,adb 命令是 adb 这个程序自带的一些命令,而 adb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录下,
下面介绍一些常用的 adb shell 命令
pm
Package Manager , 可以用获取到一些安装在 Android 设备上得应用信息
adb -s 设备号  shell 进行shell模式:
pm list package 列出安装在设备上的应用
    不带任何选项:列出所有的应用的包名(不知道怎么找应用的包名的同学看这里)
    -s:列出系统应用
        adb shell pm list package -s
    -3:列出第三方应用
        adb shell pm list package -3
    -f:列出应用包名及对应的apk名及存放位置
        adb shell pm list package -f    
    -i:列出应用包名及其安装来源,结果显示例子:
        adb shell pm list package -i
    参数组合使用,例如,查找三方应用中知乎的包名、apk存放位置、安装来源:
        adb shell pm list package -f -3 -i zhihu
pm path 列出对应包名的 .apk 位置
pm list instrumentation , 列出含有单元测试 case 的应用,后面可跟参数 -f (与 pm list package 中一样),以及
[TARGET-PACKAGE]

pm dump , 后跟包名,列出指定应用的 dump 信息,里面有各种信息,自行查看
    adb shell pm dump com.tencent.mobileqq
pm install , 安装应用
    目标 apk 存放于 PC 端,请用 adb install 安装
    目标 apk 存放于 Android 设备上,请用 pm install 安装
    pm uninstall , 卸载应用,同 adb uninstall , 后面跟的参数都是应用的包名
    pm clear , 清除应用数据
    pm set-install-location , pm get-install-location , 设置应用安装位置,获取应用安装位置
        [0/auto]:默认为自动
        [1/internal]:默认为安装在手机内部
        [2/external]:默认安装在外部存储    
am    am start , 启动一个 Activity,已启动系统相机应用为例
    启动相机        
        am start -n com.android.camera/.Camera
    先停止目标应用,再启动
        adb shell am start -S com.android.camera/.Camera
    等待应用完成启动
        adb shell am start -W com.android.camera/.Camera
    启动默认浏览器打开一个网页
        adb shell am start -a android.intent.action.VIEW -d http://testerhome.com
    启动拨号器拨打 10086
        adb shell am start -a android.intent.action.CALL -d tel:10086
    
    am instrument , 启动一个 instrumentation , 单元测试或者 Robotium 会用到
    am monitor , 监控 crash 与 ANR   :adb shell am monitor
    am force-stop , 后跟包名,结束应用
    am startservice , 启动一个服务
    am broadcast , 发送一个广播
input  这个命令可以向 Android 设备发送按键事件
    input text , 发送文本内容,不能发送中文
        adb shell input text test123456
    前提先将键盘设置为英文键盘
    input keyevent , 发送按键事件
        adb shell input keyevent KEYCODE_HOME
        模拟按下 Home 键 ,源码里面有定义:
        public static final int KEYCODE_HOME = 3;
        因此可以将命令中的 KEYCODE_HOME 替换为 3
    input tap , 对屏幕发送一个触摸事件
        adb shell input tap 500 500
        点击屏幕上坐标为 500 500 的位置
    
    input swipe , 滑动事件
        adb shell input swipe 900 500 100 500
screencap  截图命令   adb shell screencap -p /sdcard/screen.png
screenrecord       新增的录制命令
    adb shell screenrecord sdcard/record.mp4    
    执行命令后操作手机,ctrl + c 结束录制,录制结果保存至 sdcard
uiautomator    
    执行 UI automation tests , 获取当前界面的控件信息
    adb shell uiautomator dump
    不加 [file] 选项时,默认存放在 sdcard 下
ime      输入法
     adb shell ime list -s
     列出设备上的输入法
     adb shell ime set com.baidu.input_mi/.ImeService
     选择输入法
wm      获取设备分辨率
    adb shell wm size
    adb -s 2cd6e815   shell wm size   多个设备,-s 设备号
log  可以在 logcat 里面打印你设定的信息
    adb shell log -p d -t xuxu "test adb shell log"
    -p:优先级,-t:tag,标签,后面加上 message
    adb logcat -v time -s xuxu
getprop
        查看 Android 设备的参数信息,只运行 adb shell getprop,结果以 key : value 键值对的形式显示,如要获取某个 key 的值:
        adb shell getprop ro.build.version.sdk
        获取设备的 sdk 版本
linux 命令
    操作你的 Android 设备,常用到的命令,只列出,不详解!
    cat、cd、chmod、cp、date、df、du、grep、kill、ln、ls、lsof、netstat、ping、ps、rm、rmdir、top、touch、重定向符号 ">" ">>"、管道 "|"
    有些可能需要使用 busybox ,另外建议 windows 下 安装一个 Cygwin , 没用过的请百度百科 Cygwin

ADB 常用命令学习的更多相关文章

  1. adb常用命令-android学习第一天

    转载出处:http://www.cnblogs.com/xiaoxuetu/ 转载来源:https://www.cnblogs.com/xiaoxuetu/p/3411214.html 平时开发and ...

  2. Android开发系列之adb常用命令

    对于Android开发者来说,如果没有adb的帮助,那肯定就跟少了一只手那样别扭.其实笔者在刚刚学习Android开发的时候,也没有意识到adb的重要性.想想只要用IDE画出界面,然后实现后台的逻辑代 ...

  3. 54. Android中adb常用命令及应用常用目录

    本文主要介绍adb常用命令及应用常用目录.1.adb常用命令adb devices列出所有连接的android设备.以下命令都是对单个devices而言,如果存在多个devices的话,下面的命令都需 ...

  4. Git版本控制软件结合GitHub从入门到精通常用命令学习手册(转)

    简要参考:http://www.tuicool.com/articles/mEvaq2 http://gitref.org/zh/index.html GIT 学习手册简介 本站为 Git 学习参考手 ...

  5. Linux的几个概念,常用命令学习

    Linux的几个概念,常用命令学习---------------------------------设备名装载点// 通过装载点访问设备-------------------------------- ...

  6. mondb 常用命令学习记录

    mondb 常用命令学习记录 一.MongoDB 下载安装 MongoDB官网 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制 ...

  7. adb常用命令(转)

    1.Android Debug Bridge -adb常用命令 1.1简介 Android Debug Bridge,我们一般简称为adb,主要存放在sdk安装目录下的platform-tools文件 ...

  8. adb常用命令教程

    1.Android Debug Bridge - adb常用命令 1.1简介 Android Debug Bridge,我们一般简称为adb,主要存放在sdk安装目录下的platform-tools文 ...

  9. 【android】adb常用命令

    ADB常用命令: [adb help]获取帮助 [adb get-serialno]获取设备串号 [adb -s <serialNumber> <command>]给特定设备发 ...

随机推荐

  1. [bzoj3339]Rmq Problem||[bzoj3585]mex_线段树

    Rmq Problem bzoj-3339||mex bzoj-3585 题目大意:给定一个长度为n的数列a,多次讯问区间l,r中最小的不属于集合{$A_l,A_{l+1}...A_r$}的非负整数. ...

  2. 前台JSON对象传给springmvc,解析为map对象

    前台JSON对象传给springmvc,解析为map对象 javascript: $.ajax({ url : url, method : 'post', contentType : 'applica ...

  3. [Angular] Why should we using Protal

    Origianl article Protal from Angular CDK, is a way to create dynammic component. Consider an example ...

  4. MySQL 调优 —— Using filesort

    出现这个问题的解决办法在于 MySQL 每次查询仅仅能使用一个索引, 而你的 SQL 语句 WHERE 条件和 ORDER BY 的条件不一样, 索引没建好的话. 那么 ORDER BY 就使用不到索 ...

  5. runloop简单介绍

    runloop是iOS底层机制中保持我们的程序一直运行的机制.他可以让线程一直循环不退出.而在我们正常的编程中.线程其实是线性的,当线程处理完我们的代码以后就自动退出了.runloop就是保证我们的应 ...

  6. 王立平--java se的简单项目创建以及具体解释

    创建项目的简单步骤: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzQyNTUyNw==/font/5a6L5L2T/fontsize/400/ ...

  7. 3.CCFadeOutTRTiles,部落格效果,跳动的方块特效,3D瓷砖晃动特效,破碎的3D瓷砖特效,瓷砖洗牌特效,分多行消失特效,分多列消失特效

     1 TiledGrid3D //TiledGrid3D //CCFadeOutTRTiles * action = CCFadeOutTRTiles::create(2, CCSize(20,2 ...

  8. jQuery - 制作点击显示二级菜单效果

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. How to Integrate .NET Projects with Jenkins

    https://www.swtestacademy.com/jenkins-dotnet-integration/ 8) Unit Tests and Test Coverage Settings D ...

  10. C++ 中的友元(friend)

    首先友元不是一个好的设计,它破坏了封装.并且自身有很多局限:比如友元关系不能被继承:友元关系是单向的,不具有交换性:友元关系不具有传递性. 类内声明的 friend 变量(或者函数)在访问该类的成员时 ...