summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorDavid Brazdil <dbrazdil@google.com>2018-12-07 01:20:17 -0800
committerandroid-build-merger <android-build-merger@google.com>2018-12-07 01:20:17 -0800
commit4e7a33fb083d4332034aea8240bd182c673b8471 (patch)
tree93ae119f519cb88c1a783c5f9873bd66d8559a4e /core/java/android
parent73694f8faa54071759744901bd1c64457dc9cf49 (diff)
parent385c42a2e9431fd345d42be57a21f03308f0fdec (diff)
Merge "Move DexLoadReporter setup before AppComponentFactory calls"
am: 385c42a2e9 Change-Id: I1b37135225175c74c578a29dfbd269bf7230f2e5
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/ActivityThread.java11
-rw-r--r--core/java/android/app/LoadedApk.java10
2 files changed, 10 insertions, 11 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 91a00766229c..0a238588787d 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -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.
diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java
index 3f1075448c84..0d3110cfded8 100644
--- a/core/java/android/app/LoadedApk.java
+++ b/core/java/android/app/LoadedApk.java
@@ -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.