1.1 Adb介绍

adb(android debug bridge)是android sdk自带的一个工具

Adb是用来连接android设备和PC端的桥梁,通过adb工具,用户可以在PC端对手机进行全面的操作

Android的初衷是用adb这样的一个工具来协助开发人员在开发android应用的过程中更快更好的调试apk,因此adb具有安装卸载apk、拷贝推送文件、查看设备硬件信息、查看应用程序占用资源、在设备执行shell命令等功能

adb可以跨平台,也就意味着在不仅在windows,在mac/linux平台都可以来使用adb命令,只需要下载配置对应平台软件包即可

adb有三大部分组件:

客户端(client)

运行在你自己的电脑上,可以通过shell来调起一个客户端

服务器(server)

运行在电脑的后台,负责管理client和damon进行通信

守护进程(damon)

运行在模拟器或者android设备的后台

Adb工具位于SDK目录下的platform-tools目录,有跟adb相关的三个文件:

之前我们在搭建自动化的环境的时候其实就已经将adb部署好了,我们直接在windows的dos环境中使用了(通过在运行输入cmd即可进入),所以接下来我们就开始介绍adb使用方式。

tips:adb都是通过命令来操作android设备的

1.2  Adb常用命令系列

adb --help

查看帮助手册

adb devices

查看连接到PC的android设备,这个是我们使用频率最高的命令之,这里有一点大家需要注意:

Android模拟器和真实的android设备连接是有区别的,如果你是使用的genymotion模拟器,因为在模拟器已经设置了

所以genymotion模拟器会自动帮你加载连接adb,我们直接通过adb devices命令就可以检测到,但是如果你是使用的夜神/海马玩等模拟器,这些不会自动帮你连接上的,所以需要我们手动通过命令adb connect连接,如夜神就是adb connect 127.0.0.1:62001(这里的127.0.0.1表示本地的ip地址,任何电脑都有这个地址,62001表示夜神模拟器的端口号),如果你是海马玩模拟器的话,那么端口号改成26944即可。

如果是真实的android设备(手机/平板电脑):

1、需要确保你的手机已经通过USB线连接到电脑

2、通过驱动软件,驱动精灵/驱动人生等,将你的android手机驱动安装好

3、进入到手机,找到设置->关于手机->点击五下版本号->将对应的开发者选项打开(注意:由于手机型号不同,如小米,魅族,华为这些,可能打开方式稍微有差异,如果不清楚,自己百度怎么打开自己手机的开发者选项)

4、退出到上一级菜单,进入到开发者选项,找到USB调试模拟器将其打开

5、还有最后一步,一般来说会出来一个确认调试的对话框,我们也需要勾选上,不然adb命令用不了

adb shell

登录设备shell(命令行的人机界面),在当前环境中就可以使用到很多linux相关命令了,如:cd、ls、cp等等,相当于远程执行命令的

adb pull <手机路径> <电脑路径>

从手机中拉取信息放到本地电脑上,手机路径可以通过adb shell进入到shell环境中,通过cd、ls这些命令找到对应的文件,如将QQ这个apk拉取放到D盘下的test目录

adb push <本机路径> <手机路径>

从本地推送信息到手机上去,如

adb install *.apk

为了获取apk的安装包所在地址,可以直接把apk拖到cmd窗口获取,返回success就说明安装成功了

adb install -r *.apk

保留数据和缓存文件,重新安装apk

adb shell dumpsys activity | find "mFocusedActivity"  

查看前台应用包名和类名(这里大家先大概了解下什么是包名:android系统给到应用的标识)

adb uninstall <包名>

卸载某个应用,后面就需要加上对应的包名

adb uninstall -k <包名>

卸载应用但保留数据和缓存文件

adb kill-server

终止adb服务

adb start-server

启动adb服务,通常在adb出现问题时,结合kill-server一起来重启adb服务

adb shell pm list packages

列出当前系统里面所有的包名

-s 列出系统apk路径及包名

-3 列出用户apk及包名

adb logcat

抓取android日志,这个也是对我们非常有用的命令,通过logcat日志,在app发生异常时,如crash/无响应这种,都可以在logcat里面定位到相应的信息

adb connect/disconnect

通过WiFi进行远程调试,此时我们就可以不需要通过USB线将手机连接到电脑了,但是有如下注意事项:

1、确保手机和电脑处于同一网络中(连接的同一个路由器)

2、提前通过adb tcpip 5555来确定通讯的端口号

3、再通过adb connect 加上你自己手机的ip地址来进行连接

如果想要取消连接,直接使用adb disconnect命令即可

============================ PS ==============================
请大家支持原创,尊重原创,如要转载,请注明出处:“转载自:http://www.cnblogs.com/yyoba/”,谢谢!!有任何疑问,欢迎大家留言区艾特我。

