Runin测试是手机、笔记本、PAD等电子产品出厂前必须要进行的测试,主要的目的是模拟用户连续高强度对机器进行各种操作,检测机器在各种极端场景和环境下的性能。
一、Runin测试有三种类型的Case
1.系统测试项:reboot,S3,battery,这三个属于运行时服务,执行完一项才会执行下一项
2.后台测试项:music,emmc,memeory这一类都是在后台并行执行
3.前端测试项:cpu,lcd,2d,3d,camera这一类测试项按顺序执行。
二、测试项相关的信息都存储在4byte的mId中,其中第一字节代表测试项索引,第二字节表示是否锁屏,第三字节表示前端还是后台执行,第四字节表示是系统项还是用户项。
三、Case测试项
1.命名如 CaseXXX.java
2.组成 :构造方法
CaseXXX(),getTestTime(),getTestCount(),startTest(),stopTest(),setHandler(Handler handler),getDesp()
四、Category测试项
1.命名如CategoryXXX.java
2.组成:
CategoryBattery(),getCaess(),getTestResult(),getDescription(),getSleepTimeBeforeStart(),getSleepTimeAfterFinish()
五、TestXXX.java类
Handler传递消息,
BroadcastReceiver从Service接收广播
notifyTestResult()通过handler、bundle传递状态
onStop()注销广播接收器,结束case
onPause()处理返回键事件
onStartTest()重置测试项,同时通过handler发送消息
onStartTest()通过handler发送消息
onsleepbeforestart()返回休眠时长
sleepBetweenRound()返回每两轮测试的间隔时间
以及各个测试项的实现算法
六、RuntimeTestBootReceiver.java类
处理重启、wifi、bt等的状态的监听 删除.btFile,.wifiFile,.keybox.dat
七、RuntimeTestConfig.java类
在这个类中对Runin全局的一些状态进行设置,
SharedPreferences编辑、保存、读取以及重置设置信息
setCurrentPreset()设置当前的preset
getCurrentPreset()获取当前的preset
saveCurrentPreset()保存当前的preset
restoreCurrentPreset()重新载入当前的preset
loadIntegerArray() Loads an integer array asset into a list.
setTestCount_reboot()设置重启次数
getTestCount_reboot()获取重启次数
emmc,audio…类似(次数、时间)
setCheckedIds()选中项id
getCheckedIds()选中项id
setRebootData()
getRebootData()
hasMultitouchTest()
getMultitouchNum()
getFTString()
getFlagMMI()
getFlagRunin()
getFlag()
setIsCaseChanged()
getIsCaseChanged()
getTestTime_vib()
setTestTime_vib()
setTestFlag()
setIsTestingFlag()
getIsTestingFlag()
八、RuntimeTestMain.java类
主界面的初始化包括复选框的状态、按钮状态的切换、标志状态的获取、进入界面手指触摸事件处理、关闭wifi等动作、NormalMode与EditMode之间的切换、查看测试结果
九、RuntimeTestMessage.java
负责主界面与测试项之间的消息传递
十、RuntimeTestService.java
Runin测试的主要活动都与该类相关,状态的更新、消息的传递、消息的响应、任务的分发、测试结果的获取等
十一、RuntimeTestTesting.java
测试过程中电量的检测、控制,充、放电状态的获取、相应log的处理等
十二、RuntimeTestUtil.java
获取cpu状态、使用率,获取电池电量、充放电状态、控制充放电容量,读、写信息到文件等
十三、ShellUtil.java
shell与高级语言的调用,返回shell命令输出结果,多用于获取驱动节点值等。