ImageVerifierCode 换一换
格式:PDF , 页数:27 ,大小:869.23KB ,
资源ID:6229121      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-6229121.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Monkey源代码分析.pdf)为本站会员(HR专家)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

Monkey源代码分析.pdf

1、Android Fuzz测试工具 Monkey源代码分析 2013.02 大纲 总体设计架构 问题: 如何运行使用? 如何创建和消费事件? 如何向 Activity注入事件? 如何做监控? 扩展 : IWindowManager事件注入背后! 总结 设计亮点 改进思路 问题 1:如何运行使用? 启动 App,用默认事件比例, 并向其 发送 100个伪 随机事件 (可以自行设置各种事件的比例) 总体设计 问题 2:如何创建和消费事件? 2.1: 主循环 Monkey.runMonkeyCycles 2.2 MonkeySourceRandom如何按比例生成事件 ? 默认比例 generateE

2、vents前据入参调整,规约累加 2.3 事件序列 第一个入队的 Event必然是 ActivityEvent Event序列: Key, Touch, Motion ACTION_DOWN ACTION_MOVE * N ACTION_UP 延时事件 2.4 几种事件的生成方式 Monkey事件体系 2.4.1 MonkeyMotionEvent 含 FACTOR_TOUCH, FACTOR_MOTION 是 一个基于屏幕绝对位置( x, y)的事件序列:ACTION_DOWN/MOVE/UP, MOVE事件序列带有随机性 2.4.2 MonkeyTrackballEvent 原理: 1、先

3、产生 10个随机 MOVE事件 2、再有一定几率产生一个 click事件 2.4.3 MonkeyKeyEvent 原理: 种类 : FACTOR_NAV,FACTOR_MAJORNAV, FACTOR_SYSOPS,NORMAL_KEYS 包含 ACTION_DOWN和 ACTION_UP事件对 2.4.4 MonkeyActivityEvent 1. Monkey.getMainApps()中初始化了可以切换的 App列表:基于 Component 2. 只会触发一个 Application的 入口 Activity 2.4.5 MonkeyFlipEvent 1. 模拟手机设备翻转,每次

4、取反 2. 直接写设备文件来模拟 问题 3. 如何 向 Activity注入事件? Command设计模式 3.1 依赖 WindowManager注入 MotionEvent KeyEvent 3.2 其他 FlipEvent:写设备文件 ActivityEvent: Intent ThrottleEvent:只是 sleep 问题 4、如何做监控: ActivityWatcher ActivityWatcher extends IActivityWatcher 主要监控 Activity的 crash和 ANR事件 问题 4、如何做监控: MonkeyNetworkMonitor Monk

5、eyNetworkMonitor extends IIntentReceiver .Stub 统计运行期 mobile和 wifi连接时长 问题 4、如何做监控: MonkeyNetworkMonitor 为什么监控网络会和 Intent扯上关系? 求证 :每次网络 连接变化 都会 由系统发出广播事件!而 Monkey捕获这类广播! IWindowManager事件注入背后 ! IWindowManager和 WindowManagerService的 binder通信不连接 关系 ? IWindowManager事件注入背后 ! injectEvent的整个过程? WM.injectKeyE

6、vent() WM.dispatchKey(); focus.mClient.dispatchKey(event); /( 成为焦点的) WindowState对象,有一个 mClient成员,这就是 IWindow! IWindowManager事件注入背后 ! 总结 设计亮点 事件的 Command设计模式 接口统一,可扩展,可自我运行 观察 者模式: Monitor体系 改进思路 缺点:时间根据事件比例全随机 1、可能覆盖丌到 App中的所有 Activity 2、丌会根据 Activity特点做针对性测试 ListView:上下滑动,图片点击等 MonkeySourceScript如何使用? 3、没有输入提交能力 让 Instrmentation拥有 Monkey的能力? 附录 最新的源码: https:/

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报