◆版权声明:本文出自胖喵~的博客,转载必须注明出处。

  转载请注明出处:http://www.cnblogs.com/by-dream/p/4630046.html

写在前面的话


  感觉自己进入Android测试这行以来,虽然了解了不少Android的东西和自动化技术,但都比较零散。当然这也和半路入行,然后要快速的将自动化技术运用所学的业务上有关。于是决定利用工作之余的时间将Android测试相关知识进行一个整理,一来巩固一下自己学到的东西;二来可以让想学习Android测试的同学进行学习(希望能帮到新手)。

  由于我之前学的是C++没有学过Java,因此可能有些东西理解的有偏差,希望大家能批评指正。当然我会尽量用最浅显的话讲明白Android测试的。FAF7F0

什么是ADB


  何为ADB呢? 为什么手机和电脑之间用usb连接后,就可以电脑上通过应用宝或者豌豆荚等手机助手软件对手机进行操作?

  答案就是:因为这些都依赖于ADB。ADB就是连接手机和电脑通信的桥梁,只要这个桥梁建立起来了,那么你就可以通过电脑来控制你的手机了。

  即使你再讨厌英语,还是不得不向现实低头,乖乖的阅读下文档吧  http://developer.android.com/tools/help/adb.html

  如果你真的不愿意读,或者不会英语,那么我就解释一点吧,不过解释的终究没有谷歌的工程师写的文档全面,凑合着看吧。

  ADB 全称 Android Debug Bridge,我把它解释为“安卓调试的桥梁”,他是由三部分组成:

    1、客户端 client:运行在你的电脑上,你可以通过shell来调用起一个客户端。其他Android工具,例如ADT插件、DDMS都可以创建出一个客户端

    2、服务器 server:运行在你电脑的后台,负责管理client和daemon进行通信。

    3、守护进程 daemon:运行在模拟器或者Android设备的后台。

  但是它最终呈现给我们用的就是一个命令行的工具 ( command line tool ),通过它我们就可以和模拟器或者是Android设备进行通信。 它就在 <sdk>/platform-tools/ 这个目录下:

  

  每次启动客户端的时候,首先会检查服务器是否已经在后台运行了,如果没有,他就会启动server进程;

  如果server是开启的,server就会绑定在 TCP 的 5037 端口然后监听客户端发出来的命令;

  所有的client都是通过 5037 端口和server进行通信的。

 USB调试


  当我们通过USB数据线来使用ADB的时候,通常需要将 "设置"-"开发者选项"-"USB调试" 这个框勾上。

  需要注意的是:在有些 Android 4.2.2版本以上,是隐藏了“开发者选项”的,因此需要在 “设置”-“关于手机”-“Android版本” 在这里连续点击7次,然后“开发者选项”就出现了。突然发现好多手机的这里点击后都有意想不到的效果,你愿意把你手机这里点击7次后出现的内容截图发到我的留言板吗?

ADB 命令


  连上手机,配置好了环境变量(直接搜索“adb环境变量配置”会出一大堆)就可以使用命令了。下面列举一下常用的命令

adb devices    查看当前连接设备

 显示当前连接的一个序号和状态:

  

adb install <path_to_apk>    安装apk文件

  给的Apk的路径是当前PC端文件所在的路径:

  

adb -s <serialNumber> <command>    指定设备执行命令

  serialNumber就是adb devices中的第一列的信息

  

adb pull <remote> <local>   将Android设备上的文件拉到本地

  一般Android手机默认的存储路径是“/mnt/sdcard/”,我们把这里面的一个文件拉到C盘

  

  然后我们去电脑的C盘下去看一眼:

通过Adb pull 命令复制出来的文件

adb push <local> <remote>      把本地文件复制到Android设备上

  和 adb pull 刚好是一对相反的命令。  

  

adb start-server    启动adb的server
adb kill-server 关闭adb的server

  有点时候adb在没有响应的时候,我们需要重启adb,不过这种情况一般较少。

  

adb shell [shellCommand]       运行shell命令

  众所周知,Android是基于linux内核的,因此可以在Android的系统上运行shell命令

  通过adb shell 可以进入手机的系统,然后执行一些linux的命令

  

  当然也可以不进入系统,直接使用命令

  

  例如adb shell下安装和卸载命令是:

  pm uninstall com.tencent.qq
  pm install -r "/data/local/tmp/com.tencent.qq"

