CN115454575A - jar包转换并自动加载的方法、装置、设备及存储介质 - Google Patents
jar包转换并自动加载的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115454575A CN115454575A CN202211195222.4A CN202211195222A CN115454575A CN 115454575 A CN115454575 A CN 115454575A CN 202211195222 A CN202211195222 A CN 202211195222A CN 115454575 A CN115454575 A CN 115454575A
- Authority
- CN
- China
- Prior art keywords
- dex file
- jar
- conversion
- library
- converted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000012544 monitoring process Methods 0.000 claims abstract description 28
- 238000004590 computer program Methods 0.000 claims description 18
- 230000008859 change Effects 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 9
- 238000005538 encapsulation Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 22
- 238000011161 development Methods 0.000 abstract description 6
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 11
- 238000004806 packaging method and process Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种jar包转换并自动加载的方法、装置、设备及存储介质,所述方法包括:响应Android系统服务发出的格式转换通知消息,基于第一目标路径获取待转换jar包,并利用预设的格式转换工具库将所述待转换jar包转换为dex文件,并将转换得到的dex文件存储至第二目标路径对应的dex文件库;当基于预设的监听脚本监听到所述dex文件库发生变化时,根据所述dex文件库中更新后的dex文件进行程序重新加载。本发明能够实现jar包的自动转换和自动加载,无需通过Windows平台进行格式转换并手动传输文件和手动加载,有效提高了安卓平台下的应用软件的开发或更新过程的效率。
Description
技术领域
本发明涉及计算机技术领域,尤其是涉及一种jar包转换并自动加载的方法、装置、设备及存储介质。
背景技术
Java虚拟机(JVM)是windows平台下的虚拟机,为java应用提供运行环境,负责将java字节码转换为特定于机器的代码。而Dalvik虚拟机(DVM)设计应用于Android系统平台下,是Android平台上的Java虚拟机,每一个Android应用在Android底层都会对应一个独立的Dalvik虚拟机实例。DVM与JVM相比,windows端一般使用的是JVM,而Android平台下使用的是DVM。JVM运行的是.class文件,而DVM运行的是.dex文件。因此在开发过程中编写多个java程序时,需要经过编译生成.class文件,再将多个.class文件打包成jar包的形式,该jar包可以运行在搭建了java运行环境下的windows平台上面。但是在Android平台下,该jar包文件却不能直接运行在Android系统底层下,而是要经过java环境下的工具进行转换,将Jar包文件转换成.dex格式的文件,才可以运行在Android底层。
因此,想要实现在Android系统底层下直接运行java程序,必须要实现jar包的转换,转换成.dex格式的文件。目前,在Android平台上并不能直接将jar包转换为dex格式文件,需要借助windows平台dx工具敲命令进行转换,再将转换后的.dex格式文件手动从windows平台上移动到andorid系统下,并且要手动加载运行转换后的dex文件。综上,现有技术在开发或更新安卓平台的应用软件的过程费时费力,操作繁琐,导致安卓平台下的应用软件的开发或更新过程效率低下。
发明内容
本发明旨在提供一种jar包转换并自动加载的方法、装置、设备及存储介质,以解决上述技术问题,从而提高安卓平台下的应用软件的开发或更新过程的效率。
为了解决上述技术问题,本发明实施例提供了一种jar包转换并自动加载的方法,包括:
响应Android系统服务发出的格式转换通知消息,基于第一目标路径获取待转换jar包,并利用预设的格式转换工具库将所述待转换jar包转换为dex文件,并将转换得到的dex文件存储至第二目标路径对应的dex文件库;
当基于预设的监听脚本监听到所述dex文件库发生变化时,根据所述dex文件库中更新后的dex文件进行程序重新加载。
进一步地,所述格式转换工具库为基于dx工具源码进行封装生成得到。
进一步地,所述监听脚本为通过inotifywait命令进行dex文件库状态变化检测。
进一步地,所述dex文件库发生变化的情况包括:dex文件内容变化、dex文件位置变化、新建dex文件或删除dex文件。
进一步地,所述当基于预设的监听脚本监听到所述dex文件库发生变化时,根据所述dex文件库中更新后的dex文件进行程序重新加载,具体包括:
当基于预设的监听脚本监听到所述dex文件库中的目标dex文件发生内容变化时,根据更新后的目标dex文件进行程序重新加载。
进一步地,所述Android系统服务用于:
在接收到编程软件平台发送的待转换jar包之后,在发出所述格式转换通知消息之前,按照预设的检验规则对所述待转换jar包进行格式检验;
当确定对所述待转换jar包的格式检验通过之后,将所述待转换jar包存储至与所述第一目标路径对应的数据库,并发出格式转换通知消息。
进一步地,所述编程软件平台为Windows平台;所述Windows平台中的编程软件为通过udp协议将所述待转换jar包传输至所述Android系统服务。
本发明实施例还提供一种jar包转换并自动加载的装置,包括:
转换模块,用于响应Android系统服务发出的格式转换通知消息,基于第一目标路径获取待转换jar包,并利用预设的格式转换工具库将所述待转换jar包转换为dex文件,并将转换得到的dex文件存储至第二目标路径对应的dex文件库;
加载模块,用于当基于预设的监听脚本监听到所述dex文件库发生变化时,根据所述dex文件库中更新后的dex文件进行程序重新加载。
本发明实施例还提供一种终端设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述计算机程序时实现任一项所述的jar包转换并自动加载的方法。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现任一项所述的jar包转换并自动加载的方法。
与现有技术相比,本发明具有如下有益效果:
本发明实施例提供了一种jar包转换并自动加载的方法、装置、设备及存储介质,所述方法包括:响应Android系统服务发出的格式转换通知消息,基于第一目标路径获取待转换jar包,并利用预设的格式转换工具库将所述待转换jar包转换为dex文件,并将转换得到的dex文件存储至第二目标路径对应的dex文件库;当基于预设的监听脚本监听到所述dex文件库发生变化时,根据所述dex文件库中更新后的dex文件进行程序重新加载。本发明能够实现jar包的自动转换和自动加载,无需通过Windows平台进行格式转换并手动传输文件和手动加载,有效提高了安卓平台下的应用软件的开发或更新过程的效率。
附图说明
图1是本发明提供的jar包转换并自动加载的方法的流程示意图之一;
图2是本发明提供的jar包转换并自动加载的方法的流程示意图之二;
图3是本发明提供的Androidapp中的jar包转换模块的工作流程示意图;
图4是本发明提供的jar包转换并自动加载的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,本发明实施例提供了一种jar包转换并自动加载的方法,可以包括步骤:
S1、响应Android系统服务发出的格式转换通知消息,基于第一目标路径获取待转换jar包,并利用预设的格式转换工具库将所述待转换jar包转换为dex文件,并将转换得到的dex文件存储至第二目标路径对应的dex文件库;
S2、当基于预设的监听脚本监听到所述dex文件库发生变化时,根据所述dex文件库中更新后的dex文件进行程序重新加载。
需要说明的是,在Android系统中,可以通过一个Androidapp进行jar包的自动转换及dex文件的自动加载。具体地,当接收到Android系统服务发出的格式转换通知消息时,根据当前需要转换的jar文件所在的第一目标路径获取得到待转换jar包,通过预设的格式转换工具将其转换为dex文件的形式,并将转换得到的dex文件存储到指定的第二目标路径下。另外,部署一个监听脚本对指定的第二目标路径下的dex文件库进行实时监听,当该dex文件库内的文件内容发生变化时,则根据更新后的dex文件进行程序重新加载(杀死旧的进程,运行新的进程),至此,即可在安卓平台上通过Dalvik虚拟机运行最新更新的应用程序。
可以理解的是,本发明实施例中的进程指的是dex文件加载类后运行起来的一个程序,这在系统中相当于运行着一个进程。当重新接收了一个新的dex包文件后,如果要运行新dex文件里面的类,就必须要先杀死旧的dex文件程序再运行新的dex文件程序。加载一个新dex文件里面的类,就是相当于运行了一个新的进程。
需要说明的是,Androidapp指的是具体的一个安卓应用,该app可以有自身的基础功能,如登录、管理中控界面工程、加载中控操作界面等等。
需要说明的是,指定路径(第一目标路径)一般是底层程序和Androidapp一起协商好的路径,由底层程序负责接收jar包放到该指定路径上,再通知app去该路径上拿jar包,android系统中一般是放是在/data/下,在/data/下新建任意一个文件夹即可。
需要说明的是,dex文件发生变化通常指的是有新的dex文件替换了旧的dex文件,因为dex文件是放在固定的一个路径下,如果有新的dex文件接收了必然会替换掉旧的dex文件,dex文件有新旧之分是因为当前项目的中控工程是由用户自己自定义的,根据现场的需求来编程,比如一开始用户想控制灯光,那么把控制灯光的逻辑编程好生成jar包,发送给系统底层程序,再通知app转换并加载;如果用户后面想控制灯光的同时还要开空调,那么中控工程又需要重新编译生成的新的jar包再发送给底层程序进行接收,再由app转换加载,那么jar包就会有新旧之分,代表里面实现的中控功能不一样。
本发明实施例提供的jar包转换并自动加载的方法,通过配置于安卓平台上的格式转换工具直接将jar包转换为dex文件的形式,并通过监听脚本实时对更新后的dex文件进行重新加载,从而实现jar包的自动转换和自动加载,无需通过Windows平台进行格式转换并手动传输文件和手动加载,有效提高了安卓平台下的应用软件的开发或更新过程的效率。
进一步地,所述格式转换工具库为基于dx工具源码进行封装生成得到。
进一步地,所述监听脚本为通过inotifywait命令进行dex文件库状态变化检测。
进一步地,所述dex文件库发生变化的情况包括:dex文件内容变化、dex文件位置变化、新建dex文件或删除dex文件。
进一步地,所述当基于预设的监听脚本监听到所述dex文件库发生变化时,根据所述dex文件库中更新后的dex文件进行程序重新加载,具体包括:
当基于预设的监听脚本监听到所述dex文件库中的目标dex文件发生内容变化时,根据更新后的目标dex文件进行程序重新加载。
进一步地,所述Android系统服务用于:
在接收到编程软件平台发送的待转换jar包之后,在发出所述格式转换通知消息之前,按照预设的检验规则对所述待转换jar包进行格式检验;
当确定对所述待转换jar包的格式检验通过之后,将所述待转换jar包存储至与所述第一目标路径对应的数据库,并发出格式转换通知消息。
在本发明实施例中,Android系统服务在接收到编程软件平台发送的待转换jar包,需要先对待转换jar包进行格式检验。格式检验第一步首先是对接收到的文件进行解压,解压后判断文件名后缀是否是以jar结尾;第二步是检查jar包文件是否有效,因为如果接收过程中出现异常,jar包内容不完整或者数据类型不对、损坏会导致无法顺利转换成dex文件,因此要通过再次解压jar包文件查看是否有META-INF/MANIFEST.MF这份清单文件(一个正常有效的jar包下必须由这个清单文件),以及检查jar包中crtprog文件夹是否存在要加载的主类(crtprog.Main)。如果存在的话,那么就是正确有效的jar包。
进一步地,所述编程软件平台为Windows平台;所述Windows平台中的编程软件为通过udp协议将所述待转换jar包传输至所述Android系统服务。
基于上述方案,为便于更好的理解本发明实施例提供的jar包转换并自动加载的方法,以下进行详细说明:
需要说明的是,现有技术存在以下缺点:
1、Jar包文件转换成.dex格式文件需要借助windows平台dx工具敲命令进行转换;
2、该dx工具运行的windows平台需要搭建java运行环境,搭建过程既麻烦又复杂;
3、转换后的.dex格式文件还要手动从windows平台上移动到andorid系统下运行,并且手动加载该dex文件的类,才可以把程序运行起来。
本发明所要解决的问题在于,在Android系统应用中实现jar包文件的接收处理,并自动将接收到的jar包文件转换成dex格式的文件置于android系统目录下,然后通过脚本检测该dex文件所在的目录下是否发生改变,一旦文件发生变动,则重新杀死旧的进程,自动加载新dex文件的类,运行新的进程,免去了在Windows平台搭建java运行环境、手动敲命令转换格式以及手动移动dex文件的过程,完全在android应用中实现接收转换并自动加载。
本发明实施例提供的jar包转换并自动加载的方法主要包括两部分:第一部分是将dx工具(是android系统用来专门把jar转成dex的工具)的源码封装成库的形式,放到Androidapp上进行调用,实现将jar包自动转换为dex文件的功能;第二部分是检测android系统指定目录下存放的dex文件是否发生变化,一旦发生变化则重新加载dex文件,实现dex文件的状态监听及自动加载功能。
请参见图2,本发明实施例可以通过以下步骤实现:
(1)用户在windows平台上的中控编程软件,通过java编程语言进行编程,生成指令解析层的源文件(即java编译后生成的jar包文件),点击下载,软件会通过udp的方式发送jar包文件到Android系统服务上,由Android系统中的服务负责接收jar包,然后对接收到的jar包文件进行格式检验,如果格式无误,则存放到指定路径,并通知Androidapp进行转换。
(2)接下来的工作就由Androidapp的格式转换模块进行处理,该格式转换模块可以通过官网获取到的dx工具源码(例如可以从github上下载有关jar包转换功能的代码),将其封装成jar包(封装成库的形式)集成到app中,在AndroidStudio下开发app的过程中,可以用到dx库中的转换方法对指定路径下的jar包进行转换,通过带入参数(--dex),调用dalvik-dx.jar(即dx库)中的main方法,即可将jar包进行转换成dex格式。
因此当Androidapp接收到jar包的获取通知(相当于格式转换通知)后,可以获取待转换jar包,并通过在android系统中自动调用命令转换,无需通过手动的方式在windows下进行敲命令转换。
需要说明的是,在dx工具库中调用dx命令都是需要带参数的,比如
dx--dex--output=/data/hera/Hello_dex.jar/data/hera/Hello.jar
dx:转换工具库中的命令
--dex:参数之一,表示调用dx命令是将文件转换输出dex格式文件
--output:第一个路径是转换后的dex格式文件存放的路径,第二个路径是即将被转换的jar包格式文件存放的路径。
带入参数的操作过程首先是找到新接收到的jar包文件,检验完格式然后调用dx文件转换工具库中的main方法,然后转换后的dex文件被存放到指定的路径下。
Androidapp中的jar包转换模块的工作过程如图3所示,creator_dex只是转换后的dex文件的名字,可以根据需求自定义,虽然是以jar后缀结尾,但是里面是dex格式,不是jar包格式。
(3)转换后的dex文件,Androidapp会将其放到系统指定路径下,系统底层有一个检测文件变化的脚本,通过inotifywait命令(用于监听系统下文件或者文件夹变化的信息,例如监听目录里面文件内容是否发生修改、文件是否被移动、是否是新创建,是否被打开,是否被删除)检测当前路径存放的dex文件是否发生变化,如果发生变化,脚本会重新加载该dex文件的类。
需要说明的是,重新加载新的dex文件的类,就是重新运行中控工程功能,中控工程的逻辑是由用户根据现场需求来编程的,比如想按下app上的按键1,实现开灯,按下按键2,实现关灯,这样整个逻辑是由中控工程来实现,用户编好程后会编译形成jar包,然后就会被接收转换成dex格式文件,一旦加载dex文件的类,这套按键1开灯、按键2关灯的功能就能运行起来了。如果用户后续想改变控制逻辑,例如想实现按键1开灯开空调,按键2关灯关空调,也是一样通过编译生成新的jar包,再重复转换加载操作,就可以运行新的中控功能。
通过实施以上步骤,在windows平台上,用户通过中控编程软件编辑好的工程就在Android平台上通过Dalvik虚拟机加载类的方式运行起来,实现中控功能一整套的交互逻辑。
与现有技术相比,本发明实施例具有如下有益效果:
1.自动接收来自Windows平台(软件编程平台)生成的jar包文件并进行自动转换;
2.jar包转换成dex格式文件无需手动敲命令转化;
3.无需搭建java运行的环境以及复杂的手动操作,只需要进行简单的配置;
4.将转换后的dex格式文件通过脚本检测文件变化,并调用脚本进行类的加载和运用。
需要说明的是,对于以上方法或流程实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本发明实施例所必须的。
请参见图4,本发明实施例还提供一种jar包转换并自动加载的装置,包括:
转换模块1,用于响应Android系统服务发出的格式转换通知消息,基于第一目标路径获取待转换jar包,并利用预设的格式转换工具库将所述待转换jar包转换为dex文件,并将转换得到的dex文件存储至第二目标路径对应的dex文件库;
加载模块2,用于当基于预设的监听脚本监听到所述dex文件库发生变化时,根据所述dex文件库中更新后的dex文件进行程序重新加载。
进一步地,所述格式转换工具库为基于dx工具源码进行封装生成得到。
进一步地,所述监听脚本为通过inotifywait命令进行dex文件库状态变化检测。
进一步地,所述dex文件库发生变化的情况包括:dex文件内容变化、dex文件位置变化、新建dex文件或删除dex文件。
进一步地,所述加载模块2具体用于:
当基于预设的监听脚本监听到所述dex文件库中的目标dex文件发生内容变化时,根据更新后的目标dex文件进行程序重新加载。
进一步地,所述Android系统服务用于:
在接收到编程软件平台发送的待转换jar包之后,在发出所述格式转换通知消息之前,按照预设的检验规则对所述待转换jar包进行格式检验;
当确定对所述待转换jar包的格式检验通过之后,将所述待转换jar包存储至与所述第一目标路径对应的数据库,并发出格式转换通知消息。
进一步地,所述编程软件平台为Windows平台;所述Windows平台中的编程软件为通过udp协议将所述待转换jar包传输至所述Android系统服务。
可以理解的是上述装置项实施例,是与本发明方法项实施例相对应的,本发明实施例提供的一种jar包转换并自动加载的装置,可以实现本发明任意一项方法项实施例提供的jar包转换并自动加载的方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现任一项所述的jar包转换并自动加载的方法。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
所述领域的技术人员可以清楚地了解到,为的方便和简洁,上述描述的装置的具体工作过程,可参考前述方法实施例中对应的过程,在此不再赘述。
终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器、存储器。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
所述存储器可用于存储所述计算机程序,所述处理器通过运行或执行存储在所述存储器内的计算机程序,以及调用存储在存储器内的数据,实现所述终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述存储介质为计算机可读存储介质,所述计算机程序存储在所述计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种jar包转换并自动加载的方法,其特征在于,包括:
响应Android系统服务发出的格式转换通知消息,基于第一目标路径获取待转换jar包,并利用预设的格式转换工具库将所述待转换jar包转换为dex文件,并将转换得到的dex文件存储至第二目标路径对应的dex文件库;
当基于预设的监听脚本监听到所述dex文件库发生变化时,根据所述dex文件库中更新后的dex文件进行程序重新加载。
2.根据权利要求1所述的jar包转换并自动加载的方法,其特征在于,所述格式转换工具库为基于dx工具源码进行封装生成得到。
3.根据权利要求1所述的jar包转换并自动加载的方法,其特征在于,所述监听脚本为通过inotifywait命令进行dex文件库状态变化检测。
4.根据权利要求1所述的jar包转换并自动加载的方法,其特征在于,所述dex文件库发生变化的情况包括:dex文件内容变化、dex文件位置变化、新建dex文件或删除dex文件。
5.根据权利要求1所述的jar包转换并自动加载的方法,其特征在于,所述当基于预设的监听脚本监听到所述dex文件库发生变化时,根据所述dex文件库中更新后的dex文件进行程序重新加载,具体包括:
当基于预设的监听脚本监听到所述dex文件库中的目标dex文件发生内容变化时,根据更新后的目标dex文件进行程序重新加载。
6.根据权利要求1所述的jar包转换并自动加载的方法,其特征在于,所述Android系统服务用于:
在接收到编程软件平台发送的待转换jar包之后,在发出所述格式转换通知消息之前,按照预设的检验规则对所述待转换jar包进行格式检验;
当确定对所述待转换jar包的格式检验通过之后,将所述待转换jar包存储至与所述第一目标路径对应的数据库,并发出格式转换通知消息。
7.根据权利要求6所述的jar包转换并自动加载的方法,其特征在于,所述编程软件平台为Windows平台;所述Windows平台中的编程软件为通过udp协议将所述待转换jar包传输至所述Android系统服务。
8.一种jar包转换并自动加载的装置,其特征在于,包括:
转换模块,用于响应Android系统服务发出的格式转换通知消息,基于第一目标路径获取待转换jar包,并利用预设的格式转换工具库将所述待转换jar包转换为dex文件,并将转换得到的dex文件存储至第二目标路径对应的dex文件库;
加载模块,用于当基于预设的监听脚本监听到所述dex文件库发生变化时,根据所述dex文件库中更新后的dex文件进行程序重新加载。
9.一种终端设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的jar包转换并自动加载的方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述的jar包转换并自动加载的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211195222.4A CN115454575B (zh) | 2022-09-28 | 2022-09-28 | jar包转换并自动加载的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211195222.4A CN115454575B (zh) | 2022-09-28 | 2022-09-28 | jar包转换并自动加载的方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115454575A true CN115454575A (zh) | 2022-12-09 |
CN115454575B CN115454575B (zh) | 2023-08-15 |
Family
ID=84306600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211195222.4A Active CN115454575B (zh) | 2022-09-28 | 2022-09-28 | jar包转换并自动加载的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115454575B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041244A (zh) * | 2023-08-25 | 2023-11-10 | 广东保伦电子股份有限公司 | 一种批量上传音频文件的实现方法及处理终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341403A (zh) * | 2017-07-24 | 2017-11-10 | 北京理工大学 | 一种文件转换方法和装置 |
CN107861995A (zh) * | 2017-10-18 | 2018-03-30 | 福建中金在线信息科技有限公司 | Linux服务器代码实时同步方法及装置 |
CN108897562A (zh) * | 2018-06-27 | 2018-11-27 | 腾讯科技(深圳)有限公司 | 安装包更新方法、装置、介质以及设备 |
CN109933325A (zh) * | 2017-12-15 | 2019-06-25 | 阿里巴巴集团控股有限公司 | 一种dex文件构建方法、装置及系统 |
EP4012579A1 (fr) * | 2020-12-14 | 2022-06-15 | Atos Integration | Appareil géomatique ayant une architecture de calculateur utilisant les utilitaires osmosis et gdal |
-
2022
- 2022-09-28 CN CN202211195222.4A patent/CN115454575B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341403A (zh) * | 2017-07-24 | 2017-11-10 | 北京理工大学 | 一种文件转换方法和装置 |
CN107861995A (zh) * | 2017-10-18 | 2018-03-30 | 福建中金在线信息科技有限公司 | Linux服务器代码实时同步方法及装置 |
CN109933325A (zh) * | 2017-12-15 | 2019-06-25 | 阿里巴巴集团控股有限公司 | 一种dex文件构建方法、装置及系统 |
CN108897562A (zh) * | 2018-06-27 | 2018-11-27 | 腾讯科技(深圳)有限公司 | 安装包更新方法、装置、介质以及设备 |
EP4012579A1 (fr) * | 2020-12-14 | 2022-06-15 | Atos Integration | Appareil géomatique ayant une architecture de calculateur utilisant les utilitaires osmosis et gdal |
Non-Patent Citations (2)
Title |
---|
BINCDS: "android jar转dex" * |
凯哥笑的孤独: "inotifywait命令详解" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041244A (zh) * | 2023-08-25 | 2023-11-10 | 广东保伦电子股份有限公司 | 一种批量上传音频文件的实现方法及处理终端 |
Also Published As
Publication number | Publication date |
---|---|
CN115454575B (zh) | 2023-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11599348B2 (en) | Container image building using shared resources | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN106325847B (zh) | 基于iOS平台获取应用程序功能的方法和装置 | |
CN111144839B (zh) | 一种项目构建方法、持续集成系统及终端设备 | |
CN106873960B (zh) | 一种应用软件的更新方法和设备 | |
US20130152069A1 (en) | Method, apparatus and system for initiating terminal operation | |
CN113835713B (zh) | 源码包下载方法、装置、计算机设备和存储介质 | |
CN110727581B (zh) | 崩溃定位方法与电子设备 | |
WO2019085290A1 (zh) | 测试前置实现方法、装置、终端设备及存储介质 | |
CN113138768B (zh) | 应用程序包生成方法、装置、电子设备以及可读存储介质 | |
CN105468427A (zh) | 一种自动编译和发布的实现方法及系统 | |
CN111026439A (zh) | 应用程序的兼容方法、装置、设备及计算机存储介质 | |
CN113220337A (zh) | 一种版本构建方法、装置、计算机设备和存储介质 | |
CN111459506A (zh) | 深度学习平台集群的部署方法、装置、介质及电子设备 | |
CN115454575B (zh) | jar包转换并自动加载的方法、装置、设备及存储介质 | |
CN107526584B (zh) | 数据接入方法和装置 | |
CN116755788A (zh) | 一种线上规则修改方法、装置、设备及存储介质 | |
CN104036193A (zh) | 一种应用程序的本地跨域漏洞检测方法及装置 | |
CN112559124A (zh) | 一种模型管理系统以及目标操作指令的处理方法和装置 | |
CN111897565A (zh) | 基于物联网的数据处理方法、装置和设备 | |
CN116382748A (zh) | 一种继电保护软件远方更新的方法、系统及存储介质 | |
CN110806891A (zh) | 嵌入式设备软件版本的生成方法及装置 | |
CN113791809B (zh) | 应用异常处理方法、装置以及计算机可读存储介质 | |
CN114047933B (zh) | 多开Android应用的方法、装置、设备和介质 | |
CN114090074A (zh) | 运行环境的配置方法和装置、存储介质及电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: No. 56 Nanli East Road, Shiqi Town, Panyu District, Guangzhou City, Guangdong Province, 510000 Applicant after: Guangdong Baolun Electronics Co.,Ltd. Address before: No.19 Chuangyuan Road, Zhongcun street, Panyu District, Guangzhou, Guangdong 510000 Applicant before: GUANGZHOU ITC ELECTRONIC TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |