免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2729 | 回复: 1
打印 上一主题 下一主题

Android开发中ANR与Monkey测试工具 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-24 23:57 |只看该作者 |倒序浏览
Android开发中ANR与Monkey测试工具



一、ANR有关
  ANR=Application Not Responding
  在Android上,如果你的应用程序有一段时间响应不够灵敏(5秒内没有输入响应事件),系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。Handlermessage或者BroadcastReceiver处理过程时间超过十秒也会引起。
  避免方法:运行在主线程里的任何方法都尽可能少做事情。特别是,Activity应该在它的关键生命周期方法(如onCreate()和onResume())里尽可能少的去做创建操作。潜在的耗时操作,例如网络或数据库操作,或者高耗时的计算如改变位图尺寸,应该在子线程里(或者以数据库操作为例,通过异步请求的方式)来完成。主线程应该为子线程提供一个Handler,以便完成时能够提交给主线程。以这种方式设计你的应用程序,将能保证你的主线程保持对输入的响应性并能避免由于5秒输入事件的超时引发的ANR对话框。
  IntentReceiver执行时间的特殊限制意味着它应该做:在后台里做小的、琐碎的工作如保存设定或者注册一个Notification。和在主线程里调用的其它方法一样,应用程序应该避免在BroadcastReceiver里做耗时的操作或计算。替代的是,如果响应Intent广播需要执行一个耗时的动作的话,应用程序应该启动一个Service。顺便提及一句,你也应该避免在Intent Receiver里启动一个Activity,因为它会创建一个新的画面,并从当前用户正在运行的程序上抢夺焦点。如果你的应用程序在响应Intent广播时需要向用户展示什么,你应该使用Notification Manager来实现。
  一般来说,在应用程序里,100到200ms是用户能感知阻滞的时间阈值。
  如果你的应用程序为响应用户输入正在后台工作的话,可以显示工作的进度(ProgressBar和ProgressDialog对这种情况来说很有用)。
  特别是游戏,在子线程里做移动的计算。
  如果你的应用程序有一个耗时的初始化过程的话,考虑可以显示一个Splash Screen或者快速显示主画面并异步来填充这些信息。在这两种情况下,你都应该显示正在进行的进度,以免用户认为应用程序被冻结了。

  二、自动化测试工具Monkey
  1、什么是Monkey
Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。

  2、 Monkey的特征
  A、测试的对象仅为应用程序包,有一定的局限性。
  B、 Monky测试使用的事件流数据流是随机的,不能进行自定义。
  C、可对MonkeyTest的对象,事件数量,类型,频率等进行设置。

  3、Monkey的基本用法
  $ adb shell monkey –p(包) your.package.name –v(频率) 500

  4、Monkey测试的停止条件
  Monkey Test执行过程中在下列三种情况下会自动停止:
  A、如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
  B、如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。
  C、如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错

论坛徽章:
0
2 [报告]
发表于 2014-02-10 19:10 |只看该作者
您好,请问:
1.在monkey 脚本测试中,DeviceWakeUp这个函数怎么用呢?
eg:
type=user
count=10
speed=1.0
start data >>
DeviceWakeUp
我使用这个脚本,为什么不能够 turn off screen?
2.DispatchPointer、DispatchTrackball、DispatchKey这3个函数有什么用?您是否可以提供一个例子给我测试
谢谢您的解答
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP