6.Appium 安卓自动化(adb 命令)

Android 调试桥

adb ( Android Debug Bridge)是一个通用命令行工具,其容许您与模拟器实例或链接的 Android 设备进行通讯。它可为各类设备操做提供便利,如安装和调试应用。html

Tips: 在 android_sdk/platform-tools/ 中找到 adb 工具,而后根据其具体的路径配置好环境变量。而后启动cmd 输入‘adb’便可查看是否配置成功。android

adb 的工做原理

启动一个 adb 客户端时,此客户端首先检查是否有已运行的 adb 服务器进程。若是没有,它将启动服务器进程。当服务器启动时,它与本地 TCP 端口 5037 绑定,并侦遵从 adb 客户端发送的命令—全部 adb 客户端均使用端口 5037 与 adb 服务器通讯。shell

启用 adb 调试

要在经过 USB 链接的设备上使用 adb,您必须在设备系统设置中启用 USB debugging(位于 Developer options 下)。windows

在运行 Android 4.2 及更高版本的设备上,Developer options 屏幕默认状况下处于隐藏状态。如需将其显示出来,请转到 Settings > About phone 并点按 Build number 七次。返回上一屏幕,在底部能够找到 Developer options。缓存

注:当您链接运行 Android 4.2.2 或更高版本的设备时,系统将显示一个对话框,询问您是否接受容许在这台计算机上调试的 RSA 密钥。这种安全机制能够保护用户设备,由于它能够确保只有在您可以解锁设备并确认对话框的状况下才能执行 USB 调试和其余 ADB 命令。安全

adb经常使用命令

查看adb版本

adb version服务器

查看设备信息

adb devicesapp

链接模拟器

adb connect + 模拟器端口号工具

进入sell

adb shellui

进入指定设备shell

adb -s + 端口 sell

root知识小科普

“To err is human, but to really foul up everything, you need root password.”

“人非圣贤孰能无过,可是拥有root密码就真的万劫不复了。”

root用户是系统中惟一的超级管理员,它具备等同于操做系统的权限。一些须要root权限的应用,譬如广告阻挡,卸载系统预装App是须要root权限的。可问题在于root比windows的系统管理员的能力更大,足以把整个系统的大部分文件删掉,致使系统彻底毁坏,不能再次使用。因此,用root进行不当的操做是至关危险的,轻微的能够死机,严重的甚至不能开机。因此,在Unix、Linux及Android中,除非确实须要,通常状况下都不推荐使用root。

在设备安装apk

adb install | -r <apkName>  -r 覆盖原安装文件 -s 能够指定设备

默认安装

adb install +包的路径

覆盖安装

adb install -r +包的路径

指定设备安装

adb -s +指定设备端口 install +包的路径(能够指定多个包的路径) 

如遇到报错:Failure [INSTALL_FAILED_INVALID_URI]

解决方案: cmd命令行下执行如下命令:

  • 第一步、adb remount
  • 第二步、adb shell
  • 第三步、cd /data
  • 第四步、chmod 777 local
  • 从新安装apk,ok了。

卸载apk

1.首先进入设备的/data/app目录找到app包名

adb shell

cd /data/app/

 

2.执行命令删除

adb uninstall  | -k  <apkName>  卸载软件名称

adb uninstall  com.wandoujia.phoenix2

Tips:安装后的包名系统会在末尾加上-1之类的数字,要去掉才能够成功卸载。 软件名称为包名,不要包含.apk
-k 加 -k 参数,为卸载软件可是保留配置和缓存文件.

查看设备上面安装的应用包名

adb shell pm list package

管道搜索

adb sell

adb sell pm list package | grep "安装时app.apk 的名称"

 

文件读取写入

1.将文件从PC写入到设备

adb push +本地文件路径 +设备文件存放路径

eg

adb push C:\Users\Shuqing\Desktop\kyb.txt /sdcard

C:\Users\Shuqing\Desktop\kyb.txt: 1 file pushed. 0.1 MB/s (462 bytes in 0.005s)

2.将文件从设备读取到PC

adb push +设备文件路径 +本地文件存放路径 

eg:

adb pull /sdcard/server.log  C:\Users\Shuqing\Desktop

/sdcard/server.log: 1 file pulled. 0.0 MB/s (196 bytes in 0.004s)

注意:因为权限问题,不能直接pull到电脑磁盘根目录,不然会报错:

C:\Users\Shuqing>adb pull /sdcard/server.log  D:\\

adb: error: cannot create file/directory 'D:\\': No such file or directory

屏幕截图

adb shell screencap +图片存放设备路径(/sdcard/screen.png)

adb pull +图片存放设备路径(/sdcard/screen.png)  +电脑想存放图片的路径(C:\Users\Shuqing\Desktop)

adb服务启动和关闭

adb kill-server                 关闭adb服务

adb start-server            开启adb服务

Tips:若是5037端口被占用可使用以下命令释放端口

 

C:\Users\Shuqing> netstat -ano | findstr "5037"

  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       11072

  TCP    127.0.0.1:5037         127.0.0.1:59519        TIME_WAIT       0

 
taskkill -f -pid XXX
 

小结

  1. adb是自动化很是重要的一个工具
  2. 目前不少PC客户端手机助手也是基于adb链接原理进行封装的。
  3. 能够将经常使用的adb命令封装成bat命令,随时能够运行。如:

adbdevices.bat

adb devices

pause

AdbConnect.bat

adb connect +设备端口如(127.0.0.1:62025)

adb devices

pause

参考文档

相关文章
相关标签/搜索