PathClassLoader && DexClassLoader
2017-06-12 10:56
330 查看
1.PathClassLoader:只能加载系统中已经安装过的apk
在android 5.0 之前,比如在android API =19,安装了app “com.example.amyli.hostapk”之后
>adb shell
>cd /data/app
安装app后,apk确实在/data/app中,PathClassLoader是加载/data/app中的apk
>cd /data/dalvik-cache
可以看到红色框内,/data/app中的apk都会解压释放dex到指定的目录:/data/dalvik-cache
系统类加载器其实还是PathClassLoader,只是加载的apk路径不是/data/app/xxx.apk了,而是系统apk的路径:/system/app/xxx.apk
DexClassLoader:能够加载未安装的jar/apk/dex
所以插件使用的是DexClassLoader;
从源码来分析2者区别,请见
http://blog.csdn.net/mynameishuangshuai/article/details/52737581
在android 5.0 之前,比如在android API =19,安装了app “com.example.amyli.hostapk”之后
>adb shell
>cd /data/app
安装app后,apk确实在/data/app中,PathClassLoader是加载/data/app中的apk
>cd /data/dalvik-cache
可以看到红色框内,/data/app中的apk都会解压释放dex到指定的目录:/data/dalvik-cache
系统类加载器其实还是PathClassLoader,只是加载的apk路径不是/data/app/xxx.apk了,而是系统apk的路径:/system/app/xxx.apk
DexClassLoader:能够加载未安装的jar/apk/dex
所以插件使用的是DexClassLoader;
从源码来分析2者区别,请见
http://blog.csdn.net/mynameishuangshuai/article/details/52737581
相关文章推荐
- 极光推送Couldn't load jpush180 from loader dalvik.system.PathClassLoader解决方法
- DexClassLoader和PathClassLoader的区别
- java.lang.UnsatisfiedLinkError: Couldn't load easemob_jni from loader dalvik.system.PathClassLoader
- Couldn't load vi_voslib from loader dalvik.system.PathClassLoader
- PathDexClassLoader 和 DexClassLoader 区别
- Java中获取classpath路径下的资源文件【ClassLoader.getSystemResource("")获取当前ClassPath的绝对URI路径,还可以以流的形式获取文件】
- “Init library failed & error:!java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader"问题解决
- DexClassLoader和PathClassLoader载入Dex流程
- DexClassLoader和PathClassLoader
- DexClassLoader和PathClassLoader的区别
- Android DexClassLoader/PathClassLoader 动态加载jar/APK
- 【Android高级】DexClassloader和PathClassloader动态加载插件的实现
- Couldn't load vi_voslib from loader dalvik.system.PathClassLoader
- Android Studio 发生 Couldn't load jpush175 from loader dalvik.system.PathClassLoader 异常
- zt:mina源码经maven2处理后,导入eclipse有Unbound classpath variable: 'M2_REPO报错的解决方法
- Class.getResourceAsStream() & ClassLoader的getResourceAsStream()
- 解决错误Error creating bean with name 'MySessionFactory' defined in class path resource [applicationContext.xml]: Invocation of init
- "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题
- Error registering bean with name 'dataSource' defined in class path resource
- Java中资源(resource)获取 Class.getResource() & ClassLoader.getResource()