Monkey捕获Crash原理

Android的RuntimeInit.commonInit中会设置UncaughtHandler

ActivityManagerService(AMS)在执行handleApplicationCrash时会执行

而Monkey在getSystemInterfaces时会向AMS注册自己的内部类对象Monkey.ActivityController(是一个Binder服务端类型)

其appCrashed实现如下:

注意点:

在应用中设置UncaughtExceptionHandler会拦截系统的默认Crash处理,Monkey也就捕获不到该crash异常,monkey_log

中也便木有这些崩溃记录了。

时间: 2024-10-06 15:25:25

Monkey捕获Crash原理的相关文章

iOS App Crash原理分析

预备知识:OS X系统分析 1.内核XNU是Darwin的核心,也是整个OS X的核心.XNU本身由以下几个组件构成: Mach微核心 BSD层 libKern I/O Kit 此外,内核是模块化的,允许根据需要动态加载插件形式的内核扩展. 2.Mach:XNU的核心,Mach仅能处理操作系统最基本的职责: 进程和线程抽象. 虚拟内存管理 任务调度 进程间通信和消息传递机制(例如:NSMachPort) 3.所以OS X是在Mach内核的基础上构建的,苹果不鼓励直接只用Mach的API,但是Ma

【APP自动化测试】Monkey的测试原理和方法

参考资料:http://blog.csdn.net/io_field/article/details/52189972 一.Monkey测试原理:Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey测试是一种为了测试软件的稳定性.健壮性的快速有效的方法. 二.测试准备 1.首先需要将手机连接到PC,测试连接是否正常,可在cmd里输入adb devic

Android 捕获 crash

private void initializeCrashHandlers() { // This crash handler can take care of anything, but you MUST close the process at the end if you are // not throwing an exception back to the default thread exception handler. To do this, we first get the //

android开发之Monkey测试_自动化测试_看看你的应用够不够健壮

上篇提到让应用自动抓取Crash日志提交到服务器,如果发布之前没有经过严格测试(个人练手做的一些小应用),会发现有很多异常都是显而易见的错误,只是没有严格测试忽略了而已,其实android自带了一个自动化测试工具,Monkey,可以用来简单测试一下程序的健壮性如何. monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常.当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,它就

Monkey自动化测试

Monkey简介 语法参数 实际应用 一.Monkey简介 1.什么是Monkey? 基于健壮性.稳定性的考虑:如果将一个应用交给一个人长时间不停地乱点乱按,程序会怎么样? 有时候运行相同系列的测试,即使是复杂的测试,但是以相同的顺序和路径,即使一遍又一遍地运行也很少机会能发现内存和资源使用的bug. 出于满足这种需求,Google将Monkey集成到了SDK R8(Android 2.2以后) Monkey是一个命令行工具,Android平台自动化测试的一种手段. 可以运行在模拟器或实际设备中

Monkey学习(转载)

Monkey测试特点 什么是Monkey test? 如其名,像猴子一样,虽然什么都不懂,但是可以乱点一通,可以理解为压力测试.在规定的时间或次数范围内做任何随机的操作,随即操作包括点击.滑动...... Monkey测试目标:通过模拟用户随机操作时间,暴露应用内Crash,降低Crash率 Monkey Test范围预期:除了一些系统设置,我们希望范围维持在待测试应用内,另外可以补充一些中断测试 只能发现Crash,单复现和解决Crash还是需要靠开发人员 暴露所有的Crash不太现实,只能在

winpcap抓包原理

winpcap抓包原理 WinPcap 是由伯克利分组捕获库派生而来的分组捕获库,它是在Windows 操作平台上来实现对底层包的截取过滤.WinPcap 是 BPF 模型和 Libpcap 函数库在 Windows 平台下网络数据包捕获和网络状态分析的一种体系结构,这个 体系结构是由一个核心的包过滤驱动程序,一个底层的动态连接库 Packet.dll 和一个高层的独立于系统的函数库 Libpcap 组成.底层的包 捕获驱动程序实际为一个协议网 络驱动程序,通过对 NDIS 中函数的调用为 Wi

monkey之monkey简介

1.Monkey 是什么 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey测试是一种为了测试软件稳定性.健壮性的快速有效的方法. Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar.Monkey.jar程序是由一个名为“monkey”的s

iOS Crash获取闪回日志和上传server

首先我们整理常常会闪退的异常哪些:数组越界.空引用.引用没有定义方法.内存空间不足等等. 怎样获取crash闪退日志 -- 工具查看 先看第一个问题怎样查看,我搜索的方法有下面几个: 第一个方法:XCode  的菜单Window->Organizer    选择Devices  ->  选中的手机 -> 点击手机名称左边的箭头 会等到例如以下图 注意对照一下红色框框内容,这个日志也基本上上告诉你crash的原因了. 另外一种方法 打开手机 - > 设置 -> 隐私 - >