携程DynamicAPK插件化框架源码分析Author:莫川插件核心思想1.aapt的改造分别对不同的插件项目分配不同的packageId,然后对各个插件的资源进行编译,生成R文件,然后与宿主项目的R文件进行id的合并。
要求:由于最终会将所有的资源文件id进行合并,因此,所有的资源名称均不能相同。2.运行ClassLoader加载各Bundle和MultiDex的思路是一样的,所有的插件都被加载到...
分类:
其他好文 时间:
2016-01-19 10:49:18
阅读次数:
224
深度分析Java的ClassLoader机制(源码级别)
分类:
编程语言 时间:
2016-01-16 22:21:48
阅读次数:
232
一、ClassLoader 当运行一个Java 程序时,JVM启动,运行bootstrap classLoader(启动类加载器),将Java核心的API加载进来;接着调用ExtClassLoader加载扩展API,最后AppClassLoader加载CLASSPATH目录下定义的Class;这就....
分类:
编程语言 时间:
2016-01-13 00:36:01
阅读次数:
253
一、什么是ClassLoader?大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个c...
分类:
编程语言 时间:
2016-01-09 22:54:34
阅读次数:
261
主要使用了java.lang.reflect中的Proxy类,方法如下:static Object newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h)下面是利用JDBC做的测试,类似于重写了Con...
分类:
编程语言 时间:
2016-01-04 19:54:00
阅读次数:
169
今天看《spring3.0企业应用开发实战》中关于web应用程序中调度器的启动和关闭问题中有这样一段话: 静态变量是ClassLoader级别的,如果web应用程序停止,这些静态变量也会从jvm中清除。但是线程则是JVM级别的,如果用户在web应用中启动一个线程,这个线程的生命周期并不会和we...
分类:
编程语言 时间:
2016-01-03 00:26:45
阅读次数:
275
1.类加载器 Java虚拟机中可以安装多个类加载器,系统默认主要三个类加载器,每个类负责加载特定位置的类:BootStrap(内嵌在java虚拟机中由C++编写),ExtClassLoader,AppClassLoader。当然也可以自定义类加载器,自定义的加载器必须继承ClassLoader。.....
分类:
编程语言 时间:
2015-12-24 16:26:07
阅读次数:
252
这是前几天在看类加载器机制时搜到的一篇旧文,网上搜了搜相应的中文资料,感觉很多意思没有翻译出来,这两天我试着自己翻译了一下,供同道参考。英文文章地址:Find a way out of the ClassLoader maze走出类加载器迷宫(本人翻译,转载请注明出处)系统类加载器,当前类加载器,上...
分类:
其他好文 时间:
2015-12-22 16:27:02
阅读次数:
246
In myprevious postwe looked at different categories of ClassLoader leaks, and looked at a particular example of a reference from outside the web appli...
分类:
编程语言 时间:
2015-12-21 00:10:17
阅读次数:
393
This time we will discuss different reasons for leaks, look at an example of a leak in a third party library, and see how we can fix that leak by a wo...
分类:
其他好文 时间:
2015-12-20 10:29:38
阅读次数:
278