首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android处理崩溃的一些实践

Android程序,引起崩溃的多属于运行时异常或者错误,对于这些异常我们很难做到类似Checked Exception那样显式捕获,因而最终导致了程序崩溃。...Android的崩溃收集沿用了Java的收集机制,实现起来比较简单。...设备唯一ID(基于IMEI或者Android ID等),方便根据用户提供的id,查找崩溃的stacktrace 设备语言与区域 方便重现 应用的版本号 设备的系统版本 设备类型,平板,手机,TV等 崩溃发生的时间等...如果我们采取主进程仍弹出对话框,其他进程不弹出的策略,那么我们的问题,可以总结成如下三个 如何判断进程为主进程还是其他进程,或者某个进程 如何在某些进程不弹出应用崩溃对话框 如何在主进程弹出崩溃对话框...,即UI点击无响应状态。

1.4K20

推荐一款好用的APP性能测试工具——Monkey!

Monkey命令执行分解 首先我们清楚 Monkey 程序由 Android 系统自带,使用 Java 语言写成,在 Android 文件系统的存放路径是:/system/framework/monkey.jar...例子:adb shell monkey -p com.htc.Weather --pct-appswitch 70 1000 --pct-flip {+百分比}:9 翻译翻转,键盘轻弹百分比,点击输入框...,键盘弹起,点击输入框以外区域,键盘收回 --pct-anyevent {+百分比}:10 翻译其他类型事件,其他类型事件指上文中未涉及的所有其他事件,keypress、不常用的button等...--ignore-timeouts:翻译忽略超时,当应用程序发生任何超时错误(ANR,即Application Not Responding)时,monkey将继续运行直到计数完成。...那么如果出现崩溃就停止执行,明显不是我们需要的。在Monkey,可以通过 —ignore-crashes 来忽略掉异常崩溃。

5.6K21
您找到你想要的搜索结果了吗?
是的
没有找到

Monkey基本参数介绍

点击蓝字关注这个神奇的公众号~ ?...说到android移动端稳定性测试,大家通常会想到android系统自动Monkey小猴子,通过Monkey命令模拟用户触摸点击屏幕、滑动、系统按键等操作来对设备上的app进行压力测试,来测试应用的稳定性和健壮性...(滚动球事件由一个或多个随机的移动事件组成,有时会伴随着点击事件) 这个参数现在不常使用,早期的android手机出厂自带滚动球,估计有些小伙伴们见过,但现在手机几乎没有滚动球,至少我没有见过,但滚动球事件包含曲线滑动事件...(这些导航事件通常会导致UI界面的动作事件,5-way键盘的中间键,回退按键、菜单按键),这个参数不常用。...用法:adb shell “monkey -p com.Android.browser” 12、--ignore-crashes 作用:应用发生崩溃或异常时Monkey会停止运行。

98430

APP测试之Monkey压力测试(一)

同时,Monkey还对测试的系统进行监测,对下列三种情况进行特殊处理(自动停止): (1)如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止; (2)如果应用程序崩溃或接收到任何失控异常...(1)Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统的存放路径是: /system/framework/monkey.jar; (2)Monkey.jar程序是由一个名为...“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统的存放路径是:/system/bin/monkey; (3)通过在cmd窗口中执行: adb shell monkey...指定包之后,Monkey将只允许系统启动指定的APP;如果不指定包,Monkey将允许系统启动设备的所有APP,com.tencent.WeChat为包名,100是事件计数。...adb shell monkey -p com.tencent.WeChat --pct-trackball 30 1000 说明:调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击

2.9K30

Monkey基本参数介绍

说到android移动端稳定性测试,大家通常会想到android系统自动Monkey小猴子,通过Monkey命令模拟用户触摸点击屏幕、滑动、系统按键等操作来对设备上的app进行压力测试,来测试应用的稳定性和健壮性...(滚动球事件由一个或多个随机的移动事件组成,有时会伴随着点击事件) 这个参数现在不常使用,早期的android手机出厂自带滚动球,估计有些小伙伴们见过,但现在手机几乎没有滚动球,至少我没有见过,但滚动球事件包含曲线滑动事件...(这些导航事件通常会导致UI界面的动作事件,5-way键盘的中间键,回退按键、菜单按键),这个参数不常用。...用法:adb shell “monkey -p com.Android.browser” 12、--ignore-crashes 作用:应用发生崩溃或异常时Monkey会停止运行。...,Monkey将继续发送事件给系统,直到事件计数完成。

62120

几款Android 应用自动化测试工具「建议收藏」

