Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e676ec7c authored by Dianne Hackborn's avatar Dianne Hackborn
Browse files

Always report a uid's initial cached state.

Also fix some activity manager dumpsys output formatting
and respect the -p option for activity starter.

Test: bit CtsAppTestCases:ActivityManagerProcessStateTest

Change-Id: I579fa1120be1481d9675dfcdf0ae9621f0d65893
parent 3072aa76
Loading
Loading
Loading
Loading
+11 −11
Original line number Original line Diff line number Diff line
@@ -14978,7 +14978,7 @@ public class ActivityManagerService extends IActivityManager.Stub
                }
                }
            } else if ("starter".equals(cmd)) {
            } else if ("starter".equals(cmd)) {
                synchronized (this) {
                synchronized (this) {
                    dumpActivityStarterLocked(pw);
                    dumpActivityStarterLocked(pw, dumpPackage);
                }
                }
            } else if ("recents".equals(cmd) || "r".equals(cmd)) {
            } else if ("recents".equals(cmd) || "r".equals(cmd)) {
                synchronized (this) {
                synchronized (this) {
@@ -15213,7 +15213,7 @@ public class ActivityManagerService extends IActivityManager.Stub
                if (dumpAll) {
                if (dumpAll) {
                    pw.println("-------------------------------------------------------------------------------");
                    pw.println("-------------------------------------------------------------------------------");
                }
                }
                dumpActivityStarterLocked(pw);
                dumpActivityStarterLocked(pw, dumpPackage);
                pw.println();
                pw.println();
                if (dumpAll) {
                if (dumpAll) {
                    pw.println("-------------------------------------------------------------------------------");
                    pw.println("-------------------------------------------------------------------------------");
@@ -15283,7 +15283,7 @@ public class ActivityManagerService extends IActivityManager.Stub
                if (dumpAll) {
                if (dumpAll) {
                    pw.println("-------------------------------------------------------------------------------");
                    pw.println("-------------------------------------------------------------------------------");
                }
                }
                dumpActivityStarterLocked(pw);
                dumpActivityStarterLocked(pw, dumpPackage);
                pw.println();
                pw.println();
                if (dumpAll) {
                if (dumpAll) {
                    pw.println("-------------------------------------------------------------------------------");
                    pw.println("-------------------------------------------------------------------------------");
@@ -15307,7 +15307,7 @@ public class ActivityManagerService extends IActivityManager.Stub
    }
    }
    private void dumpLastANRLocked(PrintWriter pw) {
    private void dumpLastANRLocked(PrintWriter pw) {
        pw.println("ACTIVITY MANAGER ACTIVITIES (dumpsys activity lastanr)");
        pw.println("ACTIVITY MANAGER LAST ANR (dumpsys activity lastanr)");
        if (mLastANRState == null) {
        if (mLastANRState == null) {
            pw.println("  <no ANR has occurred since boot>");
            pw.println("  <no ANR has occurred since boot>");
        } else {
        } else {
@@ -15315,9 +15315,9 @@ public class ActivityManagerService extends IActivityManager.Stub
        }
        }
    }
    }
    private void dumpActivityStarterLocked(PrintWriter pw) {
    private void dumpActivityStarterLocked(PrintWriter pw, String dumpPackage) {
        pw.println("ACTIVITY MANAGER ACTIVITIES (dumpsys activity starter)");
        pw.println("ACTIVITY MANAGER STARTER (dumpsys activity starter)");
        mActivityStarter.dump(pw, "");
        mActivityStarter.dump(pw, "", dumpPackage);
    }
    }
    void dumpActivitiesLocked(FileDescriptor fd, PrintWriter pw, String[] args,
    void dumpActivitiesLocked(FileDescriptor fd, PrintWriter pw, String[] args,
@@ -22818,11 +22818,11 @@ public class ActivityManagerService extends IActivityManager.Stub
                    uidRec.lastBackgroundTime = 0;
                    uidRec.lastBackgroundTime = 0;
                }
                }
                final boolean wasCached = uidRec.setProcState
                final boolean wasCached = uidRec.setProcState
                        > ActivityManager.PROCESS_STATE_RECEIVER && uidRec.setProcState
                        > ActivityManager.PROCESS_STATE_RECEIVER;
                        != ActivityManager.PROCESS_STATE_NONEXISTENT;
                final boolean isCached = uidRec.curProcState
                final boolean isCached = uidRec.curProcState
                        > ActivityManager.PROCESS_STATE_RECEIVER;
                        > ActivityManager.PROCESS_STATE_RECEIVER;
                if (wasCached != isCached) {
                if (wasCached != isCached ||
                        uidRec.setProcState == ActivityManager.PROCESS_STATE_NONEXISTENT) {
                    uidChange |= isCached ? UidRecord.CHANGE_CACHED : UidRecord.CHANGE_UNCACHED;
                    uidChange |= isCached ? UidRecord.CHANGE_CACHED : UidRecord.CHANGE_UNCACHED;
                }
                }
                uidRec.setProcState = uidRec.curProcState;
                uidRec.setProcState = uidRec.curProcState;
@@ -24071,7 +24071,7 @@ public class ActivityManagerService extends IActivityManager.Stub
                    pw.println("  Reason: " + reason);
                    pw.println("  Reason: " + reason);
                }
                }
                pw.println();
                pw.println();
                mActivityStarter.dump(pw, "  ");
                mActivityStarter.dump(pw, "  ", null);
                pw.println();
                pw.println();
                pw.println("-------------------------------------------------------------------------------");
                pw.println("-------------------------------------------------------------------------------");
                dumpActivitiesLocked(null /* fd */, pw, null /* args */, 0 /* opti */,
                dumpActivitiesLocked(null /* fd */, pw, null /* args */, 0 /* opti */,
+3 −3
Original line number Original line Diff line number Diff line
@@ -428,11 +428,11 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo
                                pw.print("\"");
                                pw.print("\"");
                        pw.print(" primaryColor=");
                        pw.print(" primaryColor=");
                        pw.println(Integer.toHexString(taskDescription.getPrimaryColor()));
                        pw.println(Integer.toHexString(taskDescription.getPrimaryColor()));
                        pw.print(prefix + " backgroundColor=");
                        pw.print(prefix); pw.print("  backgroundColor=");
                        pw.println(Integer.toHexString(taskDescription.getBackgroundColor()));
                        pw.println(Integer.toHexString(taskDescription.getBackgroundColor()));
                        pw.print(prefix + " statusBarColor=");
                        pw.print(prefix); pw.print("  statusBarColor=");
                        pw.println(Integer.toHexString(taskDescription.getStatusBarColor()));
                        pw.println(Integer.toHexString(taskDescription.getStatusBarColor()));
                        pw.print(prefix + " navigationBarColor=");
                        pw.print(prefix); pw.print("  navigationBarColor=");
                        pw.println(Integer.toHexString(taskDescription.getNavigationBarColor()));
                        pw.println(Integer.toHexString(taskDescription.getNavigationBarColor()));
            }
            }
            if (iconFilename == null && taskDescription.getIcon() != null) {
            if (iconFilename == null && taskDescription.getIcon() != null) {
+58 −22
Original line number Original line Diff line number Diff line
@@ -2306,40 +2306,76 @@ class ActivityStarter {
        return didSomething;
        return didSomething;
    }
    }


    void dump(PrintWriter pw, String prefix) {
    void dump(PrintWriter pw, String prefix, String dumpPackage) {
        pw.println(prefix + "ActivityStarter:");
        prefix = prefix + "  ";
        prefix = prefix + "  ";


        pw.println(prefix + "mCurrentUser=" + mSupervisor.mCurrentUser);
        if (dumpPackage != null) {
        pw.println(prefix + "mLastStartReason=" + mLastStartReason);
            if ((mLastStartActivityRecord[0] == null ||
        pw.println(prefix + "mLastStartActivityTimeMs="
                    !dumpPackage.equals(mLastHomeActivityStartRecord[0].packageName)) &&
                + DateFormat.getDateTimeInstance().format(new Date(mLastStartActivityTimeMs)));
                    (mLastHomeActivityStartRecord[0] == null ||
        pw.println(prefix + "mLastStartActivityResult=" + mLastStartActivityResult);
                    !dumpPackage.equals(mLastHomeActivityStartRecord[0].packageName)) &&
                    (mStartActivity == null || !dumpPackage.equals(mStartActivity.packageName))) {
                pw.print(prefix);
                pw.println("(nothing)");
                return;
            }
        }

        pw.print(prefix);
        pw.print("mCurrentUser=");
        pw.println(mSupervisor.mCurrentUser);
        pw.print(prefix);
        pw.print("mLastStartReason=");
        pw.println(mLastStartReason);
        pw.print(prefix);
        pw.print("mLastStartActivityTimeMs=");
        pw.println(DateFormat.getDateTimeInstance().format(new Date(mLastStartActivityTimeMs)));
        pw.print(prefix);
        pw.print("mLastStartActivityResult=");
        pw.println(mLastStartActivityResult);
        ActivityRecord r = mLastStartActivityRecord[0];
        ActivityRecord r = mLastStartActivityRecord[0];
        if (r != null) {
        if (r != null) {
            pw.println(prefix + "mLastStartActivityRecord:");
            pw.print(prefix);
            pw.println("mLastStartActivityRecord:");
            r.dump(pw, prefix + "  ");
            r.dump(pw, prefix + "  ");
        }
        }
        pw.println(prefix + "mLastHomeActivityStartResult=" + mLastHomeActivityStartResult);
        pw.print(prefix);
        pw.print("mLastHomeActivityStartResult=");
        pw.println(mLastHomeActivityStartResult);
        r = mLastHomeActivityStartRecord[0];
        r = mLastHomeActivityStartRecord[0];
        if (r != null) {
        if (r != null) {
            pw.println(prefix + "mLastHomeActivityStartRecord:");
            pw.print(prefix);
            pw.println("mLastHomeActivityStartRecord:");
            r.dump(pw, prefix + "  ");
            r.dump(pw, prefix + "  ");
        }
        }
        if (mStartActivity != null) {
        if (mStartActivity != null) {
            pw.println(prefix + "mStartActivity:");
            pw.print(prefix);
            pw.println("mStartActivity:");
            mStartActivity.dump(pw, prefix + "  ");
            mStartActivity.dump(pw, prefix + "  ");
        }
        }
        if (mIntent != null) {
        if (mIntent != null) {
            pw.println(prefix + "mIntent=" + mIntent);
            pw.print(prefix);
            pw.print("mIntent=");
            pw.println(mIntent);
        }
        }
        if (mOptions != null) {
        if (mOptions != null) {
            pw.println(prefix + "mOptions=" + mOptions);
            pw.print(prefix);
        }
            pw.print("mOptions=");
        pw.println(prefix + "mLaunchSingleTop=" + mLaunchSingleTop
            pw.println(mOptions);
                + " mLaunchSingleInstance=" + mLaunchSingleInstance
        }
                + " mLaunchSingleTask=" + mLaunchSingleTask
        pw.print(prefix);
                + " mLaunchFlags=0x" + Integer.toHexString(mLaunchFlags)
        pw.print("mLaunchSingleTop=");
                + " mDoResume=" + mDoResume + " mAddingToTask=" + mAddingToTask);
        pw.print(mLaunchSingleTop);
        pw.print(" mLaunchSingleInstance=");
        pw.print(mLaunchSingleInstance);
        pw.print(" mLaunchSingleTask=");
        pw.println(mLaunchSingleTask);
        pw.print(prefix);
        pw.print("mLaunchFlags=0x");
        pw.print(Integer.toHexString(mLaunchFlags));
        pw.print(" mDoResume=");
        pw.print(mDoResume);
        pw.print(" mAddingToTask=");
        pw.println(mAddingToTask);
    }
    }
}
}