CN115543573A - 任务执行方法以及装置 - Google Patents

任务执行方法以及装置 Download PDF

Info

Publication number
CN115543573A
CN115543573A CN202211238556.5A CN202211238556A CN115543573A CN 115543573 A CN115543573 A CN 115543573A CN 202211238556 A CN202211238556 A CN 202211238556A CN 115543573 A CN115543573 A CN 115543573A
Authority
CN
China
Prior art keywords
target task
application
segment
native application
task
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.)
Pending
Application number
CN202211238556.5A
Other languages
English (en)
Inventor
戴鹏飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang eCommerce Bank Co Ltd
Original Assignee
Zhejiang eCommerce Bank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang eCommerce Bank Co Ltd filed Critical Zhejiang eCommerce Bank Co Ltd
Priority to CN202211238556.5A priority Critical patent/CN115543573A/zh
Publication of CN115543573A publication Critical patent/CN115543573A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本说明书实施例提供任务执行方法以及装置,其中所述任务执行方法包括:接收任务指令,根据目标任务,调整原生应用中的目标任务片段,并重启原生应用,利用预设拦截工具,从原生应用中调用目标任务片段,执行目标任务片段获得目标任务的执行信息。通过将拦截工具中对应于目标任务的目标任务片段与拦截工具分离,并将目标任务片段搭载于原生应用中,使得目标任务片段在原生应用中被调整,拦截工具在拦截了目标任务的运行进程后,只需从原生应用中调用并执行目标任务片段,来获得目标任务的执行信息,即调整前后的目标任务片段在执行时,并未对目标任务的运行进程进行更改,无需重启终端,降低目标任务片段的调整耗时,提升了目标任务的执行效率。

Description