2 > Monkey 程序介绍 ① Monkey 程序由 Android 系统自带,使用Java语言写成,在Android文件系统的存放路径是: /system/framework/monkey.jar...5、–ignore-crashes 作用:通常,应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。 注:常用。...,直到事件计数完成。...Robotium 测试是用java写的。提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。...它支持多种编程语言,java,C #,Ruby和其他在WebDriver库的语言。 它可以控制移动设备上的Safari和Chrome。这样测试移动网站可使用Appium和这些浏览器。

5.7K20

APP测试之Monkey压力测试(一)

同时,Monkey还对测试的系统进行监测,对下列三种情况进行特殊处理(自动停止): (1)如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止; (2)...(1)Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统的存放路径是: /system/framework/monkey.jar; (2)Monkey.jar程序是由一个名为...“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统的存放路径是:/system/bin/monkey; (3)通过在cmd窗口中执行: adb shell monkey...指定包之后,Monkey将只允许系统启动指定的APP;如果不指定包,Monkey将允许系统启动设备的所有APP,com.tencent.WeChat为包名,100是事件计数。...adb shell monkey -p com.tencent.WeChat --pct-trackball 30 1000 说明:调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击

1.8K21

教你轻松在React Native中集成统计的功能

因为umeng官网有非常详细的集成文档集成文档,在这里我会介绍在React Native的Android和iOS如何集成统计功能,但不会长篇大论。...> 上述代码的YOUR_APP_KEY为appkey 需要替换为您在友盟后台申请的应用Appkey,Channel ID为推广渠道名称,这个可以根据需要进行自定义,:GooglePlay 最基本使用...我们只需在MainActivity.java添加如下代码即可完成session的统计。...如果我们要进行更高级的功能,比如:计数统计与计算统计等,因为React Native应用的大部分业务逻辑的代码都是在js部分完成的,所以我们需要将计数统计与计算统计 的相关功能封装成React Native...以上便是在React Native中集成umeng统计的方法及流程,这样以来我们就可以在umeng后台管理查看这些统计数据了: ?

6.3K40

学了一年的Android,还不会调试?你白学了!

本文将详细的讲解如何在android studio,对Android程序进行调试以及DDMS工具的使用。...一、 使用 Log 类来输出日志信息 Android SDK中提供了Log类来获取程序运行时的日志信息,该类在android.util包,它继承了java.lang.Object类。...设置断点是程序调试必不可少的有效手段,和java代码在eclipse调试一样,Android调试器在每次遇到程序断点的时候,都会将当前线程挂起,也就是说暂停当前程序的运行。...,或者右击代码区域,选择Debug MainActivity.java,将在Android Studio 的底部显示调试面板,查看到当前相关变量的值,如下图所示: 在调试面板,可以通过工具栏上的按钮执行相应的调试操作...2.6 停止调试 在工具栏单击停止按钮,即红色的正方形: ,会停止程序的调试。需要注意的是,该操作不回停止程序的运行,而是会跳过所有的调试。

28530

自动化-Appium-第一个Demo-原生(Java版)

方式二:开启Appium Desktop 打开Appium Desktop 服务IP和端口默认的情况下,直接点击Start Server v1.6.5来开启Appium服务,如图所示。...方式二:开启Appium Desktop 打开Appium Desktop 服务IP和端口默认的情况下,直接点击Start Server v1.6.5来开启Appium服务,如图所示。...2、创建Java项目,选择Java目录下的Java Project。 3、输入项目名称(例如:My_Appium_Demo),点击Finish完成。 4、创建lib文件夹,用来存放jar包。...方式二:开启Appium Desktop 打开Appium Desktop 服务IP和端口默认的情况下,直接点击Start Server v1.7.2来开启Appium服务,如图所示。...方式二:开启Appium Desktop 打开Appium Desktop 服务IP和端口默认的情况下,直接点击Start Server v1.6.5来开启Appium服务,如图所示。

2.1K30

使用 monkey 对 App 进行压力测试

来源:http://www.uml.org.cn/ 1.1 monkey 是做什么的 monkey 是 Android 的一个命令行工具,由 java 编写,可以运行在模拟器里或实际设备。...--ignore-crashes 通常,当应用程序崩溃或发生任何失控异常时,Monkey将停止运行。如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。 注:常用。...--ignore-security-exceptions 通常,当应用程序发生许可错误(启动一个需要某些许可的Activity)时,Monkey将停止运行。...注意,正常的(成功的)结束,并没有停止启动的进程,设备只是在结束事件之后,简单地保持在最后的状态。 --monitor-native-crashes 监视并报告Android系统本地代码的崩溃事件。...如果设置了--kill-process-after-error,系统将停止运行。 --wait-dbg 停止执行的Monkey,直到有调试器和它相连接。

