ClassLoader的使用方式
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
推荐阅读
-
Java 集合框架之List 的使用(附小游戏练习)
-
PHP使用Redis的List(列表)命令实现消息队列
-
使用selenium框架的Python爬虫被检测到的 解决方法
-
使用Python 操作 xmind 绘制思维导图的详细方法
-
MySql中正则表达式的使用方法描述
-
怎么做网络兼职赚钱(多种互联网赚钱的方式方法介绍)
-
常见的网站攻击方式有哪些(网站被攻击的防御办法)
-
css3动画简介以及动画库animate.css的使用_html/css_WEB-ITnose
-
MYSQL存储过程中使用游标嵌套的实例
-
HTML学习笔记之三(localstorage的使用)_html/css_WEB-ITnose