可以先参考java的java类加载器。一、DexClassLoader 一般情况下,我们使用import就可以了,为什么还要使用类装载器呢?import中所引用的类文件有两个特点:1.一定在存在于本地,当程序运行时需要这个类时,内部类装载器就会自动装载,程序员感知不到这个过程。2.编译时一定要在现....
分类:
其他好文 时间:
2015-09-04 18:15:55
阅读次数:
231
插件开发的过程中DexClassLoader和PathClassLoader这两个类加载器了是很重要的,但是他们也是有区别的,而且我们也知道PathClassLoader是Android应用中的默认加载器。他们的区别是:
DexClassLoader可以加载任何路径的apk/dex/jar
PathClassLoader只能加载/data/app中的apk,也就是已经安...
分类:
移动开发 时间:
2015-08-16 18:19:38
阅读次数:
269
我们可以利用DexClassLoader来实现动态加载dex文件,而很多资料也只是对于DexClassLoader的使用进行了介绍,没有深入讲解dex的动态加载机制,我们就借助于Android4.4的源码来探索。先从一个简单的动态加载dex文件开始 具体实现细节可以参考这篇文章AndroidDex数...
分类:
其他好文 时间:
2015-08-10 19:40:18
阅读次数:
172
DexClassLoader 加载的类是没有组件生命周期的,也就是说即使DexClassLoader通过对dex的动态加载完成了对组件的加载,当系统启动该组件时,还会出现加载类失败的异常。有两种方式可以解决上面出现的问题:方法一:http://blog.csdn.net/androidsecurit...
分类:
其他好文 时间:
2015-08-10 09:22:55
阅读次数:
120
动态加载代码,会有多种需求,有的是APK过大,想缩小点;有的是部分代码需要灵活变动,例如视频站点的解析规则。
奉上一个Demo,在这个demo中验证了从dexclassloader加载
1.db
2.,sharedpreference,
3.webview,.
4. so库,
5.context,
6.传入listener回调
7.加载不同package下的类
欢...
分类:
其他好文 时间:
2015-08-06 22:24:20
阅读次数:
99
类加载器与插件化解析2.1 类装载器 DexClassLoader首先,我们需要了解关于java代码本地import的一些知识:
import中所引用的类有两个特点:
1.必须存在于本地,当程序运行时需要该类时,内部类装载器会自动装载该类,这对程序员来讲是透明的,即程序员感知不到该过程
2.编译时必须在现场,否则编译过程会因为找不到引用文件而不能正常编译。使用ClassLoader的必要说明,...
分类:
其他好文 时间:
2015-08-04 13:40:20
阅读次数:
1779
在Java环境中,有个概念叫做”类装载器(Class Loader)”,其作用是动态加载Class文件.标准的Java SDK中有一个ClassLoader类,借助他可以装载想要的Class文件,每个ClassLoader对象在初始化的时候必须指定Class文件的路径.但我们在使用java的时候,基本上没有使用过ClassLoader,仅仅使用import就可以加载类文件了,简单的讲,import中...
分类:
其他好文 时间:
2015-07-30 11:15:03
阅读次数:
296
了解了android中类加载的前期知识点后,来看看android中DexClassLoader具体的实现
具体加载流程如下:
宿主程序会到文件系统比如SD卡中去加载APK【1】,然后通过一个叫proxy的Activity去执行apk中的Activity
关于动态加载ap,理论上可用用到DexClassLoad、PathClassLoader、URLClassLoade...
分类:
移动开发 时间:
2015-07-01 18:25:46
阅读次数:
403
java classloader 和android中DexClassloader对比: Java ClassLoader :
作用: 主要用来加载class 到jvm中,以供程序使用,也就是说:java程序可以动态加载类定义,而这个动态加载机制就是通过ClassLoader来实现的
核心loader:
A:: bootstrap classloader(启动类...
分类:
移动开发 时间:
2015-07-01 12:22:27
阅读次数:
144
承接上文 Android插件开发初探——基础篇
http://blog.csdn.net/yzzst/article/details/45582315我们通过使用DexClassLoader能够将classes.dex中的类动态的加载进入当前进程。当然,也就可以预先定一些代理的接口完成四大组件的功能。整体功能如下图所示:
当然,对于一个Android的应用程序而言,只是动态的加载类与声明四大组件是...
分类:
移动开发 时间:
2015-05-12 17:09:11
阅读次数:
213