美文网首页
ADB使用大法

ADB使用大法

作者: 王三的猫阿德 | 来源:发表于2016-12-02 19:44 被阅读156次

    转载注明出处:http://www.jianshu.com/p/5eddacadb089

    前言

    只介绍一些我常用的指令,有一些指令没用过,或者本人未了解不介绍,有些指令只是说明作用,具体使用细节可以去网上查具体使用,比如adb logcatadb shell dumpsys指令,使用细节很多,不做具体介绍,以后可能会慢慢补全。

    显示设备

    显示连接到当前电脑上的设备

    > adb devices
    List of devices attached
    4b5df8f1    device
    59a85475    device
    

    多台设备

    如果多台设备连接到电脑,使用-s来选择指令执行的设置。

    adb -s 4b5df8f1 install test.apk // 向id为4b5df8f1的设备安装test应用
    

    安装包相关指令

    • 安装程序,指令格式,adb install [option] <app_path>

      adb install test.apk
      adb install -r test.apk // 覆盖安装
      
      
    • 卸载程序,指令格式,adb uninstall [options] <PACKAGE_NAME>

      adb uninstall com.test.app // 卸载包名为com.test.app的程序
      adb uninstall -k com.test.app // 卸载包名为com.test.app的程序,但是保留数据
      
    • 列出设备中已安装的程序,adb shell pm list packages [options] <Filter_name>

      adb shell pm list packages // 列出设备中所有已安装程序
      adb shell pm list packages -d // 列出设备中无用程序,目前不知道有什么用
      adb shell pm list packages -e // 列出设备中可用程序
      adb shell pm list packages -s // 列出系统程序
      adb shell pm list packages -3 // 列出第三方程序
      adb shell pm list packages -i // 列出所有程序,并显示安装来源
      adb shell pm list packages -u // 列出所有程序,包括已卸载程序
      

      查看id为4b5df8f1设备的第三方安装程序,过滤词为baidu,示例:

      > adb -s 4b5df8f1 shell pm list packages -3 baidu
        package:com.baidu.lbs.waimai
        package:com.baidu.netdisk
      
    • 查看安装程序的apk文件目录,adb shell pm path <PACKAGE>

      在id为4b5df8f1设备查看中包名为com.baidu.netdisk程序的安装包路径位置,示例:

      > adb -s 4b5df8f1 shell pm path com.baidu.netdisk
        package:/data/app/com.baidu.netdisk-1/base.apk
      
    • 清空程序缓存,adb shell pm clear <PACKAGE>

      示例:

      > adb shell pm clear com.baidu.netdisk
      Success
      

    文件相关指令

    local_path可为相对路径,可为相对路径

    • 从设备中拷贝文件, adb pull <remote_path> <local_path>

      // 将设备中/sdcard/demo.mp4拷贝到本机的e盘根目录
      adb pull /sdcard/demo.mp4 e:\
      
    • 本地文件拷贝至设备,adb push <local_path> <remote_patch>

      // 将本地d盘的test.apk文件拷贝至设备的/sdcard目录下
      adb push d:\test.apk /sdcard
      
    • 进入设备系统,adb shell,Android设备底层是Linux内核,好多指令是和Linux种指令相同,下面列出一些。使用adb shell指令进入设备系统之后,可使用以下指令。

      ls            // 列出当前目录下面的文件
      ls -a         // 列出当前目录下的所有文件,包括隐藏文件
      ls -l         // 列出文件,包括文件的读写权限和组关系
      
      cd <文件夹名称> // 进入某个文件夹
      
      rm <文件名>    // 删除某个文件
      rm -f <文件名> // 强制删除某个文件
      rm -r <文件夹> // 删除某个非空文件夹
      rm -d <文件夹> // 删除文件夹,包括空文件夹,等同于rmdir指令
      
      mkdir <文件名/文件夹名> // 创建文件或者文件夹
      mkdir -m 777 <文件名/文件夹名> // 创建相应权限的文件夹,777是一种权限的代称
      mkdir -p <文件名/文件夹名> // 如果不存在该文件或者文件夹,就创建
      
      touch <文件名> // 新建文件
      
      pwd // 打印当前目录
      
      cp [options] <source_path> <dest_path> // 拷贝文件或者文件夹
      
      move [options] <source_path> <dest_path> // 移动文件或者重命名文件 
      

    日志指令

    • 输出日志,adb logcat [option] [filter-specs],具体使用可以查看这里,点这里,个人常用的指令格式。

      // 以单个关键字过滤日志,日志显示时间戳
      adb logcat -v time | grep 关键字
      adb logcat -v time | grep "关键字"
      
      // 以多个关键字过滤日志,日志显示时间戳
      adb logcat -v time | grep "关键字一\|关键字二"
      
    • 输出手机信息,adb shell dumpsys [options]

      // 查看电池使用情况
      adb shell dumpsys battery
      

      还有更多使用方法,官方文档,例如利用它去查看内存使用情况,详情链接

    • adb shell dumpstate查看各类信息,比如进程信息,内存信息,进程是否异常,kernnel的log等,有些手机不适用,提示说没有找到sh脚本,OAO,嗯,系统定制化的结果。

    • 查看当前Activity

      // linux
      adb shell dumpsys activity | grep "mFocusedActivity"
      //windows
      adb shell dumpsys activity | findstr "mFocusedActivity"
      

    截屏

    • 截屏,截取当前手机屏幕,adb shell screencap <filename>,然后可以再利用adb pull指令将图片拷贝到本地

      // 截取当前屏幕,图片保存到/sdcard目录下,名称为screen.png
      adb shell screencap /sdcard/screen.png
      
    • 录制视频,录制屏幕操作视频,adb shell screenrecord [options] <filename>按ctrl+c停止录制,该指令仅适用于4.4版本以及以上的系统。

      // 录取屏幕操作视频,保存到/sdcard目录下,名称为demo.mp4
      adb shell screenrecord /sdcard/demo.mp4
      
      // 录取视频,并设置录取视频的长宽
      adb shell screenrecord --size <WIDTHxHEIGHT> <filename>
      
      // 录取视频,设置最长录取时间
      adb shell screenrecord --time-limit <TIME> <filename>
      
      // 录取视频,角度旋转90度
      adb shell screenrecord --rotate <filename>
      

    文章参考:
    http://adbshell.com/commands
    https://developer.android.com/studio/command-line/adb.html

    相关文章

      网友评论

          本文标题:ADB使用大法

          本文链接:https://www.haomeiwen.com/subject/evyqmttx.html