mirror of
https://github.com/reactivecircus/android-emulator-runner.git
synced 2026-09-05 11:39:31 +00:00
Support customizing emulator port (#383)
* Add port parameter * Fix a typo in test description * Fix avd not being started with correct port * Fix wrong port being used to kill an emulator if there was an exception
This commit is contained in:
+17
-12
@@ -38,7 +38,7 @@ const fs = __importStar(require("fs"));
|
||||
/**
|
||||
* Creates and launches a new AVD instance with the specified configurations.
|
||||
*/
|
||||
function launchEmulator(apiLevel, target, arch, profile, cores, ramSize, heapSize, sdcardPathOrSize, diskSize, avdName, forceAvdCreation, emulatorBootTimeout, emulatorOptions, disableAnimations, disableSpellChecker, disableLinuxHardwareAcceleration, enableHardwareKeyboard) {
|
||||
function launchEmulator(apiLevel, target, arch, profile, cores, ramSize, heapSize, sdcardPathOrSize, diskSize, avdName, forceAvdCreation, emulatorBootTimeout, port, emulatorOptions, disableAnimations, disableSpellChecker, disableLinuxHardwareAcceleration, enableHardwareKeyboard) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
console.log(`::group::Launch Emulator`);
|
||||
@@ -82,19 +82,19 @@ function launchEmulator(apiLevel, target, arch, profile, cores, ramSize, heapSiz
|
||||
},
|
||||
});
|
||||
// wait for emulator to complete booting
|
||||
yield waitForDevice(emulatorBootTimeout);
|
||||
yield exec.exec(`adb shell input keyevent 82`);
|
||||
yield waitForDevice(port, emulatorBootTimeout);
|
||||
yield adb(port, `shell input keyevent 82`);
|
||||
if (disableAnimations) {
|
||||
console.log('Disabling animations.');
|
||||
yield exec.exec(`adb shell settings put global window_animation_scale 0.0`);
|
||||
yield exec.exec(`adb shell settings put global transition_animation_scale 0.0`);
|
||||
yield exec.exec(`adb shell settings put global animator_duration_scale 0.0`);
|
||||
yield adb(port, `shell settings put global window_animation_scale 0.0`);
|
||||
yield adb(port, `shell settings put global transition_animation_scale 0.0`);
|
||||
yield adb(port, `shell settings put global animator_duration_scale 0.0`);
|
||||
}
|
||||
if (disableSpellChecker) {
|
||||
yield exec.exec(`adb shell settings put secure spell_checker_enabled 0`);
|
||||
yield adb(port, `shell settings put secure spell_checker_enabled 0`);
|
||||
}
|
||||
if (enableHardwareKeyboard) {
|
||||
yield exec.exec(`adb shell settings put secure show_ime_with_hard_keyboard 0`);
|
||||
yield adb(port, `shell settings put secure show_ime_with_hard_keyboard 0`);
|
||||
}
|
||||
}
|
||||
finally {
|
||||
@@ -106,11 +106,11 @@ exports.launchEmulator = launchEmulator;
|
||||
/**
|
||||
* Kills the running emulator on the default port.
|
||||
*/
|
||||
function killEmulator() {
|
||||
function killEmulator(port) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
console.log(`::group::Terminate Emulator`);
|
||||
yield exec.exec(`adb -s emulator-5554 emu kill`);
|
||||
yield adb(port, `emu kill`);
|
||||
}
|
||||
catch (error) {
|
||||
console.log(error instanceof Error ? error.message : error);
|
||||
@@ -121,10 +121,15 @@ function killEmulator() {
|
||||
});
|
||||
}
|
||||
exports.killEmulator = killEmulator;
|
||||
function adb(port, command) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return yield exec.exec(`adb -s emulator-${port} ${command}`);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Wait for emulator to boot.
|
||||
*/
|
||||
function waitForDevice(emulatorBootTimeout) {
|
||||
function waitForDevice(port, emulatorBootTimeout) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let booted = false;
|
||||
let attempts = 0;
|
||||
@@ -133,7 +138,7 @@ function waitForDevice(emulatorBootTimeout) {
|
||||
while (!booted) {
|
||||
try {
|
||||
let result = '';
|
||||
yield exec.exec(`adb shell getprop sys.boot_completed`, [], {
|
||||
yield exec.exec(`adb -s emulator-${port} shell getprop sys.boot_completed`, [], {
|
||||
listeners: {
|
||||
stdout: (data) => {
|
||||
result += data.toString();
|
||||
|
||||
Reference in New Issue
Block a user