InstallApexModuleTargetPreparer

public class InstallApexModuleTargetPreparer
extends SuiteApkInstaller

java.lang.Object
   ↳ com.android.tradefed.targetprep.BaseTargetPreparer
     ↳ com.android.tradefed.targetprep.TestAppInstallSetup
       ↳ com.android.tradefed.targetprep.suite.SuiteApkInstaller
         ↳ com.android.tradefed.targetprep.InstallApexModuleTargetPreparer


Summary

Fields

protected static final String APEX_OPTION

protected static final String APEX_SUFFIX

protected static final String APK_SUFFIX

protected static final String APK_ZIP_OPTION

protected static final String CHILD_SESSION_CREATION_CMD

protected static final String PARENT_SESSION_CREATION_CMD

public static final String ROLLBACK_STATE_COMMITTED

public static final String ROLLBACK_STATE_UNKNOWN

protected static final String SPLIT_APKS_SUFFIX

protected File mTrainFolderPath

Public constructors

InstallApexModuleTargetPreparer()

Public methods

getModulesToInstall(TestInformation testInfo)

Gets the modules that should be installed on the train, based on the modules preloaded on the device.

void setIgnoreIfNotPreloaded(boolean skip)
void setSkipApexTearDown(boolean skip)
void setUp(TestInformation testInfo)

void tearDown(TestInformation testInfo, Throwable e)

Protected methods

void addApksToTestFiles()
void addStagedReadyTimeoutForAdb( cmd)
void addTimeoutMillisForBundletool( extraArgs)
void checkApexActivation(ITestDevice device)

Check if all apexes are activated.

collectApexInfoFromApexModules( testAppFileNames, TestInformation testInfo)

Collects apex info from the apex modules for activation check.

getApkInstalled()
String getBundletoolFileName()
BundletoolUtil getBundletoolUtil()
String getModuleKeywordFromApexPackageName(String packageName)

Gets the keyword (e.g., 'tzdata' for com.android.tzdata.apex) from the apex package name.

getModulesFailToActivate( activatedApexes)

Get modules that failed to be activated.

getSplitsForApks(TestInformation testInfo, File moduleFile)

Extracts and returns splits for the specified apks.

void initBundletoolUtil(TestInformation testInfo)

Initializes the bundletool util for this class.

void installTrain(TestInformation testInfo, moduleFilenames)

Attempts to install a mainline train containing apex on the device.

void installUsingBundleTool(TestInformation testInfo, testAppFileNames)

Attempts to install mainline module(s) using bundletool.

void installer(TestInformation testInfo, testAppFileNames)

Attempt to install an package or split package on the device.

ITestDevice.ApexInfo retrieveApexInfo(File testApexFile, DeviceDescriptor deviceDescriptor)

Retrieves ApexInfo which contains packageName and versionCode from the given apex file.

Fields

APEX_OPTION

protected static final String APEX_OPTION

APEX_SUFFIX

protected static final String APEX_SUFFIX

APK_SUFFIX

protected static final String APK_SUFFIX

APK_ZIP_OPTION

protected static final String APK_ZIP_OPTION

CHILD_SESSION_CREATION_CMD

protected static final String CHILD_SESSION_CREATION_CMD

PARENT_SESSION_CREATION_CMD

protected static final String PARENT_SESSION_CREATION_CMD

ROLLBACK_STATE_COMMITTED

public static final String ROLLBACK_STATE_COMMITTED

ROLLBACK_STATE_UNKNOWN

public static final String ROLLBACK_STATE_UNKNOWN

SPLIT_APKS_SUFFIX

protected static final String SPLIT_APKS_SUFFIX

mTrainFolderPath

protected File mTrainFolderPath

Public constructors

InstallApexModuleTargetPreparer

public InstallApexModuleTargetPreparer ()

Public methods

getModulesToInstall

public  getModulesToInstall (TestInformation testInfo)

Gets the modules that should be installed on the train, based on the modules preloaded on the device. Modules that are not preloaded will not be installed.

Parameters
testInfo TestInformation: the TestInformation

Returns
List of the modules that should be installed on the device.

Throws
DeviceNotAvailableException when device is not available.
TargetSetupError when mandatory modules are not installed, or module cannot be installed.

setIgnoreIfNotPreloaded

public void setIgnoreIfNotPreloaded (boolean skip)

Parameters
skip boolean

setSkipApexTearDown

