• adb命令大全


    目录
    一、adb用法大全图
    二、adb是什么,学习它有什么意义?
    三、常用adb 命令
    四、常用 adb shell 命令
    五、参考资料
     
     
    一、adb用法大全图
     

    二、adb 是什么,学习它有什么意义?
    adb 其实就是 Android Debug Bridge, Android 调试桥的缩写,adb 是一个 C/S
    架构的命令行工具,主要由 3 部分组成:
    运行在 PC 端的 Client : 可以通过它对 Android 应用进行安装、卸载及调试
    Eclipse 中的 ADT、SDK Tools 目录下的 DDMS、Monitor 等工具,都是同样
    地用到了 adb 的功能来与 Android 设备进行交互。
    PC 端的手机助手,诸如 360 手机助手、豌豆荚、应用宝等,其除了安装第三
    方应用方便,其他的功能,基本上都可以通过 adb 命令去完成,这里建议
    尽量不要在电脑上安装这类手机助手,因为其自带的 adb 程序可能会
    与 Android SDK 下的 adb 程序产生冲突,5037 端口被占用,导致使用 adb
    命令时无法连接到设备
    运行在 PC 端的 Service : 其管理客户端到 Android 设备上 adb 后台进程的
    连接
    adb 服务启动后,Windows 可以在任务管理器中找到 adb.exe 这个进程
    运行在 Android 设备上的 adb 后台进程
    执行 adb shell ps | grep adbd ,可以找到该后台进程,windows 请
    使用 findstr 替代 grep
    这个进程是需要用户手动开启,打开方法:
    1、在手机设置 → 关于手机 → 版本号 点击多次,直到提示已进入开发这
    模式 ,然后退出这个页面,
    2、手机设置→ 开发者选项 → 打开usb调试
    学习的意义针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb
    命令熟记于心, 将会为 Android 测试带来很大的方便,
    其中很多命令将会用于自动化测试的脚本当中。
    三、常用adb 命令
    在终端输入 adb(配置好环境变量情况下) 或者 adb help,会自动弹出常用的
    adb 命令列表,如图
     

    重启adb服务
    adb kill-server , adb start-server , 结束 adb 服务, 启动 adb 服务,通常两个命令
    一起用
    一般在连接出现异常,使用 adb devices 未正常列出设备, 设备状态异常时使用
    kill-server,然后运行 start-server 进行重启服务
    查看日志
    adb logcat
    Android 的日志分为如下几个优先级(priority):
    V —— Verbose(最低,输出得最多)
    D —— Debug
    I —— Info
    W —— Warning
    E —— Error
    F —— Fatal
    S —— Silent(最高,啥也不输出)
    如: adb logcat -s 标签名 只查看对应标签名日志
    adb logcat *:d 只查看 D级别以上的日志
    adb logcat *:d 标签名 只查看 D级别以上制定标签名的日志
    安装、卸载应用
    adb install 安装包路径 安装应用,覆盖安装是使用 -r 选项
    如 adb install -r /Users/cbf/TCL/Demo/app/build/outputs/apk/app-debug.apk
    (安装包名称尽量使用英文)
    adb uninstall 对应包名 卸载应用 adb uninstall com.taobao.taobao (卸载淘
    宝)将 Android 设备上的文件或者文件夹复制到本地
    adb pull <remote> <local> 如将 sdcard 目录下 pull.txt 文件拷贝到 D 盘: adb
    pull sdcard/pull.txt d:
    推送本地文件至 Android 设备
    adb push <local> <remote> 如:
    adb push d:push.txt sdcard/ 注意: sdcard 后面的斜杠不能少,否则会出现下面
    错误failed to copy 'push.txt' to 'sdcard': Is a directory
    获取管理员权限
    adb root
    重现挂在手机文件系统为可读写状态
    adb remount
    adb root , adb remount 一般你想pull某个文件夹到电脑里,或者拷贝某个文件到
    手机某个目录下,提示你没有读写权限时,使用这个两个命令重现挂载系统文件
    夹为可读写状态
    重启手机
    adb reboot
    查看bug报告
    adb bugreport , 打印dumpsys、dumpstate、logcat的输出,也是用于分析错误
    android 7.0以后手机才能用,输入命令比较多,建议重定向到一个文件中
    adb bugreport > d:ugreport.log
    获取设备的状态
    adb get-state 设备的状态有 3 钟,device , offlfline ,
    unknown device:设备正常连接
    offlfline:连接出现异常,设备无响应
    unknown:没有连接设备
    四、常用 adb shell 命令
    adb 命令是 adb 这个程序自带的一些命令,而 adb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录
    下,大家可以通过进入到该文件夹下,通过cat 命令发现这些其实都是通过shell 来
    实现的. 如cat am
     

    1. 按键事件
    input text <string> input a string to device
    input keyevent <event_code> send a Key Event to device
    如: adb shell input keyevent 26 (PowerKey)
    input tap , 对屏幕发送一个触摸事件
    adb shell input tap 500 500 点击屏幕上坐标为 500 500 的位置
    input swipe , 滑动事件
    adb shell input swipe 900 500 100 500
    从右往左滑动屏幕
    如果版本不低于 4.4 , 可以模拟长按事件
    adb shell input swipe 500 500 501 501 2000
    其实就是在小的距离内,在较长的持续时间内进行滑动,最后表现出来的结果就
    是长按动作
    到这里会发现,MonkeyRunner 能做到的事情,通过 adb 命令都可以做得到,如
    果进行封装,会比 MR 做得更好。
    2. am命令
    am start <INTENT> : start an Activity
    如 : am start -n com.android.calculator/com.android.calculator2.Calculator
    这里有个小技巧,如果事先不知道应用的包名和 activity的名称,进入到应
    用界面然后通过命令
    adb shell dumpsys activity activities | grep mFocusedActivity 查看前台activity获 
    取activity名称。
    am broadcast <INTENT> 发送一个广播 am startservice <INTENT> 启动一个服务
    am force-stop <PACKAGE> 结束应用
    am kill <PACKAGE> 结束应用
    am kill-all
    am start , 启动一个 Activity,已启动系统相机应用为例
    启动相机
    $ adb shell 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://www.baiddu.com
    启动拨号器拨打 10086
    $ adb shell am start -a android.intent.action.CALL -d tel:10086
    更多詳细用法请见am 使用帮助.
    还有很多的选项,自己多多发掘~~
    3. pm 命令
    pm list packages
    -f: see their associated fifile 列出应用包名及对应的apk名及存放位置
    -s: fifilter to only show system packages 列出系统应用
    -3 ilter to only show third party packages 列出第三方应用
    pm list packages [-f] [-d] [-e] [-s] [-e] [-u] [FILTER]");
    pm list permission-groups
    pm list permissions [-g] [-f] [-d] [-u] [GROUP]");
    pm list instrumentation [-f] [TARGET-PACKAGE]"); 列出含有单元测试 case
    的应用
    pm list features
    pm list libraries
    pm path PACKAGE 列出对应包名的 .apk 位置 如列出qq对应apk的位置
    adb shell pm path com.tencent.mobileqq
    pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH 安装
    android设备里的apk文件 如 pm install /sdcard/1111.apk
    pm uninstall [-k] PACKAGE 根据包名 卸载apk
    pm clear PACKAGE 根据包名清楚应用数据
    pm enable PACKAGE_OR_COMPONENT
    pm disable PACKAGE_OR_COMPONENT
    pm disable-user PACKAGE_OR_COMPONENT
    pm set-install-location [0/auto] [1/internal] [2/external] 设置应用安装位置
    pm get-install-location 获取应用安装位置
    参数组合使用,例如,查找三方应用中 qq 的包名、apk存放位置、安装来
    源:
    adb shell pm list package -f -3 -i qq
     

    package:后是apk的路径地址 = 后面是包名 install = 代表来源 这里null 表示
    是未知来源
    更多詳细用法,请见pm使用帮助.
    4、screencap 截图命令
    adb shell screencap -p /sdcard/screen.png
    截屏,保存至 sdcard 目录
    5、screenrecord 4.4 新增的录制命令
    adb shell screenrecord sdcard/record.mp4
    6. dumpsys
    dumpsys activit
    dumpsys activity intents
    dumpsys activity broadcasts
    dumpsys activity providers
    dumpsys activity services
    dumpsys activity activities
    dumpsys activity processes
    dumpsys window
    dumpsys window windows
    dumpsys window tokens
    dumpsys window sessions
    dumpsys window policy
    dumpsys window input
    dumpsys statusbar
    dumpsys notifification
    dumpsys package [<PACKAGE> ]
    dumpsys location
    dumpsys alarm
    dumpsys connectivity
    dumpsys wififi
    …....等等
    7. ime 输入法管理
    ime list [-a] [-s]
    list command prints all enabled input methods
    -s option to see only a single summary line of each.
    -a option to see all input method
    五、参考资料
    http://www.cnblogs.com/bravesnail/articles/5850335.html
    https://github.com/mzlogin/awesome-adb (很全面)
    回忆滋润坚持
  • 相关阅读:
    JS高级拖拽
    JS高级Date类
    JS高级闭包
    JS笔记整理
    JS高级解决函数内的this指向
    JS高级事件委托
    JS高级 事件对象
    JS中级面向对象
    JS中级
    JS高级
  • 原文地址:https://www.cnblogs.com/james5d/p/14094942.html
Copyright © 2020-2023  润新知