Remove temporary logging.
This changelist reverts the following CLs that added temporary
logging:
d946f86f124fca87c757100e49ba7d5b206c8a44
a33c13df134ee3618c72e70a69433a27b934702f
e7b2f6920bcb4a989da4798a72fcc61d0572dd60
Fixes: 71506345
Test: presubmit
Change-Id: Icfc016a752e5ac2bfb1537be67cda1c4ea3e6442
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 82c3383..eba7471 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -173,7 +173,6 @@
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -223,9 +222,6 @@
// Whether to invoke an activity callback after delivering new configuration.
private static final boolean REPORT_TO_ACTIVITY = true;
- // Maximum number of recent tokens to maintain for debugging purposes
- private static final int MAX_DESTROYED_ACTIVITIES = 10;
-
/**
* Denotes an invalid sequence number corresponding to a process state change.
*/
@@ -258,8 +254,6 @@
final H mH = new H();
final Executor mExecutor = new HandlerExecutor(mH);
final ArrayMap<IBinder, ActivityClientRecord> mActivities = new ArrayMap<>();
- final ArrayList<DestroyedActivityInfo> mRecentDestroyedActivities = new ArrayList<>();
-
// List of new activities (via ActivityRecord.nextIdle) that should
// be reported when next we idle.
ActivityClientRecord mNewActivities = null;
@@ -341,26 +335,6 @@
}
}
- /**
- * TODO(b/71506345): Remove this once bug is resolved.
- */
- private static final class DestroyedActivityInfo {
- private final Integer mToken;
- private final String mReason;
- private final long mTime;
-
- DestroyedActivityInfo(Integer token, String reason) {
- mToken = token;
- mReason = reason;
- mTime = System.currentTimeMillis();
- }
-
- void dump(PrintWriter pw, String prefix) {
- pw.println(prefix + "[token:" + mToken + " | time:" + mTime + " | reason:" + mReason
- + "]");
- }
- }
-
// The lock of mProviderMap protects the following variables.
final ArrayMap<ProviderKey, ProviderClientRecord> mProviderMap
= new ArrayMap<ProviderKey, ProviderClientRecord>();
@@ -2195,32 +2169,6 @@
pw.println(String.format(format, objs));
}
- @Override
- public void dump(PrintWriter pw, String prefix) {
- pw.println(prefix + "Activities:");
-
- if (!mActivities.isEmpty()) {
- final Iterator<Map.Entry<IBinder, ActivityClientRecord>> activitiesIterator =
- mActivities.entrySet().iterator();
-
- while (activitiesIterator.hasNext()) {
- final ArrayMap.Entry<IBinder, ActivityClientRecord> entry =
- activitiesIterator.next();
- pw.println(prefix + " [token:" + entry.getKey().hashCode() + " record:"
- + entry.getValue().toString() + "]");
- }
- }
-
- if (!mRecentDestroyedActivities.isEmpty()) {
- pw.println(prefix + "Recent destroyed activities:");
- for (int i = 0, size = mRecentDestroyedActivities.size(); i < size; i++) {
- final DestroyedActivityInfo info = mRecentDestroyedActivities.get(i);
- pw.print(prefix);
- info.dump(pw, " ");
- }
- }
- }
-
public static void dumpMemInfoTable(PrintWriter pw, Debug.MemoryInfo memInfo, boolean checkin,
boolean dumpFullInfo, boolean dumpDalvik, boolean dumpSummaryOnly,
int pid, String processName,
@@ -4473,12 +4421,6 @@
r.setState(ON_DESTROY);
}
mActivities.remove(token);
- mRecentDestroyedActivities.add(0, new DestroyedActivityInfo(token.hashCode(), reason));
-
- final int recentDestroyedActivitiesSize = mRecentDestroyedActivities.size();
- if (recentDestroyedActivitiesSize > MAX_DESTROYED_ACTIVITIES) {
- mRecentDestroyedActivities.remove(recentDestroyedActivitiesSize - 1);
- }
StrictMode.decrementExpectedActivityCount(activityClass);
return r;
}
diff --git a/core/java/android/app/ClientTransactionHandler.java b/core/java/android/app/ClientTransactionHandler.java
index 0639b00..e26d989 100644
--- a/core/java/android/app/ClientTransactionHandler.java
+++ b/core/java/android/app/ClientTransactionHandler.java
@@ -27,7 +27,6 @@
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.content.ReferrerIntent;
-import java.io.PrintWriter;
import java.util.List;
/**
@@ -192,11 +191,4 @@
* Used to check if we should report relaunch to WM.
* */
public abstract void reportRelaunch(IBinder token, PendingTransactionActions pendingActions);
-
- /**
- * Debugging output.
- * @param pw {@link PrintWriter} to write logs to.
- * @param prefix Prefix to prepend to output.
- */
- public abstract void dump(PrintWriter pw, String prefix);
}
diff --git a/core/java/android/app/servertransaction/ActivityLifecycleItem.java b/core/java/android/app/servertransaction/ActivityLifecycleItem.java
index 7f8c50c..c9193a9 100644
--- a/core/java/android/app/servertransaction/ActivityLifecycleItem.java
+++ b/core/java/android/app/servertransaction/ActivityLifecycleItem.java
@@ -17,9 +17,7 @@
package android.app.servertransaction;
import android.annotation.IntDef;
-import android.os.Parcel;
-import java.io.PrintWriter;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -28,7 +26,6 @@
* @hide
*/
public abstract class ActivityLifecycleItem extends ClientTransactionItem {
- private String mDescription;
@IntDef(prefix = { "UNDEFINED", "PRE_", "ON_" }, value = {
UNDEFINED,
@@ -57,43 +54,8 @@
@LifecycleState
public abstract int getTargetState();
-
- protected ActivityLifecycleItem() {
- }
-
- protected ActivityLifecycleItem(Parcel in) {
- mDescription = in.readString();
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeString(mDescription);
- }
-
- /**
- * Sets a description that can be retrieved later for debugging purposes.
- * @param description Description to set.
- * @return The {@link ActivityLifecycleItem}.
- */
- public ActivityLifecycleItem setDescription(String description) {
- mDescription = description;
- return this;
- }
-
- /**
- * Retrieves description if set through {@link #setDescription(String)}.
- */
- public String getDescription() {
- return mDescription;
- }
-
- void dump(PrintWriter pw, String prefix) {
- pw.println(prefix + "target state:" + getTargetState());
- pw.println(prefix + "description: " + mDescription);
- }
-
+ /** Called by subclasses to make sure base implementation is cleaned up */
@Override
public void recycle() {
- setDescription(null);
}
}
diff --git a/core/java/android/app/servertransaction/ClientTransaction.java b/core/java/android/app/servertransaction/ClientTransaction.java
index fc07879..08ad2f0 100644
--- a/core/java/android/app/servertransaction/ClientTransaction.java
+++ b/core/java/android/app/servertransaction/ClientTransaction.java
@@ -26,7 +26,6 @@
import com.android.internal.annotations.VisibleForTesting;
-import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -238,12 +237,4 @@
result = 31 * result + Objects.hashCode(mLifecycleStateRequest);
return result;
}
-
- void dump(PrintWriter pw, String prefix) {
- pw.println(prefix + "mActivityToken:" + mActivityToken.hashCode());
- pw.println(prefix + "mLifecycleStateRequest:");
- if (mLifecycleStateRequest != null) {
- mLifecycleStateRequest.dump(pw, prefix + " ");
- }
- }
}
diff --git a/core/java/android/app/servertransaction/DestroyActivityItem.java b/core/java/android/app/servertransaction/DestroyActivityItem.java
index 0edcf18..b443166 100644
--- a/core/java/android/app/servertransaction/DestroyActivityItem.java
+++ b/core/java/android/app/servertransaction/DestroyActivityItem.java
@@ -37,7 +37,7 @@
PendingTransactionActions pendingActions) {
Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "activityDestroy");
client.handleDestroyActivity(token, mFinished, mConfigChanges,
- false /* getNonConfigInstance */, getDescription());
+ false /* getNonConfigInstance */, "DestroyActivityItem");
Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
}
@@ -77,14 +77,12 @@
/** Write to Parcel. */
@Override
public void writeToParcel(Parcel dest, int flags) {
- super.writeToParcel(dest, flags);
dest.writeBoolean(mFinished);
dest.writeInt(mConfigChanges);
}
/** Read from Parcel. */
private DestroyActivityItem(Parcel in) {
- super(in);
mFinished = in.readBoolean();
mConfigChanges = in.readInt();
}
diff --git a/core/java/android/app/servertransaction/PauseActivityItem.java b/core/java/android/app/servertransaction/PauseActivityItem.java
index 65e4291..0c1eab5 100644
--- a/core/java/android/app/servertransaction/PauseActivityItem.java
+++ b/core/java/android/app/servertransaction/PauseActivityItem.java
@@ -115,7 +115,6 @@
/** Write to Parcel. */
@Override
public void writeToParcel(Parcel dest, int flags) {
- super.writeToParcel(dest, flags);
dest.writeBoolean(mFinished);
dest.writeBoolean(mUserLeaving);
dest.writeInt(mConfigChanges);
@@ -124,7 +123,6 @@
/** Read from Parcel. */
private PauseActivityItem(Parcel in) {
- super(in);
mFinished = in.readBoolean();
mUserLeaving = in.readBoolean();
mConfigChanges = in.readInt();
diff --git a/core/java/android/app/servertransaction/ResumeActivityItem.java b/core/java/android/app/servertransaction/ResumeActivityItem.java
index d16bc97..909eec7 100644
--- a/core/java/android/app/servertransaction/ResumeActivityItem.java
+++ b/core/java/android/app/servertransaction/ResumeActivityItem.java
@@ -115,7 +115,6 @@
/** Write to Parcel. */
@Override
public void writeToParcel(Parcel dest, int flags) {
- super.writeToParcel(dest, flags);
dest.writeInt(mProcState);
dest.writeBoolean(mUpdateProcState);
dest.writeBoolean(mIsForward);
@@ -123,7 +122,6 @@
/** Read from Parcel. */
private ResumeActivityItem(Parcel in) {
- super(in);
mProcState = in.readInt();
mUpdateProcState = in.readBoolean();
mIsForward = in.readBoolean();
diff --git a/core/java/android/app/servertransaction/StopActivityItem.java b/core/java/android/app/servertransaction/StopActivityItem.java
index 8db38d3..87db206 100644
--- a/core/java/android/app/servertransaction/StopActivityItem.java
+++ b/core/java/android/app/servertransaction/StopActivityItem.java
@@ -85,14 +85,12 @@
/** Write to Parcel. */
@Override
public void writeToParcel(Parcel dest, int flags) {
- super.writeToParcel(dest, flags);
dest.writeBoolean(mShowWindow);
dest.writeInt(mConfigChanges);
}
/** Read from Parcel. */
private StopActivityItem(Parcel in) {
- super(in);
mShowWindow = in.readBoolean();
mConfigChanges = in.readInt();
}
diff --git a/core/java/android/app/servertransaction/TransactionExecutor.java b/core/java/android/app/servertransaction/TransactionExecutor.java
index 553c3ae..5c803a5 100644
--- a/core/java/android/app/servertransaction/TransactionExecutor.java
+++ b/core/java/android/app/servertransaction/TransactionExecutor.java
@@ -34,8 +34,6 @@
import com.android.internal.annotations.VisibleForTesting;
-import java.io.PrintWriter;
-import java.io.StringWriter;
import java.util.List;
/**
@@ -135,20 +133,7 @@
final IBinder token = transaction.getActivityToken();
final ActivityClientRecord r = mTransactionHandler.getActivityClient(token);
- // TODO(b/71506345): Remove once root cause is found.
if (r == null) {
- final StringWriter stringWriter = new StringWriter();
- final PrintWriter pw = new PrintWriter(stringWriter);
- final String prefix = " ";
-
- pw.println("Lifecycle transaction does not have valid ActivityClientRecord.");
- pw.println("Transaction:");
- transaction.dump(pw, prefix);
- pw.println("Executor:");
- dump(pw, prefix);
-
- Slog.w(TAG, stringWriter.toString());
-
// Ignore requests for non-existent client records for now.
return;
}
@@ -224,9 +209,4 @@
private static void log(String message) {
if (DEBUG_RESOLVER) Slog.d(TAG, message);
}
-
- private void dump(PrintWriter pw, String prefix) {
- pw.println(prefix + "mTransactionHandler:");
- mTransactionHandler.dump(pw, prefix + " ");
- }
}
diff --git a/services/core/java/com/android/server/am/ActivityManagerDebugConfig.java b/services/core/java/com/android/server/am/ActivityManagerDebugConfig.java
index 4901192..0a7d3fd 100644
--- a/services/core/java/com/android/server/am/ActivityManagerDebugConfig.java
+++ b/services/core/java/com/android/server/am/ActivityManagerDebugConfig.java
@@ -81,7 +81,7 @@
static final boolean DEBUG_FOREGROUND_SERVICE = DEBUG_ALL || false;
static final boolean DEBUG_SERVICE_EXECUTING = DEBUG_ALL || false;
static final boolean DEBUG_STACK = DEBUG_ALL || false;
- static final boolean DEBUG_STATES = DEBUG_ALL_ACTIVITIES || true;
+ static final boolean DEBUG_STATES = DEBUG_ALL_ACTIVITIES || false;
static final boolean DEBUG_SWITCH = DEBUG_ALL || false;
static final boolean DEBUG_TASKS = DEBUG_ALL || false;
static final boolean DEBUG_TRANSITION = DEBUG_ALL || false;
diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java
index f32717a..16c5969 100644
--- a/services/core/java/com/android/server/am/ActivityRecord.java
+++ b/services/core/java/com/android/server/am/ActivityRecord.java
@@ -229,8 +229,6 @@
private static final String ATTR_COMPONENTSPECIFIED = "component_specified";
static final String ACTIVITY_ICON_SUFFIX = "_activity_icon_";
- private static final int MAX_STORED_STATE_TRANSITIONS = 5;
-
final ActivityManagerService service; // owner
final IApplicationToken.Stub appToken; // window manager token
AppWindowContainerController mWindowContainerController;
@@ -368,28 +366,6 @@
private final Configuration mTmpConfig = new Configuration();
private final Rect mTmpBounds = new Rect();
- private final ArrayList<StateTransition> mRecentTransitions = new ArrayList<>();
-
- // TODO(b/71506345): Remove once issue has been resolved.
- private static class StateTransition {
- final long time;
- final ActivityState prev;
- final ActivityState state;
- final String reason;
-
- StateTransition(ActivityState prev, ActivityState state, String reason) {
- time = System.currentTimeMillis();
- this.prev = prev;
- this.state = state;
- this.reason = reason;
- }
-
- @Override
- public String toString() {
- return "[" + prev + "->" + state + ":" + reason + "@" + time + "]";
- }
- }
-
private static String startingWindowStateToString(int state) {
switch (state) {
case STARTING_WINDOW_NOT_SHOWN:
@@ -403,21 +379,6 @@
}
}
- String getLifecycleDescription(String reason) {
- StringBuilder transitionBuilder = new StringBuilder();
-
- for (int i = 0, size = mRecentTransitions.size(); i < size; ++i) {
- transitionBuilder.append(mRecentTransitions.get(i));
- if (i + 1 < size) {
- transitionBuilder.append(",");
- }
- }
-
- return "name= " + this + ", component=" + intent.getComponent().flattenToShortString()
- + ", package=" + packageName + ", state=" + mState + ", reason=" + reason
- + ", time=" + System.currentTimeMillis() + " transitions=" + transitionBuilder;
- }
-
void dump(PrintWriter pw, String prefix) {
final long now = SystemClock.uptimeMillis();
pw.print(prefix); pw.print("packageName="); pw.print(packageName);
@@ -1658,15 +1619,8 @@
return;
}
- final ActivityState prev = mState;
mState = state;
- if (mRecentTransitions.size() == MAX_STORED_STATE_TRANSITIONS) {
- mRecentTransitions.remove(0);
- }
-
- mRecentTransitions.add(new StateTransition(prev, state, reason));
-
final TaskRecord parent = getTask();
if (parent != null) {
@@ -1770,15 +1724,13 @@
if (isState(STOPPED, STOPPING) && stack.mTranslucentActivityWaiting == null
&& mStackSupervisor.getResumedActivityLocked() != this) {
// Capture reason before state change
- final String reason = getLifecycleDescription("makeVisibleIfNeeded");
// An activity must be in the {@link PAUSING} state for the system to validate
// the move to {@link PAUSED}.
setState(PAUSING, "makeVisibleIfNeeded");
service.getLifecycleManager().scheduleTransaction(app.thread, appToken,
PauseActivityItem.obtain(finishing, false /* userLeaving */,
- configChangeFlags, false /* dontReport */)
- .setDescription(reason));
+ configChangeFlags, false /* dontReport */));
}
} catch (Exception e) {
// Just skip on any failure; we'll make it visible when it next restarts.
@@ -2737,8 +2689,7 @@
if (andResume) {
lifecycleItem = ResumeActivityItem.obtain(service.isNextTransitionForward());
} else {
- lifecycleItem = PauseActivityItem.obtain()
- .setDescription(getLifecycleDescription("relaunchActivityLocked"));
+ lifecycleItem = PauseActivityItem.obtain();
}
final ClientTransaction transaction = ClientTransaction.obtain(app.thread, appToken);
transaction.addCallback(callbackItem);
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
index eb482c1..e54e645 100644
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -1487,8 +1487,7 @@
mService.getLifecycleManager().scheduleTransaction(prev.app.thread, prev.appToken,
PauseActivityItem.obtain(prev.finishing, userLeaving,
- prev.configChangeFlags, pauseImmediately).setDescription(
- prev.getLifecycleDescription("startPausingLocked")));
+ prev.configChangeFlags, pauseImmediately));
} catch (Exception e) {
// Ignore exception, if process died other code will cleanup.
Slog.w(TAG, "Exception thrown during pause", e);
@@ -2694,9 +2693,7 @@
next.clearOptionsLocked();
transaction.setLifecycleStateRequest(
ResumeActivityItem.obtain(next.app.repProcState,
- mService.isNextTransitionForward())
- .setDescription(next.getLifecycleDescription(
- "resumeTopActivityInnerLocked")));
+ mService.isNextTransitionForward()));
mService.getLifecycleManager().scheduleTransaction(transaction);
if (DEBUG_STATES) Slog.d(TAG_STATES, "resumeTopActivityLocked: Resumed "
@@ -3480,8 +3477,7 @@
EventLogTags.writeAmStopActivity(
r.userId, System.identityHashCode(r), r.shortComponentName);
mService.getLifecycleManager().scheduleTransaction(r.app.thread, r.appToken,
- StopActivityItem.obtain(r.visible, r.configChangeFlags)
- .setDescription(r.getLifecycleDescription("stopActivityLocked")));
+ StopActivityItem.obtain(r.visible, r.configChangeFlags));
if (shouldSleepOrShutDownActivities()) {
r.setSleeping(true);
}
@@ -4308,9 +4304,7 @@
try {
if (DEBUG_SWITCH) Slog.i(TAG_SWITCH, "Destroying: " + r);
mService.getLifecycleManager().scheduleTransaction(r.app.thread, r.appToken,
- DestroyActivityItem.obtain(r.finishing, r.configChangeFlags)
- .setDescription(
- r.getLifecycleDescription("destroyActivityLocked:" + reason)));
+ DestroyActivityItem.obtain(r.finishing, r.configChangeFlags));
} catch (Exception e) {
// We can just ignore exceptions here... if the process
// has crashed, our death notification will clean things
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index cbf30bd..0fb841e 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -1466,11 +1466,9 @@
// Set desired final state.
final ActivityLifecycleItem lifecycleItem;
if (andResume) {
- lifecycleItem = ResumeActivityItem.obtain(mService.isNextTransitionForward())
- .setDescription(r.getLifecycleDescription("realStartActivityLocked"));
+ lifecycleItem = ResumeActivityItem.obtain(mService.isNextTransitionForward());
} else {
- lifecycleItem = PauseActivityItem.obtain()
- .setDescription(r.getLifecycleDescription("realStartActivityLocked"));
+ lifecycleItem = PauseActivityItem.obtain();
}
clientTransaction.setLifecycleStateRequest(lifecycleItem);