【Android测试】【第一节】ADB——初识和用法的更多相关文章

  1. delphi 线程教学第一节:初识多线程

    第一节:初识多线程   1.为什么要学习多线程编程?   多线程(多个线程同时运行)编程,亦可称之为异步编程. 有了多线程,主界面才不会因为耗时代码而造成“假死“状态. 有了多线程,才能使多个任务同时 ...

  2. 第一节,TensorFlow基本用法

    一 TensorFlow安装 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tsnsor(张量)意味着N维数组,Flow(流)意味着基 ...

  3. Android学习第一天-adb常用命令

    平时开发android应用 的时候,我们都会用到包含在Android SDK中一系列的工具,或许我们通过Eclipse去调用,又或许,我们自己通过打开终端进行手动输入并且执行,下面我们来一起学习下这些 ...

  4. Android事件处理第一节(View对Touch事件的处理)

    http://ipjmc.iteye.com/blog/1694146 在Android里Touch是很常用的事件,尤其实在自定义控件中,要实现一些动态的效果,往往要对Touch进行处理.Androi ...

  5. android课程第一节(TextView控件使用)

    TextView控件使用 一.TextView基本使用(创建方式) 1.在程序中创建TextView对象 如下代码: @Override protected void onCreate(Bundle ...

  6. Python3 Selenium自动化web测试 ==> 第一节 起始点之Python单元测试框架 unittest

    前置步骤 Python版本:3.6.4 selenium版本:3.11.0 >>> import selenium >>> help(selenium) IDE:P ...

  7. 第一节:初识pandas之Series(上)

    Series线性的数据结构, 也是一个一维数组. 声明:本人Python小白,以下代码只是个人学习的过程,仅仅记录一下学习的点点滴滴,若有错误,还望指正. (注:该代码均在jupyter notebo ...

  8. delphi 线程教学第一节:初识多线程(讲的比较浅显),还有三个例子

    http://www.cnblogs.com/lackey/p/6297115.html 几个例子: http://www.cnblogs.com/lackey/p/5371544.html

  9. 【Android测试】【第九节】MonkeyRunner—— 初识

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4836815.html 不得不说两句,过了这么久才再次更新博 ...

随机推荐

  1. Xamarin开发Anroid应用介绍

    第1章  Xamarin开发Anroid应用介绍 如今智能手机已经盛行了好几年,而针对这些智能手机的软件开发也变得异常火热.但是在Android平台下只能使用Java开发,iOS平台下也只能使用Obj ...

  2. swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程

    swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程 1.2.3  注册非免费苹果账号swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程 免费的苹果账号在 ...

  3. 寒假D3 A Find the Lost Sock

    Alice bought a lot of pairs of socks yesterday. But when she went home, she found that she has lost ...

  4. CodeForces Round 197 Div2

    这次出的题水爆了,借着这个机会终于把CF的号变蓝了.A. Helpful Mathstime limit per test2 secondsmemory limit per test256 megab ...

  5. 发送JS错误日志到服务器

    JS记录错误日志/捕捉错误 //onerror提供异常信息,文件路径和发生错误代码的行数的三个参数. window.onerror = function(e,url,index){ var msg = ...

  6. pygame系列_原创百度随心听音乐播放器_完整版

    程序名:PyMusic 解释:pygame+music 之前发布了自己写的小程序:百度随心听音乐播放器的一些效果图 你可以去到这里再次看看效果: pygame系列_百度随心听_完美的UI设计 这个程序 ...

  7. Java主要有那几种文件类型,各自作用

    java提供了两类数据类型:基本类型,引用类型. 1.基本类型包括:boolean ,byte,char,int,short,float,long,double,值得注意的是:在原始数据类型中,除了b ...

  8. ArcEngine开发 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

    if(pFeature!=null) { IPoint pnt = pFeature.Shape as IPoint; pntArray.Add(pnt); } 调试是pntArray.Add(pnt ...

  9. 解决win7系统远程桌面 server 2003 卡的问题

    原因在于从vista开始,微软在TCP/IP协议栈里新加了一个叫做“Window Auto-Tuning”的功能.这个功能本身的目的是为了让操作系统根据网络的实时性能(比如响应时间)来动态调整网络上传 ...

  10. Export-XLSX PowerShell generate real Excel XLSX files without Excel and COM

    http://gallery.technet.microsoft.com/scriptcenter/Export-XLSX-PowerShell-f2f0c035