DeviceFlashPreparer

public abstract class DeviceFlashPreparer
extends BaseTargetPreparer implements IConfigurationReceiver

java.lang.Object 中
   ↳ com.android.tradefed.targetprep.BaseTargetPreparer
     ↳ com.android.tradefed.targetprep.DeviceFlashPreparer


用于在 Android 实体硬件上刷写映像的 ITargetPreparer

摘要

公共构造函数

DeviceFlashPreparer()

公共方法

IBuildInfo getBuild(TestInformation testInfo)

封装 getBuildInfo,以便我们可以针对特定场景替换掉它。

boolean isIncrementalFlashingEnabled()
boolean isIncrementalFlashingForceDisabled()
void setAllowCrossReleaseFlashing(boolean allowCrossReleaseFlashing)
void setAllowUnzipBaseline(boolean allowUnzipBaseline)
void setApplySnapshot(boolean applySnapshot)
void setConfiguration(IConfiguration configuration)

注入正在使用的 IConfiguration

void setIgnoreHostOptions(boolean ignoreHostOptions)
void setUp(TestInformation testInfo)

void setUserDataFlashOption(IDeviceFlasher.UserDataFlashOption flashOption)

设置 userdata-flash 选项

void tearDown(TestInformation testInfo, Throwable e)

受保护的方法

void checkDeviceProductType(ITestDevice device, IDeviceBuildInfo deviceBuild)

可以在刷写之前进行检查,以确保与 build 信息相比,设备符合预期。

abstract IDeviceFlasher createFlasher(ITestDevice device)

创建要使用的 IDeviceFlasher

long getDeviceBootWaitTime()

获取设备启动等待时间

IHostOptions getHostOptions()

获取要使用的 IHostOptions 实例。

void reportFlashMetrics(String branch, String buildFlavor, String buildId, String serial, long queueTime, long flashingTime, CommandStatus flashingStatus)

向指标后端报告设备刷写时间数据

void setSkipPostFlashBuildIdCheck(boolean skipPostFlashBuildIdCheck)
void setUseIncrementalFlashing(boolean incrementalFlashing)

公共构造函数

DeviceFlashPreparer

public DeviceFlashPreparer ()

公共方法

getBuild

public IBuildInfo getBuild (TestInformation testInfo)

封装 getBuildInfo,以便我们可以针对特定场景替换掉它。

参数
testInfo TestInformation

返回
IBuildInfo

is 增量 FlashingEnabled

public boolean isIncrementalFlashingEnabled ()

返回
boolean

is 增量 FlashingForceDisabled

public boolean isIncrementalFlashingForceDisabled ()

返回
boolean

setAllowCrossReleaseFlashing

public void setAllowCrossReleaseFlashing (boolean allowCrossReleaseFlashing)

参数
allowCrossReleaseFlashing boolean

setAllowUnzipBaseline

public void setAllowUnzipBaseline (boolean allowUnzipBaseline)

参数
allowUnzipBaseline boolean

setApplySnapshot

public void setApplySnapshot (boolean applySnapshot)

参数
applySnapshot boolean

setConfiguration

public void setConfiguration (IConfiguration configuration)

注入正在使用的 IConfiguration

参数
configuration IConfiguration

setIgnoreHostOptions

public void setIgnoreHostOptions (boolean ignoreHostOptions)

参数
ignoreHostOptions boolean

设置

public void setUp (TestInformation testInfo)

参数
testInfo TestInformation

抛出
BuildError
DeviceNotAvailableException
TargetSetupError

setUserDataFlashOption

public void setUserDataFlashOption (IDeviceFlasher.UserDataFlashOption flashOption)

设置 userdata-flash 选项

拆解

public void tearDown (TestInformation testInfo, 
                Throwable e)

参数
testInfo TestInformation

e Throwable

抛出
DeviceNotAvailableException

受保护的方法

checkDeviceProductType

protected void checkDeviceProductType (ITestDevice device, 
                IDeviceBuildInfo deviceBuild)

可以在刷写之前进行检查,以确保与 build 信息相比,设备符合预期。

参数
device ITestDevice:要刷写的 ITestDevice

deviceBuild IDeviceBuildInfo:用于刷写的 IDeviceBuildInfo

抛出
com.android.tradefed.targetprep.BuildError
com.android.tradefed.device.DeviceNotAvailableException
BuildError
DeviceNotAvailableException

createFlasher

protected abstract IDeviceFlasher createFlasher (ITestDevice device)

创建要使用的 IDeviceFlasher。子类可以替换

参数
device ITestDevice

返回
IDeviceFlasher

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getDeviceBootWaitTime

protected long getDeviceBootWaitTime ()

获取设备启动等待时间

返回
long

getHostOptions

protected IHostOptions getHostOptions ()

获取要使用的 IHostOptions 实例。

可供单元测试

返回
IHostOptions

报告 Flash 指标

protected void reportFlashMetrics (String branch, 
                String buildFlavor, 
                String buildId, 
                String serial, 
                long queueTime, 
                long flashingTime, 
                CommandStatus flashingStatus)

向指标后端报告设备刷写时间数据

参数
branch String:设备 build 所属的分支

buildFlavor String:设备 build 的 build 变种

buildId String:设备 build 的 build 号

serial String:设备的序列号

queueTime long:等待刷写限制生效所用的时间

flashingTime long:刷写设备映像 zip 所用的时间

flashingStatus CommandStatus:刷写命令的执行状态

setSkipPostFlashBuildIdCheck

protected void setSkipPostFlashBuildIdCheck (boolean skipPostFlashBuildIdCheck)

参数
skipPostFlashBuildIdCheck boolean

setUseAdditionalFlashing

protected void setUseIncrementalFlashing (boolean incrementalFlashing)

参数
incrementalFlashing boolean