Merge "dexopt: Drop native libraries from the class loader context." into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
cb302ae4f0
@@ -177,8 +177,10 @@ public class PackageDexOptimizer {
|
|||||||
private int performDexOptLI(AndroidPackage pkg, @NonNull PackageSetting pkgSetting,
|
private int performDexOptLI(AndroidPackage pkg, @NonNull PackageSetting pkgSetting,
|
||||||
String[] targetInstructionSets, CompilerStats.PackageStats packageStats,
|
String[] targetInstructionSets, CompilerStats.PackageStats packageStats,
|
||||||
PackageDexUsage.PackageUseInfo packageUseInfo, DexoptOptions options) {
|
PackageDexUsage.PackageUseInfo packageUseInfo, DexoptOptions options) {
|
||||||
|
// ClassLoader only refers non-native (jar) shared libraries and must ignore
|
||||||
|
// native (so) shared libraries. See also LoadedApk#createSharedLibraryLoader().
|
||||||
final List<SharedLibraryInfo> sharedLibraries = pkgSetting.getPkgState()
|
final List<SharedLibraryInfo> sharedLibraries = pkgSetting.getPkgState()
|
||||||
.getUsesLibraryInfos();
|
.getNonNativeUsesLibraryInfos();
|
||||||
final String[] instructionSets = targetInstructionSets != null ?
|
final String[] instructionSets = targetInstructionSets != null ?
|
||||||
targetInstructionSets : getAppDexInstructionSets(
|
targetInstructionSets : getAppDexInstructionSets(
|
||||||
AndroidPackageUtils.getPrimaryCpuAbi(pkg, pkgSetting),
|
AndroidPackageUtils.getPrimaryCpuAbi(pkg, pkgSetting),
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import com.android.server.pm.PackageSetting;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For use by {@link PackageSetting} to maintain functionality that used to exist in
|
* For use by {@link PackageSetting} to maintain functionality that used to exist in
|
||||||
@@ -110,6 +111,10 @@ public class PackageStateUnserialized {
|
|||||||
this.overrideSeInfo = other.overrideSeInfo;
|
this.overrideSeInfo = other.overrideSeInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public @NonNull List<SharedLibraryInfo> getNonNativeUsesLibraryInfos() {
|
||||||
|
return getUsesLibraryInfos().stream()
|
||||||
|
.filter((l) -> !l.isNative()).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Code below generated by codegen v1.0.14.
|
// Code below generated by codegen v1.0.14.
|
||||||
|
|||||||
Reference in New Issue
Block a user