ADB安装与常用命令详解

 

一、ADB意义

adb的全称为Android Debug Bridge,就是起到调试桥的作用,也就是debug工具,通过它可以和android设备或模拟器通信。

二、ADB作用

  借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其实简而言说,adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。

三、详解ADB安装与使用

下面会为大家介绍一下adb工具如何操作,并介绍几个常用命令以备日后测软件抓取log和操作方便使用

软件需要】

1.下载adb工具包有如下两种方式:

(adb工具包主要包含4个文件adb.exe,AdbWinApi.dll,AdbWinUsbApi.dll,fastboot.exe)

  • 下载Android SDK,adb文件位置如下

  • 网上直接下载ADB工具包(推荐此方式)

2.Android相关手机驱动

注:为了方便已把adb工具包和驱动打包上传至百度云,点击下载使用    http://pan.baidu.com/s/1bnz3gOv

  

【软件安装】

  步骤1:安装USB驱动

进入设置--开发者选项-USB调试,将第一个选项打钩选中。然后通过USB线连接电脑提示安装驱动。

   步骤2:软件准备

(这里教程使用的是第二种直接下载adb工具包的安装方式,如果使用第一种SDK安装,配置环境变量也是需要把SDK的路径下的platform-tools和tools的路径都配置到path下)

1) 将提供的软件工具包放置到任意盘中 如放到D盘目录下:

2)  为了可以直接方便快捷的进入adb目录下,可以配置下环境变量,步骤如下:

  • 计算机点击右键--属性--高级系统设置--环境变量--找到变量名为path的--栏后点击编辑添加adb的根目录到path路径下

  • 添加adb到path路径后,可到开始菜单中输入cmd打开控制台输入adb shell来验证是否配置成功。

如果没有配置成功,输入adb shell后会提示 adb 不是内部命令(有时需要重启电脑才可以检查到已经安装成功);

如果配置成功且连接上设备或者启动已经模拟器后,输入adb shell后会有如下图 提示

常用操作命令详解

1. 查看设备

  adb devices

  这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示,可以确认设备是否连接上,如下截图是已经连接上的情况

实际连接状态如下:

  • Device--此实例正与adb服务器连接
  • offline — 此实例没有与adb相连接或者无法响应
  • no device---当前没有模拟器/设备运行

2.adb logcat命令行用法,可使用-help来查看adb可输出的选项命令

常用选项解析:

  • 输出指定标签内容 :

-- "-s"选项 : 设置默认的过滤器, 如 我们想要输出 “ActivityManager" 标签的信息, 就可以使用adb logcat -s ActivityManager命令;

(打印ActivityManager我们可以获得系统里正在运行的activities(英文意思为活动,那么顾名思义就是在运行着的应用程序),包括进程(Process)等、应用程序/包、服务(Service)、任务(Task)信息,给研发提供这些日志输入可供分析是什么应用在运行从而导致程序异常)

  • 输出日志信息到文件 :

-- "-f"选项 : 该选项后面跟着输入日志的文件, 使用adb logcat -f /sdcard/log.txt  & 命令(加入&表示后台运行,exit之后就可以拔掉数据线了,手机后台会一直运行这个logcat,并且该进程的ID为8278), 注意这个log文件是输出到手机上,需要指定合适的路径。

(采集的过程是不显示的,Ctrl+c结束采集,其中下图中 ps | grep logcat表示查询过滤出在运行的logcat,当结束采集log时,一定要关闭掉这个PS,然后使用kill id 将其杀掉关闭)

  • 指定 logcat 的日志输出格式和输出到什么位置 :

-- "-v"和”>”选项 : 使用adb logcat -v time > D:/test.log命令, 可以看日志的输出时间和输出到什么位置;

  • 加载一个可使用的日志缓冲区供查看

--”-b”选项:使用adb logcat -b radio 查看日志缓冲区包含radio 和 telephony信息

3. 进入设备或模拟器的shell:

adb shell [command]

