adb命令学习

  1. adb简要介绍

    adb 是一个 C/S 架构的命令行工具,主要由 3 部分组成:

    1. 运行在 PC 端的 Client : 可以通过它对 Android 应用进行安装、卸载及调试
    2. 运行在 PC 端的 Service : 其管理客户端到 Android 设备上 adb 后台进程的连接
    3. 运行在 Android 设备上的 adb 后台进程
    ADT/SDK Tools目录下的DDMS、Monitor等工具,都是同样地用到了 adb 的功能来与 Android设备进行交互
    

    adb命令学习

    adb命令主要分为三种

    1. adb 命令
    2. adb shell 命令
    3. Linux 命令

    - adb命令

    一般格式:

    adb [-e | -d | -s <设备序列号>] <子命令>
    

    常用adb命令:

    adb devices //获取设备列表及设备状态
    
    adb get-state [-s]//获取设备的状态,后面选填设备序列号,可以查询具体设备的状态
    
    adb kill-server //结束adb服务
    
    adb start-server //启动adb服务
    
    adb logcat //**打印 Android 的系统日志(log的筛选和记录后面会再单独拿出来学习)**
    
    adb bugreport //**打印dumpsys、dumpstate、logcat的输出,也是用于分析错误**
    
    adb install [apk文件] //安装应用;覆盖安装是使用 -r 选项
    
    adb uninstall [app包名] //卸载应用;使用 -k 选项,卸载时保存数据和缓存目录
    
    adb pull [设备文件位置] [本地目录] //将 Android 设备上的文件或者文件夹复制到本地
    
    adb push [本地文件位置] [设备目录] //推送本地文件至 Android 设备
    
    adb reboot //重启 Android 设备
    

    - adb shell 命令

    adb shell 命令是调用的是 Android 系统中的命令,这些 Android 特有的命令都放在了Android 设备的 system/bin 目录下。

    常用adb shell命令:

    pm

    adb shell pm list package //列出所有的应用的包
    
    adb shell pm list package -s //列出系统应用
    
    adb shell pm list package -3 //列出第三方应用
    
    adb shell pm list package -f //列出应用包名及对应的apk名及存放位置
    
    adb shell pm list package -i [关键字] //过滤关键字,可以很方便地查找自己想要的应用
    
    adb shell pm list package -f -3 -i whatsapp //参数可以组合使用
    >> package:/data/app/com.whatsapp-1/base.apk=com.whatsapp  installer=null
    
    adb shell pm path [包名] //列出对应包名的 .apk 位置
    
    adb shell pm list instrumentation //列出含有单元测试 case 的应用,后面可跟参数 -f 
    
    adb shell pm dump [包名] //**列出指定应用的 dump 信息**
    
    adb shell pm install [包名] //安装应用
    
    adb shell pm uninstall [包名] //卸载应用;使用 -k 选项,卸载时保存数据和缓存目录
    
    adb shell pm clear [包名] //清除应用数据
    

    am

    adb shell am start [-D | W | P | R | S] [包名] //启动应用
    >> 参数:
        -D: enable debugging 打开调试
        -W: wait for launch to complete 等待应用完成启动
        -P <FILE>: like above, but profiling stops when app goes idle //(不懂)
        -R: repeat the activity launch <COUNT> times.  Prior to each repeat, 重复开启应用
        -S: force stop the target app before starting the activity 先停止目标应用,再启动
    
    adb shell am instrument //**启动一个 instrumentation , 单元测试或者 Robotium 会用到**
    
    adb shell am monitor //**监控 crash 与 ANR**
    
    adb shell am force-stop [包名] //结束应用
    
    adb shell am startservice //启动一个服务
    
    adb shell am broadcast //发送一个广播
    

    input

    input命令可以向 Android 设备发送按键事件

    adb shell input text [文本] //发送文本内容,不能发送中文
    
    adb shell input keyevent [KeyEvent] //发送按键事件
    
    adb shell input tap [x轴] [y轴] //对屏幕发送一个触摸事件
    
    adb shell input swipe [x0] [y0] [x1] [y1] [持续时间] //滑动事件
    >> adb shell input swipe 500 500 501 501 2000 //在小的距离内,较长的持续时间内进行滑动,最后表现出来的结果就是长按动作
    

    其他常用adb shell命令

    adb shell screencap -p [自定目标目录下的文件名] //截图命令
    
    adb shell screenrecord [自定目标目录下的文件名] //录制命令
    
    adb shell uiautomator dump //执行 UI automation tests , 获取当前界面的控件信息
    
    adb shell ime list -s //列出设备上的输入法
    
    adb shell ime set [输入法包名] //选择输入法
    
    adb shell wm size //获取设备分辨率
  2. 范例:
#adb connect 192.168.6.211  (连接设备)
#adb shell  (修改权限)
#busybox su
#busybox mount -o rw,remount /system
#chmod 777 /system/bin
#exit
#adb push F:/test.txt /system/bin (传送文件)
#reboot (重启设备)

 

posted on 2016-03-10 10:46  清明-心若淡定  阅读(891)  评论(0编辑  收藏  举报