android动态加载

来源:互联网 发布:java方法的命名规则 编辑:程序博客网 时间:2024/05/21 11:29
###Android动态加载dex技术初探
[http://blog.csdn.net/u013478336/article/details/50734108](http://blog.csdn.net/u013478336/article/details/50734108)
Android使用Dalvik虚拟机加载可执行程序,所以不能直接加载基于class的jar,而是需要将class转化为dex字节码。
Android支持动态加载的两种方式是:DexClassLoader和PathClassLoader,DexClassLoader可加载jar/apk/dex,且支持从SD卡加载;PathClassLoader据说只能加载已经安装在Android系统内APK文件。
###Android插件化基础
Android简单来说就是如下操作:
* 开发者将插件代码封装成Jar或者APK
* 宿主下载或者从本地加载Jar或者APK到宿主中
* 将宿主调用插件中的算法或者Android特定的Class(如Activity)
###插件化开发—动态加载技术加载已安装和未安装的apk
[http://blog.csdn.net/u010687392/article/details/47121729?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io](http://blog.csdn.net/u010687392/article/details/47121729?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io)
为什么引入动态加载技术?
* 一个应用程序dex文件的方法数最大不能超过65536个
* 可以让应用程序实现插件化、插拔式结构,对后期维护有益
什么是动态加载技术
动态加载技术就是使用类加载器加载相应的apk、dex、jar(必须含有dex文件),再通过反射获得该apk、dex、jar内部的资源(class、图片、color等等)进而供宿主app使用。
关于动态加载使用的类加载器
* PathClassLoader - 只能加载已经安装的apk,即/data/app目录下的apk。
* DexClassLoader  - 能加载手机中未安装的apk、jar、dex,只要能在找到对应的路径。
原创粉丝点击