pm: add delete-dexopt command
- Use to clean up dex optimization of specific package for
dexopt related tests
Bug: 214247875
Test: adb shell pm delete-dexopt PACKAGE and confirm that status are
updated from adb shell dumpsys package dexopt for the package
Change-Id: Id534c276d9b23e59ed76ee2b079ad4a8a984fb39
This commit is contained in:
committed by
Keun-young Park
parent
d80c67c952
commit
9544bf7db6
@@ -230,6 +230,8 @@ class PackageManagerShellCommand extends ShellCommand {
|
||||
return runDexoptJob();
|
||||
case "cancel-bg-dexopt-job":
|
||||
return cancelBgDexOptJob();
|
||||
case "delete-dexopt":
|
||||
return runDeleteDexOpt();
|
||||
case "dump-profiles":
|
||||
return runDumpProfiles();
|
||||
case "snapshot-profile":
|
||||
@@ -1917,6 +1919,24 @@ class PackageManagerShellCommand extends ShellCommand {
|
||||
return 0;
|
||||
}
|
||||
|
||||
private int runDeleteDexOpt() throws RemoteException {
|
||||
PrintWriter pw = getOutPrintWriter();
|
||||
String packageName = getNextArg();
|
||||
if (TextUtils.isEmpty(packageName)) {
|
||||
pw.println("Error: no package name");
|
||||
return 1;
|
||||
}
|
||||
long freedBytes = LocalServices.getService(
|
||||
PackageManagerInternal.class).deleteOatArtifactsOfPackage(packageName);
|
||||
if (freedBytes < 0) {
|
||||
pw.println("Error: delete failed");
|
||||
return 1;
|
||||
}
|
||||
pw.println("Success: freed " + freedBytes + " bytes");
|
||||
Slog.i(TAG, "delete-dexopt " + packageName + " ,freed " + freedBytes + " bytes");
|
||||
return 0;
|
||||
}
|
||||
|
||||
private int runDumpProfiles() throws RemoteException {
|
||||
String packageName = getNextArg();
|
||||
mInterface.dumpProfiles(packageName);
|
||||
@@ -4000,6 +4020,9 @@ class PackageManagerShellCommand extends ShellCommand {
|
||||
pw.println(" force-dex-opt PACKAGE");
|
||||
pw.println(" Force immediate execution of dex opt for the given PACKAGE.");
|
||||
pw.println("");
|
||||
pw.println(" delete-dexopt PACKAGE");
|
||||
pw.println(" Delete dex optimization results for the given PACKAGE.");
|
||||
pw.println("");
|
||||
pw.println(" bg-dexopt-job");
|
||||
pw.println(" Execute the background optimizations immediately.");
|
||||
pw.println(" Note that the command only runs the background optimizer logic. It may");
|
||||
|
||||
Reference in New Issue
Block a user