Index: build/android/pylib/utils/emulator.py |
diff --git a/build/android/pylib/utils/emulator.py b/build/android/pylib/utils/emulator.py |
index abd0cb64246b20d3816349e028f6b3ceb8865e50..4007f1a2d3059553a65200be31e5ff276d6d8470 100644 |
--- a/build/android/pylib/utils/emulator.py |
+++ b/build/android/pylib/utils/emulator.py |
@@ -158,7 +158,8 @@ def _GetAvailablePort(): |
def LaunchTempEmulators(emulator_count, abi, api_level, enable_kvm=False, |
kill_and_launch=True, sdcard_size=DEFAULT_SDCARD_SIZE, |
- storage_size=DEFAULT_STORAGE_SIZE, wait_for_boot=True): |
+ storage_size=DEFAULT_STORAGE_SIZE, wait_for_boot=True, |
+ headless=False): |
"""Create and launch temporary emulators and wait for them to boot. |
Args: |
@@ -166,6 +167,7 @@ def LaunchTempEmulators(emulator_count, abi, api_level, enable_kvm=False, |
abi: the emulator target platform |
api_level: the api level (e.g., 19 for Android v4.4 - KitKat release) |
wait_for_boot: whether or not to wait for emulators to boot up |
+ headless: running emulator with no ui |
Returns: |
List of emulators. |
@@ -178,7 +180,8 @@ def LaunchTempEmulators(emulator_count, abi, api_level, enable_kvm=False, |
logging.info('Emulator launch %d with avd_name=%s and api=%d', |
n, avd_name, api_level) |
emulator = Emulator(avd_name, abi, enable_kvm=enable_kvm, |
- sdcard_size=sdcard_size, storage_size=storage_size) |
+ sdcard_size=sdcard_size, storage_size=storage_size, |
+ headless=headless) |
emulator.CreateAVD(api_level) |
emulator.Launch(kill_all_emulators=(n == 0 and kill_and_launch)) |
t.Stop() |
@@ -192,19 +195,21 @@ def LaunchTempEmulators(emulator_count, abi, api_level, enable_kvm=False, |
def LaunchEmulator(avd_name, abi, kill_and_launch=True, enable_kvm=False, |
sdcard_size=DEFAULT_SDCARD_SIZE, |
- storage_size=DEFAULT_STORAGE_SIZE): |
+ storage_size=DEFAULT_STORAGE_SIZE, headless=False): |
"""Launch an existing emulator with name avd_name. |
Args: |
avd_name: name of existing emulator |
abi: the emulator target platform |
+ headless: running emulator with no ui |
Returns: |
emulator object. |
""" |
logging.info('Specified emulator named avd_name=%s launched', avd_name) |
emulator = Emulator(avd_name, abi, enable_kvm=enable_kvm, |
- sdcard_size=sdcard_size, storage_size=storage_size) |
+ sdcard_size=sdcard_size, storage_size=storage_size, |
+ headless=headless) |
emulator.Launch(kill_all_emulators=kill_and_launch) |
emulator.ConfirmLaunch(True) |
return emulator |
@@ -242,7 +247,7 @@ class Emulator(object): |
def __init__(self, avd_name, abi, enable_kvm=False, |
sdcard_size=DEFAULT_SDCARD_SIZE, |
- storage_size=DEFAULT_STORAGE_SIZE): |
+ storage_size=DEFAULT_STORAGE_SIZE, headless=False): |
"""Init an Emulator. |
Args: |
@@ -259,6 +264,7 @@ class Emulator(object): |
self.sdcard_size = sdcard_size |
self.storage_size = storage_size |
self.enable_kvm = enable_kvm |
+ self.headless = headless |
@staticmethod |
def _DeviceName(): |
@@ -375,13 +381,22 @@ class Emulator(object): |
self.emulator, |
# Speed up emulator launch by 40%. Really. |
'-no-boot-anim', |
+ ] |
+ if self.headless: |
+ emulator_command.extend([ |
+ '-no-skin', |
+ '-no-audio', |
+ '-no-window' |
+ ]) |
+ emulator_command.extend([ |
# Use a familiar name and port. |
'-avd', self.avd_name, |
'-port', str(port), |
# Enable GPU by default. |
'-gpu', 'on', |
+ # all the argument after qemu are sub arguments for qemu |
'-qemu', '-m', '1024', |
- ] |
+ ]) |
if self.abi == 'x86' and self.enable_kvm: |
emulator_command.extend([ |
# For x86 emulator --enable-kvm will fail early, avoiding accidental |