Appium基础知识

非淡泊无以明志,非宁静无以致远。这篇文章主要讲述Appium基础知识相关的知识,希望能为你提供帮助。
一.    Adb命令

Adb全称是android Debug Bridge,翻译过来就是安卓调试桥,一种多用途的命令行工具,可以连接模拟器或者真实的安卓设备进行通信,他是一个包括三个组成的客户端-服务端程序

1.1 客户端是运行在我们的开发机器上,通过adb命令可以从shell调用客户端,其他Android工具,如ADT插件和DDMS也可以创建adb命令的客户端。

1.2 服务端是在开发机器后台运行的进程。服务器管理客户端和运行在模拟器或者真实设备上的adb守护(adb daemon)进程之间的通信

1.3 adb daemon是一个运行在模拟器或者真实安卓设备后台的而守护进程

Adb命令文件所在路径< sdk> /platform-tools/

当你运行一个adb的客户端的时候,首先会检查adb的服务端是否在运行,如果没有运行,那么会自动开启一个服务端进程。当服务端开启后,他会绑定本地的tcp端口5037,并且通过5037端口监听所有客户端发过来的命令

Adb使用

 

类别
命令
说明
备注
可选项
-d
命令仅对USB设备有效
如果有多个USB设备就会返回错误
-e
命令仅对运行中的模拟器有效
如果有多个运行中的模拟器就会返回错误
-s < serialNumber>
命令仅对adb关联的特定序列号的模拟器或手机有效(例如  "emulator-5556").
如果不指定设备就会返回错误
一般项
devices
输出所有关联的模拟器或手机设备列表
参见  Querying for Emulator/Device Instances以获得更多信息。
help
输出adb支持的命令
 
version
输出adb的版本号
 
调试项
logcat [< option> ] [< filter-specs> ]
在屏幕上输出日志信息
 
bugreport
为报告bug,在屏幕上输出dumpsys,dumpstate和  logcat数据
 
jdwp
输出有效的JDWP进程信息
可以使用  forward jdwp:< pid>   转换端口以连接到指定的  JDWP  进程,例如:
adb forward tcp:8000 jdwp:472
jdb -attach localhost:8000
数据项
install < path-to-apk>
安装应用程序(用完整路径指定.apk文件)
 
pull < remote> < local>
从模拟器或手机COPY文件到开发机
 
push < local> < remote>
从开发机COPY指定的文件到模拟器或手机
 
端口和网络项
forward < local> < remote>
从本地端口转换连接到模拟器或手机的指定端口
端口可以使用以下格式表示:
    tcp:< portnum>
  local:< UNIX domain socket name>
  dev:< character device name>
  jdwp:< pid>
ppp < tty> [parm]...
通过USB运行UPP
    < tty>   — PPP流中的tty。例如:/dev/omap_csmi_ttyl。
    [parm]...  — 0到多个PPP/PPPD  选项,例如  defaultroute, local, notty等等。
注意不用自动启动PPP连接
 
脚本项
get-serialno
输出adb对象的序列号
参见  Querying for Emulator/Device Instances以获得更多信息。
get-state
输出adb设备的状态
wait-for-device
阻塞执行直到设备已经连接,即设备状态是  device.
可以在其他命令前加上此项,那样的话adb就会等到模拟器或手机设备已经连接才会执行命令,例如:
注意该命令并不等待系统完全启动,因此不能追加需要在系统完全启动才能执行的命令,例如install  命令需要Android包管理器支持,但它必须在系统完全启动后才有效。下面的命令
 
会在模拟器或手机与adb发生连接后就执行install,但系统还没有完全启动,所以会引起错误。
服务端项
start-server
检测adb服务进程是否启动,如果没启动则启动它。
 
kill-server
终止服务端进程
 
Shell
shell
在目标模拟器或手机上启动远程SHELL
参见  Issuing Shell Commands以获得更多信息。
shell [< shellCommand> ]
在目标模拟器或手机上执行shellCommand然后退出远程SHELL
使用实例

1.          – d 参数

Appium基础知识

文章图片

-e 参数

Appium基础知识

文章图片

-s < serialNumber > 参数,尖括号里的内容是必须的

Appium基础知识

文章图片

2.          devices命令

Appium基础知识

文章图片

  注意设备的状态包含三种:
Offline(不能调试仅是连接,原因很可能是adb与安卓系统不匹配)  device(正常状态可调试)  unauthorized(连接后不能调试,原因是未在手机上同意调试)

加上-l 参数会列出设备的详细信息,如果报错是error:protocol fault(no status),那从任务管理器杀掉各种手机助手的进程

Appium基础知识

文章图片

help 命令,详细列出adb命令及参数的帮助文档

version 命令,显示adb版本

3.  logcat 命令,查看设备日志

如果只有一台设备直接执行adb logcat就可以,

如果有多台,那么需要指定某一个设备执行adb – s 192.168.56.101 logcat

但是这个命令刷新日志会很快,我们的dos窗口不好查看,所以我们可以将结果重定向到一个文件,然后打开文件方便查看

Appium基础知识

