27. 実行時
実際の内部で起こっている手順 (3/5) API 19~
● クラスローダーの中身を書き換える
class BaseDexClassLoader extends ClassLoader {
private final DexPathList pathList;
}
class DexPathList {
private final Element[] dexElements;
}
28. 実行時
実際の内部で起こっている手順 (3/5) API 19~
● クラスローダーの中身を書き換える
class BaseDexClassLoader extends ClassLoader {
private final DexPathList pathList;
}
class DexPathList {
private final Element[] dexElements;
} ここに分割された dex ファイルを追加
29. 実行時
実際の内部で起こっている手順 (4/5) API 14~
● クラスローダーの中身を書き換える (19 とほぼ同一 )
class BaseDexClassLoader extends ClassLoader {
private final DexPathList pathList;
}
class DexPathList {
private final Element[] dexElements;
}
30. 実行時
実際の内部で起こっている手順 (4/5) API 14~
● クラスローダーの中身を書き換える (19 とほぼ同一 )
class BaseDexClassLoader extends ClassLoader {
private final DexPathList pathList;
}
class DexPathList {
private final Element[] dexElements;
}
ここに分割された dex ファイルを追加
31. 実行時
実際の内部で起こっている手順 (5/5) API 4~
● クラスローダーの中身を書き換える
class PathClassLoader extends ClassLoader {
private final String path;
private final String[] mPaths;
private final File[] mFiles;
private final ZipFile[] mZips;
private final DexFile[] mDexs;
}
32. 実行時
実際の内部で起こっている手順 (5/5) API 4~
● クラスローダーの中身を書き換える
class PathClassLoader extends ClassLoader {
private final String path;
private final String[] mPaths;
private final File[] mFiles;
private final ZipFile[] mZips;
private final DexFile[] mDexs;
}
これらに分割された dex ファイルを追加