LoadedApk: Avoid unnecessary work when mIncludeCode == false. am: 8995b00ce8
am: 150664c275
* commit '150664c27553ba06667d4ee7eafef16940a87788':
LoadedApk: Avoid unnecessary work when mIncludeCode == false.
Change-Id: Ie5b0fd3d47aa4121f4a5a054510c828a5f4e6454
This commit is contained in:
@@ -450,9 +450,6 @@ public final class LoadedApk {
|
||||
}
|
||||
}
|
||||
|
||||
final List<String> zipPaths = new ArrayList<>();
|
||||
final List<String> libPaths = new ArrayList<>();
|
||||
|
||||
if (mRegisterPackage) {
|
||||
try {
|
||||
ActivityManagerNative.getDefault().addPackageDependency(mPackageName);
|
||||
@@ -461,8 +458,10 @@ public final class LoadedApk {
|
||||
}
|
||||
}
|
||||
|
||||
final List<String> zipPaths = new ArrayList<>();
|
||||
final List<String> libPaths = new ArrayList<>();
|
||||
makePaths(mActivityThread, mApplicationInfo, zipPaths, libPaths);
|
||||
final String zip = mIncludeCode ? TextUtils.join(File.pathSeparator, zipPaths) : "";
|
||||
|
||||
final boolean isBundledApp = mApplicationInfo.isSystemApp()
|
||||
&& !mApplicationInfo.isUpdatedSystemApp();
|
||||
|
||||
@@ -476,10 +475,28 @@ public final class LoadedApk {
|
||||
|
||||
final String librarySearchPath = TextUtils.join(File.pathSeparator, libPaths);
|
||||
|
||||
// If we're not asked to include code, we construct a classloader that has
|
||||
// no code path included. We still need to set up the library search paths
|
||||
// and permitted path because NativeActivity relies on it (it attempts to
|
||||
// call System.loadLibrary() on a classloader from a LoadedApk with
|
||||
// mIncludeCode == false).
|
||||
if (!mIncludeCode) {
|
||||
if (mClassLoader == null) {
|
||||
StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
|
||||
mClassLoader = ApplicationLoaders.getDefault().getClassLoader(
|
||||
"" /* codePath */, mApplicationInfo.targetSdkVersion, isBundledApp,
|
||||
librarySearchPath, libraryPermittedPath, mBaseClassLoader);
|
||||
StrictMode.setThreadPolicy(oldPolicy);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* With all the combination done (if necessary, actually
|
||||
* create the class loader.
|
||||
* With all the combination done (if necessary, actually create the java class
|
||||
* loader and set up JIT profiling support if necessary.
|
||||
*/
|
||||
final String zip = TextUtils.join(File.pathSeparator, zipPaths);
|
||||
|
||||
if (ActivityThread.localLOGV)
|
||||
Slog.v(ActivityThread.TAG, "Class path: " + zip +
|
||||
|
||||
Reference in New Issue
Block a user