文章图片

 

查看logcat.txt文件内容如下:

Appium基础知识

文章图片

 

logcat 的-f参数是将日志保存到文件,这个文件是在设备上,使用如下

Appium基础知识

文章图片

 

logcat 本身会显示出很多日志来,那么我们可以通过筛选来获得我们想要的应用的日志,直接使用adb  logcat时的用法

Appium基础知识

文章图片

 

先使用adb shell进入shell环境再logcat


 

Appium基础知识

文章图片

 

 

bugreport命令,会将dumpsys,dumpstate以及logcat的信息全部显示

dumpsys:安卓系统命令,获取android服务进程的各个信息

dumpstate:安卓系统命令,系统状态信息,里面比较全,包括手机当前的内存信息、cpu信息等等

使用和之前的一样,可以重定向到文件

adb bugreport> Desktopugreport.log

单独显示dumpsys和dumpstate的信息,使用如下:

adb shell dumpsys> Desktopdumpsys.log

adb shell dumpstate> Desktopdumpstate.log

4.          install 命令,安装app文件到设备

Appium基础知识

文章图片

 

如果已经安装了,需要再次安装需要加参数-r,否则会失败

Appium基础知识

文章图片

 

有安装就会有卸载uninstall

Appium基础知识

文章图片

 

 

pull命令,从手机设备COPY指定的文件到开发机

Appium基础知识

文章图片

 

push命令,从开发机copy指定文件到设备

Appium基础知识

文章图片

 

5.          start-server命令,检查服务状态,如果没启动那就启动

Appium基础知识

文章图片

 

kill-server 命令,杀死所有adb进程

通常当我们在执行adb时碰到error或者设备状态不对,可以尝试重启adb服务,也就是使用这两命令,就犹如网管的重启电脑大杀器一样

6.          shell命令,进入安卓shell环境,这里的shell环境就是指安卓系统


shell < command> 命令,直接执行shell环境下的命令,例子如下:

Appium基础知识

文章图片

 
Appium基础知识

文章图片

 

这里用的vmstat命令会显示服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况

7.          root 命令,以root身份重启adbd守护进程,对于未获得root权限的手机,这个命令执行时会报错的

Appium基础知识

文章图片

 

usb 命令,在usb上重启守护进程的监听

Appium基础知识

文章图片

 

tcpip < port> 命令,在特定端口上以tcpip协议重启守护进程的监听

Appium基础知识

文章图片

 

 

下面实例演示手机wifi连接电脑

先使用usb连接手机和电脑,查看

Appium基础知识

文章图片

 

再使用adb tcpip 8787 重启守护进程

Appium基础知识

文章图片

 

    然后查看手机设备的ip,这里我的是192.168.1.109,注意这里需要保持电脑ip和手机ip能够互相ping通,使用adb connect 192.168.1.109:8787 连接设备

Appium基础知识

文章图片

 

再次查看连接的设备

Appium基础知识

文章图片

 

这里显示两个,一个是usb的连接,一个是wifi连接,拔掉数据线,我们依然可以针对该设备进行调试操作

Appium基础知识

文章图片

 

断开wifi连接命令

Appium基础知识

文章图片

 

再次转换为usb,使用命令adb usb即可

二. Dos命令

   

      2.1 cd命令,切换目录

          注意切换盘符不能使用cd e:这样的形式,必须直接使用e:就可以切换

         

Appium基础知识

文章图片

 

cd  workspace 进入e盘workspace目录


          cd ..返回上一级目录,cd .... 返回上两级目录

         

Appium基础知识

文章图片

 

            2.2 dir 查看当前目录都有哪些文件

         

Appium基础知识

文章图片

 

2.3 md 创建目录

Appium基础知识

文章图片

 

    rd /s /q testdir 删除testdir这个目录及其以下的所有文件

            type test.txt 查看文件内容

    del test.txt删除文件

2.4 netstat – ano|findstr 4723 查看端口占用情况,下面截图表示该端口已占用,最后一列的数字是该进程的id

Appium基础知识

文章图片

 

taskkill -F -pid 7812   按照进程号强杀某进程

Appium基础知识

文章图片

 

taskkill -F -im name 按照进程名称强杀进程

Appium基础知识

文章图片

 

三.安卓shell命令

    3.1 cd命令,切换目录

            cd ..返回上一级

            cd – 返回上次的目录

            cd ~返回当前用户的家目录

          pwd 命令,显示当前所在目录路径

Appium基础知识

文章图片

 

  3.2 ls 命令显示当前目录下的所有文件(不包括隐藏文件)

       

Appium基础知识

文章图片

 

          ll 命令是以上列表的形式显示所有文件(不包括隐藏文件),注意第一列的第一个字符,-表示是文件,d表示是目录,ll实际上是ls – l的简写

Appium基础知识

文章图片

【Appium基础知识】    3.3 rm – rf  < 文件或者目录> 表示强制删除文件或者目录,-r表示递归删除 – f表示强制不用询问
    mkdir < 目录名称> 创建目录

3.4 cat < 文件名称> 查看文件内容


    推荐阅读