From 652abda3efa231d431375677363f4a36327eeda7 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Thu, 20 Dec 2012 14:33:22 -0800 Subject: Support System.loadLibrary for libraries with transitive dependencies. Bug: 7896159 Bug: http://code.google.com/p/android/issues/detail?id=34416 Change-Id: Id1225a353b52c50bb3eedfd48e92ec85dd60134b --- dalvik/src/main/java/dalvik/system/BaseDexClassLoader.java | 14 ++++++++++++++ dalvik/src/main/java/dalvik/system/DexPathList.java | 7 +++++++ 2 files changed, 21 insertions(+) (limited to 'dalvik') diff --git a/dalvik/src/main/java/dalvik/system/BaseDexClassLoader.java b/dalvik/src/main/java/dalvik/system/BaseDexClassLoader.java index 1c006ba..6d5ae1a 100644 --- a/dalvik/src/main/java/dalvik/system/BaseDexClassLoader.java +++ b/dalvik/src/main/java/dalvik/system/BaseDexClassLoader.java @@ -112,6 +112,20 @@ public class BaseDexClassLoader extends ClassLoader { return null; } + /** + * @hide + */ + public String getLdLibraryPath() { + StringBuilder result = new StringBuilder(); + for (File directory : path.getNativeLibraryDirectories()) { + if (result.length() > 0) { + result.append(':'); + } + result.append(directory); + } + return result.toString(); + } + @Override public String toString() { return getClass().getName() + "[" + path + "]"; } diff --git a/dalvik/src/main/java/dalvik/system/DexPathList.java b/dalvik/src/main/java/dalvik/system/DexPathList.java index 1ae48d9..3088ca5 100644 --- a/dalvik/src/main/java/dalvik/system/DexPathList.java +++ b/dalvik/src/main/java/dalvik/system/DexPathList.java @@ -109,6 +109,13 @@ import static libcore.io.OsConstants.*; } /** + * For BaseDexClassLoader.getLdLibraryPath. + */ + public File[] getNativeLibraryDirectories() { + return nativeLibraryDirectories; + } + + /** * Splits the given dex path string into elements using the path * separator, pruning out any elements that do not refer to existing * and readable files. (That is, directories are not included in the -- cgit v1.1