Pass app's code paths to the runtime
The runtime needs the application's main code paths so it know for which
dex files to record the profile.
Bug:26080105
Change-Id: I5f2cb5c140aa6893ac78bc0d5897e33764569e5b
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 83d4152..a2ef410 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -119,6 +119,7 @@
import java.net.InetAddress;
import java.text.DateFormat;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -814,8 +815,13 @@
// Tell the VMRuntime about the application, unless it is shared
// inside a process.
if (!sharable) {
+ final List<String> codePaths = new ArrayList<>();
+ codePaths.add(appInfo.sourceDir);
+ if (appInfo.splitSourceDirs != null) {
+ Collections.addAll(codePaths, appInfo.splitSourceDirs);
+ }
VMRuntime.registerAppInfo(appInfo.packageName, appInfo.dataDir,
- appInfo.processName);
+ codePaths.toArray(new String[codePaths.size()]));
}
}