当前位置:   article > 正文

android 生成dex,Android studio 生成Jar,和动态加载Dex

android studio dex

Dalvik 虚拟机和标准的java虚拟机加载机制的区别:

Dalvik虚拟机如同其他Java虚拟机一样,在运行程序时首先需要将对应的类加载到内存中。而在Java标准的虚拟机中,类加载可以从class文件中读取,也可以是其他形式的二进制流,因此,我们常常利用这一点,在程序运行时手动加载Class,从而达到代码动态加载执行的目的,但是Dalvik虚拟机毕竟不算是标准的Java虚拟机。如下图。

ea81f7621229

DexClassLoader:可以加载jar/apk/dex,可以从SDK中加载未加载的apk、

PathClassLOader:要传入系统中Apk的存放Path,所以只能加载已经安装的apk文件。

与jvm不同的是Dalvik不能直接加载.dex文件,而是要通过从ClassLoader派生出的两个类 DexClassLoader和PathClassLoader来加载.dex文件。

接下来我们实现两个步骤的准备工作。

一、打包出一个需要用到的jar文件

二、将jar文件转换成dex文件。

Android studio打包jar文件

新建一个项目创建完成后项目目录如下:

ea81f7621229

在目录com.loaderdome包下面创建一个dynamic包用来放一个接口 Dynamic 在接口里面写一个sayHello()方法,返回Srtring

ea81f7621229

新建一个impl包,并实现Dynamic接口(这个文件我们会打包成Dex文件来通过接口调用)

ea81f7621229

点击Build -->Rebuild project,点击完成后需要打包成jar 的class文件会在下面所示的目录中显示,箭头指出的就是我们需要打包的class文件

ea81f7621229

配置app moudle的 build.gradle 文件添加以下配置代码(这里注意添加在 app moudle 下面的 gradle里面而project下面的gradle)//删除dynamic.jar包任务

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/789777
推荐阅读