day27 1.类的加载概述和加载时机 2.类加载器的概述和分类 类加载器 负责将.class文件加载到内存中,并为之生成对应的Class对象。 虽然我们不需要关心类加载机制,但是了解这个机制我们就能更好的理解程序的运行。 类加载器的组成 Bootstrap ClassLoader根类加载器 Ext ...
分类:
编程语言 时间:
2016-05-01 13:30:07
阅读次数:
745
ClassLoader
ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象。 1.1 几个相关概念ClassLoader负责载入系统的所有Resources(Class,文件,来自网络的字节流等),通过ClassLoader从而将资源载入JVM
每个class都有一个ref...
分类:
编程语言 时间:
2016-04-29 15:13:36
阅读次数:
304
Android Studio升级到2.0之后,新增了Instant Run功能,该功能可以热替换apk中的部分代码,大幅提高测试安装的效率。 但是,由于我的项目中自定义了一些ClassLoader,当使用InstantRun时,经常出现class加载不正确的问题。分析后原因如下。 使用Instant ...
分类:
移动开发 时间:
2016-04-28 19:43:32
阅读次数:
366
支持包名下的子包名遍历,并使用Annotation(内注)来过滤一些不必要的内部类,提高命中精度。 通过Thread.currentThread().getContextClassLoader()获取ClassLoader实例将包名转为路径名后,做为参数传给CloassLoader.getResou ...
分类:
编程语言 时间:
2016-04-28 00:14:26
阅读次数:
454
最近开源界涌现了很多热补丁项目,但从方案上来说,主要包括Dexposed、AndFix、ClassLoader(来源是原QZone,现淘宝的工程师陈钟,在15年年初就已经开始实现)三种。前两个都是阿里巴巴内部的不同团队做的(淘宝和支付宝),后者则来自腾讯的QQ空间团队。 开源界往往一个方案会有好几种 ...
分类:
其他好文 时间:
2016-04-23 22:45:54
阅读次数:
296
为何要花时间实现自己的ClassLoader虽然人生的乐趣很大一部分来自于将时间花在有意思但是无意义的事情上,但是这件事绝对是有意思并且有意义的,有以下几个情景是值得我们花费时间实现自己的classLoader的:
我们需要的类不一定存放在已经设置好的classPath下(有系统类加载器AppClassLoader加载的路径),对于自定义路径中的class类文件的加载,我们需要自己的ClassLoa...
分类:
其他好文 时间:
2016-04-22 20:21:01
阅读次数:
230
Java类加载器 ClassLoader的解析...
分类:
编程语言 时间:
2016-04-21 11:50:30
阅读次数:
331
主要就是使用到了Xposed中的两个比较重要的方法,handleLoadPackage获取包加载时候的回调并拿到其对应的classLoader;findAndHookMethod对指定类的方法进行Hook。 /** * 包加载时候的回调 */public void handleLoadPackage ...
分类:
移动开发 时间:
2016-04-20 23:10:45
阅读次数:
236
Exception in thread "main" java.lang.UnsupportedClassVersionError: cn/com/TestApp : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defi ...
分类:
其他好文 时间:
2016-04-20 10:00:02
阅读次数:
120
一.类加载器 1.根加载器,bootstrap,c++编写的; 2.扩展类加载器,java编写; 3.系统,应用类加载器,java编写; 4.用户自定义类加载器,java.lang.ClassLoader的子类,用户可以定制类的加载方式; 二. 类的加载方式1.本地编译好的class中直接加载2.网 ...
分类:
编程语言 时间:
2016-04-19 16:53:07
阅读次数:
179