当前位置: 移动技术网 > IT编程>开发语言>JavaScript > ClassLoader的使用方式

ClassLoader的使用方式

2020年08月10日  | 移动技术网IT编程  | 我要评论
public ClassLoader getClassLoader() {synchronized (this) {if (mClassLoader != null) {return mClassLoader;}// …// 创建加载器,创建默认的加载器// zip为Apk的路径,libraryPath也就是JNI的路径mClassLoader = ApplicationLoaders.getDefault().getClassLoader(zip, libraryPath, mBaseCl

public ClassLoader getClassLoader() {
synchronized (this) {
if (mClassLoader != null) {
return mClassLoader;
}
// …
// 创建加载器,创建默认的加载器
// zip为Apk的路径,libraryPath也就是JNI的路径
mClassLoader = ApplicationLoaders.getDefault().getClassLoader(zip, libraryPath, mBaseClassLoader);
initializeJavaContextClassLoader();
StrictMode.setThreadPolicy(oldPolicy);
} else {
if (mBaseClassLoader == null) {
mClassLoader = ClassLoader.getSystemClassLoader();
} else {
mClassLoader = mBaseClassLoader;
}
}
return mClassLoader;
}
}
private void replaceClassLoader(DexClassLoader loader) {
try {
Class clazz_Ath = Class.forName(“android.app.ActivityThread”);
Class clazz_LApk = Class.forName(“android.app.LoadedApk”);
Object currentActivityThread = clazz_Ath.getMethod(“currentActivityThread”).invoke(null);
Field field1 = clazz_Ath.getDeclaredField(“mPackages”);
field1.setAccessible(true);
Map mPackages = (Map

本文地址:https://blog.csdn.net/qq_42894864/article/details/107880810

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网