然后,被测对象Activity中添加下面的代码,可以加在onResume()里面,如框5.2所示。
框5.2 测试用例
mKeyGuardManager =
(KeyguardManager) getSystemService(KEYGUARD_SERVICE);
mLock = mKeyGuardManager.newKeyguardLock("com.example.aatg.tc");
mLock.disableKeyguard();
上面的代码,获取KeyguardManager,然后通过KeyguardLock实例化一个标签,写入客户化的包名,以便在debug的时候知道是谁禁用了键盘。
然后,调用disableKeyguard()来禁用键盘。一旦键盘展示出来,它将会被隐藏掉。键盘会一直隐藏,除非调用reenableKeyguard(),才会重新出来。
5.2.3 清理
有些时候,为了不让上一个用例遗留下的结果影响下一个用例的执行,你需要做一些清理工作。比较好的做法是,先释放所有占用内存、停掉所有的服务、下载的资源、然后重启进程,可以用模拟器热重启。
$ adb -s emulator-5580 shell 'stop; sleep 5; start'
这行命令就是打开模拟器的命令,会执行stop和start命令。
效果可以用logcat来监控:
$ adb -s emulator-5580 logcat
获得的信息如下:
D/AndroidRuntime( 241): D/AndroidRuntime( 241): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<< D/AndroidRuntime( 241): CheckJNI is ON D/AndroidRuntime( 241): --- registering native functions --- I/SamplingProfilerIntegration( 241): Profiler is disabled. I/Zygote ( 241): Preloading classes... D/dalvikvm( 241): GC_EXPLICIT freed 816 objects / 47208 bytes in 7ms I/ServiceManager( 28): service 'connectivity' died I/ServiceManager( 28): service 'throttle' died I/ServiceManager( 28): service 'accessibility' died … |
在Android2.2Froyo模拟器中,热启动不太好使,但是在Android其他设备上工作很顺利。这个bug已经提交报告了,你可以看看bug的推进过程:http://code.google.com/p/andriod/issues/detail?id=9814。
5.2.4 终止模拟器
我们可以用上面提到的命令来测试,一旦工作完毕,需要关闭进程,命令如下:
$ adb -s emulator-5580 emu kill
它会停止模拟器,释放所有有用的资源,并且将宿主计算机的进程也终止掉。
本文选自《Android应用测试指南》第五章,本站经人民邮电出版社和作者的授权。
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。