| # Copyright 2012 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| from telemetry.internal import app |
| |
| |
| class AndroidApp(app.App): |
| """A running android app instance that can be controlled in a limited way. |
| |
| Be sure to clean up after yourself by calling Close() when you are done with |
| the app. Or better yet: |
| with possible_android_app.Create(options) as android_app: |
| ... do all your operations on android_app here |
| """ |
| def __init__(self, app_backend, platform_backend): |
| super(AndroidApp, self).__init__(app_backend=app_backend, |
| platform_backend=platform_backend) |
| self._app_backend.Start() |
| |
| @property |
| def ui(self): |
| """Returns an AppUi object to interact with the app's UI. |
| |
| See devil.android.app_ui for the documentation of the API provided. |
| """ |
| return self._app_backend.GetAppUi() |
| |
| def Close(self): |
| self._app_backend.Close() |
| |
| def GetProcesses(self): |
| """Returns the current set of processes belonging to this app.""" |
| return self._app_backend.GetProcesses() |
| |
| def GetProcess(self, subprocess_name): |
| """Returns the process with the specified subprocess name.""" |
| return self._app_backend.GetProcess(subprocess_name) |
| |
| def GetWebViews(self): |
| """Returns the set of all WebViews belonging to all processes of the app.""" |
| return self._app_backend.GetWebViews() |