【app】自动化必备之adb使用的更多相关文章

  1. APP自动化框架LazyAndroid使用手册(1)--框架简介

    作者:cryanimal  QQ:164166060 APP自动化简介 APP自动化,即通过自动化的方式,对APP施行一系列的仿按键输入.触摸屏输入.手势输入等操作,以达到对APP的功能进行自动化测试 ...

  2. App自动化测试-1.App自动化介绍和环境搭建

    App自动化测试-1.App自动化介绍和环境搭建 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-b ...

  3. APP自动化环境配置

    做自动化很多人都不喜欢做app自动化,说实话,我也不喜欢做app自动化,但是没办法,老板给你钱,让你做,不得不做! 其实app自动化的难点就在于环境,环境OK了之后一切都和web自动化差不多,顶多就是 ...

  4. 手机APP自动化环境搭建

    1 摘要 近年来,随着移动应用从数量上和逻辑复杂程度上的增长,以及产品发布周期的紧缩,使得回归测试迫在眉睫,鉴于此APP自动化测试变得越来流行,当前主流的APP自动化工具有:Appium.Roboti ...

  5. Appium + Python App自动化第一个脚本

    今天跟大家讲解一个Appium和Python App自动化的脚本.[1]打开你的夜神模拟器(或者连接你的手机) [2]打开桌面的Appium [3]下载你要测的App的apk文件,放到桌面[4]拖动你 ...

  6. [python]Appium+python +pytest 实现APP自动化,基于安卓

    1.安卓环境搭建 &关于app自动化,个人觉得安装过程比较复杂,脚本难度实现和web自动化差不多封装关键字即可,因此,下面会写安装.启动APP以及过程中遇到的一些坑(这一篇偏向解释给个人) & ...

  7. 移动web app开发必备 - Deferred 源码分析

    姊妹篇  移动web app开发必备 - 异步队列 Deferred 在分析Deferred之前我觉得还是有必要把老套的设计模式给搬出来,便于理解源码! 观察者模式 观察者模式( 又叫发布者-订阅者模 ...

  8. APP自动化框架LazyAndroid使用手册(2)--元素自动抓取

    作者:黄书力 概述 前面的一篇博文简要介绍了安卓自动化测试框架LazyAndroid的组成结构和基本功能,本文将详细描述此框架中元素自动抓取工具lazy-uiautomaterviewer的使用方法. ...

  9. 用java和junit编写app自动化测试用例

    package myTest; import static org.junit.Assert.*; import io.appium.java_client.android.AndroidDriver ...

随机推荐

  1. 1004: [HNOI2008]Cards - burnside + DP

    Description 小春现在很清闲, 面对书桌上的 \(N\) 张牌, 他决定给每张染色, 目前小春只有 \(3\) 种颜色: 红色, 蓝色, 绿色. 他询问 Sun 有 多少种染色方案, Sun ...

  2. 在IE浏览器进行编辑操作再展示出现乱码问题

    解决方法: ajax传输数据时进行encodeURI编码就可以了 例如: 在其他浏览器中没有进行 encodeURI 直接传输,无问题. 然而,在IE10 和11中进行下面这段代码编辑后,再展示出来就 ...

  3. 服务管理之mysql基础

    目录 mysql基础 1. 关系型数据库介绍 1.1 数据结构模型 1.2 RDBMS专业名词 2. mysql安装与配置 2.1 mysql安装 2.2 mysql配置 3. mysql的程序组成 ...

  4. Numpy and Matplotlib

    Numpy介绍 编辑 一个用python实现的科学计算,包括:1.一个强大的N维数组对象Array:2.比较成熟的(广播)函数库:3.用于整合C/C++和Fortran代码的工具包:4.实用的线性代数 ...

  5. 快速实现抖音的分享&登录(android)

    快速实现抖音分享与第三方登录 准备工作 1.注册抖音的key到抖音开放平台,点击这里查看步骤: 2.集成ShareSDK到Mob官网文档页面查看即可,点击这里查看集成: 业务代码 分享要求: 视频: ...

  6. python中print不换行

    python中的print打印的结果总是进行了换行,如果不想换行显示可以在print中添加“end ='' ” 一般print显示: for i in range(3): print(i) #显示结果 ...

  7. No rule to make target '/usr/lib/x86_64-linux-gnu/libproj.so ,needed by '../bin/generate_pointcloud解决方法

    这是/usr/lib/x86_64-linux-gnu/文件夹内没有这个libproj.so 库,先在该文件夹内搜索是否有同名不同版本的库,如果有 ,可以使用ln -s在该文件夹内部对存在的库链接到一 ...

  8. 464. Can I Win

    https://leetcode.com/problems/can-i-win/description/ In the "100 game," two players take t ...

  9. Linux学习---位运算符

    <<.>> ① << 左移  乘以2^n m << n m*(2^n) eg:4: 0 0 1 0 0 8: 0 1 0 0 0 [数据.数字]移位 左 ...

  10. idea安装了Mybaits Plugin插件后,启动不起来了

    之前安装了一些插件,谁知道重启完了之后,直接启动不起来了,报错信息如下: cannot load project fatal error initializing plugin com.seven7. ...