【app】自动化必备之adb使用
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使用的更多相关文章
- APP自动化框架LazyAndroid使用手册(1)--框架简介
作者:cryanimal QQ:164166060 APP自动化简介 APP自动化,即通过自动化的方式,对APP施行一系列的仿按键输入.触摸屏输入.手势输入等操作,以达到对APP的功能进行自动化测试 ...
- App自动化测试-1.App自动化介绍和环境搭建
App自动化测试-1.App自动化介绍和环境搭建 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-b ...
- APP自动化环境配置
做自动化很多人都不喜欢做app自动化,说实话,我也不喜欢做app自动化,但是没办法,老板给你钱,让你做,不得不做! 其实app自动化的难点就在于环境,环境OK了之后一切都和web自动化差不多,顶多就是 ...
- 手机APP自动化环境搭建
1 摘要 近年来,随着移动应用从数量上和逻辑复杂程度上的增长,以及产品发布周期的紧缩,使得回归测试迫在眉睫,鉴于此APP自动化测试变得越来流行,当前主流的APP自动化工具有:Appium.Roboti ...
- Appium + Python App自动化第一个脚本
今天跟大家讲解一个Appium和Python App自动化的脚本.[1]打开你的夜神模拟器(或者连接你的手机) [2]打开桌面的Appium [3]下载你要测的App的apk文件,放到桌面[4]拖动你 ...
- [python]Appium+python +pytest 实现APP自动化,基于安卓
1.安卓环境搭建 &关于app自动化,个人觉得安装过程比较复杂,脚本难度实现和web自动化差不多封装关键字即可,因此,下面会写安装.启动APP以及过程中遇到的一些坑(这一篇偏向解释给个人) & ...
- 移动web app开发必备 - Deferred 源码分析
姊妹篇 移动web app开发必备 - 异步队列 Deferred 在分析Deferred之前我觉得还是有必要把老套的设计模式给搬出来,便于理解源码! 观察者模式 观察者模式( 又叫发布者-订阅者模 ...
- APP自动化框架LazyAndroid使用手册(2)--元素自动抓取
作者:黄书力 概述 前面的一篇博文简要介绍了安卓自动化测试框架LazyAndroid的组成结构和基本功能,本文将详细描述此框架中元素自动抓取工具lazy-uiautomaterviewer的使用方法. ...
- 用java和junit编写app自动化测试用例
package myTest; import static org.junit.Assert.*; import io.appium.java_client.android.AndroidDriver ...
随机推荐
- Python-docx 读取word.docx内容
第一次写博客,也不知道要写点儿什么好,所以就把我在学习Python的过程中遇到的问题记录下来,以便之后查看,本人小白,写的不好,如有错误,还请大家批评指正! 中文编码问题总是让人头疼,想要用Pytho ...
- day 2:计算机的基础知识,编程语言分类
本节内容 1,计算机的容量 2,编程语言介绍1,计算机的容量 1位 = 1bit 8bit = 1byte = 1字节 1024bytes = 1k bytes = 1KB 1024个 1024KB ...
- [JavaScript] 弹出编辑框
效果:单击图片copy,双击图片或者点Edit都会打开编辑窗口 Style <style> .black_overlay{ display: none; position: absolut ...
- Maximum Sum Circular Subarray LT918
Given a circular array C of integers represented by A, find the maximum possible sum of a non-empty ...
- 分布式服务治理框架dubbo
Dubbo最主要功能有两个 1 RPC调用 2 SOA服务治理方案 Dubbo的架构 Dubbo常见的注册中心有2中,zookeeper以及redis 这篇文章讲解的是采用的zookeeper,要求读 ...
- OO第一单元单元总结
总述 三周的时间一晃而过,也到了和表达式说再见的时候了.想起来,现在已经能够优雅地在互测“攻击”别人,然后笑对被别人“攻击”,就觉得OO这三周还是很有意义,也多多少少改变了我.周六已经快习惯早上背着包 ...
- cobbler自动装机服务简介与配置
cobbler简介 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等. Cobbler可以使用命令行 ...
- Java上传和下载
1.文件的上传 [1] 简介 > 将一个客户端的本地的文件发送到服务器中保存. > 上传文件是通过流的形式将文件发送给服务器. [2] 表单的设置 > 向服务器上传一个文件时,表单要 ...
- require.js模块化
require.js简单来说就是把js代码分装模块化了 模块化 模块就是实现特定功能的一组方法.只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块. 我拿一个运动框架来解释一下req ...
- hadoop教程
http://www.yiibai.com/hadoop/hadoop_enviornment_setup.html 改网站讲解详细,还有源码,值得借阅