Android中加载jar包和java中不太一样,因为Android的虚拟机(Dalvik VM)是不认识Java打出jar的byte code,需要通过dx工具来优化转换成Dalvik byte code才行。这一点在咱们Android项目打包的apk中可以看出:引入其他Jar的内容都被打包进了classes.dex。
用于动态加载的API DexClassLoader、PathClassLoader他们两个的区别是第二个只能加载已经安装到Android系统中的apk文件,这里我们用到的是DexClassLoader。
步骤:
1.编写接口和实现
public interface IDemo {
public String sayhello();
}
public class Demo implements IDemo {
@Override
public String sayhello() {
return "Hello!";
}
}
2打包并转化为dex格式的jar包
dx --dex --output=test.jar demo.jar
3通过DexClassLoader加载dex格式的jar包test.jar
DexClassLoader classLoader = new DexClassLoader( "path/test.jar", optimizerpath, null,cxt.getClassLoader());
Class mLoadClass = classLoader.loadClass("com.test.Demo");
sInstance = (IDemo) mLoadClass.newInstance();
现在就可以使用IDemo接口里的方法了。
相关推荐
本篇笔记主要介绍如何将Java项目导出为可执行JAR包,以便在没有开发环境的机器上也能运行程序。 首先,我们需要一个Java项目,该项目已经完成了编码、编译,并且所有的类文件和资源文件都已准备就绪。这些类文件...
本篇将详细探讨在使用Hibernate时需要的jar包及其作用,同时也会提及如何正确配置这些库,以便在实际项目中顺利运行。 1. **Hibernate核心库**: Hibernate的核心库`hibernate-core.jar`包含了ORM的主要功能,如...
3. **Jar包**:这是MyBatis的运行时库文件,包含了MyBatis所有必要的类和接口。在项目中引入这个jar包,就可以开始使用MyBatis进行数据库操作了。 4. **中文文档**:MyBatis的官方中文文档详尽地介绍了框架的所有...
3. **jar包**:ZK的核心库通常以jar包的形式提供,包含了ZK的运行时环境和所有UI组件。在开发过程中,这些jar包会被添加到项目的类路径中,以便调用ZK的API进行开发。开发者需要了解如何正确引入和使用这些jar包,以...
3. **如何使用云笔记jar包**:开发者在自己的项目中使用这个jar包时,需要将其添加到项目的类路径中,以便运行时能够找到并加载其中的类。这可以通过IDE(如Eclipse、IntelliJ IDEA)的设置,或者在命令行通过`java ...
Java的JVM(Java Virtual Machine)是Java程序运行的基础,它负责解释和执行字节码。在实际开发中,为了确保代码的安全性、完整性和防止恶意篡改,我们需要对Java的JAR(Java Archive)包进行代码签名。本文将深入...
本笔记将详细阐述Struts2的配置过程及核心jar包的使用。 一、Struts2概述 Struts2是Apache软件基金会的开源项目,它继承了Struts1的优点并解决了其局限性,提供了更加优秀的行动(Action)控制、拦截器...
在描述中提到的"spring笔记一helloworld"工程文件中,关键的jar包包括: 1. **spring-core.jar**:这是Spring框架的基础,包含了Spring的核心类和工具类,如BeanFactory和ApplicationContext接口,以及用于反射和...
这涉及到`spring-mvc` jar包,同时还需要`servlet-api.jar`和`jsp-api.jar`来支持Servlet和JSP运行。 3. **Mybatis配置**:Mybatis的jar包包括`mybatis.jar`和`mybatis-spring.jar`,前者包含Mybatis的主要功能,后...
“相关帮助文档jar包”则指的是MyBatis的官方文档或者第三方整理的API文档,以jar包的形式提供,方便开发者离线查阅。这类文档通常会包含MyBatis的类库概述、API接口详细说明、示例代码以及最佳实践等,是开发者理解...
7. **java.txt**:这是一个文本文件,可能包含了关于Java环境的配置信息、版本信息或者开发者笔记,为使用这些jar包提供参考。 在实际开发中,这些jar包可以组合使用,提供从基础的文本编辑到复杂的数据库操作和...
这些jar包是项目运行的必要依赖,确保了功能的正常实现。 "学习"和"java后端"标签表明这个项目是作为学习材料设计的,适合初学者或有一定基础的学习者。通过阅读源码和笔记,你可以逐步了解如何使用Java语言和...
9. **学习笔记资料**:配合jar包的学习笔记资料,可能包括了MyBatis的基本概念、配置、使用方法、最佳实践等内容,是快速理解和掌握MyBatis的好帮手。建议使用Notepad++这样的文本编辑器打开,因为Notepad++支持代码...
注意,Zeppelin也支持通过 `%dep` 命令动态引入JAR包,这可以在不重启解释器的情况下加载新的依赖。例如,你可以在一个笔记本文档的开头输入 `%dep z.load("/path/to/jar/httpclient-4.5.jar")`,然后就可以在该...
本笔记主要讨论的是在实习过程中可能会遇到的一些核心jar包,它们对于构建Web应用,尤其是与数据库交互时至关重要。以下将对这些jar包进行详细解读: 1. **mysql-connector-java-5.1.7-bin.jar**: 这是MySQL官方...
这个“黑马程序员 JPA详解视频教程配套源代码 笔记 jar包 很全的”资源提供了全面的学习材料,包括源代码、笔记和必要的库文件,非常适合初学者或者想要深入理解JPA的开发者。 首先,JPA的核心概念是实体(Entity)...
标题 "TT,Timetens jar包,java调用示例" 暗示我们要讨论的是如何在Java环境中使用Timetens数据库的JDBC驱动程序。Timetens是Oracle公司的一个高性能、内存中的数据管理解决方案,特别适合实时分析和交易处理。在Java...
标题中的“mysql连接数据库jar包”特指的是`mysql-connector-java`,这是MySQL官方提供的JDBC驱动程序。这个JAR文件包含了MySQL Connector/J,它是MySQL与Java应用程序之间的接口。当你在Java项目中使用这个JAR文件...
这个压缩包包含的是DWR的实例、相关的jar包以及两个重要的JavaScript文件——`engine.js`和`util.js`,这些都是学习DWR的关键组件。 1. **DWR基础概念**: DWR的核心功能是提供一种方式,使得客户端JavaScript可以...
本篇笔记将深入探讨Mybatis的配置过程,以及如何添加必要的jar包,确保项目的正常运行。 首先,我们要理解Mybatis的基本架构。Mybatis的核心组件包括SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession和...