zoukankan      html  css  js  c++  java
  • 6.Appium 安卓自动化(adb 命令)

    Android 调试桥

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

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

    adb 的工作原理

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

    启用 adb 调试

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

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

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

    adb常用命令

    查看adb版本

    adb version

    查看设备信息

    adb devices

    连接模拟器

    adb connect + 模拟器端口号

    进入sell

    adb shell

    进入指定设备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:UsersShuqingDesktopkyb.txt /sdcard

    C:UsersShuqingDesktopkyb.txt: 1 file pushed. 0.1 MB/s (462 bytes in 0.005s)

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

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

    eg:

    adb pull /sdcard/server.log  C:UsersShuqingDesktop

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

    注意:由于权限问题,不能直接pull到电脑磁盘根目录,否则会报错:

    C:UsersShuqing>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:UsersShuqingDesktop)

    adb服务启动和关闭

    adb kill-server                 关闭adb服务

    adb start-server            开启adb服务

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

     

    C:UsersShuqing> 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

    参考文档

  • 相关阅读:
    JavaScript丨数组元素反转
    Executor框架浅析
    索引相关
    关系型数据库
    Cookie和Session
    HTTP和HTTPS
    TCP,UDP,HTTP
    OSI模型
    剑指Offer19
    剑指Offer03
  • 原文地址:https://www.cnblogs.com/mali2016/p/10319356.html
Copyright © 2011-2022 走看看