Android动态加载Jar
来源:互联网 发布:2017淘宝法律法规纳税 编辑:程序博客网 时间:2024/05/17 21:07
定义接口, 把实现接口的部分打包成jar 在
将打包好的jar拷贝到SDK安装目录android-sdk-windows\platform-tools下,DOS进入这个目录,执行命名:
dx --dex --output=test.jar update.jar
核心加载代码
@SuppressLint("NewApi")
private void executeLoadDex() {// sd中创建的动态加载新文件夹
// public static final String DYNAMIC_FOLDER_PATH = new StringBuilder(
// Environment.getExternalStorageDirectory().getAbsolutePath()).append(File.separator).append("MCC_DYNAMIC")
// .toString();
// // 动态加载jar名称
// public static final String DYNAMICLOAD_JAR_NAME = "update.jar";
File optimizedDexOutputPath = new File(
Constant.DYNAMIC_FOLDER_PATH + File.separator + Constant.DYNAMICLOAD_JAR_NAME);
if (optimizedDexOutputPath.exists()) {
WLog.i("optimizedDexOutputPath.exists()");
/**
* 定义DexClassLoader //第一个参数:是dex压缩文件的路径 //第二个参数:是dex解压缩后存放的目录
* //第三个参数:是C/C++依赖的本地库文件目录,可以为null //第四个参数:是上一级的类加载器
*/
File dexOutputDir = Utils.getContext().getDir("dex", 0);
DexClassLoader cl = new DexClassLoader(optimizedDexOutputPath.getAbsolutePath(),
dexOutputDir.getAbsolutePath(), null, getClassLoader());
try {
Class<?> libClass = cl.loadClass("com.example.javasdk.dynamic.JarILoaderimpl");
WLog.i("optimizedDexOutputPath.exists()" + libClass);
ILoader lib = (ILoader) libClass.newInstance();
Toast.makeText(Utils.getContext(), "CoreService" + lib.sayHi(), Toast.LENGTH_SHORT).show();
WLog.i("CoreService executeLoadDex lib.startAllTask()");
// lib.startAllTask();
} catch (Exception e) {
WLog.e("CoreServiceException" + e.toString());
e.printStackTrace();
}
}
}
阅读全文
0 0
- android 动态加载jar
- android动态加载jar
- Android动态加载jar
- android动态加载jar
- android动态加载jar
- Android动态加载Jar
- Android 如何动态加载 .jar
- Android 如何动态加载 .jar
- Android动态加载jar/dex
- Android动态加载jar/dex
- Android动态加载jar/dex
- Android动态加载jar/dex
- Android动态加载jar/dex
- Android 中动态加载 .jar
- Android动态加载jar/dex
- Android动态加载jar/dex
- Android动态加载jar/dex
- Android动态加载jar/dex
- Android开发优秀开源项目汇总(不断更新)
- 事件
- Android和H5之间的交互
- css3的新属性border-radius的用法
- python日期与时间
- Android动态加载Jar
- node路径
- CSS及JS文档中文注释代码在浏览器中显示乱码
- 正则表达式
- 读深入理解Java虚拟机
- 使用FileProvider共享文件
- 原生js实现ajax的用户简单登入
- 为你的网站配置一个小巧的框架( CodeIgniter)
- C#之委托