zoukankan      html  css  js  c++  java
  • adb命令总结

    adb使用的端口是:5037,该端口一旦被占用会导致使用adb命令时无法连接到设备。PC端的手机助手,如360手机助手,应用宝等这类软件自带的adb程序可能会与Android SDK下的adb程序产生冲突。

    运行在Android设备上的adb后台进程:

      adb  shell  ps  |  grep  sdbd  ,(Windows请使用findstr替代grep)可以找到该后台进程

    以下将adb命令分三部分进行介绍,adb命令、adb  shell命令

    adb命令

    • adb  get-state,获取设备的状态  

                    设备状态有三种:device(设备连接正常),offline(连接出现异常,设备无响应),unknown(没有连接设备)

    • adb  kill-server ,结束adb服务,adb  start-server启动adb服务
    • adb  bugreport , 打印dumpsys、dumpstate、logcat的输出,用来分析错误                              
      • eg:  adb  bugreport  >  d:ugreport.log
    • adb  install , 安装应用,覆盖安装是使用-r选项(apk)
    • adb  uninstall   应用的包名(区别于apk文件名) ,卸载应用                                                  
      •  -k选项,卸载时保存数据和缓存目录
    • adb  pull  ,将Android设备上的文件或文件夹复制到本地
    • adb  push  本地文件路径    Android设备上的路径  , 推送本地文件至Android设备
    • adb  root  ,  adb  remount   ,只针对类似小米开发版的手机有用,可以直接以这两个命令获取root权限,并挂载系统文件系统为可读写状态
    • adb  reboot  ,  重启Android设备
    • adb  forward  ,  将宿主机上的某个端口重定向到设备的某个端口                                            
      • eg  :    adb  forward   tcp:1314   tcp:8888     (执行该命令后,所有发往1314端口的信息、数据都会转发到Android设备的8888端口上,因此可以远程控制Android设备)

    adb  shell命令

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

    pm(Package  Manager,包管理器)

    可以获取到一些安装在Android设备上的应用信息

    • pm  list  package  列出安装在设备上的应用                                                                         
      •  eg : adb  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                               
      • 命令最后增加filter:过滤关键字,可以很方便地查找自己想要找的应用                         
      • 参数组合使用,例如,查找第三方应用中“知乎”的包名、apk存放位置、安装来源:          
      • adb  shell  pm  list  package  -f  -3  -i  zhihu
    • pm  path  列出对应包名的 .apk位置                                                                                     
      • eg: adb  shell  pm  path  com.tencent.mobileqq
    • pm  list  instrumentation , 列出含有单元测试case的应用,后面可跟参数-f(与pm  list  package 中一样)
    • pm  dump  包名,列出指定应用的dump信息,里面有各种信息,自行查看                         
      • eg: adb  shell  pm  dump  com.tencent.mobileqq
    • pm  install  ,目标apk存放于Android设备上,用pm  install安装,若目标apk存放于PC端,则用adb  install安装
    • pm  uninstall  包名  , 卸载应用
    • pm  clear  , 清楚应用数据
    • pm  set-install-location  ,  pm  get-install-location  ,设置应用安装位置,获取应用安装位置                                                                                                                         
      •  [0/auto] : 默认为自动                                                                                                        
      • [1/internal] : 默认为安装在手机内部                                                                                
      • [2/external] : 默认安装在外部存储

    am

    • am  start , 启动一个Activity                                                                                                   
      •  eg : 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://testhome.com                                                                                       
      • 启动拨号器拨打10086 : adb  shell  am  start  -a  android.intent.action.CALL  -d  tel:10086
    • am  instrument  ,启动一个instrumentation,单元测试或者Robotium会用到
    • am  monitor  ,监控crash与ANR
    • am  force-stop  包名  , 结束应用
    • am  startservice  , 启动一个服务
    • am  broadcast  , 发送一个广播

    input

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

    • input  text  , 可以发送文本内容,不能发送中文                                                                 
      • eg : adb  shell  input  text  test123456      前提先将键盘设置为英文键盘
    • input  keyevent   ,发送按键事件                                                                                           
      • eg : adb  shell  input  keyevent  KEYCODE_HOME   模拟按下home键
    • input  tap ,对屏幕发送一个触摸事件                                                                                    
      • eg  : adb  shell  input  tap   500   500
    • input  swipe  ,滑动事件                                                                                                        
      • eg :adb  shell  input  swipe  900  500  100  500   (从右往左滑动屏幕)                                 
      • adb  shell  input  swipe  500  500  501  501  2000   (版本不低于4.4,可以模拟长按事件,其实就是在小的距离内,在较长的持续时间内进行滑动,最后表现出来的结果就是长按动作)

    screencap

    • adb  shell  screencap  -p  /sdcard/screen.png      截图,保存至sdcard目录

    screenrecord

    • 4.4新增的录制命令     adb  shell  screenrecord  sdcard/record.mp4                                执行命令后操作手机,CTRL+C结束录制,录制结果保存至sdcard

    uiautomator

    • 执行UI  automation  tests,获取当前界面的控件信息                                                       runtest : executes  UI  automation  tests  RunTestCommand.java                                 dump :获取控件信息,DumpCommand.java                                                                     
      • eg : 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

    getprop

      查看Android设备的参数信息,只运行adb  shell   getprop  ,  结果以key:value键值对的形式显示,如要获取某个key值:

           adb  shell  getprop  ro.build.version.sdk     (获取设备的sdk版本)

  • 相关阅读:
    Android 默认壁纸 简单分析
    Makefile中override 指示符
    在linux内核中 读写上层文件
    Sqlite数据库操作的sql操作语句
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_lookup-method
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_lifecycle-init
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_lifecycle-destroy
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_GetFieldFactoryBean
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_BeanNameAware
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_abstract
  • 原文地址:https://www.cnblogs.com/siduoxiaohua/p/13136741.html
Copyright © 2011-2022 走看看