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)

先运行 adb root 命令并重新装载设备,然后再在 /system 下推送文件

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)

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

对于拆分的软件包,返回软件包 dir 的路径,后跟文件的路径。如 返回的大小始终为 >在本例中为 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)

先执行 adb root 命令并重新装载设备,然后再在 /system 下推送文件

参数
device ITestDevice

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

waitForDeviceToBeResponsive

protected void waitForDeviceToBeResponsive (long waitTime)

参数
waitTime long