1// Signature format: 2.0 2package com.android.server.art { 3 4 @FlaggedApi("com.android.art.flags.art_service_v3") public final class ArtManagedInstallFileHelper { 5 method @FlaggedApi("com.android.art.flags.art_service_v3") @NonNull public static java.util.List<java.lang.String> filterPathsForApk(@NonNull java.util.List<java.lang.String>, @NonNull String); 6 method @FlaggedApi("com.android.art.flags.art_service_v3") @NonNull public static String getTargetPathForApk(@NonNull String, @NonNull String); 7 method @FlaggedApi("com.android.art.flags.art_service_v3") public static boolean isArtManaged(@NonNull String); 8 } 9 10 public final class ArtManagerLocal { 11 ctor @Deprecated public ArtManagerLocal(); 12 ctor public ArtManagerLocal(@NonNull android.content.Context); 13 method public void addDexoptDoneCallback(boolean, @NonNull java.util.concurrent.Executor, @NonNull com.android.server.art.ArtManagerLocal.DexoptDoneCallback); 14 method public void cancelBackgroundDexoptJob(); 15 method public void clearAdjustCompilerFilterCallback(); 16 method @NonNull public void clearAppProfiles(@NonNull com.android.server.pm.PackageManagerLocal.FilteredSnapshot, @NonNull String); 17 method public void clearBatchDexoptStartCallback(); 18 method public void clearScheduleBackgroundDexoptJobCallback(); 19 method @NonNull public com.android.server.art.model.DeleteResult deleteDexoptArtifacts(@NonNull com.android.server.pm.PackageManagerLocal.FilteredSnapshot, @NonNull String); 20 method @NonNull public com.android.server.art.model.DexoptResult dexoptPackage(@NonNull com.android.server.pm.PackageManagerLocal.FilteredSnapshot, @NonNull String, @NonNull com.android.server.art.model.DexoptParams); 21 method @NonNull public com.android.server.art.model.DexoptResult dexoptPackage(@NonNull com.android.server.pm.PackageManagerLocal.FilteredSnapshot, @NonNull String, @NonNull com.android.server.art.model.DexoptParams, @NonNull android.os.CancellationSignal); 22 method public void dump(@NonNull java.io.PrintWriter, @NonNull com.android.server.pm.PackageManagerLocal.FilteredSnapshot); 23 method public void dumpPackage(@NonNull java.io.PrintWriter, @NonNull com.android.server.pm.PackageManagerLocal.FilteredSnapshot, @NonNull String); 24 method @NonNull public com.android.server.art.model.ArtManagedFileStats getArtManagedFileStats(@NonNull com.android.server.pm.PackageManagerLocal.FilteredSnapshot, @NonNull String); 25 method @NonNull public com.android.server.art.model.DexoptStatus getDexoptStatus(@NonNull com.android.server.pm.PackageManagerLocal.FilteredSnapshot, @NonNull String); 26 method @NonNull public com.android.server.art.model.DexoptStatus getDexoptStatus(@NonNull com.android.server.pm.PackageManagerLocal.FilteredSnapshot, @NonNull String, int); 27 method public int handleShellCommand(@NonNull android.os.Binder, @NonNull android.os.ParcelFileDescriptor, @NonNull android.os.ParcelFileDescriptor, @NonNull android.os.ParcelFileDescriptor, @NonNull String[]); 28 method public void onApexStaged(@NonNull String[]); 29 method public void onBoot(@NonNull String, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<com.android.server.art.model.OperationProgress>); 30 method public void printShellCommandHelp(@NonNull java.io.PrintWriter); 31 method public void removeDexoptDoneCallback(@NonNull com.android.server.art.ArtManagerLocal.DexoptDoneCallback); 32 method public int scheduleBackgroundDexoptJob(); 33 method public void setAdjustCompilerFilterCallback(@NonNull java.util.concurrent.Executor, @NonNull com.android.server.art.ArtManagerLocal.AdjustCompilerFilterCallback); 34 method public void setBatchDexoptStartCallback(@NonNull java.util.concurrent.Executor, @NonNull com.android.server.art.ArtManagerLocal.BatchDexoptStartCallback); 35 method public void setScheduleBackgroundDexoptJobCallback(@NonNull java.util.concurrent.Executor, @NonNull com.android.server.art.ArtManagerLocal.ScheduleBackgroundDexoptJobCallback); 36 method @NonNull public android.os.ParcelFileDescriptor snapshotAppProfile(@NonNull com.android.server.pm.PackageManagerLocal.FilteredSnapshot, @NonNull String, @Nullable String) throws com.android.server.art.ArtManagerLocal.SnapshotProfileException; 37 method @NonNull public android.os.ParcelFileDescriptor snapshotBootImageProfile(@NonNull com.android.server.pm.PackageManagerLocal.FilteredSnapshot) throws com.android.server.art.ArtManagerLocal.SnapshotProfileException; 38 method public void startBackgroundDexoptJob(); 39 method public void unscheduleBackgroundDexoptJob(); 40 } 41 42 public static interface ArtManagerLocal.AdjustCompilerFilterCallback { 43 method @NonNull public String onAdjustCompilerFilter(@NonNull String, @NonNull String, @NonNull String); 44 } 45 46 public static interface ArtManagerLocal.BatchDexoptStartCallback { 47 method public void onBatchDexoptStart(@NonNull com.android.server.pm.PackageManagerLocal.FilteredSnapshot, @NonNull String, @NonNull java.util.List<java.lang.String>, @NonNull com.android.server.art.model.BatchDexoptParams.Builder, @NonNull android.os.CancellationSignal); 48 } 49 50 public static interface ArtManagerLocal.DexoptDoneCallback { 51 method public void onDexoptDone(@NonNull com.android.server.art.model.DexoptResult); 52 } 53 54 public static interface ArtManagerLocal.ScheduleBackgroundDexoptJobCallback { 55 method public void onOverrideJobInfo(@NonNull android.app.job.JobInfo.Builder); 56 } 57 58 public static class ArtManagerLocal.SnapshotProfileException extends java.lang.Exception { 59 } 60 61 public class ArtModuleServiceInitializer { 62 method public static void setArtModuleServiceManager(@NonNull android.os.ArtModuleServiceManager); 63 } 64 65 public class DexUseManagerLocal { 66 method @NonNull public static com.android.server.art.DexUseManagerLocal createInstance(@NonNull android.content.Context); 67 method @NonNull public java.util.List<com.android.server.art.model.DexContainerFileUseInfo> getSecondaryDexContainerFileUseInfo(@NonNull String); 68 method public void notifyDexContainersLoaded(@NonNull com.android.server.pm.PackageManagerLocal.FilteredSnapshot, @NonNull String, @NonNull java.util.Map<java.lang.String,java.lang.String>); 69 method public void systemReady(); 70 } 71 72 public class ReasonMapping { 73 field public static final String REASON_BG_DEXOPT = "bg-dexopt"; 74 field public static final String REASON_BOOT_AFTER_MAINLINE_UPDATE = "boot-after-mainline-update"; 75 field public static final String REASON_BOOT_AFTER_OTA = "boot-after-ota"; 76 field public static final String REASON_CMDLINE = "cmdline"; 77 field public static final String REASON_FIRST_BOOT = "first-boot"; 78 field public static final String REASON_INACTIVE = "inactive"; 79 field public static final String REASON_INSTALL = "install"; 80 field public static final String REASON_INSTALL_BULK = "install-bulk"; 81 field public static final String REASON_INSTALL_BULK_DOWNGRADED = "install-bulk-downgraded"; 82 field public static final String REASON_INSTALL_BULK_SECONDARY = "install-bulk-secondary"; 83 field public static final String REASON_INSTALL_BULK_SECONDARY_DOWNGRADED = "install-bulk-secondary-downgraded"; 84 field public static final String REASON_INSTALL_FAST = "install-fast"; 85 field @FlaggedApi("com.android.art.flags.art_service_v3") public static final String REASON_PRE_REBOOT_DEXOPT = "ab-ota"; 86 } 87 88} 89 90package com.android.server.art.model { 91 92 public class ArtFlags { 93 method public static int defaultGetStatusFlags(); 94 field public static final int FLAG_FORCE = 16; // 0x10 95 field public static final int FLAG_FOR_PRIMARY_DEX = 1; // 0x1 96 field public static final int FLAG_FOR_SECONDARY_DEX = 2; // 0x2 97 field public static final int FLAG_FOR_SINGLE_SPLIT = 32; // 0x20 98 field public static final int FLAG_IGNORE_PROFILE = 128; // 0x80 99 field public static final int FLAG_SHOULD_DOWNGRADE = 8; // 0x8 100 field public static final int FLAG_SHOULD_INCLUDE_DEPENDENCIES = 4; // 0x4 101 field public static final int FLAG_SKIP_IF_STORAGE_LOW = 64; // 0x40 102 field public static final int PRIORITY_BACKGROUND = 40; // 0x28 103 field public static final int PRIORITY_BOOT = 100; // 0x64 104 field public static final int PRIORITY_INTERACTIVE = 60; // 0x3c 105 field public static final int PRIORITY_INTERACTIVE_FAST = 80; // 0x50 106 field public static final int SCHEDULE_DISABLED_BY_SYSPROP = 2; // 0x2 107 field public static final int SCHEDULE_JOB_SCHEDULER_FAILURE = 1; // 0x1 108 field public static final int SCHEDULE_SUCCESS = 0; // 0x0 109 } 110 111 public class ArtManagedFileStats { 112 method public long getTotalSizeBytesByType(int); 113 field public static final int TYPE_CUR_PROFILE = 2; // 0x2 114 field public static final int TYPE_DEXOPT_ARTIFACT = 0; // 0x0 115 field public static final int TYPE_REF_PROFILE = 1; // 0x1 116 } 117 118 public abstract class BatchDexoptParams { 119 method @NonNull public abstract com.android.server.art.model.DexoptParams getDexoptParams(); 120 method @NonNull public abstract java.util.List<java.lang.String> getPackages(); 121 } 122 123 public static final class BatchDexoptParams.Builder { 124 method @NonNull public com.android.server.art.model.BatchDexoptParams build(); 125 method @NonNull public com.android.server.art.model.BatchDexoptParams.Builder setDexoptParams(@NonNull com.android.server.art.model.DexoptParams); 126 method @NonNull public com.android.server.art.model.BatchDexoptParams.Builder setPackages(@NonNull java.util.List<java.lang.String>); 127 } 128 129 public abstract class DeleteResult { 130 method public abstract long getFreedBytes(); 131 } 132 133 public abstract class DexContainerFileUseInfo { 134 method @NonNull public abstract String getDexContainerFile(); 135 method @NonNull public abstract java.util.Set<java.lang.String> getLoadingPackages(); 136 method @NonNull public abstract android.os.UserHandle getUserHandle(); 137 } 138 139 public class DexoptParams { 140 method @NonNull public String getCompilerFilter(); 141 method public int getFlags(); 142 method public int getPriorityClass(); 143 method @NonNull public String getReason(); 144 method @Nullable public String getSplitName(); 145 field public static final String COMPILER_FILTER_NOOP = "skip"; 146 } 147 148 public static final class DexoptParams.Builder { 149 ctor public DexoptParams.Builder(@NonNull String); 150 ctor public DexoptParams.Builder(@NonNull String, int); 151 method @NonNull public com.android.server.art.model.DexoptParams build(); 152 method @NonNull public com.android.server.art.model.DexoptParams.Builder setCompilerFilter(@NonNull String); 153 method @NonNull public com.android.server.art.model.DexoptParams.Builder setFlags(int); 154 method @NonNull public com.android.server.art.model.DexoptParams.Builder setFlags(int, int); 155 method @NonNull public com.android.server.art.model.DexoptParams.Builder setPriorityClass(int); 156 method @NonNull public com.android.server.art.model.DexoptParams.Builder setSplitName(@Nullable String); 157 } 158 159 public abstract class DexoptResult { 160 method public int getFinalStatus(); 161 method @NonNull public abstract java.util.List<com.android.server.art.model.DexoptResult.PackageDexoptResult> getPackageDexoptResults(); 162 method @NonNull public abstract String getReason(); 163 method @NonNull public abstract String getRequestedCompilerFilter(); 164 field public static final int DEXOPT_CANCELLED = 40; // 0x28 165 field public static final int DEXOPT_FAILED = 30; // 0x1e 166 field public static final int DEXOPT_PERFORMED = 20; // 0x14 167 field public static final int DEXOPT_SKIPPED = 10; // 0xa 168 field public static final int EXTENDED_BAD_EXTERNAL_PROFILE = 4; // 0x4 169 field public static final int EXTENDED_SKIPPED_NO_DEX_CODE = 2; // 0x2 170 field public static final int EXTENDED_SKIPPED_STORAGE_LOW = 1; // 0x1 171 } 172 173 public abstract static class DexoptResult.DexContainerFileDexoptResult { 174 method @NonNull public abstract String getAbi(); 175 method @NonNull public abstract String getActualCompilerFilter(); 176 method public abstract long getDex2oatCpuTimeMillis(); 177 method public abstract long getDex2oatWallTimeMillis(); 178 method @NonNull public abstract String getDexContainerFile(); 179 method public abstract int getExtendedStatusFlags(); 180 method @NonNull public abstract java.util.List<java.lang.String> getExternalProfileErrors(); 181 method public abstract long getSizeBeforeBytes(); 182 method public abstract long getSizeBytes(); 183 method public abstract int getStatus(); 184 method public abstract boolean isPrimaryAbi(); 185 } 186 187 public abstract static class DexoptResult.PackageDexoptResult { 188 method @NonNull public abstract java.util.List<com.android.server.art.model.DexoptResult.DexContainerFileDexoptResult> getDexContainerFileDexoptResults(); 189 method @NonNull public abstract String getPackageName(); 190 method public int getStatus(); 191 method public boolean hasUpdatedArtifacts(); 192 } 193 194 public abstract class DexoptStatus { 195 method @NonNull public abstract java.util.List<com.android.server.art.model.DexoptStatus.DexContainerFileDexoptStatus> getDexContainerFileDexoptStatuses(); 196 } 197 198 public abstract static class DexoptStatus.DexContainerFileDexoptStatus { 199 method @NonNull public abstract String getAbi(); 200 method @NonNull public abstract String getCompilationReason(); 201 method @NonNull public abstract String getCompilerFilter(); 202 method @NonNull public abstract String getDexContainerFile(); 203 method @NonNull public abstract String getLocationDebugString(); 204 method public abstract boolean isPrimaryAbi(); 205 method public abstract boolean isPrimaryDex(); 206 } 207 208 public abstract class OperationProgress { 209 method public int getPercentage(); 210 } 211 212} 213 214