Google AppCrawler初探
AppCrawler是什么
你可以把它想成类似monkey一样的工具,调起你的应用程序并执行各种动作(点击,输入,滑动等)来通过这种方式
来查看各种情况下应用程序的状态
官方文档链接:AppCrawler官方文档
如何使用AppCrawler
1.确保自己有最新版本的androidSDK,通过androidStudio来完成androidSDK的下载
2.下载AppCrawler AppCrawler下载
3.确认仿真机或者物理设备在线,adb devices
4.解压缩你下载的app-crawler,进入文件夹运行
java -jar crawl_launcher.jar --apk-file apkPath --android-sdk androidSDK path
5.参数介绍:
| 参数 | 描述 |
| --android-sdk path | 指定AndroidSDK的路径 必要的参数 |
| --apk-file file |
指定应用apk的路径 然后安装 和--apk-package-name为或的关系 一定要指定一个 |
| --app-package-name name |
指定package name 当你的程序已经安装且不需要重新安装就填写这个参数 和--apk-package-name为或的关系 一定要指定一个 |
| --key-store path |
指定应用程序进行签名的密钥库的路径 当你的应用程序需要签名才成正常运行时候添加这项 |
| --key-store-password password |
提供密码库的密码 与--key-store为并的关系 两个要有就都有 |
| --timeout-sec timeout |
指定你执行的时间 注:1.默认60s 2.s为单位 |
6.摸索后(坑)的附加参数
上面配置好参数运行发现测试机纹丝不动,再一看log日志平静如水,命令行也看不出什么端倪,这时候另一个灵魂参数就要上场了
| 参数 | 描述 |
| --ui-automator-mode | 这个参数是保证不会重新打包appcrawler apk而加速启动 |
讲到这里其实机智的同学已经发现了另一个问题,因为我们前面通过adb devices来判断判断仿真机或物理机是否在线,那么如果我有多台设备同时链接,
又该如何制定对应的机器来启动app-crawler呢
| 参数 | 描述 |
| --device-serial-code | 指定对应devideNumber的机器来运行app-crawler |
最后
运行结束后

日志和截图输出的路径和是否发现crash问题,这就不用一一解释了,一目了然。初次接触大概就收获这么多
详细探究https://www.cnblogs.com/newliu/p/11678183.html
Google AppCrawler初探的更多相关文章
- Android BLE与终端通信(五)——Google API BLE4.0低功耗蓝牙文档解读之案例初探
Android BLE与终端通信(五)--Google API BLE4.0低功耗蓝牙文档解读之案例初探 算下来很久没有写BLE的博文了,上家的技术都快忘记了,所以赶紧读了一遍Google的API顺便 ...
- Baidu与Google地图API初探
前天周六,有个好友过来玩,他说想在他的站点中加入地图导航模块,但不知道选择哪个第三方Map API 在网上查了下Baidu.Google.QQ和MapBar等4种Map API(都是採用JS开放API ...
- 初探Google Guava
Guava地址:https://github.com/google/guava 第一次接触我是在16年春github上,当时在找单机查缓存方法,google guava当初取名是因为JAVA的类库不好 ...
- 谷歌字体(Google Font)初探 [翻译自Google官方文档]
这个指南解释了如何使用Google Font的API,把网络字体添加到自己的页面上.你不需要任何的编码,你所要做的只是添加一个特定的CSS到HTML页面上,然后把字体关联到这个CSS样式. 一个快速的 ...
- Google 开源的 Python 命令行库:初探 fire
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...
- Unity3D游戏开发初探—1.跨平台的游戏引擎让.NET程序员新生
一.Unity3D平台简介 Unity是由Unity Technologies开发的一个让轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的 ...
- 初探nodeJS
一.node概要 对nodeJS早有耳闻,但是一直迟迟没有对它下手,哈哈哈,今儿咱就来初探一下它. nodeJS是个啥东东? nodeJS,我的理解就是可以运行在后端的JavaScript. 为什么它 ...
- AJAX初探,XMLHttpRequest介绍
AJAX初探,XMLHttpRequest介绍 AJAX AJAX = Asynchronous JavaScript and XML. 异步的JavaScript和XML. AJ ...
- 进击的Python【第一章】:Python背景初探与Python基础(一)
Python背景初探 一.Python起源 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做 ...
随机推荐
- from 表单用 GET 方法进行 URL 传值时后台无法获取问题
问题描述 <a href="${pageContext.request.contextPath}/client?method=add">点我</a> < ...
- Java基础之Iterable与Iterator
Java基础之Iterable与Iterator 一.前言: Iterable :故名思议,实现了这个接口的集合对象支持迭代,是可迭代的.able结尾的表示 能...样,可以做.... Iterato ...
- 在Azure云上实现postgres主备切换
以下是工作上实现postgres主备切换功能所用到的代码和步骤,中间走了不少弯路,在此记录下.所用到的操作系统为centos 7.5,安装了两台服务器,hostname为VM7的为Master,VM8 ...
- 【转载】Windows api数据类型
最近在接触windows api函数,看到了很多之前没有看到过的数据类型,发现“个人图书馆”中有个帖子说的挺详细的,特地搬运过来 Windows 数据类型 Delphi 数据类型 描述 LPSTR P ...
- B-Quadratic equation_2019牛客暑期多校训练营(第九场)
题意 解下列方程 \((x+y) \equiv b \ mod \ p\) \((x\ *\ y) \equiv c \ mod \ p\) 题解 \(y = b-x\) 带入二式 \(x * (b- ...
- STL中set和multiset小结
(1)使用set/multiset之前必须包含头文件<set>:#include<set> (2)namespace std{ template <cla ...
- 区间dp专题
HDU4283You Are the One区间dp, 记忆话搜索运行时间: #include <iostream> #include <cstdio> #include ...
- LeetCode380 常数时间插入、删除和获取随机元素
LeetCode380 常数时间插入.删除和获取随机元素 题目要求 设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构. insert(val):当元素 val 不存在时,向集合中插 ...
- Mysql InnoDB引擎下 事务的隔离级别
mysql InnoDB 引擎下事物学习 建表user CREATE TABLE `user` ( `uid` bigint(20) unsigned NOT NULL AUTO_INCREMENT, ...
- Object和Objects
Object 在Java,Object类是超级父类,是所有类的父类. public boolean equals(Object obj) { return (this == obj); } publi ...