ModulePusher

public class ModulePusher
extends Object

java.lang.Object
   ↳ com.android.tradefed.targetprep.ModulePusher


摘要

嵌套类

class ModulePusher.ModulePushError

Mainline 模块推送期间出现严重错误。 

字段

public static final String LINE_BREAK

公共构造函数

ModulePusher(ITestDevice device, long waitTimeMs, long delayWaitingTimeMs)

公共方法

void installModules(ImmutableMultimap<String, File> moduleFiles, boolean factoryReset, boolean disablePackageCache)

通过 adb push 将 moduleFiles 安装到设备。

受保护的方法

void checkApexActivated(ITestDevice device, modules)

检查是否所有顶端都已激活。

Path getApexPathUnderSystem(ITestDevice device, String packageName)
getModulesFailToActivate( toInstall, activatedApexes)

获取未能激活的模块。

String[] getPathsOnDevice(ITestDevice device, String packageName)

获取设备上软件包的安装文件路径。

Path[] getPreloadPaths(ITestDevice device, File[] moduleFiles, String packageName, int apiLevel)

获取设备上的预加载软件包的路径。

ImmutableMap<String, String> parsePackageVersionCodes(String output)

将“package:{key} versionCode:{value}”行解析为映射。

void setupDevice(ITestDevice device)

在将文件推送到 /system 下之前,请先 adb root 并重新挂载设备

void waitForDeviceToBeResponsive(long waitTime)

字段

LINE_BREAK

public static final String LINE_BREAK

公共构造函数

ModulePusher

public ModulePusher (ITestDevice device, 
                long waitTimeMs, 
                long delayWaitingTimeMs)

参数
device ITestDevice

waitTimeMs long

delayWaitingTimeMs long

公共方法

installModules

public void installModules (ImmutableMultimap<String, File> moduleFiles, 
                boolean factoryReset, 
                boolean disablePackageCache)

通过 adb push 将 moduleFiles 安装到设备。

参数
moduleFiles ImmutableMultimap:从软件包名称到软件包文件的多重映射。在分屏情况下,基准软件包应在迭代顺序中处于第一位。

factoryReset boolean:如果通过恢复出厂设置重新加载。

disablePackageCache boolean

抛出
DeviceNotAvailableException
ModulePusher.ModulePushError
TargetSetupError

受保护的方法

checkApexActivated 已激活

protected void checkApexActivated (ITestDevice device, 
                 modules)

检查所有顶点是否已激活。

参数
device ITestDevice:正在测试。

modules

抛出
ModulePusher.ModulePushError 如果启用失败,则会发生此错误。
DeviceNotAvailableException

getApexPathUnderSystem

protected Path getApexPathUnderSystem (ITestDevice device, 
                String packageName)

参数
device ITestDevice

packageName String

返回
Path

抛出
DeviceNotAvailableException
ModulePusher.ModulePushError

getModulesFailToActivate

protected  getModulesFailToActivate ( toInstall, 
                 activatedApexes)

获取未能激活的模块。

参数
toInstall

activatedApexes :设备上的一组活跃顶点

返回
一个列表,其中包含未激活的输入 APEX 模块的 apexinfo。

getPathsOnDevice

protected String[] getPathsOnDevice (ITestDevice device, 
                String packageName)

获取设备上软件包安装文件的路径。

参数
device ITestDevice:正在测试

packageName String:模块

返回
String[] 软件包的所有文件的路径

抛出
DeviceNotAvailableException 如果设备不可用
ModulePusher.ModulePushError

getPreloadPaths

protected Path[] getPreloadPaths (ITestDevice device, 
                File[] moduleFiles, 
                String packageName, 
                int apiLevel)

获取设备上预加载软件包的路径。

对于分屏软件包,请返回软件包目录的路径,后跟文件的路径。因此,在本例中,返回值的大小始终大于 1。对于非拆分软件包,只需 返回预加载安装文件的路径。

参数
device ITestDevice:正在测试中

moduleFiles File:要安装的本地模块文件

packageName String:模块

apiLevel 设备的 int

返回
Path[] 预加载文件的路径

抛出
DeviceNotAvailableException
ModulePusher.ModulePushError

parsePackageVersionCodes

protected ImmutableMap<String, String> parsePackageVersionCodes (String output)

解析“package:{key} versionCode:{value}”的行转换为地图

参数
output String

返回
ImmutableMap<String, String>

setupDevice

protected void setupDevice (ITestDevice device)

在将文件推送到 /system 之前,请先 adb root 并重新挂载设备

参数
device ITestDevice

抛出
ModulePusher.ModulePushError 如果设备无法重新安装。
DeviceNotAvailableException 如果设备不可用。

waitForDeviceToBeResponsive

protected void waitForDeviceToBeResponsive (long waitTime)

参数
waitTime long