Android动态加载外部jar包及jar包中图片等资源文件
Android动态加载外部jar包及jar包中图片等资源文件Android应用程序由Java开发,因此Java中许多实用的特性,在Android中也有体现。动态加载Class,也就是外部jar包,在Java中简单的方法就是在项目的Bulid Path中导入jar,然后就可以使用jar包中的Class文件,这些,都需要java虚拟机的支持。Android的虚拟机与java虚拟机有区别。所以在
Android动态加载外部jar包及jar包中图片等资源文件
Android应用程序由Java开发,因此Java中许多实用的特性,在Android中也有体现。动态加载Class,也就是外部jar包,在Java中简单的方法就是在项目的Bulid Path中导入jar,然后就可以使用jar包中的Class文件,这些,都需要java虚拟机的支持。
Android的虚拟机与java虚拟机有区别。所以在动态加载jar包上面有区别。简单来说就是android的虚拟机不能识别jar包,需要将jar包转换为可识别的dex文件(android系统可执行文件)。
Android中动态加载jar包的类,使用DexClassLoader来实现。
Jar包中可以打进android项目res文件夹下的资源文件,android中亦可以对jar包中的资源文件进行加载。
Android中加载jar包中的如txt,png等文件,使用JarFile类进行。
2.制作jar包,转换为dex文件
使用面向接口编程:
2.1写好功能接口与接口的实现。
2.2将接口打成IDynamic.jar,将接口实现打成Dynamic.jar
面向接口编程,调用jar包的项目导入接口的jar包,接口实现的jar包放在项目外部,用于调用。
2.3将功能接口的实现类的jar包转为dex文件
1) 将Dynamic.jar复制到adt-bundle-windows-x86-20131030\sdk\build-tools\android-4.4,将jar包转为android识别的dex文件。
2) 进入cmd,cd到上面的目录,执行命令:
dx --dex --output = Dynamic_temp.jar Dynamic.jar
Dynamic_temp.jar是要生成的dex包。
注:jar包中可以将res中的资源打包进去。
3.使用jar包,动态加载。
1. 将接口实现类的jar包Dynamic_temp.jar导入到模拟器的sd卡上,为了方便,直接导入根目录下。
2. 将接口IDynamic.jar导入需要调用的项目中。
3.1动态加载jar包中的Class,例子是在activity中:
|
|
在按钮的点击事件中调用jar中的方法:
|
3.2动态加载jar包中的资源:图片、文本等
将jar包中打入资源文件,例子中是res/drawable-mdpi/ic_launcher.png,及jar自带的META-INF/MANIFEST.MF文件。
3.2.1解析jar包中的文本文件:
|
将从jar包中读出的文本文件,以inputStream流的形式读出,再输出。
3.2.2 解析jar包中的图片
将jar包中的图片以inputStream流的形式读出,再将inputStream流转为bmp图片对象,进行使用。
|
效果图
http://wenku.baidu.com/link?url=a_7Mz0z7EWH3JkCkqc4rFpivzkDsFVIyr-smsDqyoeAAJq4x_w4QOllzNoJp4OxjEnSmCVnGA-NAfkMdu1lWK6ahc7nI-RU3nlTOfATk58u
更多推荐
所有评论(0)