diff --git a/lib/emulator-manager.js b/lib/emulator-manager.js index 56a6d119b..ab84717f9 100644 --- a/lib/emulator-manager.js +++ b/lib/emulator-manager.js @@ -50,20 +50,27 @@ function launchEmulator(systemImageApiLevel, target, arch, profile, cores, ramSi console.log(`Creating AVD.`); yield exec.exec(`sh -c \\"echo no | avdmanager create avd --force -n "${avdName}" --abi '${target}/${arch}' --package 'system-images;android-${systemImageApiLevel};${target};${arch}' ${profileOption} ${sdcardPathOrSizeOption}"`); } - if (cores) { - yield exec.exec(`sh -c \\"printf 'hw.cpu.ncore=${cores}\n' >> ${process.env.ANDROID_AVD_HOME}/"${avdName}".avd"/config.ini`); - } - if (ramSize) { - yield exec.exec(`sh -c \\"printf 'hw.ramSize=${ramSize}\n' >> ${process.env.ANDROID_AVD_HOME}/"${avdName}".avd"/config.ini`); - } - if (heapSize) { - yield exec.exec(`sh -c \\"printf 'hw.heapSize=${heapSize}\n' >> ${process.env.ANDROID_AVD_HOME}/"${avdName}".avd"/config.ini`); - } - if (enableHardwareKeyboard) { - yield exec.exec(`sh -c \\"printf 'hw.keyboard=yes\n' >> ${process.env.ANDROID_AVD_HOME}/"${avdName}".avd"/config.ini`); - } - if (diskSize) { - yield exec.exec(`sh -c \\"printf 'disk.dataPartition.size=${diskSize}\n' >> ${process.env.ANDROID_AVD_HOME}/"${avdName}".avd"/config.ini`); + if (cores || ramSize || heapSize || enableHardwareKeyboard || diskSize) { + const configEntries = []; + if (cores) { + configEntries.push(`hw.cpu.ncore=${cores}`); + } + if (ramSize) { + configEntries.push(`hw.ramSize=${ramSize}`); + } + if (heapSize) { + configEntries.push(`hw.heapSize=${heapSize}`); + } + if (enableHardwareKeyboard) { + configEntries.push('hw.keyboard=yes'); + } + if (diskSize) { + configEntries.push(`disk.dataPartition.size=${diskSize}`); + } + if (configEntries.length > 0) { + const configContent = configEntries.join('\\n') + '\\n'; + yield exec.exec(`sh -c \\"printf '${configContent}' >> ${process.env.ANDROID_AVD_HOME}/"${avdName}".avd"/config.ini"`); + } } // turn off hardware acceleration on Linux if (process.platform === 'linux' && disableLinuxHardwareAcceleration) { diff --git a/src/emulator-manager.ts b/src/emulator-manager.ts index 14684dede..44633319a 100644 --- a/src/emulator-manager.ts +++ b/src/emulator-manager.ts @@ -37,24 +37,29 @@ export async function launchEmulator( ); } - if (cores) { - await exec.exec(`sh -c \\"printf 'hw.cpu.ncore=${cores}\n' >> ${process.env.ANDROID_AVD_HOME}/"${avdName}".avd"/config.ini`); - } - - if (ramSize) { - await exec.exec(`sh -c \\"printf 'hw.ramSize=${ramSize}\n' >> ${process.env.ANDROID_AVD_HOME}/"${avdName}".avd"/config.ini`); - } + if (cores || ramSize || heapSize || enableHardwareKeyboard || diskSize) { + const configEntries: string[] = []; - if (heapSize) { - await exec.exec(`sh -c \\"printf 'hw.heapSize=${heapSize}\n' >> ${process.env.ANDROID_AVD_HOME}/"${avdName}".avd"/config.ini`); - } - - if (enableHardwareKeyboard) { - await exec.exec(`sh -c \\"printf 'hw.keyboard=yes\n' >> ${process.env.ANDROID_AVD_HOME}/"${avdName}".avd"/config.ini`); - } + if (cores) { + configEntries.push(`hw.cpu.ncore=${cores}`); + } + if (ramSize) { + configEntries.push(`hw.ramSize=${ramSize}`); + } + if (heapSize) { + configEntries.push(`hw.heapSize=${heapSize}`); + } + if (enableHardwareKeyboard) { + configEntries.push('hw.keyboard=yes'); + } + if (diskSize) { + configEntries.push(`disk.dataPartition.size=${diskSize}`); + } - if (diskSize) { - await exec.exec(`sh -c \\"printf 'disk.dataPartition.size=${diskSize}\n' >> ${process.env.ANDROID_AVD_HOME}/"${avdName}".avd"/config.ini`); + if (configEntries.length > 0) { + const configContent = configEntries.join('\\n') + '\\n'; + await exec.exec(`sh -c \\"printf '${configContent}' >> ${process.env.ANDROID_AVD_HOME}/"${avdName}".avd"/config.ini"`); + } } // turn off hardware acceleration on Linux