通过上面对adb logcat标签的认识,那么就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令,一般在测试抓取log过程中都是执行一条shell命令,可通过以下常用命令来采集log:

  • adb logcat -v time一般的常规log日志.(经常使用) 
  • adb shell dmesg会打印出开机的内核的调试信息(一般在手机自动重启会使用)
  • adb bugreport 查看bug报告,包含有内核信息(可用于5.0以上系统的内核日志抓取)
  • adb logcat -b radio -v time 带射频信息的LOG(很少使用)
  • adb logcat -b events -v time 带事件信息的events log (很少使用)
  • adb logcat -v threadtime 命令可以看日志的输入时间和线程信息(一般手机自动重启会使用)
  • 点root手机)一般是出现死机重启,或者奔溃性关不掉的crash现象如phone报错无法关闭的bug.(出现crash现象一般需要使用此命令)

     ANRlog一般会有traces文件,需使用命令导出

     第一步:adb shell

     第二步:cd /data/anr(如果有anr目录继续执行第三步,如果没有会提示没有此 目录,那就不需要在去traces文件了)

     第三步:ls(查看存在的traces 文件)

     第四步:Ctrl+C退出,然后输入adb pull /data/anr/traces文件名.txt E:\ 把文 件导入到E盘

 

  • tombstone log (在/data/tombstones/"目录下)  死机LOG(很少使用)
  • adb logcat -c  清空日志缓存信息命令, 可以将之前的日志信息清空, 重新开始输出日志信息;

 

4.root手机

  一般有些用户会卸载系统的一些应用,来减少手机内存的大小,那么我们使用命令来root手机后卸载应用,可以检测手机的稳定性是否在可控范围之内

1.adb reboot-bootloader(进入fastboot模式,打开OEM模式)

2.fastboot oem teston

3.fastboot reboot(重启手机)

4.adb root(root手机)

5.adb remount (重新挂载系统分区,使系统分区重新可写)

5.删除系统应用(前提需root可和第4个结合使用)

      1.adb remount

2.adb shell

3.cd system/app(进入到系统应用目录下)

4.rm *.apk(删除应用)

 

6.安装软件

   adb install <apk文件路径> :这个命令将指定的apk文件安装到设备上

使用此命令可以方便快捷的把第三方APK安装在设备上

  adb install

7.卸载软件   

adb uninstall <软件名> 

 

8.从电脑上发送文件到设备

用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)

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

9.从设备上下载文件到电脑

   用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑,在测试的时候方便快捷,以备在TP失效时,可以使用此方法把想要的文件复制到电脑上查看

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

 

10.删除文件/文件夹(最好先root手机才可进入到系统)

   一般在做自动化录制脚本测试时,会在data目录下新建文件,那么自动化完成后需要删除文件或文件夹时,就可用如下命令执行

1.adb shell

2.cd /data     //进入系统内指定文件夹

3.ls           //列表显示当前文件夹内容

4.rm -r xxx    / /删除名字为xxx的文件夹及其里面的所有文件

  rm xxx      //删除文件xxx

  rmdir xxx    //删除xxx的文件夹

 

【adb命令用于monkey测试】

当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey用随机重复的方法去负荷测试软件.

最简单的方法就是用下面的命令来使用Monkey,这个命令将会启动软件并且触发500个事件(事件数可以设定)将其monkey的log日志打印在PC端的D盘内.

   adb shell monkey -v -p your.package.name 500 >D:monkey.log

 

 

 

 

 

                        2015/08/10  By dq  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

