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

Commit 079b21ba authored by Chih-Yu Huang's avatar Chih-Yu Huang
Browse files

Move makeAdjReason() to ProcessRecord

Move the `makeAdjReason()` method from `ProcessStateRecord` to
`ProcessRecord` as part of a refactor. The changes eliminates the
ProcessRecord dependency from ProcessStateRecord.

Bug: 425766486
Test: mmm frameworks/base/services/
Test: atest MockingOomAdjusterTests
Flag: EXEMPT pure refactor

Change-Id: Ic78896f4122bb12eddf924dd0212db8078b2985c
parent bfb94b2d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1287,7 +1287,7 @@ public final class ActiveServices {
                StringBuilder sb = new StringBuilder(128);
                sb.append("Not potential delay (state=").append(proc.mState.getCurProcState())
                        .append(' ').append(proc.mState.getAdjType());
                String reason = proc.mState.makeAdjReason();
                String reason = proc.makeAdjReason();
                if (reason != null) {
                    sb.append(' ');
                    sb.append(reason);
+1 −1
Original line number Diff line number Diff line
@@ -1595,7 +1595,7 @@ public class AppProfiler {
                if (memInfos != null) {
                    memInfos.add(new ProcessMemInfo(rec.processName, rec.getPid(),
                                state.getSetAdj(), state.getSetProcState(),
                                state.getAdjType(), state.makeAdjReason()));
                                state.getAdjType(), rec.makeAdjReason()));
                }
                final ProcessProfileRecord profile = rec.mProfile;
                if ((profile.getLastLowMemory() + mService.mConstants.GC_MIN_INTERVAL) <= now) {
+31 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.app.ApplicationExitInfo.Reason;
import android.app.ApplicationExitInfo.SubReason;
import android.app.BackgroundStartPrivileges;
import android.app.IApplicationThread;
import android.content.ComponentName;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManagerInternal;
import android.content.pm.ProcessInfo;
@@ -1402,6 +1403,36 @@ class ProcessRecord implements WindowProcessListener, ProcessStateRecord.Process
        proto.end(token);
    }

    @GuardedBy(anyOf = {"mService", "mProcLock"})
    String makeAdjReason() {
        final Object adjSource = mState.getAdjSource();
        final Object adjTarget = mState.getAdjTarget();
        if (adjSource == null && adjTarget == null) {
            return null;
        }

        StringBuilder sb = new StringBuilder(128);
        sb.append(' ');
        if (adjTarget instanceof ComponentName) {
            sb.append(((ComponentName) adjTarget).flattenToShortString());
        } else if (adjTarget != null) {
            sb.append(adjTarget);
        } else {
            sb.append("{null}");
        }
        sb.append("<=");
        if (adjSource instanceof ProcessRecord) {
            sb.append("Proc{");
            sb.append(((ProcessRecord) adjSource).toShortString());
            sb.append("}");
        } else if (adjSource != null) {
            sb.append(adjSource);
        } else {
            sb.append("{null}");
        }
        return sb.toString();
    }

    public String toShortString() {
        final String shortStringName = mShortStringName;
        if (shortStringName != null) {
+0 −28
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import static com.android.server.wm.WindowProcessController.ACTIVITY_STATE_FLAG_

import android.annotation.ElapsedRealtimeLong;
import android.app.ActivityManager;
import android.content.ComponentName;
import android.os.SystemClock;
import android.os.Trace;
import android.util.TimeUtils;
@@ -1350,33 +1349,6 @@ public final class ProcessStateRecord {
        mFollowupUpdateUptimeMs = updateUptimeMs;
    }

    @GuardedBy(anyOf = {"mServiceLock", "mProcLock"})
    public String makeAdjReason() {
        if (mAdjSource != null || mAdjTarget != null) {
            StringBuilder sb = new StringBuilder(128);
            sb.append(' ');
            if (mAdjTarget instanceof ComponentName) {
                sb.append(((ComponentName) mAdjTarget).flattenToShortString());
            } else if (mAdjTarget != null) {
                sb.append(mAdjTarget.toString());
            } else {
                sb.append("{null}");
            }
            sb.append("<=");
            if (mAdjSource instanceof ProcessRecord) {
                sb.append("Proc{");
                sb.append(((ProcessRecord) mAdjSource).toShortString());
                sb.append("}");
            } else if (mAdjSource != null) {
                sb.append(mAdjSource.toString());
            } else {
                sb.append("{null}");
            }
            return sb.toString();
        }
        return null;
    }

    @GuardedBy({"mServiceLock", "mProcLock"})
    void onCleanupApplicationRecordLSP() {
        if (TRACE_OOM_ADJ) {