Merge "Move DexLoadReporter setup before AppComponentFactory calls"

This commit is contained in:
David Brazdil
2018-12-07 09:04:56 +00:00
committed by Gerrit Code Review
2 changed files with 10 additions and 11 deletions

View File

@@ -152,7 +152,6 @@ import com.android.org.conscrypt.OpenSSLSocketImpl;
import com.android.org.conscrypt.TrustedCertificateStore;
import com.android.server.am.MemInfoDumpProto;
import dalvik.system.BaseDexClassLoader;
import dalvik.system.CloseGuard;
import dalvik.system.VMDebug;
import dalvik.system.VMRuntime;
@@ -5862,16 +5861,6 @@ public final class ActivityThread extends ClientTransactionHandler {
ThreadedRenderer.setIsolatedProcess(true);
}
// If we use profiles, setup the dex reporter to notify package manager
// of any relevant dex loads. The idle maintenance job will use the information
// reported to optimize the loaded dex files.
// Note that we only need one global reporter per app.
// Make sure we do this before calling onCreate so that we can capture the
// complete application startup.
if (SystemProperties.getBoolean("dalvik.vm.usejitprofiles", false)) {
BaseDexClassLoader.setReporter(DexLoadReporter.getInstance());
}
// Install the Network Security Config Provider. This must happen before the application
// code is loaded to prevent issues with instances of TLS objects being created before
// the provider is installed.

View File

@@ -57,6 +57,7 @@ import android.view.DisplayAdjustments;
import com.android.internal.util.ArrayUtils;
import dalvik.system.BaseDexClassLoader;
import dalvik.system.VMRuntime;
import java.io.File;
@@ -929,6 +930,15 @@ public final class LoadedApk {
if (!SystemProperties.getBoolean("dalvik.vm.usejitprofiles", false)) {
return;
}
// If we use profiles, setup the dex reporter to notify package manager
// of any relevant dex loads. The idle maintenance job will use the information
// reported to optimize the loaded dex files.
// Note that we only need one global reporter per app.
// Make sure we do this before invoking app code for the first time so that we
// can capture the complete application startup.
BaseDexClassLoader.setReporter(DexLoadReporter.getInstance());
// Only set up profile support if the loaded apk has the same uid as the
// current process.
// Currently, we do not support profiling across different apps.