CN107608746A - 一种多开应用的优化方法和装置 - Google Patents
一种多开应用的优化方法和装置 Download PDFInfo
- Publication number
- CN107608746A CN107608746A CN201710840372.9A CN201710840372A CN107608746A CN 107608746 A CN107608746 A CN 107608746A CN 201710840372 A CN201710840372 A CN 201710840372A CN 107608746 A CN107608746 A CN 107608746A
- Authority
- CN
- China
- Prior art keywords
- application
- anything
- code
- plug
- xposed
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种多开应用的优化方法和装置,其中方法包括:当多开应用启动与原生应用对应的分身应用时,将服务框架的预置代码和服务框架插件的预置代码注入到分身应用中;根据与服务框架插件配置界面中输入的配置信息,通过调用注入的服务框架的预置代码和服务框架插件的预置代码,对分身应用中需要调用的与配置信息相关的接口函数代码进行拦截处理,实现按照配置信息更新分身应用的功能。操作系统就可以在无需root的情况下,根据用户自己实际的需要,利用多开应用程序中的服务框架插件,对分身应用的某些功能进行更改、添加或删除,以提高分身应用的功能,使分身应用的功能多样化。
Description
技术领域
本发明涉及应用开发技术领域,特别是涉及一种多开应用的优化方法和装置。
背景技术
现在很多人在某些应用(如即时通信应用)中都有两个以上的账号,其中一个账号用于生活,另一个账号用于工作或者其他,使生活和工作不会互相干扰。然而手机的某些应用只能安装一个,无法同时登陆两个账号,为了使手机能够同时打开两个相同的应用,用户一般在手机上安装多开应用。
目前的多开应用支持应用分身、游戏多开、多账户在线等的功能,通过多开应用就可以利用一部手机轻松实现即时通信应用、购物应用、游戏应用等几乎所有应用的多账户同时在线,使生活和工作之间能够互不干扰,实现娱乐和游戏同时进行体验。
但是现在的多开应用只能实现多个相同应用的同时开启,功能比较单一,无法满足当前用户多样化的需求。
发明内容
有鉴于此,本发明提供了一种多开应用的优化方法和装置,主要目的在于解决目前的多开应用只能实现多个相同应用的同时开启,功能太过单一,无法满足用户当前的需求的问题。
依据本发明的第一方面,提供了一种多开应用的优化方法,包括:
当多开应用启动与原生应用对应的分身应用时,将服务框架的预置代码和服务框架插件的预置代码注入到所述分身应用中;
根据与所述服务框架插件配置界面中输入的配置信息,通过调用注入的所述服务框架的预置代码和所述服务框架插件的预置代码,对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理,实现按照所述配置信息更新所述分身应用的功能。
依据本发明的第二方面,提供了一种多开应用的优化装置,包括:
注入单元,用于当多开应用启动与原生应用对应的分身应用时,将服务框架的预置代码和服务框架插件的预置代码注入到所述分身应用中;
配置单元,用于根据与所述服务框架插件配置界面中输入的配置信息,通过调用注入的所述服务框架的预置代码和所述服务框架插件的预置代码,对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理,实现按照所述配置信息更新所述分身应用的功能。
依据本发明的第三方面,提供了一种存储设备,其上存储有计算机程序,所述程序被处理器执行时实现第一方面所述的多开应用的优化方法。
依据本发明的第四方面,提供了一种终端,所述终端包括存储设备和处理器,
所述存储设备,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现第一方面所述的多开应用的优化方法。
借由上述技术方案,本发明提供的一种多开应用的优化方法和装置,与目前多开应用功能比较单一相比,本发明利用多开应用启动与原生应用对应的分身应用时,将服务框架的预置代码和服务框架插件的预置代码注入到分身应用中,这样可以根据与服务框架插件配置界面中输入的配置信息,通过调用注入的服务框架的预置代码和服务框架插件的预置代码,对分身应用中需要调用的与配置信息相关的接口函数代码进行拦截处理,实现按照配置信息更新分身应用的功能。进而在操作系统无需root的情况下,根据用户自己实际的需要,利用多开应用程序中的服务框架插件,对分身应用的某些功能进行更改、添加或删除,以提高分身应用的功能,使分身应用的功能多样化,能够适应不同用户的不同需求。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种多开应用的优化方法流程示意图;
图2示出了本发明实施例提供的另一种多开应用的优化方法流程示意图;
图3示出了本发明实施例提供的再一种多开应用的优化方法流程示意图;
图4示出了本发明实施例提供的又一种多开应用的优化方法的系统图;
图5示出了本发明实施例提供的一种多开应用的优化装置的结构示意图;
图6示出了本发明实施例提供的另一种多开应用的优化装置的结构示意图;
图7示出了本发明实施例提供的一种终端的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供一种多开应用的优化方法,通过在多开应用中加入服务框架的预置代码和服务框架插件的预置代码,利用服务框架插件对多开应用中的分身应用的功能进行更新,能够增强分身应用的使用功能。
如图1所示,该方法包括:
步骤101,当多开应用启动与原生应用对应的分身应用时,将服务框架的预置代码和服务框架插件的预置代码注入到分身应用中。
其中,服务框架和相应的服务框架插件用以实现对应用的增强功能,具体可以根据实际需求进行选择配置,在本实施例中不做限定。
在上述技术方案中,由于多开应用本身属于第三方应用程序,其并不能直接访问原生应用,因此需要利用多开应用将原生应用的代码数据复制到多开应用中,这样多开应用中就有一个与原生应用相同的分身应用,此时就可以利用多开应用对分身应用进行访问。先将服务框架和服务框架插件的代码进行适配,使其成为可供多开应用使用的预置代码,然后根据服务框架的预置代码和服务框架插件的预置代码在多开应用中建立独立的数据库,并将其存储在该独立的数据库中。
为了能够利用服务框架和服务框架插件对分身应用的功能进行修改、添加或删除,在分身应用启动之前,先将服务框架的预置代码和服务框架插件的预置代码注入到分身应用中。以供分身应用直接利用服务框架的预置代码和服务框架插件的预置代码,这样就可以无需root权限,直接通过多开应用使用服务框架插件对分身应用的功能进行更新,具体更新步骤可以执行步骤102所述过程。
步骤102,根据与服务框架插件配置界面中输入的配置信息,通过调用注入的服务框架的预置代码和服务框架插件的预置代码,对分身应用中需要调用的与配置信息相关的接口函数代码进行拦截处理,实现按照配置信息更新分身应用的功能。
在上述技术方案中,在服务框架插件中设有配置界面,用户可以在该配置界面中输入一些配置信息,例如,在配置界面中更改某些应用的图标、色彩和功能等。输入配置信息之后,分身应用无法直接根据该配置信息更新功能,需要利用上述注入分身应用中的服务框架的预置代码和服务框架插件的预置代码,对与配置信息相关的接口函数代码进行拦截。拦截之后分身应用就不会访问原来的接口函数,而是直接访问与用户输入的配置信息相对应的接口函数,进而执行该配置信息对应的功能,这样用户输入的配置信息才能正常生效。
上述技术方案可以应用到不同的操作系统中,通过上述技术方案,由于在多开应用中添加了服务框架的预置代码和服务框架插件的预置代码,操作系统就可以在无需root的情况下,根据用户自己实际的需要,利用多开应用程序中的服务框架插件,对分身应用的某些功能进行更改、添加或删除,以提高分身应用的功能,使分身应用的功能多样化,能够适应不同用户的不同需求。
进一步的,作为上述实施例的具体细化和扩展,说明上述实施例的具体实施方式,在本发明的另一个实施例中,服务框架具体可以为Xposed框架,相应的服务框架插件具体可以为Xposed插件,但不限于此,如图2所示,本发明提供的另一种多开应用的优化方法包括:
步骤101,当多开应用启动与原生应用对应的分身应用时,将Xposed框架的预置代码和Xposed插件的预置代码注入到分身应用中。
其中,Xposed框架一款超级强大的系统和应用增强框架,需要Root权限。Xposed框架通过Root替换了操作系统的app_process(应用进程处理)文件,这是所有系统和第三方应用的启动文件。Xposed框架的具体系统和应用增强功能是通过Xposed插件实现。Xposed插件是在Xposed框架上开发的应用,其本身也是一个操作系统第三方应用。
多开应用实现应用多开的主要技术方案包括:通过反射调用机制去加载与宿主应用程序具有相同包名的分身应用程序,由于与宿主应用程序具有相同的包名,在操作系统中,既能使活动组件和服务组件建立与ActivityManager Service(进程管理服务器)的正常通信,又能使活动组件、服务组件以及广播组件等,顺利被Package Manager Service(软件管理服务器)识别,降低现有技术中有关加壳应用程序运行异常的错误率;由于宿主应用程序与目标应用程序使用了相同的包名,不必为被反射调用的分身应用程序的各个组件(Activity,Service,Broadcast Receiver和ContentProvider)单独构造主函数入口(Activity Thread.main),也不必考虑因包名而带来的Package Manager Service校验的程序实现复杂度问题,从而大大提高程序运行效率;通过宿主应用程序中建立起原安装包的分身应用程序与沙箱运行环境之间的通信,使得分身应用程序的活动过程可以进一步被沙箱运行环境监视,从而对其适用安全策略,并通过在宿主应用程序中建立分身应用程序的所需资源与原生应用程序的所需资源一一对应,可在宿主应用程序中通过钩子函数调用分身应用程序的所需的对应资源,确保分身应用程序能被宿主应用程序正常加载并保持安全运行,且实现了分身应用程序完全独立于原生应用程序。
步骤1021,通过调用注入的Xposed框架预置代码中包含的预置hook接口函数代码,对分身应用中需要调用的与配置信息相关接口函数代码的入口点进行修改,使得入口点指向Xposed插件预置代码中包含的预置接口函数代码。
在上述技术方案中,通过预置hook接口函数代码,对与配置信息相关接口函数代码的入口点的指向进行了更改,使其直接指向预置接口函数代码,这种方式无需获取Root权限,就可以对入口进行更改,方便用户使用。
其中预置hook接口函数代码可以为一种钩子函数(hook函数),钩子函数是操作系统消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。
步骤1022,当与配置信息相关接口函数代码被调用时,调用Xposed插件的预置接口函数代码,并将配置信息中相关参数信息作为入参,实现按照配置信息更新分身应用的功能。
在上述技术方案中,用户通过Xposed插件的配置界面为分身应用设置配置信息,实际上就是设置一些参数信息,这样当分身应用调用与配置信息相关接口函数代码时,这些参数信息就会被添加到相应的功能函数中,这样就会根据参数信息执行功能函数,进而使分身应用能够根据用户的设置正常运行。
例如,用户在利用Xposed插件的配置界面,将分身应用A中的分享按键图标改成红心形的具体实现过程如下:
(1)在Xposed插件的配置界面中选择分身应用A,并加载分身应用的各个功能按键。
(2)从多个功能按键中选择分享按键,并选择红心形图标。
(3)触发应用按键后,Xposed插件根据红心形图标形成相应的配置信息,该配置信息中的参数信息就是红色心形图示。
(4)设置完成后,用户就可以打开分身应用A,然后多开应用就会把存储在数据库中的Xposed框架的预置代码和Xposed插件的预置代码注入到分身应用中。
(5)当用户触发分享按键时,Xposed框架就会利用预置hook接口函数代码,将分享按键启动的接口函数的入口点,指向Xposed插件预置代码中包含的预置接口函数代码。
(6)在分享按键启动之前,将(3)中的参数信息作为入参,通过预置接口函数代码添加到相应的功能函数中。
(7)执行该功能函数,将分享按键的图标改为红心形。
进一步的,在本发明的又一个实施例中,以Xposed框架为例,如图3所示,在步骤102之前,本发明实施例提供的方法还包括:
步骤10a,获取多开应用所在操作系统的当前版本信息,并生成与当前版本信息相匹配的新生ARThook相关文件。
其中,ART hook相关文件可以包括:native hook库文件和java hook库文件。
步骤10b,利用新生ARThook相关文件替换Xposed框架中原生的ARThook相关文件。
在原生XposedART Hook机制中,为了实现增强应用本身的功能,Xposed框架通过Root替换了操作系统的应用进程处理文件(app process),该文件是所有系统和第三方应用的启动文件;在较新的操作系统中通常采用的ART虚拟机库机制,因此当应用需要启动时,还需要利用上述这个应用进程处理文件,加载新的ART虚拟机库libart.so文件,进而可以通过Xposed插件基于libart.so文件数据对应用的某些功能进行更改、添加或删除等,以增强应用的功能。
然而随着操作系统越来越完善,操作系统被Root的可能性越来越低,因此通过这种原生XposedART Hook机制将会无法实现增强应用本身的功能。
为了解决上述问题,在本实施例中采用新的XposedART Hook机制,可以在操作系统无需root的情况下,实现增强应用本身的功能,应用到本实施例的多开应用场景中,具体包括:
1.获取多开应用所在操作系统的当前版本信息,根据该当前版本信息判断该操作系统是否采用ART虚拟机库机制;
2.若是则生成Xposed插件相应的新生native hook库文件和新生javahook库文件;
3.将新生native hook库文件和新生javahook库文件,以及Xposed插件的预置代码注入到分身应用中;
4.Xposed插件通过hook函数钩取Xposed框架原生javahook库文件中的Java函数;
5.通过hook函数钩取Xposed框架原生Native hook库文件中的Java函数数据,并对原生Native hook库文件进行修改,使得Native hook库文件中的hook数据透传至新生javahook库文件中,实现利用新生javahook库文件数据,钩取新生native hook库文件中的Java函数数据;
6.当Xposed插件对应的原生javahook库文件中的Java函数需要被调用时,触发hook,根据新生native hook库文件中的Java函数数据,调用新生javahook库文件中的Java函数,并调用原生javahook库文件中的Java函数分发,进而执行Xposed插件相关的功能函数,从而实现Xposed插件对应用的某些功能进行更改、添加或删除等,以增强应用的功能,使得应用功能多样化。
将较新版本的操作系统对应的新生ARThook相关文件,存储在云服务器中,以供根据用户使用的操作系统的版本号,进行及时更新替换。使多开应用中的Xposed框架能够适应各种版本的操作系统。
在本发明的具体实施例中,在步骤10b之后,本发明实施例提供的方法还包括:
步骤10c,利用替换ARThook相关文件后的Xposed框架中的数据库,开发Xposed插件,并配置Xposed插件对应的配置界面,配置界面中包含分身应用可更新的功能项数据。
在上述技术方案中,将ARThook替换之后,就可以为Xposed插件设置相应的配置界面。该配置界面中设有分身应用选择键,用户通过该键可以选择想要进行配置的分身应用。该配置界面中还设有插件加载键,用户可以将其他地方下载来的功能插件,通过该插件加载键就可以将功能插件直接添加在该配置界面中,用户就可以通过Xposed插件将功能插件加载到相应的分身应用中,使该分身应用能够实现功能插件对应的功能。该配置界面中还设有图形设置按键、颜色设置键、功能图标移动键、功能删除键、功能添加键等,通过这些按键可以更改分身应用中某些功能按键的图形、颜色、位置,用户可以根据自己的需要,利用功能删除键删除分身应用中自己不需要的某些功能,或者利用功能添加键为分身应用添加某些功能。使分身应用能够多样化,使分身应用的功能能够跟随用户的喜好进行变动。
在本发明的具体实施例中,在步骤10c之后,本发明实施例提供的方法还包括:
步骤10d,在根据配置界面中输入的功能项数据,确定配置界面中的配置信息后,将确定的配置信息保存在多开应用内的Xposed插件数据库、和/或分身应用对应的参数数据库中。
在上述技术方案中,当分身应用中与配置信息相关接口函数代码被调用时,通过Xposed插件预置接口函数代码,调取存储在多开应用内的Xposed插件数据库、和/或分身应用对应的参数数据库中的配置信息对应的函数代码,进而使配置信息能够应用到分身应用中,增加分身应用的功能。另外,用户还可以选择配置信息的保存位置。
在本发明的具体实施例中,根据上述步骤10d,对应的步骤102具体包括:
根据Xposed插件数据库、和/或参数数据库中保存的配置信息,通过调用注入的Xposed框架的预置代码和Xposed插件的预置代码,对分身应用中需要调用的与配置信息相关的接口函数代码进行拦截处理。
在上述技术方案中,根据Xposed插件数据库、和/或参数数据库中保存的配置信息,判断分身应用当前调用的接口函数代码是否与配置信息相关,若相关,则通过注入的Xposed框架的预置代码和Xposed插件的预置代码对其进行拦截,否则不进行拦截。
在本发明的具体实施例中,步骤101具体包括:
在多开应用中添加与原生应用对应的分身应用之后,并在分身应用启动之前,将Xposed框架的预置代码和Xposed插件的预置代码注入到分身应用中。
通过上述技术方案,在分身应用启动之前,将Xposed框架的预置代码和Xposed插件的预置代码注入分身应用中,注入之后再启动分身应用,就可以利用Xposed框架和Xposed插件对分身应用中一些功能、或者数据来进行更改。避免了在分身应用启动之后再注入,使分身应用出现强制关闭或者无法注入的情况。
在本发明的具体实施例中,步骤101具体包括:
将Xposed框架的预置接口函数代码和Xposed插件的预置接口函数代码注入到分身应用中,使得Xposed框架的预置接口函数代码、Xposed插件的预置接口函数代码、分身应用接口函数代码三者之间实现相互访问。
通过上述技术方案,使Xposed框架、Xposed插件和分身应用三者之间能够形成映射,实现三者的相互访问,这样便于Xposed插件根据用户输入的配置信息,访问Xposed框架,通过Xposed框架利用预置hook接口函数代码对分身应用的入口点进行修改。进而通过修改后的入口调用用户输入的配置信息对应的代码,完成增加分身应用功能的目的。
为了更好的说明上述实施例,给出相应的实施架构实例,以Xposed框架为例,如图4所示,包括:
1.利用多开应用启动分身应用;
2.将多开应用中已经保存好的Xposed插件和Xposed框架注入到分身应用中;
3.Xposed插件利用hook函数钩取Xposed框架Java层的Java函数;
4.通过hook函数钩取Xposed框架Native层的Java函数数据,进而使Xposed插件能够hook住分身应用的某些Java函数;
5.当被hook的某些Java函数被调用时,触发hook函数,将Java函数对应的接口拦截,并触发hook相应的Native层的Java函数数据;
6.将Java函数对应的接口指向Xposed插件,进而利用Xposed插件对分身应用进行功能更新,使分身应用能够多样化,且功能能够跟随用户的喜好进行变动。
其中,Java层是由Java语言实现,能够正常识别的操作系统代码。Native层这部分是常见一些本地服务和一些链接库等,这一层的一个特点就是通过C和C++语言等实现。
作为图1方法的具体实现,本发明实施例提供了一种多开应用的优化装置,如图5所示,装置包括:注入单元21和配置单元22。
注入单元21,用于当多开应用启动与原生应用对应的分身应用时,将服务框架的预置代码和服务框架插件的预置代码注入到分身应用中;
配置单元22,用于根据与服务框架插件配置界面中输入的配置信息,通过调用注入的服务框架的预置代码和服务框架插件的预置代码,对分身应用中需要调用的与配置信息相关的接口函数代码进行拦截处理,实现按照配置信息更新分身应用的功能。
如图6所示,在本发明的实施例中,服务框架可以为Xposed框架,服务框架插件可以为Xposed插件,相应的,配置单元22包括:
入口点修模块221,用于通过调用注入的Xposed框架预置代码中包含的预置hook接口函数代码,对分身应用中需要调用的与配置信息相关接口函数代码的入口点进行修改,使得入口点指向Xposed插件预置代码中包含的预置接口函数代码;
功能更新模块222,用于当与配置信息相关接口函数代码被调用时,调用Xposed插件的预置接口函数代码,并将配置信息中相关参数信息作为入参,实现按照配置信息更新分身应用的功能。
在本发明的具体实施例中,本发明的装置还包括:
新生单元2a,用于在对分身应用中需要调用的与配置信息相关的接口函数代码进行拦截处理之前,获取多开应用所在操作系统的当前版本信息,并生成与当前版本信息相匹配的新生ARThook相关文件;
替换单元2b,用于利用新生ARThook相关文件替换Xposed框架中原生的ARThook相关文件。
在本发明的具体实施例中,本发明的装置还包括:
功能开发单元2c,利用替换ARThook相关文件后的Xposed框架中的数据库,开发Xposed插件,并配置Xposed插件对应的配置界面,配置界面中包含分身应用可更新的功能项数据。
在本发明的具体实施例中,本发明的装置还包括:
功能保存单元2d,用于在根据配置界面中输入的功能项数据,确定配置界面中的配置信息后,将确定的配置信息保存在多开应用内的Xposed插件数据库、和/或分身应用对应的参数数据库中;
在本发明的具体实施例中,配置单元22,还用于根据Xposed插件数据库、和/或参数数据库中保存的配置信息,通过调用注入的Xposed框架的预置代码和Xposed插件的预置代码,对分身应用中需要调用的与配置信息相关的接口函数代码进行拦截处理。
在本发明的具体实施例中,注入单元21,还用于在多开应用中添加与原生应用对应的分身应用之后,并在分身应用启动之前,将Xposed框架的预置代码和Xposed插件的预置代码注入到分身应用中。
在本发明的具体实施例中,注入单元21,还用于将Xposed框架的预置接口函数代码和Xposed插件的预置接口函数代码注入到分身应用中,使得Xposed框架的预置接口函数代码、Xposed插件的预置接口函数代码、分身应用接口函数代码三者之间实现相互访问。
基于上述图1-4所示方法,相应的,本发明实施例还提供了一种存储设备,其上存储有计算机程序,程序被处理器执行时实现图1-4所示方法对应的步骤。
基于上述图1-4所示方法和图5、6所示装置的实施例,本发明实施例还提供了一种终端,如图7所示,包括存储设备32、处理器31及存储在存储设备上并可在处理器上运行的计算机程序,其中存储设备32和处理器31均设置在总线33上,处理器31执行程序时实现图1-4所示方法对应的步骤。
通过本发明的上述技术方案,由于在多开应用中添加了Xposed框架的预置代码和Xposed插件的预置代码,操作系统就可以在无需root的情况下,根据用户自己实际的需要,利用多开应用程序中的Xposed插件,对分身应用的某些功能进行更改、添加或删除,以提高分身应用的功能,使分身应用的功能多样化,能够适应不同用户的不同需求。
本发明实施例公开了:
A1、一种多开应用的优化方法,包括:
当多开应用启动与原生应用对应的分身应用时,将服务框架的预置代码和服务框架插件的预置代码注入到所述分身应用中;
根据与所述服务框架插件配置界面中输入的配置信息,通过调用注入的所述服务框架的预置代码和所述服务框架插件的预置代码,对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理,实现按照所述配置信息更新所述分身应用的功能。
A2、根据A 1所述的方法,所述服务框架为Xposed框架,所述服务框架插件为Xposed插件,所述根据与所述服务框架插件配置界面中输入的配置信息,通过调用注入的所述服务框架的预置代码和所述服务框架插件的预置代码,对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理,实现按照所述配置信息更新所述分身应用的功能,具体包括:
通过调用注入的所述Xposed框架预置代码中包含的预置hook接口函数代码,对所述分身应用中需要调用的与所述配置信息相关接口函数代码的入口点进行修改,使得所述入口点指向所述Xposed插件预置代码中包含的预置接口函数代码;
当与所述配置信息相关接口函数代码被调用时,调用所述Xposed插件的预置接口函数代码,并将所述配置信息中相关参数信息作为入参,实现按照所述配置信息更新所述分身应用的功能。
A3、根据A2所述的方法,所述根据与所述服务框架插件配置界面中输入的配置信息,通过调用注入的所述服务框架的预置代码和所述服务框架插件的预置代码,对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理,实现按照所述配置信息更新所述分身应用的功能之前,所述方法还包括:
获取所述多开应用所在操作系统的当前版本信息,并生成与所述当前版本信息相匹配的新生ARThook相关文件;
利用所述新生ARThook相关文件替换所述Xposed框架中原生的ARThook相关文件。
A4、根据A 3所述的方法,所述利用所述新生ARThook相关文件替换所述Xposed框架中原生的ARThook相关文件之后,所述方法还包括:
利用替换ARThook相关文件后的Xposed框架中的数据库,开发所述Xposed插件,并配置所述Xposed插件对应的配置界面,所述配置界面中包含所述分身应用可更新的功能项数据。
A5、根据A4所述的方法,所述方法还包括:
在根据所述配置界面中输入的功能项数据,确定所述配置界面中的配置信息后,将确定的所述配置信息保存在所述多开应用内的Xposed插件数据库、和/或所述分身应用对应的参数数据库中;
所述根据与所述服务框架插件配置界面中输入的配置信息,通过调用注入的所述服务框架的预置代码和所述服务框架插件的预置代码,对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理,具体包括:
根据所述Xposed插件数据库、和/或所述参数数据库中保存的所述配置信息,通过调用注入的所述Xposed框架的预置代码和所述Xposed插件的预置代码,对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理。
A6、根据A 1所述的方法,所述当多开应用启动与原生应用对应的分身应用时,将服务框架的预置代码和服务框架插件的预置代码注入到所述分身应用中,具体包括:
在多开应用中添加与原生应用对应的分身应用之后,并在所述分身应用启动之前,将服务框架的预置代码和服务框架插件的预置代码注入到所述分身应用中。
A 7、根据A 1至A6任一项所述的方法,所述将服务框架的预置代码和服务框架插件的预置代码注入到所述分身应用中,具体包括:
将服务框架的预置代码和服务框架插件的预置代码注入到所述分身应用中,使得所述服务框架的预置接口函数代码、所述服务框架插件的预置接口函数代码、所述分身应用接口函数代码三者之间实现相互访问。
B8、一种多开应用的优化装置,包括:
注入单元,用于当多开应用启动与原生应用对应的分身应用时,将服务框架的预置代码和服务框架插件的预置代码注入到所述分身应用中;
配置单元,用于根据与所述服务框架插件配置界面中输入的配置信息,通过调用注入的所述服务框架的预置代码和所述服务框架插件的预置代码,对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理,实现按照所述配置信息更新所述分身应用的功能。
B 9、根据B 8所述的装置,所述服务框架为Xposed框架,所述服务框架插件为Xposed插件,所述配置单元包括:
入口点修改模块,用于通过调用注入的所述Xposed框架预置代码中包含的预置hook接口函数代码,对所述分身应用中需要调用的与所述配置信息相关接口函数代码的入口点进行修改,使得所述入口点指向所述Xposed插件预置代码中包含的预置接口函数代码;
功能更新模块,用于当与所述配置信息相关接口函数代码被调用时,调用所述Xposed插件的预置接口函数代码,并将所述配置信息中相关参数信息作为入参,实现按照所述配置信息更新所述分身应用的功能。
B 10、根据B 9所述的装置,所述装置还包括:
新生单元,用于在对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理之前,获取所述多开应用所在操作系统的当前版本信息,并生成与所述当前版本信息相匹配的新生ART hook相关文件;
替换单元,用于利用所述新生ART hook相关文件替换所述Xposed框架中原生的ARThook相关文件。
B 11、根据B 10所述的装置,所述装置还包括:
功能开发单元,用于利用替换ART hook相关文件后的Xposed框架中的数据库,开发所述Xposed插件,并配置所述Xposed插件对应的配置界面,所述配置界面中包含所述分身应用可更新的功能项数据。
B 12、根据B 11所述的装置,所述装置还包括:
功能保存单元,用于在根据所述配置界面中输入的功能项数据,确定所述配置界面中的配置信息后,将确定的所述配置信息保存在所述多开应用内的Xposed插件数据库、和/或所述分身应用对应的参数数据库中;
所述配置单元,具体用于根据所述Xposed插件数据库、和/或所述参数数据库中保存的所述配置信息,通过调用注入的所述Xposed框架的预置代码和所述Xposed插件的预置代码,对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理。
B 13、根据B 8所述的装置,
所述注入单元,还用于在多开应用中添加与原生应用对应的分身应用之后,并在所述分身应用启动之前,将服务框架的预置代码和服务框架插件的预置代码注入到所述分身应用中。
B 14、根据B 8至B 13任一项所述的装置,
所述注入单元,还用于将服务框架的预置代码和服务框架插件的预置代码注入到所述分身应用中,使得所述服务框架的预置接口函数代码、所述服务框架插件的预置接口函数代码、所述分身应用接口函数代码三者之间实现相互访问。
C15、一种存储设备,其上存储有计算机程序,所述程序被处理器执行时实现A1至A7任一项所述的多开应用的优化方法。
D16、一种终端,所述终端包括存储设备和处理器,
所述存储设备,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现A1至A7任一项所述的多开应用的优化方法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种多开应用的优化方法和装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种多开应用的优化方法,其特征在于,包括:
当多开应用启动与原生应用对应的分身应用时,将服务框架的预置代码和服务框架插件的预置代码注入到所述分身应用中;
根据与所述服务框架插件配置界面中输入的配置信息,通过调用注入的所述服务框架的预置代码和所述服务框架插件的预置代码,对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理,实现按照所述配置信息更新所述分身应用的功能。
2.根据权利要求1所述的方法,其特征在于,所述服务框架为Xposed框架,所述服务框架插件为Xposed插件,所述根据与所述服务框架插件配置界面中输入的配置信息,通过调用注入的所述服务框架的预置代码和所述服务框架插件的预置代码,对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理,实现按照所述配置信息更新所述分身应用的功能,具体包括:
通过调用注入的所述Xposed框架预置代码中包含的预置hook接口函数代码,对所述分身应用中需要调用的与所述配置信息相关接口函数代码的入口点进行修改,使得所述入口点指向所述Xposed插件预置代码中包含的预置接口函数代码;
当与所述配置信息相关接口函数代码被调用时,调用所述Xposed插件的预置接口函数代码,并将所述配置信息中相关参数信息作为入参,实现按照所述配置信息更新所述分身应用的功能。
3.根据权利要求2所述的方法,其特征在于,所述根据与所述服务框架插件配置界面中输入的配置信息,通过调用注入的所述服务框架的预置代码和所述服务框架插件的预置代码,对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理,实现按照所述配置信息更新所述分身应用的功能之前,所述方法还包括:
获取所述多开应用所在操作系统的当前版本信息,并生成与所述当前版本信息相匹配的新生ARThook相关文件;
利用所述新生ARThook相关文件替换所述Xposed框架中原生的ARThook相关文件。
4.根据权利要求3所述的方法,其特征在于,所述利用所述新生ARThook相关文件替换所述Xposed框架中原生的ARThook相关文件之后,所述方法还包括:
利用替换ARThook相关文件后的Xposed框架中的数据库,开发所述Xposed插件,并配置所述Xposed插件对应的配置界面,所述配置界面中包含所述分身应用可更新的功能项数据。
5.一种多开应用的优化装置,其特征在于,包括:
注入单元,用于当多开应用启动与原生应用对应的分身应用时,将服务框架的预置代码和服务框架插件的预置代码注入到所述分身应用中;
配置单元,用于根据与所述服务框架插件配置界面中输入的配置信息,通过调用注入的所述服务框架的预置代码和所述服务框架插件的预置代码,对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理,实现按照所述配置信息更新所述分身应用的功能。
6.根据权利要求5所述的装置,其特征在于,所述服务框架为Xposed框架,所述服务框架插件为Xposed插件,所述配置单元包括:
入口点修改模块,用于通过调用注入的所述Xposed框架预置代码中包含的预置hook接口函数代码,对所述分身应用中需要调用的与所述配置信息相关接口函数代码的入口点进行修改,使得所述入口点指向所述Xposed插件预置代码中包含的预置接口函数代码;
功能更新模块,用于当与所述配置信息相关接口函数代码被调用时,调用所述Xposed插件的预置接口函数代码,并将所述配置信息中相关参数信息作为入参,实现按照所述配置信息更新所述分身应用的功能。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
新生单元,用于在对所述分身应用中需要调用的与所述配置信息相关的接口函数代码进行拦截处理之前,获取所述多开应用所在操作系统的当前版本信息,并生成与所述当前版本信息相匹配的新生ART hook相关文件;
替换单元,用于利用所述新生ART hook相关文件替换所述Xposed框架中原生的ARThook相关文件。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
功能开发单元,用于利用替换ART hook相关文件后的Xposed框架中的数据库,开发所述Xposed插件,并配置所述Xposed插件对应的配置界面,所述配置界面中包含所述分身应用可更新的功能项数据。
9.一种存储设备,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至4任一项所述的多开应用的优化方法。
10.一种终端,其特征在于,所述终端包括存储设备和处理器,
所述存储设备,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现权利要求1至4任一项所述的多开应用的优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710840372.9A CN107608746A (zh) | 2017-09-18 | 2017-09-18 | 一种多开应用的优化方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710840372.9A CN107608746A (zh) | 2017-09-18 | 2017-09-18 | 一种多开应用的优化方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107608746A true CN107608746A (zh) | 2018-01-19 |
Family
ID=61060492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710840372.9A Pending CN107608746A (zh) | 2017-09-18 | 2017-09-18 | 一种多开应用的优化方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107608746A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563472A (zh) * | 2018-04-03 | 2018-09-21 | 北京奇虎科技有限公司 | 基于多开应用的服务插件加载方法及装置 |
CN109117208A (zh) * | 2018-07-20 | 2019-01-01 | 北京奇虎科技有限公司 | 信息分享方法、装置、用户终端及可读存储介质 |
CN109814948A (zh) * | 2018-12-29 | 2019-05-28 | 360企业安全技术(珠海)有限公司 | 基于xposed框架对native层函数进行hook的方法、装置及电子装置 |
CN114610406A (zh) * | 2022-03-02 | 2022-06-10 | 维塔科技(北京)有限公司 | 代码注入方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017004428A (ja) * | 2015-06-15 | 2017-01-05 | 株式会社三菱東京Ufj銀行 | 情報管理装置及びプログラム |
CN106445671A (zh) * | 2016-10-10 | 2017-02-22 | 广东欧珀移动通信有限公司 | 一种应用程序的管理方法、装置及终端 |
CN106648738A (zh) * | 2016-10-10 | 2017-05-10 | 广东欧珀移动通信有限公司 | 一种分身应用管理方法、装置及终端 |
CN106713215A (zh) * | 2015-07-14 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 一种信息处理方法、终端及服务器 |
CN106780240A (zh) * | 2016-11-22 | 2017-05-31 | 北京奇虎科技有限公司 | 监控出行的方法及装置 |
-
2017
- 2017-09-18 CN CN201710840372.9A patent/CN107608746A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017004428A (ja) * | 2015-06-15 | 2017-01-05 | 株式会社三菱東京Ufj銀行 | 情報管理装置及びプログラム |
CN106713215A (zh) * | 2015-07-14 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 一种信息处理方法、终端及服务器 |
CN106445671A (zh) * | 2016-10-10 | 2017-02-22 | 广东欧珀移动通信有限公司 | 一种应用程序的管理方法、装置及终端 |
CN106648738A (zh) * | 2016-10-10 | 2017-05-10 | 广东欧珀移动通信有限公司 | 一种分身应用管理方法、装置及终端 |
CN106780240A (zh) * | 2016-11-22 | 2017-05-31 | 北京奇虎科技有限公司 | 监控出行的方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563472A (zh) * | 2018-04-03 | 2018-09-21 | 北京奇虎科技有限公司 | 基于多开应用的服务插件加载方法及装置 |
CN108563472B (zh) * | 2018-04-03 | 2021-07-09 | 北京奇虎科技有限公司 | 基于多开应用的服务插件加载方法及装置 |
CN109117208A (zh) * | 2018-07-20 | 2019-01-01 | 北京奇虎科技有限公司 | 信息分享方法、装置、用户终端及可读存储介质 |
CN109117208B (zh) * | 2018-07-20 | 2022-12-02 | 北京奇虎科技有限公司 | 信息分享方法、装置、用户终端及可读存储介质 |
CN109814948A (zh) * | 2018-12-29 | 2019-05-28 | 360企业安全技术(珠海)有限公司 | 基于xposed框架对native层函数进行hook的方法、装置及电子装置 |
CN109814948B (zh) * | 2018-12-29 | 2022-04-22 | 奇安信安全技术(珠海)有限公司 | 基于xposed框架对native层函数进行hook的方法、装置及电子装置 |
CN114610406A (zh) * | 2022-03-02 | 2022-06-10 | 维塔科技(北京)有限公司 | 代码注入方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109597814B (zh) | 一种后台管理信息系统的在线快速交付系统 | |
CN107608746A (zh) | 一种多开应用的优化方法和装置 | |
US10462018B2 (en) | Managing a number of secondary clouds by a master cloud service manager | |
CN107590186B (zh) | 管理和执行数据处理策略的方法和策略引擎系统 | |
US8935191B2 (en) | Reuse of on-demand enterprise system customization knowledge utilizing collective experience | |
CN107924411A (zh) | 事务系统中ui状态的恢复 | |
JP2010541080A (ja) | サービス指向型パイプライン構造 | |
CN105719391B (zh) | 支持多个支付卡的移动装置和方法 | |
CN109740934A (zh) | 运维作业控制方法、装置、设备及计算机可读存储介质 | |
CN103778012B (zh) | 更改终端运营商信息的方法及装置 | |
US20230050511A1 (en) | Enterprise automation system | |
CN110347494A (zh) | 上下文信息管理方法、装置、系统及计算机可读存储介质 | |
CN106126244A (zh) | 一种文档处理方法及装置 | |
CN107147711A (zh) | 应用服务更新方法及装置 | |
CN108563472A (zh) | 基于多开应用的服务插件加载方法及装置 | |
CN115437933A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN114386934A (zh) | 用于业务流程的生成方法及装置、服务器、存储介质 | |
CN110262782A (zh) | 软件系统的接口比对方法和装置 | |
WO2018223678A1 (zh) | 一种数据处理方法及处理装置 | |
Mohamed et al. | SaaS dynamic evolution based on model-driven software product lines | |
CN107621939B (zh) | 一种应用优化方法及装置 | |
CN109241727B (zh) | 权限设置方法及装置 | |
CN106603701A (zh) | 基于长连接平台下发消息的方法及装置 | |
CN110471786A (zh) | 在线热修复方法、装置、设备及计算机可读存储介质 | |
CN112988887B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180119 |