diff options
author | Mathieu Chartier <mathieuc@google.com> | 2018-10-18 09:26:41 -0700 |
---|---|---|
committer | Mathieu Chartier <mathieuc@google.com> | 2018-10-18 22:03:47 +0000 |
commit | 5615adf82452a8f666bbeef65ae82543e3e3eead (patch) | |
tree | edb749b96ce15de2cc8f2317fedd67e8a3009d60 | |
parent | 34f9a3e9e93f9f27ebd549db2a39d5d696faa5bf (diff) | |
download | base-5615adf82452a8f666bbeef65ae82543e3e3eead.tar.gz |
Sleep 1s before force stop and use killBackgroundApp
Leave a bit of time before force stopping the application. This might
help prevent bad numbers.
Call killbackgroundApp after doing force-stop to make sure nothing is
still running.
Bug: 117094510
Bug: 117888316
Test: atest google/perf/app-startup/third-party-apps/cold-dropcache-stable-test
Change-Id: I47792f99b38edf2c40f61cc3f6817d82e6339d12
-rw-r--r-- | tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java index 639ed7d55384..bd8c7dd6bd08 100644 --- a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java +++ b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java @@ -92,7 +92,9 @@ public class AppLaunch extends InstrumentationTestCase { "com.google.android.wearable.action.GOOGLE"; private static final int INITIAL_LAUNCH_IDLE_TIMEOUT = 5000; // 5s to allow app to idle private static final int POST_LAUNCH_IDLE_TIMEOUT = 750; // 750ms idle for non initial launches - private static final int BETWEEN_LAUNCH_SLEEP_TIMEOUT = 5000; // 5s between launching apps + private static final int BEFORE_FORCE_STOP_SLEEP_TIMEOUT = 1000; // 1s before force stopping + private static final int BEFORE_KILL_APP_SLEEP_TIMEOUT = 1000; // 1s before killing + private static final int BETWEEN_LAUNCH_SLEEP_TIMEOUT = 3000; // 3s between launching apps private static final int PROFILE_SAVE_SLEEP_TIMEOUT = 1000; // Allow 1s for the profile to save private static final String LAUNCH_SUB_DIRECTORY = "launch_logs"; private static final String LAUNCH_FILE = "applaunch.txt"; @@ -326,7 +328,14 @@ public class AppLaunch extends InstrumentationTestCase { } } if(mForceStopApp) { - closeApp(launch.getApp()); + sleep(BEFORE_FORCE_STOP_SLEEP_TIMEOUT); + forceStopApp(launch.getApp()); + sleep(BEFORE_KILL_APP_SLEEP_TIMEOUT); + // Close again for good measure (just in case). + forceStopApp(launch.getApp()); + // Kill the backgrounded process in the case forceStopApp only sent it to + // background. + killBackgroundApp(launch.getApp()); } else { startHomeIntent(); } @@ -637,7 +646,7 @@ public class AppLaunch extends InstrumentationTestCase { // Kill all the apps for (String appName : mNameToIntent.keySet()) { Log.w(TAG, String.format("killing %s", appName)); - closeApp(appName); + forceStopApp(appName); } // Drop all the cache. assertNotNull("Issue in dropping the cache", @@ -645,7 +654,7 @@ public class AppLaunch extends InstrumentationTestCase { .executeShellCommand(DROP_CACHE_SCRIPT)); } - private void closeApp(String appName) { + private void forceStopApp(String appName) { Intent startIntent = mNameToIntent.get(appName); if (startIntent != null) { String packageName = startIntent.getComponent().getPackageName(); @@ -657,6 +666,18 @@ public class AppLaunch extends InstrumentationTestCase { } } + private void killBackgroundApp(String appName) { + Intent startIntent = mNameToIntent.get(appName); + if (startIntent != null) { + String packageName = startIntent.getComponent().getPackageName(); + try { + mAm.killBackgroundProcesses(packageName, UserHandle.USER_CURRENT); + } catch (RemoteException e) { + Log.w(TAG, "Error closing app", e); + } + } + } + private void sleep(int time) { try { Thread.sleep(time); |