summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2018-10-18 09:26:41 -0700
committerMathieu Chartier <mathieuc@google.com>2018-10-18 22:03:47 +0000
commit5615adf82452a8f666bbeef65ae82543e3e3eead (patch)
treeedb749b96ce15de2cc8f2317fedd67e8a3009d60
parent34f9a3e9e93f9f27ebd549db2a39d5d696faa5bf (diff)
downloadbase-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.java29
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);