class android.app.LoadedApk$SplitDependencyLoaderImpl extends android.content.pm.split.SplitDependencyLoader<android.content.pm.PackageManager$NameNotFoundException>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: android.app.LoadedApk$SplitDependencyLoaderImpl
super_class: android.content.pm.split.SplitDependencyLoader
{
private final java.lang.String[][] mCachedResourcePaths;
descriptor: [[Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.ClassLoader[] mCachedClassLoaders;
descriptor: [Ljava/lang/ClassLoader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final android.app.LoadedApk this$0;
descriptor: Landroid/app/LoadedApk;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(android.util.SparseArray<int[]>);
descriptor: (Landroid/app/LoadedApk;Landroid/util/SparseArray;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield android.app.LoadedApk$SplitDependencyLoaderImpl.this$0:Landroid/app/LoadedApk;
1: aload 0
aload 2
invokespecial android.content.pm.split.SplitDependencyLoader.<init>:(Landroid/util/SparseArray;)V
2: aload 0
aload 1
getfield android.app.LoadedApk.mSplitNames:[Ljava/lang/String;
arraylength
iconst_1
iadd
anewarray java.lang.String[]
putfield android.app.LoadedApk$SplitDependencyLoaderImpl.mCachedResourcePaths:[[Ljava/lang/String;
3: aload 0
aload 1
getfield android.app.LoadedApk.mSplitNames:[Ljava/lang/String;
arraylength
iconst_1
iadd
anewarray java.lang.ClassLoader
putfield android.app.LoadedApk$SplitDependencyLoaderImpl.mCachedClassLoaders:[Ljava/lang/ClassLoader;
4: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
0 5 2 dependencies Landroid/util/SparseArray<[I>;
Signature: (Landroid/util/SparseArray<[I>;)V
MethodParameters:
Name Flags
this$0 final
dependencies
protected boolean isSplitCached(int);
descriptor: (I)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.mCachedClassLoaders:[Ljava/lang/ClassLoader;
iload 1
aaload
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
0 2 1 splitIdx I
MethodParameters:
Name Flags
splitIdx
protected void constructSplit(int, int[], int);
descriptor: (I[II)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=12, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 1: iload 1
ifne 11
2: aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.this$0:Landroid/app/LoadedApk;
aconst_null
invokevirtual android.app.LoadedApk.createOrUpdateClassLoaderLocked:(Ljava/util/List;)V
3: aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.mCachedClassLoaders:[Ljava/lang/ClassLoader;
iconst_0
aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.this$0:Landroid/app/LoadedApk;
getfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
aastore
4: aload 2
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 8
StackMap locals: android.app.LoadedApk$SplitDependencyLoaderImpl int int[] int java.util.ArrayList top int int int[]
StackMap stack:
5: aload 8
iload 6
iaload
istore 5
start local 5 6: aload 4
aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.this$0:Landroid/app/LoadedApk;
getfield android.app.LoadedApk.mSplitResDirs:[Ljava/lang/String;
iload 5
iconst_1
isub
aaload
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 5 7: iinc 6 1
StackMap locals:
StackMap stack:
8: iload 6
iload 7
if_icmplt 5
9: aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.mCachedResourcePaths:[[Ljava/lang/String;
iconst_0
aload 4
aload 4
invokevirtual java.util.ArrayList.size:()I
anewarray java.lang.String
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
aastore
10: return
11: StackMap locals: android.app.LoadedApk$SplitDependencyLoaderImpl int int[] int java.util.ArrayList
StackMap stack:
aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.mCachedClassLoaders:[Ljava/lang/ClassLoader;
iload 3
aaload
astore 5
start local 5 12: aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.mCachedClassLoaders:[Ljava/lang/ClassLoader;
iload 1
invokestatic android.app.ApplicationLoaders.getDefault:()Landroid/app/ApplicationLoaders;
13: aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.this$0:Landroid/app/LoadedApk;
getfield android.app.LoadedApk.mSplitAppDirs:[Ljava/lang/String;
iload 1
iconst_1
isub
aaload
aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.this$0:Landroid/app/LoadedApk;
invokevirtual android.app.LoadedApk.getTargetSdkVersion:()I
iconst_0
aconst_null
aconst_null
aload 5
14: aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.this$0:Landroid/app/LoadedApk;
getfield android.app.LoadedApk.mSplitClassLoaderNames:[Ljava/lang/String;
iload 1
iconst_1
isub
aaload
15: invokevirtual android.app.ApplicationLoaders.getClassLoader:(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/ClassLoader;
aastore
16: aload 4
aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.mCachedResourcePaths:[[Ljava/lang/String;
iload 3
aaload
invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
pop
17: aload 4
aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.this$0:Landroid/app/LoadedApk;
getfield android.app.LoadedApk.mSplitResDirs:[Ljava/lang/String;
iload 1
iconst_1
isub
aaload
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
18: aload 2
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 22
StackMap locals: android.app.LoadedApk$SplitDependencyLoaderImpl int int[] int java.util.ArrayList java.lang.ClassLoader top int int int[]
StackMap stack:
19: aload 9
iload 7
iaload
istore 6
start local 6 20: aload 4
aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.this$0:Landroid/app/LoadedApk;
getfield android.app.LoadedApk.mSplitResDirs:[Ljava/lang/String;
iload 6
iconst_1
isub
aaload
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 6 21: iinc 7 1
StackMap locals:
StackMap stack:
22: iload 7
iload 8
if_icmplt 19
23: aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.mCachedResourcePaths:[[Ljava/lang/String;
iload 1
aload 4
aload 4
invokevirtual java.util.ArrayList.size:()I
anewarray java.lang.String
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
aastore
24: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
0 25 1 splitIdx I
0 25 2 configSplitIndices [I
0 25 3 parentSplitIdx I
1 25 4 splitPaths Ljava/util/ArrayList<Ljava/lang/String;>;
6 7 5 configSplitIdx I
12 25 5 parent Ljava/lang/ClassLoader;
20 21 6 configSplitIdx I
Exceptions:
throws android.content.pm.PackageManager$NameNotFoundException
MethodParameters:
Name Flags
splitIdx
configSplitIndices
parentSplitIdx
private int ensureSplitLoaded(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 1
ifnull 8
2: aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.this$0:Landroid/app/LoadedApk;
getfield android.app.LoadedApk.mSplitNames:[Ljava/lang/String;
aload 1
invokestatic java.util.Arrays.binarySearch:([Ljava/lang/Object;Ljava/lang/Object;)I
istore 2
3: iload 2
ifge 7
4: new android.content.pm.PackageManager$NameNotFoundException
dup
5: new java.lang.StringBuilder
dup
ldc "Split name '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' is not installed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial android.content.pm.PackageManager$NameNotFoundException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: int
StackMap stack:
iinc 2 1
8: StackMap locals:
StackMap stack:
aload 0
iload 2
invokevirtual android.app.LoadedApk$SplitDependencyLoaderImpl.loadDependenciesForSplit:(I)V
9: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
0 10 1 splitName Ljava/lang/String;
1 10 2 idx I
Exceptions:
throws android.content.pm.PackageManager$NameNotFoundException
MethodParameters:
Name Flags
splitName
java.lang.ClassLoader getClassLoaderForSplit(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/ClassLoader;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.mCachedClassLoaders:[Ljava/lang/ClassLoader;
aload 0
aload 1
invokevirtual android.app.LoadedApk$SplitDependencyLoaderImpl.ensureSplitLoaded:(Ljava/lang/String;)I
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
0 1 1 splitName Ljava/lang/String;
Exceptions:
throws android.content.pm.PackageManager$NameNotFoundException
MethodParameters:
Name Flags
splitName
java.lang.String[] getSplitPathsForSplit(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/lang/String;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.LoadedApk$SplitDependencyLoaderImpl.mCachedResourcePaths:[[Ljava/lang/String;
aload 0
aload 1
invokevirtual android.app.LoadedApk$SplitDependencyLoaderImpl.ensureSplitLoaded:(Ljava/lang/String;)I
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
0 1 1 splitName Ljava/lang/String;
Exceptions:
throws android.content.pm.PackageManager$NameNotFoundException
MethodParameters:
Name Flags
splitName
}
Signature: Landroid/content/pm/split/SplitDependencyLoader<Landroid/content/pm/PackageManager$NameNotFoundException;>;
SourceFile: "LoadedApk.java"
NestHost: android.app.LoadedApk
InnerClasses:
private SplitDependencyLoaderImpl = android.app.LoadedApk$SplitDependencyLoaderImpl of android.app.LoadedApk
public NameNotFoundException = android.content.pm.PackageManager$NameNotFoundException of android.content.pm.PackageManager