1.8K23

手机管家(Android)UI过度渲染自动化测试方案

google在安卓4.4系统开发了查看过度渲染计数的入口,在开发者选项,打开GPU调试,选择过度渲染计数,屏幕左下方可以看到当前窗口过度渲染计数手机管家7.0主页过度渲染计数。...因为在对app进行系统的测试时,会发现页面非常多,管家一二级页面就多大20多个,且集成包,灰度包,正式包,回归包都要进行一次测试,所以进行自动化过度渲染计数读取是有必要的。...通过查看安卓4.4的源码,可以知道在Framework/base/core/Java/android/view/ HardwareRender.java中有一个叫做GLRenderer的内部类,该类还有一个方法如下...系统在屏幕绘制过度渲染计数时,是通过drawText绘制到屏幕上(上述(1)方法的源码截图看出),所以找到调用绘制方法的类,就可以得到过度渲染计数,同样在HardwareRenderer.java代码...因为在调用onPause()时候会自动读取过度渲染值,所以我们要做的自动化仅仅是如何在被测页面之间切换,搜集各个页面的过度渲染值,输出报告,所以流程可以归纳为: 三、测试收益 1、整个测试方案在手机管家

2.5K20

JAVA代码覆盖率工具JaCoCo-原理篇

很多第三方的工具提供了对JaCoCo的集成,sonar、Jenkins等。...方法覆盖率:度量被测程序的方法执行情况,是否执行取决于方法是否有至少一个指令被执行。 指令覆盖:计数单元是单个java二进制代码指令,指令覆盖率提供了代码是否被执行的信息,度量完全 独立源码格式。...(3) 字节码需要被转换成其他的虚拟机Android Dalvik VM。 (4) 动态修改字节码过程中和其他agent冲突。 (5) 无法自定义用户加载类。...4、java方法控制流分析 JaCoCo是如何在字节码注入的? 我们带着疑问来看下面的内容: 先举个实例,有个java方法: ? 编译后转换成字节码后,内容如下: ?...系统在jvm停止的时候会dump覆盖率信息。 关键的核心代码在这里,Agent.java在有一段代码 ?

19.7K154

软件测试|Monkey基本参数介绍

说到android移动端稳定性测试,大家通常会想到android系统自动Monkey小猴子,通过Monkey命令模拟用户触摸点击屏幕、滑动、系统按键等操作来对设备上的app进行压力测试,来测试应用的稳定性和健壮性...;"/>这个参数现在不常使用,早期的android手机出厂自带滚动球,估计有些小伙伴们见过,但现在手机几乎没有滚动球,至少我没有见过,但滚动球事件包含曲线滑动事件,如果被测应用需要曲线滑动时可以选用此参数...(这些导航事件通常会导致UI界面的动作事件,5-way键盘的中间键,回退按键、菜单按键),这个参数不常用。...,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。...设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

41100

软件测试|Monkey基本参数介绍

说到android移动端稳定性测试,大家通常会想到android系统自动Monkey小猴子,通过Monkey命令模拟用户触摸点击屏幕...;"/>这个参数现在不常使用,早期的android手机出厂自带滚动球,估计有些小伙伴们见过,但现在手机几乎没有滚动球,至少我没有见过,但滚动球事件包含曲线滑动事件,如果被测应用需要曲线滑动时可以选用此参数...(这些导航事件通常会导致UI界面的动作事件,5-way键盘的中间键,回退按键、菜单按键),这个参数不常用。...,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。...设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

27110

Android Jetpack系列 之LiveData

LiveData的使用 首先来回顾下计数器的需求: 在Activity 可见的时候,我们去做一个计数功能,每隔一秒 将计数加1 ,当Activity不可见的时候停止计数,当Activity被销毁的时候...这里我们新增需求将计数的数字显示在TextView。...这就是我们今天说的LiveData了 我们在activity_main3新增一个TextView用来显示计数 <TextView android:gravity="center" android...嚯嚯,pia pia 打脸 这里报错的原因是因为我们的计数demo是运行在子线程的,而LiveData的setValue方法只能在主线程调用,如果想要在子线程调动只能使用postValue方法,我们将赋值方法改为...在实际项目开发我们使用switchMap的频率还是很高的,毕竟 只要LiveData对象是调用其他方法获取的 ,我们就可以这样做, 在点击事件我们设置了可观察数据:分数,当分数改变的时候,就会执行switchMap

1.1K20
领券