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

Commit 6ac79a78 authored by Jaegeuk Kim's avatar Jaegeuk Kim Committed by Android (Google) Code Review
Browse files

Merge "Release odex/vdex compressed blocks to save user space."

parents 43a7ff5f 77fd602f
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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,
@@ -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;
@@ -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;

@@ -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);