Android studio导出jar包,作为插件化jar包的步骤
来源:互联网 发布:王宝强离婚案 知乎 编辑:程序博客网 时间:2024/06/05 19:21
1、一般会在主工程里面新增一个module,类型为Android Library,命名为dexlibs
2、该module里面编写我们的插件内容,比如:
3、选择build,make该lib,这样会在该module下的build-》intermediates-》bundles-》debug下会生成一个classes.jar文件。
该文件就是工程编译出来的可用的jar包。但是该jar包只是被java虚拟机使用,而我们的android是davilk或art虚拟机,不能识别java字节码,必须通过dx工具转换一下才能被
DexClassLoader识别
4、接着,使用dx工具转换,该工具在Android\sdk\build-tools\,具体的sdk版本,比如我是使用的是\25.0.2,在该文件夹下面就有dx.bat这个可执行文件,把我们的源classes.jar放到该目录下,执行如下命令:
dx --dex --output=loader_dex.jar classes.jar
在该目录下就生成了loader_dex.jar文件。
5、这时候我们在宿主中,就能使用该jar包中的类了。如:
File dexOutputDir = getDir("dex",0);//在data/data/xx包名/下面创建一个app_dex文件夹。 String dexPath = Environment.getExternalStorageDirectory().toString() + File.separator + "loader_dex.jar";//sdcard中的 // 4.1以后不能够将optimizedDirectory(即第二个参数)设置到sd卡目录, 否则抛出异常. 所以我们使用内部存储路径dexOutputDir DexClassLoader loader = new DexClassLoader(dexPath,dexOutputDir.getAbsolutePath(),null,getClassLoader()); try { Class clz = loader.loadClass("com.tongxt.mylibrary.ShowToastImpl"); Method method = clz.getDeclaredMethod("showToast", Context.class); method.invoke(clz.newInstance(), this); } catch (Exception e) { e.printStackTrace(); }
参考文章:
Android动态加载jar、apk的实现
android动态加载Jar/dex--原创
阅读全文
0 0
- Android studio导出jar包,作为插件化jar包的步骤
- Android Studio导出Jar包
- Android Studio导出jar包
- Android Studio导出Jar包
- android studio导出jar包
- Android studio导出jar包
- Android Studio导出Jar包
- Android Studio导出jar包
- Android studio 导出jar包
- Android Studio导出Jar包
- Android Studio导出Jar包
- android studio导出jar包的方法
- 用Android Studio 导出jar包
- Android Studio导出Jar包并混淆
- 通过Android Studio 导出Jar包
- Android Studio导出Jar包并混淆
- Android Studio导出 Jar依赖包
- 使用Android Studio导出Jar包
- 手动添加jar包到本地maven仓库
- 机器学习算法 Python&R 速查表
- Python 引包 argparse 程序执行解析命令行参数介绍
- JS异步执行实例代码
- EMIF接口
- Android studio导出jar包,作为插件化jar包的步骤
- OC基础-self关键字的用法10
- xinjiang.py
- mysql 的权限体系
- Easyui中combogrid从Json数据中载入显示的数据
- Android中取消标题栏的方法
- 日期转化
- myql设置最大连接数
- 路由刷机guide