public void setSkipApexTearDown (boolean skip)

Parameters
skip boolean

setUp

public void setUp (TestInformation testInfo)

Parameters
testInfo TestInformation

Throws
BuildError
DeviceNotAvailableException
TargetSetupError

tearDown

public void tearDown (TestInformation testInfo, 
                Throwable e)

Parameters
testInfo TestInformation

e Throwable

Throws
DeviceNotAvailableException
DeviceRuntimeException

Protected methods

addApksToTestFiles

protected void addApksToTestFiles ()

addStagedReadyTimeoutForAdb

protected void addStagedReadyTimeoutForAdb ( cmd)

Parameters
cmd

addTimeoutMillisForBundletool

protected void addTimeoutMillisForBundletool ( extraArgs)

Parameters
extraArgs

checkApexActivation

protected void checkApexActivation (ITestDevice device)

Check if all apexes are activated.

Parameters
device ITestDevice: under test.

Throws
TargetSetupError if activation failed.
DeviceNotAvailableException

collectApexInfoFromApexModules

protected  collectApexInfoFromApexModules ( testAppFileNames, 
                TestInformation testInfo)

Collects apex info from the apex modules for activation check.

Parameters
testAppFileNames : The list of the file names of the modules to install

testInfo TestInformation: The TestInformation

Returns
a list containing the apexinfo of the apex modules in the input file lists

Throws
TargetSetupError

getApkInstalled

protected  getApkInstalled ()

Returns

getBundletoolFileName

protected String getBundletoolFileName ()

Returns
String

getBundletoolUtil

protected BundletoolUtil getBundletoolUtil ()

Returns
BundletoolUtil

getModuleKeywordFromApexPackageName

protected String getModuleKeywordFromApexPackageName (String packageName)

Gets the keyword (e.g., 'tzdata' for com.android.tzdata.apex) from the apex package name.

Parameters
packageName String: The package name of the apex file.

Returns
String a string The keyword of the apex package name.

getModulesFailToActivate

protected  getModulesFailToActivate ( activatedApexes)

Get modules that failed to be activated.

Parameters
activatedApexes : The set of the active apexes on device

Returns
a list containing the apexinfo of the input apex modules that failed to be activated.

Throws
DeviceNotAvailableException
TargetSetupError

getSplitsForApks

protected  getSplitsForApks (TestInformation testInfo, 
                File moduleFile)

Extracts and returns splits for the specified apks.

Parameters
testInfo TestInformation: the TestInformation

moduleFile File: The module file to extract the splits from.

Returns
a File[] containing the splits.

Throws
TargetSetupError if bundletool cannot be found or device spec file fails to generate.

initBundletoolUtil

protected void initBundletoolUtil (TestInformation testInfo)

Initializes the bundletool util for this class.

Parameters
testInfo TestInformation: the TestInformation for the invocation.

Throws
TargetSetupError if bundletool cannot be found.

installTrain

protected void installTrain (TestInformation testInfo, 
                 moduleFilenames)

Attempts to install a mainline train containing apex on the device.

Parameters
testInfo TestInformation: the TestInformation

moduleFilenames : List of String. The list of filenames of the mainline modules to be installed.

Throws
DeviceNotAvailableException
TargetSetupError

installUsingBundleTool

protected void installUsingBundleTool (TestInformation testInfo, 
                 testAppFileNames)

Attempts to install mainline module(s) using bundletool.

Parameters
testInfo TestInformation: the TestInformation

testAppFileNames : the filenames of the preloaded modules to install.

Throws
DeviceNotAvailableException
TargetSetupError

installer

protected void installer (TestInformation testInfo, 
                 testAppFileNames)

Attempt to install an package or split package on the device.

Parameters
testInfo TestInformation: the TestInformation for the invocation

testAppFileNames : The apks and their package to be installed.

Throws
DeviceNotAvailableException
TargetSetupError

retrieveApexInfo

protected ITestDevice.ApexInfo retrieveApexInfo (File testApexFile, 
                DeviceDescriptor deviceDescriptor)

Retrieves ApexInfo which contains packageName and versionCode from the given apex file.

Parameters
testApexFile File: The apex file we retrieve information from.

deviceDescriptor DeviceDescriptor

Returns
ITestDevice.ApexInfo an ApexInfo containing the packageName and versionCode of the given file

Throws
TargetSetupError if aapt parser failed to parse the file.