Index: tools/telemetry/telemetry/core/backends/android_app_backend.py |
diff --git a/tools/telemetry/telemetry/core/backends/android_app_backend.py b/tools/telemetry/telemetry/core/backends/android_app_backend.py |
index ddd84688b458fc971aafe2c967044cc2f2f6b5c2..bad80008b0a06d22bdb6ec27b96d921f633538d7 100644 |
--- a/tools/telemetry/telemetry/core/backends/android_app_backend.py |
+++ b/tools/telemetry/telemetry/core/backends/android_app_backend.py |
@@ -3,8 +3,29 @@ |
# found in the LICENSE file. |
from telemetry.core.backends import app_backend |
+from telemetry.core.platform import android_platform_backend as \ |
+ android_platform_backend_module |
class AndroidAppBackend(app_backend.AppBackend): |
- def __init__(self): |
- super(AndroidAppBackend, self).__init__() |
+ def __init__(self, android_platform_backend, start_intent): |
+ super(AndroidAppBackend, self).__init__(app_type=start_intent.package) |
+ assert isinstance(android_platform_backend, |
+ android_platform_backend_module.AndroidPlatformBackend) |
+ self._android_platform_backend = android_platform_backend |
+ self._start_intent = start_intent |
+ |
+ @property |
+ def _adb(self): |
+ return self._android_platform_backend.adb |
+ |
+ def Start(self): |
+ """Start an Android app and wait for it to finish launching. |
+ |
+ AppStory derivations can customize the wait-for-ready-state to wait |
+ for a more specific event if needed. |
+ """ |
+ self._adb.device().StartActivity(self._start_intent, blocking=True) |
+ |
+ def Close(self): |
+ self._android_platform_backend.KillApplication(self._start_intent.package) |