Revert "Distinguish warm/hot launch by whether the activity has attached process"
This reverts commit 2e039cd3bc.
Reason for revert: Potential culprit for Bug b/171719665
Change-Id: I18e2f1a5eaf1e07b96d6135be56f8077d37b7504
This commit is contained in:
@@ -131,6 +131,7 @@ class ActivityMetricsLogger {
|
|||||||
*/
|
*/
|
||||||
private static final int IGNORE_CALLER = -1;
|
private static final int IGNORE_CALLER = -1;
|
||||||
private static final int INVALID_DELAY = -1;
|
private static final int INVALID_DELAY = -1;
|
||||||
|
private static final int INVALID_TRANSITION_TYPE = -1;
|
||||||
|
|
||||||
// Preallocated strings we are sending to tron, so we don't have to allocate a new one every
|
// Preallocated strings we are sending to tron, so we don't have to allocate a new one every
|
||||||
// time we log.
|
// time we log.
|
||||||
@@ -231,19 +232,22 @@ class ActivityMetricsLogger {
|
|||||||
static TransitionInfo create(@NonNull ActivityRecord r,
|
static TransitionInfo create(@NonNull ActivityRecord r,
|
||||||
@NonNull LaunchingState launchingState, @Nullable ActivityOptions options,
|
@NonNull LaunchingState launchingState, @Nullable ActivityOptions options,
|
||||||
boolean processRunning, boolean processSwitch, int startResult) {
|
boolean processRunning, boolean processSwitch, int startResult) {
|
||||||
if (startResult != START_SUCCESS && startResult != START_TASK_TO_FRONT) {
|
int transitionType = INVALID_TRANSITION_TYPE;
|
||||||
return null;
|
|
||||||
}
|
|
||||||
final int transitionType;
|
|
||||||
if (processRunning) {
|
if (processRunning) {
|
||||||
transitionType = r.attachedToProcess()
|
if (startResult == START_SUCCESS) {
|
||||||
? TYPE_TRANSITION_HOT_LAUNCH
|
transitionType = TYPE_TRANSITION_WARM_LAUNCH;
|
||||||
: TYPE_TRANSITION_WARM_LAUNCH;
|
} else if (startResult == START_TASK_TO_FRONT) {
|
||||||
} else {
|
transitionType = TYPE_TRANSITION_HOT_LAUNCH;
|
||||||
|
}
|
||||||
|
} else if (startResult == START_SUCCESS || startResult == START_TASK_TO_FRONT) {
|
||||||
// Task may still exist when cold launching an activity and the start result will be
|
// Task may still exist when cold launching an activity and the start result will be
|
||||||
// set to START_TASK_TO_FRONT. Treat this as a COLD launch.
|
// set to START_TASK_TO_FRONT. Treat this as a COLD launch.
|
||||||
transitionType = TYPE_TRANSITION_COLD_LAUNCH;
|
transitionType = TYPE_TRANSITION_COLD_LAUNCH;
|
||||||
}
|
}
|
||||||
|
if (transitionType == INVALID_TRANSITION_TYPE) {
|
||||||
|
// That means the startResult is neither START_SUCCESS nor START_TASK_TO_FRONT.
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return new TransitionInfo(r, launchingState, options, transitionType, processRunning,
|
return new TransitionInfo(r, launchingState, options, transitionType, processRunning,
|
||||||
processSwitch);
|
processSwitch);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ import static org.mockito.Mockito.timeout;
|
|||||||
|
|
||||||
import android.app.ActivityOptions;
|
import android.app.ActivityOptions;
|
||||||
import android.app.ActivityOptions.SourceInfo;
|
import android.app.ActivityOptions.SourceInfo;
|
||||||
import android.app.WaitResult;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.platform.test.annotations.Presubmit;
|
import android.platform.test.annotations.Presubmit;
|
||||||
@@ -168,15 +167,10 @@ public class ActivityMetricsLaunchObserverTests extends WindowTestsBase {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOnActivityLaunchFinished() {
|
public void testOnActivityLaunchFinished() {
|
||||||
// Assume that the process is started (ActivityBuilder has mocked the returned value of
|
|
||||||
// ATMS#getProcessController) but the activity has not attached process.
|
|
||||||
mTopActivity.app = null;
|
|
||||||
onActivityLaunched(mTopActivity);
|
onActivityLaunched(mTopActivity);
|
||||||
|
|
||||||
notifyTransitionStarting(mTopActivity);
|
notifyTransitionStarting(mTopActivity);
|
||||||
final ActivityMetricsLogger.TransitionInfoSnapshot info = notifyWindowsDrawn(mTopActivity);
|
notifyWindowsDrawn(mTopActivity);
|
||||||
assertWithMessage("Warm launch").that(info.getLaunchState())
|
|
||||||
.isEqualTo(WaitResult.LAUNCH_STATE_WARM);
|
|
||||||
|
|
||||||
verifyOnActivityLaunchFinished(mTopActivity);
|
verifyOnActivityLaunchFinished(mTopActivity);
|
||||||
verifyNoMoreInteractions(mLaunchObserver);
|
verifyNoMoreInteractions(mLaunchObserver);
|
||||||
@@ -210,7 +204,7 @@ public class ActivityMetricsLaunchObserverTests extends WindowTestsBase {
|
|||||||
notifyActivityLaunching(noDrawnActivity.intent);
|
notifyActivityLaunching(noDrawnActivity.intent);
|
||||||
notifyActivityLaunched(START_SUCCESS, noDrawnActivity);
|
notifyActivityLaunched(START_SUCCESS, noDrawnActivity);
|
||||||
|
|
||||||
noDrawnActivity.mVisibleRequested = false;
|
noDrawnActivity.destroyIfPossible("test");
|
||||||
mActivityMetricsLogger.notifyVisibilityChanged(noDrawnActivity);
|
mActivityMetricsLogger.notifyVisibilityChanged(noDrawnActivity);
|
||||||
|
|
||||||
verifyAsync(mLaunchObserver).onActivityLaunchCancelled(eqProto(noDrawnActivity));
|
verifyAsync(mLaunchObserver).onActivityLaunchCancelled(eqProto(noDrawnActivity));
|
||||||
@@ -231,8 +225,6 @@ public class ActivityMetricsLaunchObserverTests extends WindowTestsBase {
|
|||||||
assertWithMessage("Record start source").that(info.sourceType)
|
assertWithMessage("Record start source").that(info.sourceType)
|
||||||
.isEqualTo(SourceInfo.TYPE_LAUNCHER);
|
.isEqualTo(SourceInfo.TYPE_LAUNCHER);
|
||||||
assertWithMessage("Record event time").that(info.sourceEventDelayMs).isAtLeast(10);
|
assertWithMessage("Record event time").that(info.sourceEventDelayMs).isAtLeast(10);
|
||||||
assertWithMessage("Hot launch").that(info.getLaunchState())
|
|
||||||
.isEqualTo(WaitResult.LAUNCH_STATE_HOT);
|
|
||||||
|
|
||||||
verifyAsync(mLaunchObserver).onReportFullyDrawn(eqProto(mTopActivity), anyLong());
|
verifyAsync(mLaunchObserver).onReportFullyDrawn(eqProto(mTopActivity), anyLong());
|
||||||
verifyOnActivityLaunchFinished(mTopActivity);
|
verifyOnActivityLaunchFinished(mTopActivity);
|
||||||
|
|||||||
Reference in New Issue
Block a user