adb常用命令(手机测试)的更多相关文章

  1. adb常用命令(转)

    1.Android Debug Bridge -adb常用命令 1.1简介 Android Debug Bridge,我们一般简称为adb,主要存放在sdk安装目录下的platform-tools文件 ...

  2. adb常用命令教程

    1.Android Debug Bridge - adb常用命令 1.1简介 Android Debug Bridge,我们一般简称为adb,主要存放在sdk安装目录下的platform-tools文 ...

  3. Android ADB 常用命令

    Android ADB 常用命令 泛原罪 2016.09.21 00:02* 字数 605 阅读 2912评论 0喜欢 1 [TOC] adb logcat 查看日志 详细内容可参见 ADB Usag ...

  4. Android开发系列之adb常用命令

    对于Android开发者来说,如果没有adb的帮助,那肯定就跟少了一只手那样别扭.其实笔者在刚刚学习Android开发的时候,也没有意识到adb的重要性.想想只要用IDE画出界面,然后实现后台的逻辑代 ...

  5. 【android】adb常用命令

    ADB常用命令: [adb help]获取帮助 [adb get-serialno]获取设备串号 [adb -s <serialNumber> <command>]给特定设备发 ...

  6. ADB常用命令(一)

    转自:https://blog.csdn.net/qq_26552691/article/details/81348222 一.操作前请确认电脑上已配置好ADB环境.可在CMD命令行输入adb,如果出 ...

  7. adb 常用命令汇总

    adb 常用命令: adb –help 查看帮助手册 adb devices 检测连接到电脑的安卓设备或安卓模拟器设备 adb pull  <手机路径>  <本机路径>  从手 ...

  8. adb常用命令-android学习第一天

    转载出处:http://www.cnblogs.com/xiaoxuetu/ 转载来源:https://www.cnblogs.com/xiaoxuetu/p/3411214.html 平时开发and ...

  9. adb 常用命令大全(1)- 汇总

    adb 常用命令大全系列 基础命令 查看手机设备信息 应用管理 日志相关 模拟按键输入 其他实用功能

  10. 54. Android中adb常用命令及应用常用目录

    本文主要介绍adb常用命令及应用常用目录.1.adb常用命令adb devices列出所有连接的android设备.以下命令都是对单个devices而言,如果存在多个devices的话,下面的命令都需 ...

随机推荐

  1. PHP设计模式——适配器模式

    <?php /** * 适配器模式 * 适配器模式是将某个对象的接口适配为另一个对象所期望的接口 * * 在需要转化一个对象的接口用于另一个对象时,最好实现适配器模式对象 */ class We ...

  2. 2018.9.30 Java中数组的存储与内存分配

    java 数组与集合的区别 集合:长度可变,可以存放不同类型的元素,只能存放引用类型! 数组:长度固定,只可以存放相同的同种类型的元素,可以存放数据类型也可以存放引用类型! 数组定义的三种方式 // ...

  3. 报表技术之PDF格式报表生成 ----JasperResport

    JasperReport简介 JasperReport:java提供的一个类库,承上启下,读取IReport生成的xxx.jrxml文件,获取到pdf中需要显示的全部内容,然后底层调用IText相关的 ...

  4. Yii2获取当前程序执行的sql语句

    1.Yii2获取当前程序执行的sql语句: $query = model::find();         $dataProvider = new ActiveDataProvider([       ...

  5. mybatis学习记录三——SqlMapConfig.xml相关参数详解

      5       SqlMapConfig.xml mybatis的全局配置文件SqlMapConfig.xml,配置内容如下: properties(属性) settings(全局配置参数) ty ...

  6. 10474 - Where is the Marble?(模拟)

    传送门: UVa10474 - Where is the Marble? Raju and Meena love to play with Marbles. They have got a lot o ...

  7. SQLite动态库下载

    其中带有“bundle”字样的表示动态库是按混合模式编译的,在 使用的时候只需要System.Data.SQLite.dll就可以了 而不带“bundle”的则是将非托管部分和托管部分分别编 译,Sy ...

  8. 一个nginx反向代理, 负载均衡的例子

    #/etc/nginx/conf.d/master.conf #区分大小写 #设定负载均衡的服务器列表 upstream master.balancing { #weigth参数表示权值,权值越高被分 ...

  9. 关于Echarts的原生js获取DOM元素与动态加载DOM元素的冲突问题

    1.前言: 最近在做的看板项目,因为需要循环加载后台数据,并且用Echarts做数据呈现,所以jQuery和angular等库统统靠边站,Echarts用的是原生js获取DOM元素,至于诸多不兼容等深 ...

  10. vue webpack 懒加载

    自己项目中的写法 const router = new Router({ routes: [ { path: '/index', component: (resolve) => { requir ...