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()]));
                 }
             }