任务执行方法以及装置
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种任务执行方法。
背景技术
随着互联网技术的发展,越来越多的应用被开发,并得到使用,极大地方便、丰富了人物们的生活。
在各种应用和其衍生应用的开发过程中,需要根据不同的使用场景来调整其任务的执行逻辑,实现对其任务的执行逻辑调整的前提是,需要获取任务的执行信息,在此基础上进一步地分析、设计、调整,得到可以执行目标任务的指定应用。
目前,用来获得任务的执行信息的方式为:利用预设的拦截工具,拦截目标任务的运行进程,直接从中获得目标任务的执行信息。然而,由于拦截工具是通过拦截目标任务的运行进程来实现执行信息的获取,目标任务的运行进程是通过安装在终端上的操作系统来生成的,因而,在需要对拦截工具中对应于目标任务的目标任务片段进行调整时,需要初始化操作系统来重新生成目标任务的运行进程,才能对应实现,即每次调整拦截工具中的目标任务片段,都要重启终端来初始化操作系统,增加了目标任务片段的调整耗时,降低了目标任务的执行效率。因而,亟需一种耗时短、效率高的任务执行方法。
发明内容
有鉴于此,本说明书实施例提供了一种任务执行方法。本说明书一个或者多个实施例同时涉及一种任务执行装置,一种计算设备,一种计算机可读存储介质以及一种计算机应用,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种任务执行方法,应用于终端,包括:
接收任务指令,其中,任务指令携带目标任务;
根据目标任务,调整原生应用中的目标任务片段,并重启原生应用,其中,原生应用为预先开发的用于搭载目标任务片段的应用;
利用预设拦截工具,从原生应用中调用目标任务片段,执行目标任务片段获得目标任务的执行信息。
根据本说明书实施例的第二方面,提供了一种任务执行装置,应用于终端,包括:
接收模块,被配置为接收任务指令,其中,任务指令携带目标任务;
调整模块,被配置为根据目标任务,调整原生应用中的目标任务片段,并重启原生应用,其中,原生应用为预先开发的用于搭载目标任务片段的应用;
第一执行模块,被配置为利用预设拦截工具,从原生应用中调用目标任务片段,执行目标任务片段获得目标任务的执行信息。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述任务执行方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述任务执行方法的步骤。
根据本说明书实施例的第五方面,提供了一种计算机应用,其中,当所述计算机应用在计算机中执行时,令计算机执行上述任务执行方法的步骤。
本说明书一个或多个实施例中,接收任务指令,根据目标任务,调整原生应用中的目标任务片段,并重启原生应用,利用预设拦截工具,从原生应用中调用目标任务片段,执行目标任务片段获得目标任务的执行信息。通过将拦截工具中对应于目标任务的目标任务片段与拦截工具分离,并将目标任务片段搭载于原生应用中,使得目标任务片段在原生应用中被调整,拦截工具在拦截了目标任务的运行进程后,只需从原生应用中调用并执行目标任务片段,来获得目标任务的执行信息,即调整前后的目标任务片段在执行时,并未对目标任务的运行进程进行更改,无需重启终端,降低目标任务片段的调整耗时,提升了目标任务的执行效率。
附图说明
图1是现有技术中一种任务执行方法的处理流程示意图;
图2是本说明书一个实施例提供的一种任务执行方法的流程图;
图3是本说明书一个实施例提供的一种应用于安卓系统应用的任务执行方法的处理过程流程图;
图4是本说明书一个实施例提供的一种任务执行方法的处理流程示意图;
图5是本说明书一个实施例提供的一种任务执行装置的结构示意图;
图6是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
操作系统(OS,Operating System):是一组主管并控制终端操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件应用。根据运行的环境,操作系统可以分为计算机操作系统,移动终端操作系统,服务器操作系统,嵌入式操作系统等。
安卓操作系统:是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动终端。
Xposed(Xposed框架、XP框架、Xposed framework):是一个运行于安卓操作系统的拦截工具框架。可以拦截目标任务的运行进程,并通过目标任务片段更改目标任务的运行进程,实现对应于目标任务片段的目标功能。因此,Xposed被用来拦截、更改目标任务的运行进程,实现对于安卓操作系统和的应用的功能的修改。
Xposed模块:一种拦截工具,支持Xposed的安卓操作系统应用,用户可以通过开发、使用自定义的Xposed模块,实现对于目标任务的运行进程的更改,实现获得目标任务的执行信息、修改目标任务的执行逻辑等功能。Xposed模块使用Java语言开发。
JAVA映射机制:是指在应用的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取应用信息以及动态调用对象的功能称为JAVA映射机制。
HOOK代码:JAVA编程语言中,可以对应用的任务进行抓取(HOOK)并进行修改执行逻辑,进而得到任务的执行信息的代码方法。
如图1所示,图1示出了现有技术中一种任务执行方法的处理流程示意图。终端上安装有操作系统,操作系统生成目标任务的运行进程,拦截工具中搭载有拦截任务片段和目标任务片段,执行拦截任务片段对目标任务的运行进程进行拦截,再执行目标任务片段,来获得目标任务的执行信息。在对拦截工具中的目标任务片段进行调整后,得到调整后的目标任务片段,即得到调整后的拦截工具,需要重启终端并重新生成运行进程,执行拦截任务片段对目标任务的运行进程进行拦截,再执行目标任务片段,来获得目标任务的执行信息。
例如,指定应用为某音乐播放应用,该音乐播放应用在启动时,会获取闪屏页数据并在终端显示,该获取闪屏页数据并在终端内显示的任务为目标任务,拦截工具上搭载有跳过闪屏页的目标任务片段,当闪屏页进行更改后,目标任务发生变更,对应的目标任务片段也要对应调整,即对拦截工具进行调整,在得到调整后的拦截工具后,需要重启终端来实现跳过闪屏页的目标任务片段。在拦截工具的调整过程中,需要反复调试来验证拦截工具的性能效果,每次调试都需要重启终端,增加了无效的重启耗时,造成了调试效率不足。
针对上述问题,本说明书中,提供了一种任务执行方法,本说明书同时涉及一种任务执行装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图2,图2示出了根据本说明书一个实施例提供的一种任务执行方法的流程图,该方法应用于终端,具体包括以下步骤。
步骤202:接收任务指令,其中,任务指令携带目标任务。
本说明书实施例应用于安装有操作系统的终端上,通过预先开发原生应用来搭载目标任务片段,避免了由于拦截工具直接执行目标任务片段,进而对目标任务的运行进程进行修改,对于目标人物片段的调整只需在原生应用上实现,拦截工具只实现对目标任务的运行进程的拦截任务,进行了拦截和目标任务片段执行的解耦,进而无需重启终端,即能调整目标任务片段。
目标任务为指定应用中的可执行代码方法,可执行代码方法包括可执行代码片段,在指定应用安装至操作系统后,用户通过终端运行指定应用中的目标任务,操作系统对应生成目标任务的运行进程。目标任务是预先通过对指定应用的反编译后确定的。指定应用为安装在终端上的可实现对应功能的应用。
目标任务片段为对应于目标任务编辑的代码方法片段,目标任务片段通过对目标任务的运行进程的更改来获得目标任务的执行信息。
任务指令为针对目标任务片段的调整指令。具体地,任务指令携带有目标任务的标识信息。目标任务的标识信息可以为目标代码方法的方法名、目标代码方法的目录等,在此不作限定。
示例性地,对指定应用进行反编译,得到代码方法1(Get XXX)、代码方法2(CountXXX)和代码方法3(Get YYY),根据实际需求,需要对代码方法1和代码方法2的运行进程进行更改,确定代码方法1和代码方法3为目标任务。预先已经对应生成了对应的目标任务片段:Hook_Get XXX和Hook_Get YYY,根据代码方法1的标识信息“Get XXX”,生成对目标任务片段Hook_Get XXX进行调整的任务指令Vim Hook_Get XXX,对应地,生成对目标任务片段Hook_Get YYY进行调整的任务指令Vim Hook_Get YYY。
接收任务指令,可以为接收用户通过终端发送的任务指令,也可以为接收终端根据目标任务片段的执行效果、生成的任务指令,在此不作限定。
通过接收携带目标任务的任务指令,为后续调整目标任务片段提供了调整依据。
步骤204:根据目标任务,调整原生应用中的目标任务片段,并重启原生应用,其中,原生应用为预先开发的用于搭载目标任务片段的应用。
原生应用为预先开发的用来搭载目标任务片段的应用,原生应用被预先设置为可被拦截工具调用,拦截工具通过调用原生应用,进而调用搭载在目标任务片段来执行。原生应用是安装在终端上的可实现运行目标任务片段的应用。由于原生应用也安装在终端上,操作系统生成原生应用的目标任务片段的运行进程,由于目标任务片段中的内容改变,需要重新加载代码方法,因而在对原生应用中的目标任务片段进行调整后,需要重新启动该原生应用。
调整原生应用中的目标任务片段,可以是由于变更了指定应用,来调整原生应用中的目标任务片段,也可以是由于变更了同一指定应用中的目标任务,来调整原生应用中的目标任务片段,在此不作限定。
根据目标任务,调整原生应用中的目标任务片段,具体方式为,根据目标任务的标识信息,从原生应用中确定对应的目标任务片段,对目标任务片段进行调整。进一步地,对目标任务片段进行调整,具体方式为,接收用户发送的调整指令,其中,调整指令携带替换任务片段;利用替换任务片段替换目标任务片段,确定替换任务片段为调整后的目标任务片段。
示例性地,根据目标任务的标识信息“Get XXX”和“Get YYY”,从原生应用中确定对应的目标任务片段Hook_Get XXX和Hook_Get YYY,接收到用户发送的调整指令,其中,调整指令携带替换任务片段NewHook_Get XXX和NewHook_Get YYY,用替换任务片段NewHook_Get XXX和NewHook_Get YYY来对应替换目标任务片段Hook_Get XXX和Hook_Get YYY,确定替换任务片段NewHook_Get XXX和NewHook_Get YYY为调整后的目标任务片段,重启原生应用。
根据目标任务,调整原生应用中的目标任务片段,实现了对目标任务片段的调整,为后续执行并获得目标任务的执行信息奠定了基础,重启原生应用,完成了运行环境的搭建,为后续被预设拦截工具调用奠定了基础。
步骤206:利用预设拦截工具,从原生应用中调用目标任务片段,执行目标任务片段获得目标任务的执行信息。
拦截工具为具有运行进程拦截功能和调用其他应用的代码方法的应用,拦截工具通过调用原生应用,进而调用搭载在目标任务片段来执行,拦截工具是安装在终端上的可实现拦截运行进程和调用目标任务片段的应用。预设拦截工具可以对预先获取的初始预设拦截工具中的目标任务片段进行提取后得到的,也可以为直接预先构建的具有拦截功能和调用其他应用得到的,在此不作限定。由于拦截工具安装在终端上,操作系统生成拦截工具上进程拦截和调用其他应用的运行进程,由于目标任务片段调整前后,拦截工具都对目标任务的运行进程进行拦截,并调用原生应用,进而调用目标任务片段,都没有发生更改,即调整前后,无需重新启动该拦截工具。
目标任务的执行信息包括目标任务在执行时的参数、时间和函数。通过获得目标任务的执行信息可以进一步地分析、设计、调整,清楚理解目标任务的实现逻辑,得到可以执行目标任务的指定应用。
利用预设拦截工具,从原生应用中调用目标任务片段,执行目标任务片段获得目标任务的执行信息,具体方式为,利用预设拦截工具,调用原生应用的目标任务片段,将目标任务片段加载至目标任务的运行进程,执行目标任务片段获得目标任务的执行信息。
示例性地,利用预设拦截工具,调用原生应用的目标任务片段NewHook_Get XXX和NewHook_Get YYY,将目标任务片段NewHook_Get XXX和NewHook_Get YYY加载至目标任务代码方法1(Get XXX)和代码方法3(Get YYY)的运行进程,执行目标任务片段获得目标任务的执行信息(参数、时间、函数等)。
本说明书实施例中,接收任务指令,根据目标任务,调整原生应用中的目标任务片段,并重启原生应用,利用预设拦截工具,从原生应用中调用目标任务片段,执行目标任务片段获得目标任务的执行信息。通过将拦截工具中对应于目标任务的目标任务片段与拦截工具分离,并将目标任务片段搭载于原生应用中,使得目标任务片段在原生应用中被调整,拦截工具在拦截了目标任务的运行进程后,只需从原生应用中调用并执行目标任务片段,来获得目标任务的执行信息,即调整前后的目标任务片段在执行时,并未对目标任务的运行进程进行更改,无需重启终端,降低目标任务片段的调整耗时,提升了目标任务的执行效率。
可选地,该方法还包括如下具体步骤:
识别当前运行的各应用是否为指定应用,其中,指定应用为可执行目标任务的应用;
对应地,步骤206包括如下具体步骤:
在当前运行的第一应用是指定应用的情况下,利用预设拦截工具,从原生应用中调用目标任务片段,执行目标任务片段获得第一应用执行目标任务的执行信息。
由于目标任务片段是对应于指定应用的目标任务编辑的代码方法片段,而拦截工具在实际执行拦截功能时,是对当前运行的各应用任务的运行进程进行拦截,因而,在任务对应的应用不是指定应用时,针对其调用目标任务片段,会造成该应用无法在终端上正常运行,需要预先识别应用是否为指定应用,再利用拦截工具,调用目标任务片段并执行。
当前运行的各应用为当前在终端上运行的各应用。第一应用为各应用中对应指定应用的应用。
识别当前运行的各应用是否为指定应用,具体方式为,根据当前运行的各应用的标识信息,确定当前运行的各应用是否为指定应用。
示例性地,目标任务片段为根据当前运行的各应用(应用1,应用2和应用3)的标识信息“应用1.exe”、“应用2.exe”和“应用3.exe”,确定当前运行的各应用(应用1,应用2和应用3)是否为指定应用(应用3),确定应用3为指定应用,利用预设拦截工具,从原生应用中调用目标任务片段,执行目标任务片段获得第一应用执行目标任务的执行信息。
识别当前运行的各应用是否为指定应用,并在当前运行的第一应用是指定应用的情况下,利用预设拦截工具,从原生应用中调用目标任务片段,执行目标任务片段获得第一应用执行目标任务的执行信息。保证了调用目标任务片段的准确性,进而保证了可以有效获得目标任务的执行信息。
可选地,该方法还包括如下具体步骤:
在当前运行的第二应用不是指定应用的情况下,继续运行第二应用。
示例性地,目标任务片段为根据当前运行的各应用(应用1,应用2和应用3)的标识信息“应用1.exe”、“应用2.exe”和“应用3.exe”,确定当前运行的各应用(应用1,应用2和应用3)是否为指定应用(应用3),确定应用3为指定应用,继续运行应用1和应用2。
由于目标任务片段是对应于指定应用的目标任务编辑的代码方法片段,而拦截工具在实际执行拦截功能时,是对当前运行的各应用任务的运行进程进行拦截,因而,在任务对应的应用不是指定应用时,针对其调用目标任务片段,会造成该应用无法在终端上正常运行,需要预先识别应用是否为指定应用,再利用拦截工具,调用目标任务片段并执行。
第二应用为各应用中不对应指定应用的应用。
在当前运行的第二应用不是指定应用的情况下,继续运行第二应用。保证了调用目标任务片段的准确性,进而保证了不对应指定应用的应用在终端上执行的及时性和稳定性。
可选地,原生应用包括预设调用接口;
对应地,步骤206中利用预设拦截工具,从原生应用中调用目标任务片段,包括如下具体方式:
利用预设拦截工具,访问预设调用接口,从原生应用中调用目标任务片段。
预设调用接口为预先在原生应用中设定的应用调用接口,是调用功能代码方法的集合,其他应用通过访问该调用接口,实现对原生应用中的目标任务片段的调用。调用接口实现了不同应用之间的代码方法的跨应用调度执行。
示例性地,利用预设拦截工具,访问预设调用接口MainHook.handleLoadPackage,从原生应用中调用目标任务片段NewHook_Get XXX和NewHook_Get YYY。
利用预设拦截工具,访问预设调用接口,从原生应用中调用目标任务片段。通过访问预设调用接口,实现对原生应用中的目标任务片段的调用,提升了调用目标任务片段的准确性和调用效率。
可选地,在步骤206之前,还包括如下具体步骤:
确定原生应用的存储位置;
根据存储位置和预设的接口映射机制,获得原生应用中预设的调用接口。
原生应用的存储位置为原生应用的应用包(APK,Application Package)在终端上的存储位置。
预设的接口映射机制为预先设定的原生应用的存储位置和预设的调用接口之间的映射关系机制。通过预设的接口映射机制,在终端的原生应用的存储位置获得预设的调用接口。对于不同面向对象的高级程序语言,对应有不同的预设接口映射机制,例如,JAVA映射机制,C#映射机制等。
确定原生应用的存储位置,具体方式为,根据原生应用的标识信息,确定原生应用的存储位置。
根据存储位置和预设的接口映射机制,获得原生应用中预设的调用接口,具体方式为,根据原生应用的存储位置,构建调用接口查询任务,运行调用接口查询任务,通过预设的接口映射机制,在终端的原生应用的存储位置获得预设的调用接口。
示例性地,原生应用的标识信息为“应用3.exe”,根据原生应用的标识信息“应用3.exe”,确定原生应用的应用包在终端上的存储位置Path,根据存储位置Path,构建调用接口查询任务PathClassLoader。运行调用接口查询任务PathClassLoader,利用JAVA映射机制,在存储位置Path查询得到原生应用的预设的调用接口MainHook.handleLoadPackage。
确定原生应用的存储位置,根据存储位置和预设的接口映射机制,获得原生应用中预设的调用接口。通过存储位置和预设的接口映射机制,获得调用接口,提升了获得调用接口与原生应用之间的对应性,保证了获得调用接口的准确性。
可选地,在步骤206之前,还包括如下具体步骤:
获取预设拦截工具,其中,预设拦截工具中预先配置有入口;
将入口配置为调用原生应用中的目标任务片段。
入口为拦截工具中预先配置的应用调用接口,是调用功能代码方法的集合,拦截工具通过该入口实现对原生应用中的目标任务片段的调用。入口实现了不同应用之间的代码方法的跨应用调度执行。
示例性地,获取预设拦截工具,其中,预设拦截工具中预先配置有入口handleLoadPackage,将入口配置为调用原生应用中的目标任务片段NewHook_Get XXX和NewHook_Get YYY。
获取预设拦截工具,其中,预设拦截工具中预先配置有入口,将入口配置为调用原生应用中的目标任务片段。保证了调用目标任务片段的准确性和调用效率。
可选地,将入口配置为调用原生应用中的目标任务片段,包括如下具体步骤:
将入口配置为访问原生应用的预设调用接口。
入口为拦截工具中预先配置的应用调用接口,是调用功能代码方法的集合,拦截工具通过该入口实现对原生应用中的目标任务片段的调用。入口实现了不同应用之间的代码方法的跨应用调度执行。
示例性地,获取预设拦截工具,其中,预设拦截工具中预先配置有入口handleLoadPackage,将入口配置访问原生应用的预设调用接口MainHook.handleLoadPackage。
将入口配置为访问原生应用的预设调用接口。更进一步保证了调用目标任务片段的准确性。
可选地,在将入口配置为调用原生应用中的目标任务片段之后,还包括如下具体步骤:
重启终端。
由于对拦截工具中的代码方法进行了修改,因而需要重启终端来加载拦截工具中的代码方法,使其可以实现对应的功能。
重启终端的方式,可以为生成终端重启请求,根据终端重启请求,在终端显示终端重启交互界面,接收用户反馈的终端重启指令,根据终端重启指令重启终端;也可以为直接生成终端重启指令,根据终端重启指令重启终端,在此不作限定。
通过重启终端,保证了后续配置完成的拦截工具的正常运行,保证了任务执行的稳定性。
可选地,在步骤206之前,还包括如下具体步骤:
重启执行目标任务的指定应用。
由于指定应用在运行,无法确定指定应用在执行过程中是否执行了目标任务,需要重启执行目标任务的指定应用,保证执行目标任务片段,可以获得目标任务的执行信息。
重启执行目标任务的指定应用的方式,可以为生成执行目标任务的指定应用的应用重启请求,根据应用重启请求,在终端显示应用重启交互界面,接收用户反馈的应用重启指令,根据应用重启指令重启指定应用;也可以为直接生成执行目标任务的指定应用的应用重启指令,根据应用重启指令重启指定应用,在此不作限定。
通过重启终端,保证了后续配置完成的拦截工具的正常运行,保证了有效获得目标任务的执行信息。
下述结合附图3,以本说明书提供的任务执行方法在任务执行的应用为例,对任务执行方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的一种安卓系统应用的任务执行方法的处理过程流程图,具体包括以下步骤。
步骤302:利用安卓开发平台,开发原生应用;
本说明书实施例应用于安装有操作系统的终端上。
对应原生应用,预先设置了调用接口MainHook.handleLoadPackage。
步骤304:对指定应用进行反编译,得到指定应用的代码方法;
指定应用为A银行应用。
步骤306:根据用户发送的代码方法确定指令,从指定应用的代码方法中确定目标代码方法为目标任务;
目标代码方法为A银行应用中存储用户个人信息的代码方法。
步骤308:接收根据目标任务编辑的目标任务片段;
目标任务片段为可以对A银行应用中存储用户个人信息进行拦截并调用的HOOK代码。
步骤310:将目标任务片段搭载于原生应用上,并安装原生应用至终端;
步骤312:根据指定应用的标识信息获得原生应用在终端上的存储位置;
步骤314:根据原生应用的存储位置,构建调用接口查询任务,运行调用接口查询任务,通过预设的接口映射机制,在终端的原生应用的存储位置获得预设的调用接口;
接口映射机制为JAVA映射机制
步骤316:获取预设拦截工具;
预设拦截工具是Xposed模块。Xposed中预先配置有入口。Xposed模块也是预先在安卓平台开发的。
步骤318:将入口配置为访问原生应用的预设调用接口;
将入口配置为访问原生应用的预设调用接口MainHook.handleLoadPackage。
步骤320:安装预设拦截工具至终端,并重启终端;
步骤322:接收任务指令,调整原生应用中的目标任务片段,并重启原生应用;
由于变更了指定应用,由A银行应用变更为B银行应用,对应地,目标任务片段需要调整为可以对B银行应用中存储用户个人信息进行拦截并调用的HOOK代码。
步骤324:识别当前运行的各应用是否为指定应用;
步骤326:若是,利用预设拦截工具,访问预设调用接口,从原生应用中调用目标任务片段,执行目标任务片段获得指定应用执行目标任务的执行信息。
利用Xposed模块,访问预设调用接口MainHook.handleLoadPackage,从原生应用中调用存储用户个人信息进行拦截并调用的HOOK代码,执行该HOOK代码获得B银行应用执行存储用户个人信息的执行信息。
本说明书实施例中,通过将拦截工具中对应于目标任务的目标任务片段与拦截工具分离,并将目标任务片段搭载于原生应用中,使得目标任务片段在原生应用中被调整,拦截工具在拦截了目标任务的运行进程后,只需从原生应用中调用并执行目标任务片段,来获得目标任务的执行信息,即调整前后的目标任务片段在执行时,并未对目标任务的运行进程进行更改,无需重启终端,相比于终端重启数十秒至数分钟的重启时间,只需在对目标代码片段进行调整后,重启原生应用,耗时仅仅为数秒,极大降低目标任务片段的调整耗时,提升了目标任务的执行效率。
图4示出了本说明书一个实施例提供的一种任务执行方法的处理流程示意图。
如图4所示,终端上安装有操作系统,操作系统生成目标任务的运行进程,拦截工具中搭载有拦截任务片段,对原生应用中搭载的目标任务片段进行调整后,使得原生应用搭载有调整后的目标任务片段,执行拦截工具中的拦截任务片段对目标任务的运行进程进行拦截,拦截工具访问原生应用中的预留调用接口,来调用目标任务片段,获得目标任务的执行信息。无需重启终端来重新生成运行进程。
与上述方法实施例相对应,本说明书还提供了任务执行装置实施例,图5示出了本说明书一个实施例提供的一种任务执行装置的结构示意图。如图5所示,该装置包括:
接收模块502,被配置为接收任务指令,其中,任务指令携带目标任务;
调整模块504,被配置为根据目标任务,调整原生应用中的目标任务片段,并重启原生应用,其中,原生应用为预先开发的用于搭载目标任务片段的应用;
第一执行模块506,被配置为利用预设拦截工具,从原生应用中调用目标任务片段,执行目标任务片段获得目标任务的执行信息。
可选地,该装置还包括:
识别模块,被配置为识别当前运行的各应用是否为指定应用,其中,指定应用为可执行目标任务的应用;
对应地,第一执行模块506可以被进一步配置为:
在当前运行的第一应用是指定应用的情况下,利用预设拦截工具,从原生应用中调用目标任务片段,执行目标任务片段获得第一应用执行目标任务的执行信息。
可选地,该装置还包括:
第二执行模块,被配置为在当前运行的第二应用不是指定应用的情况下,继续运行第二应用。
可选地,原生应用包括预设调用接口;
对应地,第一执行模块506可以被进一步配置为:利用预设拦截工具,访问预设调用接口,从原生应用中调用目标任务片段。
可选地,该装置还包括:
调用接口获得模块,被配置为确定原生应用的存储位置;根据存储位置和预设的接口映射机制,获得原生应用中预设的调用接口。
可选地,该装置还包括:
入口配置模块,被配置为获取预设拦截工具,其中,预设拦截工具中预先配置有入口;将入口配置为调用原生应用中的目标任务片段。
可选地,入口配置模块被进一步配置为:
将入口配置为访问原生应用的预设调用接口。
可选地,该装置还包括:
第一重启装置,被配置为重启终端。
可选地,该装置还包括:
第二重启装置,被配置为重启执行目标任务的指定应用。
本说明书实施例中,接收任务指令,根据目标任务,调整原生应用中的目标任务片段,并重启原生应用,利用预设拦截工具,从原生应用中调用目标任务片段,执行目标任务片段获得目标任务的执行信息。通过将拦截工具中对应于目标任务的目标任务片段与拦截工具分离,并将目标任务片段搭载于原生应用中,使得目标任务片段在原生应用中被调整,拦截工具在拦截了目标任务的运行进程后,只需从原生应用中调用并执行目标任务片段,来获得目标任务的执行信息,即调整前后的目标任务片段在执行时,并未对目标任务的运行进程进行更改,无需重启终端,降低目标任务片段的调整耗时,提升了目标任务的执行效率。
上述为本实施例的一种任务执行装置的示意性方案。需要说明的是,该任务执行装置的技术方案与上述的任务执行方法的技术方案属于同一构思,任务执行装置的技术方案未详细描述的细节内容,均可以参见上述任务执行方法的技术方案的描述。
图6示出了根据本说明书一个实施例提供的一种计算设备的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterface Controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Networks)无线接口、全球微波互联接入(Wi-MAX,World Interoperabilityfor Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near Field Communication)接口,等等。
在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
其中,处理器620用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述任务执行方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的任务执行方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述任务执行方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述任务执行方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的任务执行方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述任务执行方法的技术方案的描述。
本说明书一实施例还提供一种计算机应用,其中,当所述计算机应用在计算机中执行时,令计算机执行上述任务执行方法的步骤。
上述为本实施例的一种计算机应用的示意性方案。需要说明的是,该计算机应用的技术方案与上述的任务执行方法的技术方案属于同一构思,计算机应用的技术方案未详细描述的细节内容,均可以参见上述任务执行方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机应用代码,所述计算机应用代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机应用代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

