您的位置:首页 > 其它

深入理解工模APK

2016-11-18 14:35 976 查看
工模apk的主要功能需求是在一款产品(手机、平板、PC等)生命周期的各个阶段,尤其是EVT、DVT以及PVT阶段,工厂进行试产和量产过程中对产品功能进行自动化检测,检测项涵盖产品的所有基本功能,如版本信息、屏幕、摄像头、键盘、蓝牙、Wifi、录音、声音播放、GPS、光感、磁感、SD卡、SIM卡、按键、马达、喇叭左右声道、Hall、电池、充电检测、OTG等。

一、 FactoryKitTest关键类

ControlCenterActvity 整个apk的主actvity,显示列表(full /pcb/item/kb/sensor board)

ControlCenterService 主service,负责初始化数据,是测试过程中一直在跑的service

FactoryTestManager 整个测试框架的核心,主要负责单个测试项流程的启动,测试流程中的消息处理

FactoryItemManager 管理测试项目,测试项之间的衔接以及ItemXxx XxxTest XxxActivity 三个类之间的衔接

ItemXxx 单项测试的入口

XxxTest 单项测试的核心测试代码

XxxActivity 单项测试的过程、结果显示

每个测试项都有一个ItemXXX类,用于将其TestXXX类与XXXActivity类联系起来,

1. FactoryKitTest关键类

ControlCenterActvity 整个apk的主actvity,显示列表(full /pcba /item/kb/sensor board)

ControlCenterService 主service,负责初始化数据,是测试过程中一直在跑的service

FactoryTestManager 整个测试框架的核心,主要负责单个测试项流程的启动,测试流程中的消息处理

FactoryItemManager 管理测试项目,测试项之间的衔接以及ItemXxx XxxTest XxxActivity 三个类之间的衔接

ItemXxx 单项测试的入口

XxxTest 单项测试的核心测试代码

XxxActivity 单项测试的过程、结果显示

每个测试项都有一个ItemXXX类,用于将其TestXXX类与XXXActivity类联系起来,



图1ItemXXX类的作用

整个工模apk启动的时序图如图2所示。



图2 工模apk启动时序图

二、三个重要线程

除UI线程,该模块中的其他线程都是通过HandlerThread类创建,它们是ManagerTestThread即“管理线程”、TestingThread即“测试线程”以及MainThread是系统的主线程,如图3所示,这3个线程的关系如图4所示。



图3 三个重要线程



图4 三个重要线程的关系

可以在代码中通过以下方法来获取当前线程信息。

Log.d(TAG,”thread name ”+Thread.currentThread().getName().toString());

三、单项测试的关键流程

单项测试时序列测试(包括Full Test、PCBA Test等)的基础,单项测试的流程如图5所示。



图5 单项测试流程图



图6 单项测试时序图

四、序列测试的关键流程

1.根据测试方式,测试项可分为两类:前台测试(手动测试)和后台测试(自动测试)。

2.两种测试方式的区别在于:后台测试的测试过程是测试人员看不到的,只会在某一项测试完成后将所有后台测试的结果显示在结果界面,若有失败项可以选择重测。

3.后台测试如何开始?

FactoryTestManager.java类中的startAutoTest()方法,从图7可以看出,所有的后台测试几乎是同时启动的,这种情况可能会存在问题,如蓝牙、Wifi,GPS通常是共用芯片的,若同时工作可能会相互干扰。此外,相对于前台测试的启动方式是发送消息给管理线程在管理线程开启测试,后台测试的测试过程运行在主线程中。

4.仅会对没有pass的后台测试项终止、重新测试并更新UI界面。结果界面获取后台测试结果的流程如图7所示。



图7 结果界面获取后台测试结果的流程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  工模