Support specifying SD card path or size.

This commit is contained in:
Yang
2020-12-27 19:41:13 +11:00
parent 308aa234e1
commit b0f3c521a5
8 changed files with 32 additions and 20 deletions
+14 -8
View File
@@ -5,15 +5,21 @@ const EMULATOR_BOOT_TIMEOUT_SECONDS = 600;
/**
* Creates and launches a new AVD instance with the specified configurations.
*/
export async function launchEmulator(apiLevel: number, target: string, arch: string, profile: string, avdName: string, emulatorOptions: string, disableAnimations: boolean): Promise<void> {
export async function launchEmulator(
apiLevel: number,
target: string,
arch: string,
profile: string,
sdcardPathOrSize: string,
avdName: string,
emulatorOptions: string,
disableAnimations: boolean
): Promise<void> {
// create a new AVD
if (profile.trim() !== '') {
console.log(`Creating AVD with custom profile ${profile}`);
await exec.exec(`avdmanager create avd --force -n "${avdName}" --abi "${target}/${arch}" --package "system-images;android-${apiLevel};${target};${arch}" --device "${profile}"`);
} else {
console.log(`Creating AVD without custom profile.`);
await exec.exec(`sh -c \\"echo no | avdmanager create avd --force -n "${avdName}" --abi '${target}/${arch}' --package 'system-images;android-${apiLevel};${target};${arch}'"`);
}
const profileOption = profile.trim() !== '' ? `--device "${profile}"` : '';
const sdcardPathOrSizeOption = sdcardPathOrSize.trim() !== '' ? `--sdcard "${sdcardPathOrSize}"` : '';
console.log(`Creating AVD.`);
await exec.exec(`avdmanager create avd --force -n "${avdName}" --abi "${target}/${arch}" --package "system-images;android-${apiLevel};${target};${arch}" ${profileOption} ${sdcardPathOrSizeOption}`);
// start emulator
console.log('Starting emulator.');
+5 -1
View File
@@ -39,6 +39,10 @@ async function run() {
const profile = core.getInput('profile');
console.log(`Hardware profile: ${profile}`);
// SD card path or size used for creating the AVD
const sdcardPathOrSize = core.getInput('sdcard-path-or-size');
console.log(`SD card path or size: ${sdcardPathOrSize}`);
// custom name used for creating the AVD
const avdName = core.getInput('avd-name');
console.log(`AVD name: ${avdName}`);
@@ -94,7 +98,7 @@ async function run() {
await installAndroidSdk(apiLevel, target, arch, emulatorBuild, ndkVersion, cmakeVersion);
// launch an emulator
await launchEmulator(apiLevel, target, arch, profile, avdName, emulatorOptions, disableAnimations);
await launchEmulator(apiLevel, target, arch, profile, sdcardPathOrSize, avdName, emulatorOptions, disableAnimations);
// execute the custom script
try {