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

Commit 959f2b43 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge changes from topic "compact-improvements-v2" into tm-dev am: ee628e28

parents 73b8912e ee628e28
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
@@ -219,6 +219,8 @@ final class ActivityManagerShellCommand extends ShellCommand {
                    return runStopService(pw);
                case "broadcast":
                    return runSendBroadcast(pw);
                case "compact":
                    return runCompact(pw);
                case "instrument":
                    getOutPrintWriter().println("Error: must be invoked through 'am instrument'.");
                    return -1;
@@ -966,6 +968,36 @@ final class ActivityManagerShellCommand extends ShellCommand {
        return 0;
    }

    @NeverCompile
    int runCompact(PrintWriter pw) {
        String processName = getNextArgRequired();
        String uid = getNextArgRequired();
        String op = getNextArgRequired();
        ProcessRecord app;
        synchronized (mInternal.mProcLock) {
            app = mInternal.getProcessRecordLocked(processName, Integer.parseInt(uid));
        }
        pw.println("Process record found pid: " + app.mPid);
        if (op.equals("full")) {
            pw.println("Executing full compaction for " + app.mPid);
            synchronized (mInternal.mProcLock) {
                mInternal.mOomAdjuster.mCachedAppOptimizer.compactAppFull(app, true);
            }
            pw.println("Finished full compaction for " + app.mPid);
        } else if (op.equals("some")) {
            pw.println("Executing some compaction for " + app.mPid);
            synchronized (mInternal.mProcLock) {
                mInternal.mOomAdjuster.mCachedAppOptimizer.compactAppSome(app, true);
            }
            pw.println("Finished some compaction for " + app.mPid);
        } else {
            getErrPrintWriter().println("Error: unknown compact command '" + op + "'");
            return -1;
        }

        return 0;
    }

    int runDumpHeap(PrintWriter pw) throws RemoteException {
        final PrintWriter err = getErrPrintWriter();
        boolean managed = true;
@@ -3446,6 +3478,10 @@ final class ActivityManagerShellCommand extends ShellCommand {
            pw.println("      --allow-background-activity-starts: The receiver may start activities");
            pw.println("          even if in the background.");
            pw.println("      --async: Send without waiting for the completion of the receiver.");
            pw.println("  compact <process_name> <Package UID> [some|full]");
            pw.println("      Force process compaction.");
            pw.println("      some: execute file compaction.");
            pw.println("      full: execute anon + file compaction.");
            pw.println("  instrument [-r] [-e <NAME> <VALUE>] [-p <FILE>] [-w]");
            pw.println("          [--user <USER_ID> | current]");
            pw.println("          [--no-hidden-api-checks [--no-test-api-access]]");
Loading