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 参数

-e 参数

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

2.      devices命令

 注意设备的状态包含三种:

Offline(不能调试仅是连接,原因很可能是adb与安卓系统不匹配)  device(正常状态可调试)  unauthorized(连接后不能调试,原因是未在手机上同意调试)
加上-l 参数会列出设备的详细信息,如果报错是error:protocol fault(no status),那从任务管理器杀掉各种手机助手的进程

help 命令,详细列出adb命令及参数的帮助文档
version 命令,显示adb版本
3. logcat 命令,查看设备日志
如果只有一台设备直接执行adb logcat就可以,
如果有多台,那么需要指定某一个设备执行adb –s 192.168.56.101 logcat
但是这个命令刷新日志会很快,我们的dos窗口不好查看,所以我们可以将结果重定向到一个文件,然后打开文件方便查看


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


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


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


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


 
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文件到设备


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


有安装就会有卸载uninstall


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


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


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


kill-server 命令,杀死所有adb进程
通常当我们在执行adb时碰到error或者设备状态不对,可以尝试重启adb服务,也就是使用这两命令,就犹如网管的重启电脑大杀器一样
6.      shell命令,进入安卓shell环境,这里的shell环境就是指安卓系统
 
shell <command> 命令,直接执行shell环境下的命令,例子如下:


这里用的vmstat命令会显示服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况
7.      root 命令,以root身份重启adbd守护进程,对于未获得root权限的手机,这个命令执行时会报错的


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


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


 
下面实例演示手机wifi连接电脑
先使用usb连接手机和电脑,查看


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


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


再次查看连接的设备


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


断开wifi连接命令


再次转换为usb,使用命令adb usb即可
二. Dos命令
   
   2.1 cd命令,切换目录
      注意切换盘符不能使用cd e:这样的形式,必须直接使用e:就可以切换
      

 
cd  workspace 进入e盘workspace目录
 
      cd ..返回上一级目录,cd .... 返回上两级目录
      

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

 
2.3 md 创建目录


   rd /s /q testdir 删除testdir这个目录及其以下的所有文件
       type test.txt 查看文件内容
   del test.txt删除文件
2.4 netstat –ano|findstr 4723 查看端口占用情况,下面截图表示该端口已占用,最后一列的数字是该进程的id


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


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


三.安卓shell命令
   3.1 cd命令,切换目录
       cd ..返回上一级
       cd –返回上次的目录
       cd ~返回当前用户的家目录
      pwd 命令,显示当前所在目录路径


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

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

   3.3 rm –rf  <文件或者目录>表示强制删除文件或者目录,-r表示递归删除 –f表示强制不用询问

   mkdir <目录名称> 创建目录

3.4 cat <文件名称> 查看文件内容
原文地址:https://www.cnblogs.com/yt1234/p/9425256.html