summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dmitriy Ivanov <dimitry@google.com> 2015-06-13 00:43:56 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2015-06-13 00:44:01 +0000
commit8da462dea50dda16ea83b8cad83412a76f60f915 (patch)
tree8167f8f36f9b3619d58dac8d055161bcf88a122f
parent396b83b0c8a9c615ca416fa7a7d366a4e30971a1 (diff)
parent88b85406d45188bb8f2ccc74c75e74635ef29036 (diff)
Merge "Add path to native libraries inside apk"
-rw-r--r--core/java/android/app/LoadedApk.java17
1 files changed, 15 insertions, 2 deletions
diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java
index 83c6c2bcbe8a..778920072dc8 100644
--- a/core/java/android/app/LoadedApk.java
+++ b/core/java/android/app/LoadedApk.java
@@ -55,6 +55,7 @@ import java.lang.ref.WeakReference;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URL;
+import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
@@ -170,6 +171,7 @@ public final class LoadedApk {
if (runtimeIsa.equals(secondaryIsa)) {
final ApplicationInfo modified = new ApplicationInfo(info);
modified.nativeLibraryDir = modified.secondaryNativeLibraryDir;
+ modified.primaryCpuAbi = modified.secondaryCpuAbi;
return modified;
}
}
@@ -276,8 +278,9 @@ public final class LoadedApk {
}
}
- final ArrayList<String> zipPaths = new ArrayList<>();
- final ArrayList<String> libPaths = new ArrayList<>();
+ final List<String> zipPaths = new ArrayList<>();
+ final List<String> apkPaths = new ArrayList<>();
+ final List<String> libPaths = new ArrayList<>();
if (mRegisterPackage) {
try {
@@ -333,6 +336,8 @@ public final class LoadedApk {
}
}
+ apkPaths.addAll(zipPaths);
+
if (mSharedLibraries != null) {
for (String lib : mSharedLibraries) {
if (!zipPaths.contains(lib)) {
@@ -350,6 +355,14 @@ public final class LoadedApk {
}
final String zip = TextUtils.join(File.pathSeparator, zipPaths);
+
+ // Add path to libraries in apk for current abi
+ if (mApplicationInfo.primaryCpuAbi != null) {
+ for (String apk : apkPaths) {
+ libPaths.add(apk + "!/lib/" + mApplicationInfo.primaryCpuAbi);
+ }
+ }
+
final String lib = TextUtils.join(File.pathSeparator, libPaths);
/*