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

Commit 2456f495 authored by Jing Ji's avatar Jing Ji Committed by Automerger Merge Worker
Browse files

Merge "Add field to note if a process has a foreground service" into tm-dev...

Merge "Add field to note if a process has a foreground service" into tm-dev am: b6c06687 am: 4fe78f64

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18764698



Change-Id: I5d411e13b722989aac4c93e9cbf6aaab7cda1585
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 78b2a87d 4fe78f64
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -524,6 +524,13 @@ public final class ApplicationExitInfo implements Parcelable {
     */
    private boolean mLoggedInStatsd;

    /**
     * Whether or not this process hosts one or more foreground services.
     *
     * for system internal use only, will not retain across processes.
     */
    private boolean mHasForegroundServices;

    /** @hide */
    @IntDef(prefix = { "REASON_" }, value = {
        REASON_UNKNOWN,
@@ -996,6 +1003,24 @@ public final class ApplicationExitInfo implements Parcelable {
        mLoggedInStatsd = loggedInStatsd;
    }

    /**
     * @see #mHasForegroundServices
     *
     * @hide
     */
    public boolean hasForegroundServices() {
        return mHasForegroundServices;
    }

    /**
     * @see #mHasForegroundServices
     *
     * @hide
     */
    public void setHasForegroundServices(boolean hasForegroundServices) {
        mHasForegroundServices = hasForegroundServices;
    }

    @Override
    public int describeContents() {
        return 0;
@@ -1060,6 +1085,8 @@ public final class ApplicationExitInfo implements Parcelable {
        mTraceFile = other.mTraceFile;
        mAppTraceRetriever = other.mAppTraceRetriever;
        mNativeTombstoneRetriever = other.mNativeTombstoneRetriever;
        mLoggedInStatsd = other.mLoggedInStatsd;
        mHasForegroundServices = other.mHasForegroundServices;
    }

    private ApplicationExitInfo(@NonNull Parcel in) {
+6 −1
Original line number Diff line number Diff line
@@ -28,12 +28,15 @@ public final class ProcessMemoryState implements Parcelable {
    public final int pid;
    public final String processName;
    public final int oomScore;
    public final boolean hasForegroundServices;

    public ProcessMemoryState(int uid, int pid, String processName, int oomScore) {
    public ProcessMemoryState(int uid, int pid, String processName, int oomScore,
            boolean hasForegroundServices) {
        this.uid = uid;
        this.pid = pid;
        this.processName = processName;
        this.oomScore = oomScore;
        this.hasForegroundServices = hasForegroundServices;
    }

    private ProcessMemoryState(Parcel in) {
@@ -41,6 +44,7 @@ public final class ProcessMemoryState implements Parcelable {
        pid = in.readInt();
        processName = in.readString();
        oomScore = in.readInt();
        hasForegroundServices = in.readInt() == 1;
    }

    public static final @android.annotation.NonNull Creator<ProcessMemoryState> CREATOR = new Creator<ProcessMemoryState>() {
@@ -66,5 +70,6 @@ public final class ProcessMemoryState implements Parcelable {
        parcel.writeInt(pid);
        parcel.writeString(processName);
        parcel.writeInt(oomScore);
        parcel.writeInt(hasForegroundServices ? 1 : 0);
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -2654,6 +2654,7 @@ public final class ActiveServices {
            }
        }
        mAm.updateProcessForegroundLocked(psr.mApp, anyForeground, fgServiceTypes, oomAdj);
        psr.setHasReportedForegroundServices(anyForeground);
    }

    private void updateAllowlistManagerLocked(ProcessServiceRecord psr) {
+2 −1
Original line number Diff line number Diff line
@@ -16673,7 +16673,8 @@ public class ActivityManagerService extends IActivityManager.Stub
                for (int i = 0, size = mPidsSelfLocked.size(); i < size; i++) {
                    final ProcessRecord r = mPidsSelfLocked.valueAt(i);
                    processMemoryStates.add(new ProcessMemoryState(
                            r.uid, r.getPid(), r.processName, r.mState.getCurAdj()));
                            r.uid, r.getPid(), r.processName, r.mState.getCurAdj(),
                            r.mServices.hasForegroundServices()));
                }
            }
            return processMemoryStates;
+3 −1
Original line number Diff line number Diff line
@@ -893,7 +893,8 @@ public final class AppExitInfoTracker {
        }
        FrameworkStatsLog.write(FrameworkStatsLog.APP_PROCESS_DIED,
                info.getPackageUid(), processName, info.getReason(), info.getSubReason(),
                info.getImportance(), (int) info.getPss(), (int) info.getRss());
                info.getImportance(), (int) info.getPss(), (int) info.getRss(),
                info.hasForegroundServices());
    }

    @GuardedBy("mLock")
@@ -1008,6 +1009,7 @@ public final class AppExitInfoTracker {
            info.setPss(app.mProfile.getLastPss());
            info.setRss(app.mProfile.getLastRss());
            info.setTimestamp(timestamp);
            info.setHasForegroundServices(app.mServices.hasReportedForegroundServices());
        }

        return info;
Loading