zoukankan      html  css  js  c++  java
  • adb的常用命令

    1、用ADB在PC端对手机进行各种操作的准备工作

    一共需要三步即可。

    1. step1 Enable 开发者模式
    
    2. step2 Enable USB Debug模式
    
    3. step3 使用数据线连接手机和PC
    
    
    • Enable开发者模式对于不同型号的手机来说操作大同小异,都是找到手机系统设置的关于项,连续7次点击系统的[Build Number]即可,连续点击的过程中,系统会提示‘还差n步就打开开发者模式’。
      打开开发者模式后,进入到开发者模式里,选上【启动USB Debug模式】即可。
    • 当手机端开启USB Debug模式后,可以使用USB线连接手机和PC,此时:手机端会提示:是否信任当前调试设备,点击【同意】即可。

    2、命令

    - adb devices   (查询连接到当前PC的Android设备)
    - adb install xxx.apk(进入安装包的目录,安装软件)
    - adb uninstall $package_name(进入安装包的目录,卸载软件)   
    - install和uninstall还有其他参数。
    - adb install -r xxx.apk
    - adb uninstall -k $package_name
    
    在安装时,加上【-r】,如果已经安装了该软件,那么系统就会先卸载,在安装这个软件
    在卸载时,加上【-k】,表示卸载时保留数据和缓冲区目录,只卸载应用程序
    
    安装pos机的例子:
    1、adb devices    -查看连接状态
    2、adb connect xx.xx.xx.xx:5555
    3、adb install /Users/fengyanhua/Downloads/app-debug.apk
    4、adb disconnect xx.xx.xx.xx:5555  -断开连接
    查询POS机的日志:
    5、adb -s xx.xx.xx.xx logcat
    
    

    3、 查看包名的方法

    1. - step1 打开软件置于顶层
    2. - step1 点击UIAutomatorviewer的Device Screenshot按钮  
    3. - step1 查看右下方的package值
    
    

    4、文件交换

    
    adb pull remote_files local_dir  把手机上的文件拷贝到本地
     
    adb push local_dir remote_files  把PC上的文件,发送到已经连接的Android手机上
    
    
    参数含义:
    remote_files: 手机端的目录或者文件路径
    local_dir:本地文件的路径
    
    e.g:
    
    adb pull /sdcard/DICM/camera ~/Desktop/       把手机上的某个目录全部都拷贝到PC本地上
    
    adb push ~/Desktop/test.txt /data/local/tmp/  把PC本地的文件传输到手机的/data/local/tmp/目录
    
    

    5、其他的命令

    adb version: 查看adb版本信息
    
    adb remount: 对其设备读写进行初始化
    
    adb kill-server: 干掉ADB进程
    
    adb start-server:启动ADB进程
    
    adb root:对于已经root过的手机,加载ROOT权限
    
    adb reboot: 重启设备
    
    adb wait-for-device:等待设备上线
    
    adb -d serial number: 当有多台设备连接时,指定某一设备
    
    adb connect <ip>: 通过网络使PC连接设备
    
    

    6、Android系统及App日志查看

    - adb logcat
    
    - adb logcat -c   清理logcat的缓冲区
    
    adb的日志全部都会缓存在系统的缓冲区,当我们需要对系统或者App进行Debug的时候,我们先清理一下之前缓冲区的无效log,这样可以清除一些无效的日志信息。
    
    - adb logcat -v time *:e  |grep $package_name   查看指定App的错误信息
    
    如:adb logcat -v time *:e |grep com.koudai.weidian.buyer.internal
    运行这个命令后,再操作App,我们可以通过终端的输出来获取到App在执行过程中遇到的所有Error信息。
     
    
    • 日志分析
    1. bugreport里面包含了各种log信息,大部分log也可以通过直接运行相关的程序来直接获得 bugreport记录android启动过程的log,以及启动后的系统状态,包括进程列表,内存信息,VM信息等等
    2. Java Exception 在mian log中分析,需要注意exception的时间PID和栈
    3. ANR 在log中查看system log 找到ANR关键字
    
    
    • Monkey的输出日志
    
    正常情况,如果Monkey测试顺利执行完成,在log的最后会打印出当前执行事件的次数和所花费的时间;// Monkey finished 代表执行完成
    异常情况:
    查阅Monkey的输出日志
    1. 程序无响应的问题: 在日志中搜索 “ANR”
    2. 崩溃问题:在日志中搜索 “Exception”
    3. 如果有空指针,搜索“NullPointerException”
    4. 如果Monkey执行中断,在log最后也能看到当前执行次数
    
    
    • log文件的分类
    
    实时打印的有:logcat main,logcat radio,logcat events,tcp dump,高通平台的还有QXDM日志
    
    状态信息的有:adb shell cat /proc/kmsg,adb shell dmesg,adb shell dumpstate,adb shell dumpsys,adb bugreport,工程模式等。
    
    

    7、 查看系统都安装了那些应用

    adb shell pm list packages  
    
    eg:
    
    买家版: (com.koudai.weidian.buyer.internal)
    
    adb shell pm list packages|grep com.koudai
    
    

    8、 input命令

    input命令可以用于向键盘发送一些指令。

    常用命令分析:

    * adb shell input text test //让键盘输入test,经测试不能支持输入中文
    
      比如输入0,就可以使用:
      adb shell input keyevent KEYCODE_0
      或 adb shell input keyevent 7
    
    * adb shell input tap 200 300 //在屏幕坐标(200,300)位置点击一下
    
    * adb shell input swipe 200 200 1000 1000 //就是从屏幕(200,200)滑动到(1000,1000);
    
    //在小的距离内,从(200,200)的位置滑动到(201,201)的位置,连续滑动2000毫秒,页面表现为长按的效果
    * adb shell input swipe 200 200 201 201 2000 
    tip:机子要求是安卓4.4以上
    
    如何定位屏幕的坐标呢?
    其实在手机开发者选项,开启指针位置功能,就可以实时定位屏幕坐标了
    
    

    9、am命令

    
    * am 这个命令可以帮助我们直接启动activity、service及广播
    
    * am start 启动应用
    
    格式:
    adb shell am start 包名/.类名
    
    或 adb shell am start 包名/类的全名
    
    后面跟的参数的意思分别是:
    参数名 解释
    -a 传入动作
    -n 传入组件(package)
    -t 传入类型
    -d 传入数据
    
    1.拨打一个电话:
    am start -a android.intent.action.CALL -d tel:10086
    
    2.打开一个网页:
     am start -a android.intent.action.VIEW -d  http://www.baidu.com 
    
    3.打开音乐播放器:
    adb shell am start -n com.android.bbkmusic/.WidgetToTrackActivity
    
    4.启动一个服务:
    am startservice <服务名称>
    例如:am startservice -n com.android.music/com.android.music.MediaPlaybackService
    或者 am startservice -a com.smz.myservice
    
    5.发送一个广播:
    am broadcast -a <广播动作>
    例如: am broadcast -a com.smz.mybroadcast
    
    6.adb shell am monitor 监控 crash 与 ANR
    
    7.am force-stop , 后跟包名,结束应用
    
    值得注意的是,不同手机的相同类型应用,如相机,因为他们的package都可能是不一样的,所以要把package提取出来,再抽离为公共的方法。
    
    

    10、pm命令

    pm(Package Manager),这个命令主要用于获取和安装在 Android 设备上的应用信息。

    
    ■ pm list 安装包名查询
    ■ adb shell pm list package 列出所有应用
    ■ adb shell pm list package -3 列出第三方应用
    ■ adb shell pm list instrumentation 列出所有测试包
    ■ pm install 安装应用
    ■ pm unitall 卸载应用
    ■ pm clear 清除应用缓存
              
    

    11、monkey命令

    
    -p 允许的包名列表,可同时指定多个包名,每个包都需要使用“-p”参数指定。指定多个包:
    
    adb shell monkey -p package_1  –p package_2  100
    
    --ignore-crashes 忽视应用 crash 报错,不指定该参数时,应用出现 crash,monkey
    
    会自动停止发送事件,指定该参数后,monkey 会在 crash 后也一直发送事件,直到所有事件发送完成。
    
    --ignore-timeouts 忽视超时导致的错误,即ANR的错误
    
    
    • Monkey 命令启动方式:
    a)可以通过PC机CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试          
    b)在PC上adb shell 进入Android系统,通过执行 monkey {+命令参数} 来进行Monkey 测试          
    c) 在Android机或者模拟器上直接执行monkey 命令,可以在Android机上安装Android终端模拟器 
    

    12、Dumpsys常用服务信息查询

    
    Dumpsys用户系统诊断,它运行在设备上,并提供系统服务状态信息
    
    adb shell dumpsys meminfo   //内存  adb shell dumpsys meminfo com.koudai.weidian.buyer.internal
    
    adb shell dumpsys cpuinfo   //CPU
    
    adb shell dumpsys gfxinfo  //帧率
    
    adb shell dumpsys display  //显示
    
    adb shell dumpsys power    //电源
    
    adb shell dumpsys batterystats  //电池
    
    
  • 相关阅读:
    .net core使用 AutoMapper
    使用 ASP.NET Core 和 Entity Framework Core 入门
    使用vue-quill-editor图片上传
    使用NPOI 做Excel导出
    利用SmtpClient类发送邮件
    使用Area(区域)会遇到的问题
    在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器
    MySQL的内存都用在了哪里
    (转载)MySQL buffer pool中三种page以及链表
    MySQL8.0备份工具之Xtrabackup
  • 原文地址:https://www.cnblogs.com/niuniumother/p/11289778.html
Copyright © 2011-2022 走看看