【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 ...
随机推荐
- 1004: [HNOI2008]Cards - burnside + DP
Description 小春现在很清闲, 面对书桌上的 \(N\) 张牌, 他决定给每张染色, 目前小春只有 \(3\) 种颜色: 红色, 蓝色, 绿色. 他询问 Sun 有 多少种染色方案, Sun ...
- 在IE浏览器进行编辑操作再展示出现乱码问题
解决方法: ajax传输数据时进行encodeURI编码就可以了 例如: 在其他浏览器中没有进行 encodeURI 直接传输,无问题. 然而,在IE10 和11中进行下面这段代码编辑后,再展示出来就 ...
- 服务管理之mysql基础
目录 mysql基础 1. 关系型数据库介绍 1.1 数据结构模型 1.2 RDBMS专业名词 2. mysql安装与配置 2.1 mysql安装 2.2 mysql配置 3. mysql的程序组成 ...
- Numpy and Matplotlib
Numpy介绍 编辑 一个用python实现的科学计算,包括:1.一个强大的N维数组对象Array:2.比较成熟的(广播)函数库:3.用于整合C/C++和Fortran代码的工具包:4.实用的线性代数 ...
- 快速实现抖音的分享&登录(android)
快速实现抖音分享与第三方登录 准备工作 1.注册抖音的key到抖音开放平台,点击这里查看步骤: 2.集成ShareSDK到Mob官网文档页面查看即可,点击这里查看集成: 业务代码 分享要求: 视频: ...
- python中print不换行
python中的print打印的结果总是进行了换行,如果不想换行显示可以在print中添加“end ='' ” 一般print显示: for i in range(3): print(i) #显示结果 ...
- 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在该文件夹内部对存在的库链接到一 ...
- 464. Can I Win
https://leetcode.com/problems/can-i-win/description/ In the "100 game," two players take t ...
- Linux学习---位运算符
<<.>> ① << 左移 乘以2^n m << n m*(2^n) eg:4: 0 0 1 0 0 8: 0 1 0 0 0 [数据.数字]移位 左 ...
- idea安装了Mybaits Plugin插件后,启动不起来了
之前安装了一些插件,谁知道重启完了之后,直接启动不起来了,报错信息如下: cannot load project fatal error initializing plugin com.seven7. ...