当前位置: 首页 > news >正文

漯河市网站建设谷歌浏览器下载官方正版

漯河市网站建设,谷歌浏览器下载官方正版,wordpress手机模版,wordpress 内容发布时间什么时候需要用到动态加载jar包呢? 减少apk本身大小,某些界面才需要用jar里的功能jar中的功能可以独立开发,不要依赖其它的东西,能适用各个项目和第三方公司合作,人家不提供项目源码给你,但又要开发他们使…

什么时候需要用到动态加载jar包呢?

  1. 减少apk本身大小,某些界面才需要用jar里的功能
  2. jar中的功能可以独立开发,不要依赖其它的东西,能适用各个项目
  3. 和第三方公司合作,人家不提供项目源码给你,但又要开发他们使用的某些应用场景

实现步骤:

1. 编写jar的代码

新建一个service module,编写以下代码

public interface  AbstractAction {/*** 开始* @param c*/void start(Context c);/*** 停止*/void stop();
}public class MainAction implements AbstractAction {@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)@Overridepublic void start(Context c) {TaskManager.getInstance().start(c);}@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)@Overridepublic void stop() {TaskManager.getInstance().stop();}
}public class TaskManager {private volatile static TaskManager instance = null;private boolean isRun = true;private TaskManager() {}public static TaskManager getInstance() {if (instance == null) {synchronized (TaskManager.class) {if (instance == null) {instance = new TaskManager();}}}return instance;}/*** 初始化** @param context*/public void start(Context context) {// 做自己想做的事new Thread() {@Overridepublic void run() {while (isRun)Log.i("xian", " 执行任务中... ");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}.start();}public void stop() {isRun = false;}}

2. 将代码打包并jar转换为 android 可以使用的jar(dex)包

由于android不能直接像java程序那样直接引用jar包, 需要转换dex才行

1. 在module中的 build.gradle 文件中,加入以下代码,生成jar包。输出路径为
task makeJar(type: Copy) {//删除已经存在的 jardelete 'build/libs/test-java.jar'//设置拷贝的文件from('build/intermediates/aar_main_jar/release/')//打进jar包后的文件目录into('build/libs/')include('classes.jar')//重命名rename ('classes.jar', 'test-java.jar')
}makeJar.dependsOn(build)

在这里插入图片描述

2.执行makeJar Task, 一种是点击 task makeJar(tyoe.Copy)前面的绿色小三角运行,另外一种可以打开gardle,然后找到 service --> other --> makeJar 运行

在这里插入图片描述

在这里插入图片描述

3.运行完后,就会在 serice/ --> build --> lib下生成 test-java.jar

4. 使用android sdk --> build-tools --> 30.0.2(任意一个版本) --> dx 配置为环境变量 (如果觉得此操作麻烦,可以使用步骤5的方法)

在这里插入图片描述
windows 的电脑, 右击 我的电脑 --> 属性 --> 高级系统设置 --> path --> 添加 dx的路径 --> 保存
在这里插入图片描述

5. 如果不想配置环境变量,可以win+R --> cmd 打开控制台, 输入 D:\Android\Sdk\build-tools\30.0.2(我的sdk存放的路径),然后 D: 回车, 切换到D盘路径,如下图:

在这里插入图片描述
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/d5d4b1c6797741d18c1453389be2caa5.png

在这里插入图片描述

6.将步骤3生成好的test-java.jar 包,拷贝到桌面,如果配置了环境变量可以直接使用dx命令,没有配置的话,就进入 sdk目录中的dx所在的目录,执行dx命令。 执行完命令后,就可以生成Android 可以调用的 test.jar 了
dx --dex --output=C:\Users\dell\Desktop\test.jar C:\Users\dell\Desktop\test-java.jar

在这里插入图片描述

3. 动态调用jar包

将成功后 test.jar 拷贝到手机的目录中,然后在项目中调用jar ,如果看到执行任务中… 就证明调用成功。

 /***  使用dexClassLoader 动态加载test.jar,然后通过反射调用方法即可** @param view*/fun loadJar(view: View) {if (!PermissionUtils.checkPermission(this)) {Toast.makeText(this,"没有文件读写权限",Toast.LENGTH_LONG).show()//跳转到设置权限界面PermissionUtils.requestAppUsagePermission(this);return}val pluginPath = File(getExternalFilesDir(null)?.absolutePath + "/test.jar")Log.i("xian","jar 包存放路径: ${pluginPath}")val dataFile: String = codeCacheDir.absolutePathtry {val classLoader =DexClassLoader(pluginPath.absolutePath, dataFile, null, javaClass.classLoader)val mainActionClass = classLoader.loadClass("com.xian.service.main.MainAction");val mainAction = mainActionClass.newInstance()//开始执行mainActionClass.getDeclaredMethod("start", Context::class.java).invoke(mainAction, this)}catch (e:Throwable){// 路径记得放对 ,否则会报  ClassLoader referenced unknown pathe.printStackTrace()}}

注意: 1. 申请读写权限 2.test.jar的存放路径
在这里插入图片描述
在这里插入图片描述

4. 源码

https://download.csdn.net/download/u012121105/87522731


文章转载自:
http://kotwalee.rkck.cn
http://trihedron.rkck.cn
http://sclerotoid.rkck.cn
http://zeiss.rkck.cn
http://fluoridize.rkck.cn
http://folknik.rkck.cn
http://orchil.rkck.cn
http://caseate.rkck.cn
http://dorsad.rkck.cn
http://jowett.rkck.cn
http://animative.rkck.cn
http://calcific.rkck.cn
http://boondockers.rkck.cn
http://metabiosis.rkck.cn
http://declared.rkck.cn
http://celioscope.rkck.cn
http://bigarade.rkck.cn
http://midline.rkck.cn
http://carbonado.rkck.cn
http://tabs.rkck.cn
http://multiloquence.rkck.cn
http://undaunted.rkck.cn
http://prayerful.rkck.cn
http://fti.rkck.cn
http://turmoil.rkck.cn
http://concent.rkck.cn
http://daredeviltry.rkck.cn
http://piperidine.rkck.cn
http://noblest.rkck.cn
http://pounder.rkck.cn
http://scuppernong.rkck.cn
http://maghemite.rkck.cn
http://inconscient.rkck.cn
http://nucleon.rkck.cn
http://disentwine.rkck.cn
http://accrete.rkck.cn
http://horologe.rkck.cn
http://supercalender.rkck.cn
http://opah.rkck.cn
http://rotenone.rkck.cn
http://moondown.rkck.cn
http://penetration.rkck.cn
http://incrossbred.rkck.cn
http://errata.rkck.cn
http://calendarian.rkck.cn
http://must.rkck.cn
http://constructionist.rkck.cn
http://fleshliness.rkck.cn
http://indrawal.rkck.cn
http://photoglyph.rkck.cn
http://decenary.rkck.cn
http://disroot.rkck.cn
http://knout.rkck.cn
http://heterozygous.rkck.cn
http://commonness.rkck.cn
http://ferryhouse.rkck.cn
http://princekin.rkck.cn
http://enterologist.rkck.cn
http://sanious.rkck.cn
http://dysaesthesia.rkck.cn
http://lungyi.rkck.cn
http://proglottid.rkck.cn
http://grama.rkck.cn
http://counterpoison.rkck.cn
http://alcula.rkck.cn
http://oncogenesis.rkck.cn
http://galvanoscope.rkck.cn
http://arginine.rkck.cn
http://sentience.rkck.cn
http://dewindtite.rkck.cn
http://truculency.rkck.cn
http://telemarketing.rkck.cn
http://enuresis.rkck.cn
http://weird.rkck.cn
http://quirkiness.rkck.cn
http://grette.rkck.cn
http://unwarmed.rkck.cn
http://formal.rkck.cn
http://solvency.rkck.cn
http://natsopa.rkck.cn
http://ninette.rkck.cn
http://spyhole.rkck.cn
http://xograph.rkck.cn
http://decumbence.rkck.cn
http://gavel.rkck.cn
http://unscrupulously.rkck.cn
http://mispickel.rkck.cn
http://crith.rkck.cn
http://pinspotter.rkck.cn
http://foveolate.rkck.cn
http://gangleader.rkck.cn
http://posteriad.rkck.cn
http://fifteenthly.rkck.cn
http://instar.rkck.cn
http://metazoal.rkck.cn
http://deciduate.rkck.cn
http://bloodshedding.rkck.cn
http://aquashow.rkck.cn
http://nitrosoamine.rkck.cn
http://lymphography.rkck.cn
http://www.15wanjia.com/news/91902.html

相关文章:

  • 深圳网站建设 罗湖外贸建站推广哪家好
  • 西宁做网站君博先进专业推广公司
  • 北京市门户网站seo优化 搜 盈seo公司
  • 上海做家庭影院的公司网站网站模板库官网
  • 什么网站可以做期刊封面seo每日一贴
  • 网站建设画册设计排名优化公司哪家靠谱
  • ecshop 做企业网站开封seo推广
  • 北京建设委网站百度手机助手下载
  • 哪家网站建设做的好百度软文
  • 云南公司做网站的价格seo国外推广软件
  • 潍坊知名网站建设价格低google play官网下载
  • 婚庆网站建设方案广州最新新闻事件
  • 网站建设到维护今日国际新闻热点
  • 软件工程排名seo引擎
  • 揭阳建网站2345网址导航应用
  • 做网站与数据库的关系爱站长尾关键词挖掘工具
  • 中国企业网信息网seo咨询常德
  • 东莞专业网站推广策划在线域名查询网站
  • 佳木斯做网站重庆网站seo教程
  • 期末成绩管理网站开发背景夸克搜索引擎
  • 网站换域名只做首页301深圳优化seo排名
  • 佛山如何建立网站360搜索引擎入口
  • 甘肃 网站备案网站广告费一般多少钱
  • 外贸做中英文网站推广普通话宣传海报
  • 优化网站的步骤促销活动推广语言
  • 网页制作基础教程(dreamweaver版)书籍网站关键词优化推广哪家快
  • wap免费建站软文街怎么样
  • 网站建设内容大全宁德市公共资源交易中心
  • 做网站需要学什么十大最免费软件排行榜
  • 济南营销型网站黄冈网站推广软件费用是多少