Claims (12)

1.一种任务执行方法,应用于终端,包括:
接收任务指令,其中,所述任务指令携带目标任务;
根据所述目标任务,调整原生应用中的目标任务片段,并重启所述原生应用,其中,所述原生应用为预先开发的用于搭载所述目标任务片段的应用;
利用预设拦截工具,从所述原生应用中调用所述目标任务片段,执行所述目标任务片段获得所述目标任务的执行信息。
2.根据权利要求1所述的方法,在所述利用预设拦截工具,从所述原生应用中调用所述目标任务片段,执行所述目标任务片段获得所述目标任务的执行信息之前,还包括:
识别当前运行的各应用是否为指定应用,其中,所述指定应用为可执行所述目标任务的应用;
所述利用预设拦截工具,从所述原生应用中调用所述目标任务片段,执行所述目标任务片段获得所述目标任务的执行信息,包括:
在当前运行的第一应用是所述指定应用的情况下,利用预设拦截工具,从所述原生应用中调用所述目标任务片段,执行所述目标任务片段获得所述第一应用执行所述目标任务的执行信息。
3.根据权利要求2所述的方法,还包括:
在当前运行的第二应用不是所述指定应用的情况下,继续运行所述第二应用。
4.根据权利要求1所述的方法,所述原生应用包括预设调用接口;
所述利用预设拦截工具,从所述原生应用中调用所述目标任务片段,包括:
利用预设拦截工具,访问所述预设调用接口,从所述原生应用中调用所述目标任务片段。
5.根据权利要求4所述的方法,在所述利用预设拦截工具,通过所述调用接口,从所述原生应用中调用所述目标任务片段之前,还包括:
确定所述原生应用的存储位置;
根据所述存储位置和预设的接口映射机制,获得所述原生应用中预设的调用接口。
6.根据权利要求1-5中任一项所述的方法,还包括:
获取预设拦截工具,其中,所述预设拦截工具中预先配置有入口;
将所述入口配置为调用所述原生应用中的所述目标任务片段。
7.根据权利要求6所述的方法,所述将所述入口配置为调用所述原生应用中的所述目标任务片段,包括:
将所述入口配置为访问所述原生应用的预设调用接口。
8.根据权利要求6所述的方法,在所述将所述入口配置为调用所述原生应用中的所述目标任务片段之后,还包括:
重启所述终端。
9.根据权利要求1所述的方法,在所述利用预设拦截工具,从所述原生应用中调用所述目标任务片段,执行所述目标任务片段获得所述目标任务的执行信息之前,还包括:
重启执行所述目标任务的指定应用。
10.一种任务执行装置,应用于终端,包括:
接收模块,被配置为接收任务指令,其中,所述任务指令携带目标任务;
调整模块,被配置为根据所述目标任务,调整原生应用中的目标任务片段,并重启所述原生应用,其中,所述原生应用为预先开发的用于搭载所述目标任务片段的应用;
第一执行模块,被配置为利用预设拦截工具,从所述原生应用中调用所述目标任务片段,执行所述目标任务片段获得所述目标任务的执行信息。
11.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至9任意一项所述任务执行方法的步骤。
12.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至9任意一项所述任务执行方法的步骤。
CN202211238556.5A 2022-10-08 2022-10-08 任务执行方法以及装置 Pending CN115543573A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211238556.5A CN115543573A (zh) 2022-10-08 2022-10-08 任务执行方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211238556.5A CN115543573A (zh) 2022-10-08 2022-10-08 任务执行方法以及装置

