adb进行手机操作

作者: icechao | 来源:发表于2017-06-01 10:43 被阅读0次
  • adb devices

    列出所有连接电脑的设备

  • adb reboot

    重启手机

  • adb pull <远程路径> <本地路径>

    从手机中文件拉到本地

  • adb push <本地路径> <远程路径>

    把文件从本地推到手机

  • adb service list

    列出手机中有的 service
    在使用adb shell dumpsys + 服务名 使用服务
    国产部队手机对服务进行阉割,所以当使用这个命令时要确定手机中有这个服务可以用
    可以在列出的服务中拿到几乎所有想要的信息

      例:adb shell dumpsys window
    
  • adb shell
    进入手机shell
    如果是多台设备连接到电脑需要使用

  • adb shell cat /system/build.prop

  • adb shell getprop []

    获取手机基本信息
    想要获取某单个信息在linux下可以用grep命令,或者在getprop后加属性key

      例 : adb shell getprop ro.product.model
    
  • adb shell dumpsys display

  • adb shell dumpsys window displays

    获取手机屏幕信息,两种方式都可以获取,有部分手机可能只支持一种

  • adb shell dumpsys display | grep PhysicalDisplayInfo

    获取屏幕的物理信息,grep命令是linux下才能执行,当在windows下使用时可以选择手动在字符中截取有用的信息

  • adb shell wm size

    获取手机屏幕尺寸

  • adb shell cat /sys/class/net/wlan0/address

    获取手机mac地址
    当手机在没有链接网络时无法获取到

  • adb shell dumpsys memoinfo

  • adb shell cat /proc/meminfo

    获取手机内存信息

  • adb shel dumpsys activity

    获取当前手机中Activity栈信息

  • adb shell input keycode

    植入按钮点击事件

  • adb shell input tap

    植入屏幕点击事件,先X轴再Y轴

        例: adb shell input tap 100 200
    
  • adb shell intput swipe left top right bottom

    植入屏幕滑动事件
    左上为滑动的起始位置,右下为滑动的结束位置

       例:adb shell input swipe 100 200  500 300
    
  • adb shell input text

    输入一个字符串,只支持英文数字和部分符号
    当需要为一个控件输入内容时,需要先保证输入框正片处于焦点

  • adb shell dumpsys activty | grep -i mSleeping

    判断当前屏幕状态

  • adb shell dumpsys cpuinfo

  • adb shell top -s cpu

    获取手机cpu信息

  • adb shell am start packageName/className

    启动一个Activity

  • adb shell am broadcast

    发送一个广播,使用-a来指定Action,-d指定数据

      adb shell am broadcast -a 'com.icechao.broadcast'
    
  • adb shell am am force-stop packageName

    强制停止一个应用

  • adb shell pm clear packageName

    清理应用数据

  • adb shelll kill pid

    杀死某个进程

  • adb logcat -v time -d

    打印logcat

  • adb shell df

    文件系统的磁盘空间占用情况

  • adb shell /system/bin/screencap -p /sdcard/screenshot.png

    手机截屏

  • adb shell screenrecord --time-limit 10 /sdcard/demo.mp4

    录制屏幕

  • adb shell getprop dhcp.wlan0.ipaddress

    获取手机ip地址

  • cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq

    获取手机Cpu最小频率

  • cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq

    获取手机Cpu最大频率

  • cat /sys/devices/system/cpu/cpu0/cpufreq/kernel_max

    获取手机cpu核数

  • adb shell dumpsys window policy | grep mScreenOnFully

    获取手机屏幕策略,windows中需要不能使用grep命令筛选信息

  • adb shell dumpsys window policy | grep mShowingLockscreen

    判断当前手机是否是锁屏状态

  • adb shell svc wifi enable/disable

       打开手机wifi,实测部份三星手机不支持些方法
    
  • adb shell monkey

    能过monkey植入事件为app进行压力测试
    一个测试小哥和我说monkey是稳定性测试不是压测

    Monkey命令参数介绍
    1. 参数: -p

    参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。指定

    包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。

      指定一个包: adb shell monkey -pcom.htc.Weather 100
    

    说明:com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件)。

      指定多个包:adb shell monkey -pcom.htc.Weather –p com.htc.pdfreader  -pcom.htc.photo.widgets 100
    
    • 不指定包:adb shell monkey 100

    说明:Monkey随机启动APP并发送100个随机事件。

    • 要查看设备中所有的包,在CMD窗口中执行以下命令:

    adbshell

    cddata/data

    #ls
    
    1. 参数: -v

    用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:

    日志级别Level0

    示例adb shellmonkey -p com.htc.Weather –v 100

    说明 缺省值,仅提供启动提示、测试完成和最终结果等少量信息

    日志级别Level 1

    示例adb shellmonkey -p com.htc.Weather –v -v 100

    说明 提供较为详细的日志,包括每个发送到Activity的事件信息

    日志级别Level 2

    示例adb shellmonkey -p com.htc.Weather –v -v –v 100

    说明 最详细的日志,包括了测试中选中/未选中的Activity信息

    1. 参数: -s

    用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。

    • 示例:

        Monkey测试1:adb shell monkey -p com.htc.Weather –s 10 100
      
        Monkey测试2:adbshell monkey -p com.htc.Weather–s 10 100
      

      两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;

    1. 参数: --throttle <毫秒>

    用于指定用户操作(即事件)间的时延,单位是毫秒;

    • 示例:adb shell monkey -pcom.htc.Weather –throttle 3000 100
    1. 参数: --ignore-crashes

    用于指定当应用程序崩溃时(Force& Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。

      示例1:adbshellmonkey -p com.htc.Weather --ignore-crashes 1000
    
    测试过程中即使Weather程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止;
    
      示例2:adbshellmonkey -p com.htc.Weather 1000
    
    测试过程中,如果Weather程序崩溃,Monkey将会停止运行。
    
    1. 参数: --ignore-timeouts

    用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,

    Monkey依然会发送事件,直到事件计数完成。

    1. 参数: --ignore-security-exceptions

    用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,

    Monkey依然会发送事件,直到事件计数完成。

    1. 参数: --kill-process-after-error

    用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态(注意:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。

    1. 参数: --monitor-native-crashes

    用于指定是否监视并报告应用程序发生崩溃的本地代码。

    1. 参数: --pct-{+事件类别}{+事件类别百分比}

    用于指定每种类别事件的数目百分比(在Monkey事件序列中,该类事件数目占总事件数目的百分比)

    这些是我们进行操作时一般会用到的参数。执行过程中,在dos命令里日志显示只有一小部分,我们就需要在我们编写的命令行后再加上>log.txt就可以在我们保存adb路径中自动生成日志,方便我们进行查看。

    比如:

      adb shell -p com.htc.xxx -v -v -v -s 2505000>log.txt
    

    上面语句的意思就是,对com.htc.xxx随机操作5000次,send值为250,并且打印level 2日志,并且将日志保存到log.txt。

命令讲完后,我们来讲一讲如何查看日志。

当日志生成后,我们需要进入日志当中查看是否有APP崩溃记录或者无响应记录。崩溃记录查找”CRASH”,无响应记录查找”ANR”,内存泄露问题搜索"GC"(需进一步分析),异常问题搜索“Exception”(如果出现空指针,NullPointerException,需格外重视)。

为了进一步分析问题的来源,可以找到Log中出现问题处的前一次Switch,随后根据Log主要是查看相关的Activity。

下面我就把我昨天执行后的日志拿出来:

进入日志后,会显示

    :Monkey: seed=250count=3500
    
    :AllowPackage:com.text.app.hospitalassistant

上面表示了点击了3500次,执行seed值为250,对甘肃妇幼这个APP进行了操作。

    // Eventpercentages:
    
    //   0: 15.0% 0:触摸事件百分比,即参数–pct-touch
    
    //   1: 10.0% 1:滑动事件百分比,即参数–pct-motion
    
    //   2: 2.0%  2:缩放事件百分比,即参数–pct-pinchzoom
    
    //   3: 15.0%  3:轨迹球事件百分比,即参数–pct-trackball
    
    //   4: -0.0% 4:屏幕旋转事件百分比,即参数–pct-rotation
    
    //   5: 25.0% 5:基本导航事件百分比,即参数–pct-nav
    
    //   6: 15.0% 6:主要导航事件百分比,即参数–pct-majornav
    
    //   7: 2.0% 7:系统事件百分比,即参数–pct-syskeys
    
    //   8: 2.0% 8:Activity启动事件百分比,即参数–pct-appswitch
    
    //   9: 1.0% 9:键盘翻转事件百分比,即参数–pct-flip
    
    //   10: 13.0% 10:其他事件百分比,即参数–pct-anyevent



####
grep(命令中 ' | '到命名结束的部份)命令可以从得到的结果里筛选想要的信息行,这个命令只支持linux 在windows可以考虑使用findstr



#####在进入手机shell模式后很多通用命令是和linux是一样的,所以可以直接使用linux命令来获取手机的信息


#####当电脑连接多台手机使用 adb -s 手机序列号 命令  的方式指定手机



##当需要代码参数时 输入命令会有参数介绍可以根据介绍添加对应的命令参数 

相关文章

  • adb进行手机操作

    adb devices列出所有连接电脑的设备 adb reboot重启手机 adb pull <远程路径> <本地...

  • ADB命令对手机进行操作

    连接设备后adb shell 进入设备检查是否有root(&表示没root,#表示已经root) 没root执行如...

  • adb命令——通过WiFi对手机进行ADB操作

    场景 在开发中经常会遇到usb插口插着其他的设备,但是此时还要用adb命令,不能及时获取Log分析问题很苦恼,怎么...

  • APP测试

    APP测试 1、adb命令连接手机进行操作 Android:设置--->关于手机---->连续点击5次版本号进入开...

  • Android操作生成gif图

    目标 在Android手机上进行操作 最终生成操作的gif图 限制 需要用命令行 方案 adb shell scr...

  • adb

    1. adb -s devices_seqnum * 对设备seqnum进行操作 2.adb devices 显示...

  • adb shell 与 Android 总结及问题

    一、adb 启动 Android 应用 手机连接 adb 后,可通过 am 命令做很多操作,可以启动 Servic...

  • 【源码】接口自动化测试:基于 monkey+python

    Monkey在哪 在手机系统里,为了与它进行通讯,我们需要借助一个工具ADB ADB ADB是什么 这里需要借助一...

  • ADB原理

    PC与手机的adb连接 PC端可以有多个中断进行adb连接,它们连接的是PC的adb server,server再...

  • Android - adb 远程调试

    最近遇到 mac,adb 一连接手机端,手机端就死机的问题。只能使用 adb connect ip 进行远程调试安...

网友评论

    本文标题:adb进行手机操作

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