本文依据uiautomator1.0测验脚本介绍自动化测验技术的运用,介绍如何获取Context、经过app包名发动app、数据库的运用、App运转监控、uiatutomator1.0中文录入支撑。

shell 进程的 Context

相似uiautomator1.0经过shell发动的运用是无法直接获取Context的,可是有些Android服务是依赖于context的,shell运用尽管不自带context,可是能够经过ActivityThread.systemMain()初始化一个shell类型的context。经过该context能够运用PackageManager、ActivityManager,sqlite等服务,可是需求动态权限和app权限的操作是无法正常调用的。下面便是该Context的具体运用介绍。

PackageManager 运用

经过Context获取PackageManager能够获取体系装置运用的信息以及已装置运用的发动Intent。

Android 系统服务在测试流程中的应用

数据库运用

运用数据库方式与一般运用共同,流程是首先创立SqliteHelper继承SQLiteOpenHelper,处理数据库创立、晋级的表结构更新逻辑,需求留意的是结构参数中databaseName要运用绝对路径而且context不能为null。

Android 系统服务在测试流程中的应用

设备当时 App 运转状况监控

咱们在测验进程中有时需求计算相关Activity展现的信息,并计算何时打开了页面并逗留多长时间,以及运用的crash、ANR、体系ANR等信息。咱们能够经过接收体系ActivityController来完成。

接收体系ActivityController需求完成IActivityController.Stub接口,并在回调办法内完成运用Activity切换、运用崩溃、运用ANR、体系ANR等反常的计算事务,经过ActivityManager#setActivityController办法接收体系服务,示例代码如下:

Android 系统服务在测试流程中的应用

运转 app 的进程监控

测验进程中被测app有可能会相关多个pid,假如你想计算被测运用的进程履行周期那么下面的内容会对你有所协助。

咱们能够经过ProcessObserver依据pid计算process履行周期,并经过uid与app进行相关来完成计算指定运用的process变化周期。示例代码如下:

Android 系统服务在测试流程中的应用

uiatutomator1.0 录入中文

我们都知道uiatutomator2.0支撑中文录入,uiatutomator1.0原声是不支撑中文录入的,其实Android自动化测验框架的中文录入是经过AccessibilityNodeInfo来完成文本录入的,可是体系版本过低时是不支撑直接录入中文的,下面的代码是依据AccessibilityNodeInfo完成中文录入的逻辑

Android 系统服务在测试流程中的应用

Android 系统服务在测试流程中的应用

获取更多相关资料,请增加微信ceshiren001