Loading services/core/java/com/android/server/pm/PackageDexOptimizer.java +12 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import static dalvik.system.DexFile.isProfileGuidedCompilerFilter; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.ContentResolver; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.SharedLibraryInfo; Loading @@ -65,6 +66,7 @@ import android.util.SparseArray; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.content.F2fsUtils; import com.android.internal.util.IndentingPrintWriter; import com.android.server.LocalServices; import com.android.server.apphibernation.AppHibernationManagerInternal; Loading Loading @@ -141,6 +143,7 @@ public class PackageDexOptimizer { private final Injector mInjector; private final Context mContext; private static final Random sRandom = new Random(); PackageDexOptimizer(Installer installer, Object installLock, Context context, Loading @@ -159,6 +162,7 @@ public class PackageDexOptimizer { } protected PackageDexOptimizer(PackageDexOptimizer from) { this.mContext = from.mContext; this.mInstaller = from.mInstaller; this.mInstallLock = from.mInstallLock; this.mDexoptWakeLock = from.mDexoptWakeLock; Loading @@ -169,6 +173,7 @@ public class PackageDexOptimizer { @VisibleForTesting PackageDexOptimizer(@NonNull Injector injector, Installer installer, Object installLock, Context context, String wakeLockTag) { this.mContext = context; this.mInstaller = installer; this.mInstallLock = installLock; Loading Loading @@ -434,6 +439,13 @@ public class PackageDexOptimizer { long endTime = System.currentTimeMillis(); packageStats.setCompileTime(path, (int)(endTime - startTime)); } if (oatDir != null) { // Release odex/vdex compressed blocks to save user space. // Compression support will be checked in F2fsUtils. // The system app may be dexed, oatDir may be null, skip this situation. final ContentResolver resolver = mContext.getContentResolver(); F2fsUtils.releaseCompressedBlocks(resolver, new File(oatDir)); } return DEX_OPT_PERFORMED; } catch (InstallerException e) { Slog.w(TAG, "Failed to dexopt", e); Loading Loading
services/core/java/com/android/server/pm/PackageDexOptimizer.java +12 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import static dalvik.system.DexFile.isProfileGuidedCompilerFilter; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.ContentResolver; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.SharedLibraryInfo; Loading @@ -65,6 +66,7 @@ import android.util.SparseArray; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.content.F2fsUtils; import com.android.internal.util.IndentingPrintWriter; import com.android.server.LocalServices; import com.android.server.apphibernation.AppHibernationManagerInternal; Loading Loading @@ -141,6 +143,7 @@ public class PackageDexOptimizer { private final Injector mInjector; private final Context mContext; private static final Random sRandom = new Random(); PackageDexOptimizer(Installer installer, Object installLock, Context context, Loading @@ -159,6 +162,7 @@ public class PackageDexOptimizer { } protected PackageDexOptimizer(PackageDexOptimizer from) { this.mContext = from.mContext; this.mInstaller = from.mInstaller; this.mInstallLock = from.mInstallLock; this.mDexoptWakeLock = from.mDexoptWakeLock; Loading @@ -169,6 +173,7 @@ public class PackageDexOptimizer { @VisibleForTesting PackageDexOptimizer(@NonNull Injector injector, Installer installer, Object installLock, Context context, String wakeLockTag) { this.mContext = context; this.mInstaller = installer; this.mInstallLock = installLock; Loading Loading @@ -434,6 +439,13 @@ public class PackageDexOptimizer { long endTime = System.currentTimeMillis(); packageStats.setCompileTime(path, (int)(endTime - startTime)); } if (oatDir != null) { // Release odex/vdex compressed blocks to save user space. // Compression support will be checked in F2fsUtils. // The system app may be dexed, oatDir may be null, skip this situation. final ContentResolver resolver = mContext.getContentResolver(); F2fsUtils.releaseCompressedBlocks(resolver, new File(oatDir)); } return DEX_OPT_PERFORMED; } catch (InstallerException e) { Slog.w(TAG, "Failed to dexopt", e); Loading