Publications (1)

Publication Number Publication Date
CN115543573A true CN115543573A (zh) 2022-12-30

Family

ID=84733673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211238556.5A Pending CN115543573A (zh) 2022-10-08 2022-10-08 任务执行方法以及装置

Country Status (1)

Country Link
CN (1) CN115543573A (zh)

Similar Documents

Publication Publication Date Title
CN107766126B (zh) 容器镜像的构建方法、系统、装置及存储介质
EP3128421B1 (en) Method, device, and system for achieving java application installation by cloud compilation
JP6294886B2 (ja) アプリケーション用の中間言語コードからネイティブコードを生成すること
EP3035191B1 (en) Identifying source code used to build executable files
TWI715762B (zh) 虛擬機器創建方法和裝置
US11016785B2 (en) Method and system for mirror image package preparation and application operation
CN106648755B (zh) 一种在安卓art环境中动态加载dex的方法及装置
CN113312037A (zh) 应用于微服务的数据处理方法、装置、设备和存储介质
WO2019236261A2 (en) Annotating dynamic libraries for multi-os applications
WO2023213263A1 (zh) 程序编译和启动方法、设备及存储介质
CN115291946A (zh) 鸿蒙系统移植方法、装置、电子设备及可读介质
US11010144B2 (en) System and method for runtime adaptable applications
CN112199151B (zh) 一种应用程序的运行方法及装置
CN110018831B (zh) 程序处理方法、装置及计算机可读存储介质
CN115543573A (zh) 任务执行方法以及装置
CN112148318B (zh) 应用包发布方法、应用方法、装置、介质、服务器及设备
CN113934632A (zh) 代码检测方法及装置
Korchi et al. Classification of existing mobile cross-platform approaches
CN115237458A (zh) 一种调用推理硬件执行ai应用的方法及相关产品
CN116974653B (zh) 类加载方法及系统
CN111225054B (zh) 云手机自动化运行程序设计方法和系统
CN116643778B (zh) 一种应用程序优化方法及电子设备
CN116009906A (zh) 一种基于Java的热更新方法及装置
CN111475145A (zh) 一种创建开发环境的方法、装置、计算设备和存储介质
CN116055463A (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