CN115080114A - 应用程序的移植处理方法、装置和介质 - Google Patents

应用程序的移植处理方法、装置和介质 Download PDF

Info

Publication number
CN115080114A
CN115080114A CN202211009512.5A CN202211009512A CN115080114A CN 115080114 A CN115080114 A CN 115080114A CN 202211009512 A CN202211009512 A CN 202211009512A CN 115080114 A CN115080114 A CN 115080114A
Authority
CN
China
Prior art keywords
application program
error information
information
layer software
compatible layer
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
Application number
CN202211009512.5A
Other languages
English (en)
Other versions
CN115080114B (zh
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.)
Nfs China Software Co ltd
Original Assignee
Nfs China Software 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 Nfs China Software Co ltd filed Critical Nfs China Software Co ltd
Priority to CN202211009512.5A priority Critical patent/CN115080114B/zh
Publication of CN115080114A publication Critical patent/CN115080114A/zh
Application granted granted Critical
Publication of CN115080114B publication Critical patent/CN115080114B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

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

Abstract

本申请实施例提供了一种应用程序的移植处理方法、装置和介质,其中的方法具体包括:根据预设代码,获取预设交互组件的组件信息;根据所述预设交互组件的组件信息,进行第一应用程序的自动处理;所述自动处理包括:安装、启动和使用中的至少一种;采集第一应用程序在自动处理过程中的错误信息;所述错误信息用于建立并保存错误信息与解决方案之间的映射关系。本申请实施例可以降低错误信息的采集成本,提高应用移植过程中的错误解决效率,可以减少后续错误的出现概率,以及能够增加错误信息与解决方案所对应的应用程序范围。

Description

应用程序的移植处理方法、装置和介质
技术领域
本申请实施例涉及计算机技术领域,特别是涉及一种应用程序的移植处理方法、装置和介质。
背景技术
操作系统向应用程序提供服务的接口被称作API (应用编程接口,ApplicationProgram Interface)。不同的操作系统提供了不同的API,这一特性使得一个应用程序很难不加修改地运行于多个操作系统之上。目前,可以利用例如Wine(Wine不是模拟器,Wine IsNot an Emulator)的兼容层软件,将第一操作系统的应用程序移植到第二操作系统上。由于Wine能够将 Windows(视窗)API的调用翻译成为动态的 POSIX (可移植操作系统接口,Portable Operating System Interface)调用,因此能够使Windows应用程序在Windows之外的操作系统中运行。
在实际应用中,在利用Wine安装、启动过程和使用Windows应用程序的过程中,经常出现各式各样的错误。例如,Windows的即时通讯程序在扫码登录的过程中无法刷新二维码的错误;又如,Windows的即时通讯程序的窗口遮挡的错误,等等。
发明内容
本申请实施例提供了一种应用程序的移植处理方法,可以降低错误信息的采集成本,可以提高应用移植过程中的错误解决效率,可以减少后续错误的出现概率,以及能够增加错误信息与解决方案所对应的应用程序范围。
相应的,本申请实施例还提供了一种应用程序的移植处理装置、一种电子设备和一种机器可读介质,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种应用程序的移植处理方法,所述方法应用于运行在第一操作系统上的客户端,所述第一操作系统中运行有兼容层软件,在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;所述方法包括:
根据预设代码,获取预设交互组件的组件信息;
根据所述预设交互组件的组件信息,进行第一应用程序的自动处理;所述自动处理包括:安装、启动和使用中的至少一种;
采集第一应用程序在自动处理过程中的错误信息;所述错误信息用于建立并保存错误信息与解决方案之间的映射关系;
其中,所述解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系。
为了解决上述问题,本申请实施例公开了一种应用程序的移植处理方法,所述方法应用于服务端,所述方法包括:
从客户端获取第二操作系统的第一应用程序在自动处理过程中的错误信息;所述客户端运行在第一操作系统上,所述第一操作系统中运行有兼容层软件;在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;所述客户端根据所述预设交互组件的组件信息,进行第一应用程序的自动处理,并采集所述错误信息;所述自动处理包括:安装、启动和使用中的至少一种;
建立并保存错误信息与解决方案之间的映射关系;
执行所述映射关系中的解决方案,以对兼容层软件进行更新;
其中,所述解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系。
为了解决上述问题,本申请实施例公开了一种应用程序的移植处理方法,所述方法应用于运行在第一操作系统上的客户端,所述第一操作系统中运行有兼容层软件,所述方法包括:
采集第二操作系统的第二应用程序在处理过程中的待处理错误信息;
根据所述待处理错误信息,在预先保存的错误信息与解决方案之间的映射关系中进行查找,以得到所述待处理错误信息对应的目标解决方案;
执行所述目标解决方案;
其中,所述解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系;
在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;所述预设交互组件的组件信息用于进行第一应用程序的自动处理;所述自动处理包括:安装、启动和使用中的至少一种;所述第一应用程序在自动处理过程中的错误信息用于建立和保存错误信息与解决方案之间的映射关系。
为了解决上述问题,本申请实施例公开了一种应用程序的移植处理装置,所述装置应用于运行在第一操作系统上的客户端,所述第一操作系统中运行有兼容层软件,在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;所述装置包括:
获取模块,用于根据预设代码,获取预设交互组件的组件信息;
自动处理模块,用于根据所述预设交互组件的组件信息,进行第一应用程序的自动处理;所述自动处理包括:安装、启动和使用中的至少一种;
第一采集模块,用于采集第一应用程序在自动处理过程中的错误信息;所述错误信息用于建立并保存错误信息与解决方案之间的映射关系;
其中,所述解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系。
可选地,所述自动处理模块包括:
自动触发模块,用于根据自动处理对应的逻辑信息,触发自动处理的第一界面中预设交互组件对应的点击操作,以从自动处理的第一界面跳转至自动处理的第二界面。
可选地,所述装置还包括:
更新模块,用于根据自动处理过程中是否采集到错误信息,对第一应用程序的处理状态信息进行更新;
所述处理状态信息包括如下信息中的至少一种:安装失败、启动失败、使用失败和使用成功。
可选地,服务端根据第二操作系统的应用程序的下载地址,进行第二操作系统的应用程序的批量下载,对批量下载的第一应用程序进行存储,根据存储的第一应用程序,提供第一应用程序的下载服务,以使客户端根据所述下载服务进行第一应用程序的下载。
可选地,所述装置还包括:
设置模块,用于在兼容层软件的容器中设置预设字符种类、预设开发语言对应软件的运行和3D图像对应的动态链接库。
为了解决上述问题,本申请实施例公开了一种应用程序的移植处理装置,所述装置应用于服务端,所述装置包括:
获取模块,用于从客户端获取第二操作系统的第一应用程序在自动处理过程中的错误信息;所述客户端运行在第一操作系统上,所述第一操作系统中运行有兼容层软件;在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;所述客户端根据所述预设交互组件的组件信息,进行第一应用程序的自动处理,并采集所述错误信息;所述自动处理包括:安装、启动和使用中的至少一种;
建立保存模块,用于建立并保存错误信息与解决方案之间的映射关系;
第一执行模块,用于执行所述映射关系中的解决方案,以对兼容层软件进行更新;
其中,所述解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系。
可选地,客户端根据自动处理过程中是否采集到错误信息,对第一应用程序的处理状态信息进行更新;
则所述建立保存模块包括:
确定模块,用于针对处理状态信息为预设处理状态信息的目标第一应用程序,根据目标第一应用程序对应的错误信息,确定对应的解决方案。
为了解决上述问题,本申请实施例公开了一种应用程序的移植处理装置,所述装置应用于运行在第一操作系统上的客户端,所述第一操作系统中运行有兼容层软件,所述装置包括:
第二采集模块,用于采集第二操作系统的第二应用程序在处理过程中的待处理错误信息;
查找模块,用于根据所述待处理错误信息,在预先保存的错误信息与解决方案之间的映射关系中进行查找,以得到所述待处理错误信息对应的目标解决方案;
第二执行模块,用于执行所述目标解决方案;
其中,所述解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系;
在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;所述预设交互组件的组件信息用于进行第一应用程序的自动处理;所述自动处理包括:安装、启动和使用中的至少一种;所述第一应用程序在自动处理过程中的错误信息用于建立和保存错误信息与解决方案之间的映射关系。
可选地,所述装置还包括:
确定模块,用于根据第二应用程序在处理过程中需要调用的第一动态链接库,确定所述第一动态链接库依赖的第二动态链接库;
增设模块,用于在兼容层软件中增设所述第二动态链接库。
可选地,所述映射关系包括:应用类别、错误信息与解决方案之间的映射关系。
本申请实施例还公开了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如本申请实施例所述的方法。
本申请实施例还公开了一种机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如本申请实施例所述的方法。
本申请实施例包括以下优点:
本申请实施例的技术方案中,在兼容层软件中设置预设代码;该预设代码可用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取该预设交互组件的组件信息;这样,本申请实施例可以根据该预设交互组件的组件信息,进行第一应用程序的自动安装、自动启动和自动使用等自动处理,并采集第一应用程序在自动处理过程中的错误信息。
由于本申请实施例的错误信息可用于建立并保存错误信息与解决方案之间的映射关系,该映射关系可用于解决应用移植过程中的后续错误。例如,在第一操作系统上处理第二操作系统的第二应用程序的过程中,若采集到错误信息,则可以执行该错误信息对应的目标解决方案,以实现应用移植过程中错误的自动解决,因此能够提高应用移植过程中的错误解决效率。
并且,本申请实施例的解决方案可以涉及:在兼容层软件中设置错误信息对应的动态链接库、代码、处理逻辑和依赖关系等兼容层软件的更新和优化方案,上述兼容层软件的更新和优化方案可以减少后续错误的出现概率。
此外,本申请实施例可以在不借助于人力的情况下,根据该预设交互组件的组件信息,进行第一应用程序的自动处理和错误信息的自动采集。上述自动处理和自动采集可以降低错误信息的采集成本。在降低错误信息的采集成本的情况下,本申请实施例可以针对数量更多的第一应用程序进行自动处理和错误信息的自动采集,因此能够增加错误信息与解决方案所对应的应用程序范围。
附图说明
图1是本申请一个实施例的应用程序的移植系统的结构示意图;
图2是本申请一个实施例的应用程序的移植处理方法的步骤流程示意图;
图3是本申请一个实施例的应用程序的处理状态信息的更新方法的步骤流程图;
图4是本申请一个实施例的应用程序的移植处理方法的步骤流程示意图;
图5是本申请一个实施例的应用程序的移植处理方法的步骤流程示意图;
图6是本申请一个实施例的应用程序的移植处理方法的步骤流程示意图;
图7是本申请一个实施例的应用程序的移植处理方法的步骤流程示意图;
图8是本申请一个实施例的应用程序的移植处理装置的结构示意图;
图9是本申请一个实施例的应用程序的移植处理装置的结构示意图;
图10是本申请一个实施例的应用程序的移植处理装置的结构示意图;
图11是本申请一个实施例提供的装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请实施例可以应用于应用移植场景。在应用移植场景下,可以利用例如Wine的兼容层软件,将第一操作系统的应用程序移植到第二操作系统上。
兼容层软件是一种能够在多种兼容POSIX(POSIX-compliant)的第一操作系统上运行第二操作系统的应用程序的兼容层。兼容层软件能够将 Windows API的调用翻译成为动态的 POSIX调用,因此能够使Windows应用程序在Windows之外的第一操作系统中运行。
第一操作系统的例子可以包括:Linux,macOS(麦金塔操作系统,MacintoshOperating System)及 BSD(伯克利软件套件,BerkeleySoftwareDistribution)等。第二操作系统的例子可以包括:Windows操作系统(视窗操作系统)等。可以理解,本申请实施例对于具体的第一操作系统和第二操作系统不加以限制。
针对相关技术中利用Wine安装、启动过程和使用Windows应用程序的过程中、经常出现各式各样的错误的技术问题,本申请实施例提供了一种应用程序的移植处理方法,该方法可以应用于运行在第一操作系统上的客户端,该第一操作系统中可以运行有兼容层软件,在兼容层软件中设置预设代码;该预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取该预设交互组件的组件信息;该方法具体可以包括:根据预设代码,获取预设交互组件的组件信息;根据该预设交互组件的组件信息,进行第一应用程序的自动处理;该自动处理包括:安装、启动和使用中的至少一种;采集第一应用程序在自动处理过程中的错误信息;该错误信息用于建立并保存错误信息与解决方案之间的映射关系;
其中,该解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置该错误信息对应的动态链接库;
在兼容层软件中设置该错误信息对应的代码;
在兼容层软件中设置该错误信息对应的处理逻辑;以及
在兼容层软件中设置错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系。
本申请实施例在兼容层软件中设置预设代码;该预设代码可用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取该预设交互组件的组件信息;这样,本申请实施例可以根据该预设交互组件的组件信息,进行第一应用程序的自动安装、自动启动和自动使用(可以指启动后的使用)等自动处理,并采集第一应用程序在自动处理过程中的错误信息。
由于本申请实施例的错误信息可用于建立并保存错误信息与解决方案之间的映射关系,该映射关系可用于解决应用移植过程中的后续错误。例如,在第一操作系统上处理第二操作系统的第二应用程序的过程中,若采集到错误信息,则可以直接执行已保存的该错误信息对应的目标解决方案,以实现应用移植过程中错误的自动解决,因此能够提高应用移植过程中的错误解决效率。
假设映射关系中的错误信息A包括:Windows的即时通讯程序X在扫码登录的过程中无法刷新二维码的错误;错误信息A对应的解决方案A为:在兼容层软件中设置该错误信息A对应的动态链接库。则后续Windows的即时通讯程序X的更新版本、或Windows的即时通讯程序Y在扫码登录的过程中也出现无法刷新二维码的错误的情况下,可以依据映射关系执行解决方案A,以实现应用移植过程中错误的自动解决;其中,即时通讯程序Y与即时通讯程序X可以对应相同的类别。
又如,映射关系中的错误信息B包括:Windows的即时通讯程序X的窗口遮挡的错误;错误信息B对应的解决方案B为:在兼容层软件中设置该错误信息对应的代码,该代码中可以包括:上层窗口的透明度属性,这样,可以解决下层窗口被上层窗口遮挡的问题。则后续Windows的即时通讯程序X的更新版本、或Windows的即时通讯程序Y也出现窗口遮挡的错误的情况下,可以依据映射关系执行解决方案B,以实现应用移植过程中错误的自动解决。
并且,本申请实施例的解决方案可以涉及:在兼容层软件中设置错误信息对应的动态链接库、代码、处理逻辑和依赖关系等兼容层软件的更新和优化方案,上述兼容层软件的更新和优化方案可以减少后续错误的出现概率。
此外,本申请实施例可以在不借助于人力的情况下,根据该预设交互组件的组件信息,进行第一应用程序的自动处理和错误信息的自动采集。上述自动处理和自动采集可以降低错误信息的采集成本。在降低错误信息的采集成本的情况下,本申请实施例可以针对数量更多的第一应用程序进行自动处理和错误信息的自动采集,因此能够增加错误信息与解决方案所对应的应用程序范围。
参考图1,示出了本申请一个实施例的应用程序的移植系统的结构示意图,该系统具体可以包括:兼容层软件101、客户端102和服务端103。
其中,兼容层软件101和客户端102运行在第一操作系统的环境中。兼容层软件101和客户端102可以为不同的软件,或者,兼容层软件101和客户端102可以为相同软件的不同模块。
兼容层软件101和客户端102之间可以经由进程通信方式进行通信。例如,在第一操作系统为Linux系统的情况下,兼容层软件101和客户端102之间可以经由域套接字(UDS,unix domain sockets)方式进行通信。或者,兼容层软件101和客户端102之间可以经由组件通信等软件内部的通信方式进行通信。可以理解,本申请实施例对于兼容层软件101和客户端102之间的具体通信方式不加以限制。
客户端102可以是与服务端103相对应,为客户提供本地服务的程序。客户端102与服务端103可以利用有线网络或无线网络进行通信。本申请实施例对于服务端103所对应操作系统的环境不加以限制,服务端103所对应操作系统可以是第一操作系统或第二操作系统等。
本申请实施例对兼容层软件101进行了更新,具体而言,在兼容层软件101中设置了预设代码。该预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取该预设交互组件的组件信息。在实际应用中,服务端103可以访问兼容层软件101的文件路径,以在兼容层软件101的文件路径中设置预设代码。或者,可以为兼容层软件101生成预设代码对应的补丁。或者,可以与兼容层软件101的开发方进行合作,以使开发方在兼容层软件101中设置预设代码。可以理解,本申请实施例对于在兼容层软件101中设置预设代码的具体实现方式不加以限制。
在兼容层软件101为开源软件的情况下,可以在兼容层软件101的源代码的基础上,设置预设代码。在兼容层软件101为非开源软件的情况下,可以在获得开发方的许可的情况下,在兼容层软件101中设置预设代码。
本申请实施例的服务端可以包括:第一服务端和第二服务端。其中,第二服务端可以根据第二操作系统的应用程序的下载地址,进行第二操作系统的应用程序的批量下载,对批量下载的第一应用程序进行存储,根据存储的第一应用程序,提供第一应用程序的下载服务,以使客户端102根据所述下载服务进行第一应用程序的下载。下载服务对应的通信协议可以包括:FTP(文件传输协议,File Transfer Protocol)协议、或者BT(比特流,BitTorrent)协议等。可以理解,本申请实施例对于下载服务对应的具体通信协议不加以限制。
在具体实现中,第二服务端可以利用爬虫工具,从下载网站等数据源,进行第二操作系统的应用程序的批量下载。第二服务端可以利用数据库存储应用程序的安装包等数据,还可以提供下载服务。
爬虫工具可以获取网页源代码,并从网页源代码中提取第一应用程序的第一下载地址。在有些情况下,网页源代码中可能包含第一应用程序的第一下载地址;此种情况下,可以从网页源代码中成功提取第一应用程序的第一下载地址。
在另一些情况下,网页源代码中可能并不直接包含第一应用程序的第一下载地址。因此,在本申请的一种可选实现方式中,可以对网页源代码进行解析,以得到第一下载地址对应的多个字符串及拼接规则;根据所述拼接规则,对所述多个字符串进行拼接,以得到第一应用程序的第一下载地址。网页源代码可以是网页中下载相关内容的函数对应的函数源代码。本申请实施例可以从函数源代码中解析得到第一下载地址对应的多个字符串及拼接规则,并按照该拼接规则对该多个字符串进行拼接,以得到第一应用程序的第一下载地址。
第二服务端还可以针对下载的应用程序,记录应用标识、下载地址、数据源、应用类别、信息摘要、版本等应用信息。其中,应用标识可以唯一标识第一应用程序,例如,应用标识可以为安装包的名称等。数据源可用于对应用程序进行溯源。例如,在第三应用程序的错误信息表征第三应用程序包含病毒信息时,可以对第三应用程序对应数据源的多个应用程序进行下架处理和删除处理。其中,下架处理可以将已发布的应用程序进行下架。
应用类别可以用于解决应用移植过程中的后续错误。例如,在后续使用第二应用程序的过程中,可以采用第四应用程序对应的映射关系,解决第二应用程序的错误;其中,第二应用程序与第四应用程序可以对应相同的应用类别。在实际应用中,可以建立并保存应用类别、错误信息与解决方案之间的映射关系。
信息摘要可以避免下载信息摘要相同的多个应用程序,以减少应用程序的冗余。
第一服务端可以从第二服务端获取第一应用程序的应用信息,并将第一应用程序的应用信息写入内存数据库的列表,以使客户端从列表中获取第一应用程序的应用信息。
内存数据库可以指将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高数据读取的性能。
在将第一应用程序的应用信息写入内存数据库的列表之前,可以对第一应用程序的应用信息进行去重处理,以避免一个第一应用程序被多个客户端102重复处理。例如,可以根据信息摘要或应用标识,对第一应用程序的应用信息进行去重处理。又如,可以利用内存数据库的集合(Set)技术,对第一应用程序的应用信息进行去重处理。集合技术是唯一字符串的无序集合,唯一值表示集合中不允许键中有重复的数据。
内存数据库的列表可以包括:队列、链表或堆栈等。列表的进出方向可以包括:左进右出、或左进左出、或右进左出、或右进右出等。本申请实施例可以经由推(Push)操作,向列表中写应用信息;以及,可以经由弹出(Pop)操作,从列表中获取应用信息。弹出操作不仅可以获取列表中位于头部或尾部的一个目标元素,而且可以将目标元素从列表中移除。这样,不仅可以释放列表的存储空间,而且可以减少不同客户端获取的应用信息的重复性。
客户端的处理流程可以包括:从第一服务端的内存数据库的列表中获取第一应用程序的应用信息;该应用信息可以包括:应用标识和下载地址;根据该下载地址,从第二服务端下载第一应用程序的安装包;根据第一应用程序的安装包,进行第一应用程序的自动处理;该自动处理可以包括:安装;其中,从该兼容层软件接收第一应用程序的界面中预设交互组件的组件信息,并根据该组件信息,进行自动处理过程中界面的跳转;根据自动处理过程中是否采集到错误信息,对第一应用程序的处理状态信息进行更新;若某一时刻的处理状态信息为安装成功,则该自动处理还包括:启动;将第一应用程序的应用标识、以及自动处理结果写入第一服务端的内存数据库;该自动处理结果可以包括:第一应用程序在自动处理结束情况下的目标处理状态信息。
为了提高Windows应用程序的可用性和稳定性,相关技术会采用人工筛选方式,从大量的Windows应用程序中筛选出存在错误的目标Windows应用程序。在实际应用中,人工筛选通常包括:人工调度、人工安装和人工汇总等;其中,人工调度将Windows应用程序分配至对应的计算节点;人工安装在计算节点上安装对应的Windows应用程序;人工汇总对多个计算节点的处理结果进行汇总。由于人工调度、人工安装和人工汇总均需要耗费大量的人力成本,因此,人工筛选方式不仅耗费大量的人力成本,而且存在筛选效率低的问题。
本申请实施例中,客户端从第一服务端的内存数据库的列表中获取第一应用程序的应用信息,并根据应用信息中的下载地址,自动从第二服务端下载第一应用程序的安装包。由于本申请实施例的客户端能够自动获取应用信息和自动下载第一应用程序的安装包,故能够节省基于人工调度将第一应用程序分配至计算节点的操作成本,因此本申请实施例可以节省第一应用程序的筛选所耗费的人力成本,且可以提高第一应用程序的筛选效率。
并且,本申请实施例在兼容层软件中设置预设代码;该预设代码可用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取该预设交互组件的组件信息;这样,本申请实施例可以根据该预设交互组件的组件信息,进行第一应用程序的自动安装等自动处理。由于上述自动处理可以节省人工安装所耗费的操作成本,因此本申请实施例可以节省第一应用程序的筛选所耗费的人力成本,且可以提高第一应用程序的筛选效率。
进一步,本申请实施例根据自动处理过程中是否采集到错误信息,对第一应用程序的处理状态信息进行更新,并将第一应用程序的应用标识、以及自动处理结果写入第一服务端的内存数据库。由于第一服务端可以根据内存数据库获取多个客户端的自动处理结果,故可以处理结果的人工汇总所耗费的人力成本,且可以提高第一应用程序的筛选效率。
此外,本申请实施例利用内存数据库进行应用信息的分发和自动处理结果的收集,由于内存数据库具备读写速度快的优点,因此,本申请实施例可以降低第一服务端的访问压力,适用于高并发的访问场景,也即,第一服务端连接多个客户端、且多个客户端频繁访问内存数据库的场景。
预设交互组件可以指具有交互功能的组件,如用于输入信息或做出选择的组件。预设交互组件的例子可以包括:输入框、复选框、单选按钮、下拉菜单、单击控件、切换控件等,可以理解,本申请实施例对于具体的预设交互组件不加以限制。
客户端102可以根据该预设交互组件的组件信息,进行第一应用程序的自动处理,并采集第一应用程序在自动处理过程中的错误信息,由此可以实现第一应用程序的自动处理和错误信息的自动采集。
一个客户端102可以对一个或多个第一应用程序进行自动处理和错误信息的自动采集。服务端103可以从一个或多个客户端102收集第一应用程序在自动处理过程中的错误信息,由此可以建立并保存错误信息与解决方案之间的映射关系。
客户端102还可以根据映射关系,解决应用移植过程中的后续错误。例如,在第一操作系统上处理第二操作系统的第二应用程序的过程中,若采集到错误信息,则可以根据映射关系执行该错误信息对应的目标解决方案,以实现应用移植过程中错误的自动解决,因此能够提高应用移植过程中的错误解决效率。
方法实施例一
参考图2,示出了本申请一个实施例的应用程序的移植处理方法的步骤流程示意图,该方法可以应用于运行在第一操作系统上的客户端,该第一操作系统中可以运行有兼容层软件,在兼容层软件中设置预设代码;该预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取该预设交互组件的组件信息,该方法具体可以包括如下步骤:
步骤201、根据预设代码,获取预设交互组件的组件信息;
步骤202、根据预设交互组件的组件信息,进行第一应用程序的自动处理;该自动处理包括:安装、启动和使用中的至少一种;
步骤203、采集第一应用程序在自动处理过程中的错误信息;该错误信息用于建立并保存错误信息与解决方案之间的映射关系;
其中,该解决方案具体可以包括如下方案种类中的至少一种:
在兼容层软件中设置该错误信息对应的动态链接库;
在兼容层软件中设置该错误信息对应的代码;
在兼容层软件中设置该错误信息对应的处理逻辑;以及
在兼容层软件中设置错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系。
在实际应用中,客户端可以从服务端下载第一应用程序,并触发第一应用程序的自动安装、自动启动和自动使用等自动处理。例如,可以采用双击第一应用程序的安装包的方式,触发第一应用程序的自动安装。又如,可以采用双击第一应用程序的图标的方式,触发第一应用程序的自动启动。再如,在自动启动第一应用程序后,可以进行第一应用程序的自动使用。
在一种实现方式中,服务端可以根据第二操作系统的应用程序的下载地址,进行第二操作系统的应用程序的批量下载,对批量下载的第一应用程序进行存储,根据存储的第一应用程序,提供第一应用程序的下载服务,以使客户端根据所述下载服务进行第一应用程序的下载,这样,客户端可以得到第一应用程序的安装包,第一应用程序的安装包可以为第一应用程序的自动处理提供依据。下载服务对应的通信协议可以包括:FTP(文件传输协议,File Transfer Protocol)协议、或者BT(比特流,Bit Torrent)协议等。可以理解,本申请实施例对于下载服务对应的具体通信协议不加以限制。
在一种可选实现方式中,可以在兼容层软件的容器中设置预设字符种类、预设开发语言对应软件的运行和3D(三维,3-dimension)图像对应的动态链接库(DLL,DynamicLink Library)。兼容层软件的容器可用于提供第二操作系统的环境。
在兼容层软件的容器中设置预设字符种类对应的动态链接库,可以使兼容层软件支持预设字符种类的输入。预设字符种类可以包括:数字、符号、预设语言或预设字体等。
在兼容层软件的容器中设置预设开发语言对应软件的运行对应的动态链接库,可以使兼容层软件更好地支持预设开发语言对应软件的运行。预设开发语言可以为第一应用程序的开发语言,预设开发语言可以包括:VC(Microsoft Visual C++)、VB(Visual Basic)等。
在兼容层软件的容器中设置3D图像对应的动态链接库,可以使兼容层软件支持3D图像的显示等处理。
兼容层软件的容器的文件可以包括:基础文件和注册表文件,其中,基础文件可以包括:动态链接库格式、可执行文件格式和文档格式的文件等。
在兼容层软件的容器中设置动态链接库A,可以将动态链接库A对应的目标文件放置到基础文件中动态链接库格式对应的目录中,并且,还可以在注册表文件中对动态链接库A对应的目标文件进行注册。
在步骤201中,预设交互组件可以为第一应用程序的相关界面中包含的组件。相关界面可以包括:安装界面、启动界面或使用界面。
在第二操作系统的第一应用程序调用预设交互组件的情况下,兼容层软件中设置的预设代码可以从第一操作系统获取预设交互组件的组件信息。而客户端可以基于与兼容层软件之间的交互,获取预设交互组件的组件信息。组件信息可以包括:位置信息和标识信息等。
在步骤202中,可以根据预设交互组件的组件信息,执行第一应用程序的自动处理过程中的处理流程。
客户端可以触发第一应用程序的自动安装、自动启动和自动使用等自动处理。例如,可以采用双击第一应用程序的安装包的方式,触发第一应用程序的自动安装。又如,可以采用在安装成功界面上勾选具有运行功能的组件、或者双击第一应用程序的图标的方式,触发第一应用程序的自动启动。再如,在自动启动成功的情况下,也即,在第一应用程序的自动启动过程中未采集到错误信息的情况下,可以触发第一应用程序的自动使用。
预设交互组件可以为第一应用程序的相关界面中包含的组件。相关界面可以包括:安装界面、启动界面或使用界面。
在第二操作系统的第一应用程序调用预设交互组件的情况下,兼容层软件中设置的预设代码可以从第一操作系统获取预设交互组件的组件信息,并采用预设数据结构,向客户端传递该组件信息。而客户端可以基于与兼容层软件之间的交互,获取预设交互组件的组件信息。组件信息可以包括:位置信息和标识信息等。
假设上述组件信息包括:标识信息和位置信息,则上述进行自动处理过程中界面的跳转,具体可以包括:根据该标识信息,从该界面中确定出目标预设交互组件;根据所述目标预设交互组件的位置信息,触发所述目标预设交互组件对应的操作,以进行自动处理过程中界面的跳转。
标识信息可用于标识预设交互组件。标识信息可以为第一操作系统对于预设交互组件的表征。本申请实施例可以利用组件字典,确定标识信息对应的组件含义。组件字典中可以记录有标识信息与组件含义之间的映射关系。组件含义可以作为标识信息的识别结果。
例如,第一个安装界面中预设交互组件的组件含义可以包括:“立即安装”、“阅读并同意用户协议”、“卸载”等。又如,中间安装界面中预设交互组件的组件含义可以包括:“上一步”、“下一步”、“取消”等。再如,安装成功界面中预设交互组件的名称可以包括:“完成”、“生成程序图标”、“立即运行”等。
本申请实施例可以根据该标识信息对应的组件含义,从该界面中确定出目标预设交互组件。例如,第一个安装界面中目标预设交互组件的组件含义可以包括:“立即安装”、“阅读并同意用户协议”等。又如,中间安装界面中目标预设交互组件的组件含义可以包括:“下一步”等。再如,安装成功界面中目标预设交互组件的组件含义可以包括:“完成”、“生成程序图标”、“立即运行”等。
本申请实施例可以根据组件含义对应的处理属性,从该界面中确定出目标预设交互组件。处理属性可以包括:正向属性或负向属性,正向属性可以表征下一步流程所对应的属性,负向属性可以表征上一步流程或停止流程所对应的属性。本申请实施例可以根据该标识信息,从该界面中确定出正向属性对应的目标预设交互组件。
本申请实施例可以根据目标预设交互组件的位置信息,触发目标预设交互组件对应的操作,以进行自动处理过程中界面的跳转。例如,从第一个安装界面跳转到中间安装界面,从第i(i可以为正整数)个中间安装界面跳转到第(i+1)个中间安装界面,或者,从中间安装界面跳转到安装完成界面等。
在步骤203中,可以采集第一应用程序在自动处理过程中的错误信息。该错误信息可以包括:错误日志信息或截图信息。错误日志信息可由兼容层软件提供。还可以在检测到错误信息的情况下,基于截取屏幕方式,得到截图信息。
本申请实施例可以提供第一应用程序的处理状态信息,该处理状态信息可以表征第一应用程序的处理进度或处理结果。上述方法还可以包括:根据自动处理过程中是否采集到错误信息,对第一应用程序的处理状态信息进行更新;该处理状态信息可以包括如下信息中的至少一种:安装失败、启动失败、使用失败和使用成功。
参照表1,示出了本申请一个实施例的第一应用程序的处理状态信息的状态标识和含义的示例。其中,状态标识可以包括:数字。可以理解,状态标识可以包括:数字之外的字符(如符号或汉字等)。
表1
状态标识 含义
-2 下载失败
-1 下载成功后找不到可执行文件
0 未处理
1 处理中
2 安装失败
3 启动失败
4 使用失败
5 使用成功
下载失败或下载成功对应的下载,可以指根据第二操作系统的应用程序的下载地址,进行第二操作系统的应用程序的下载,下载地址可由网站等第三方的数据源提供。在实际应用中,下载失败或下载成功对应的下载,可由服务端执行。因此,状态标识-2或状态标识-1对应的处理状态信息可由服务端维护。
参考图3,示出了本申请一个实施例的应用程序的处理状态信息的更新方法的步骤流程图,该方法具体可以包括如下步骤:
步骤301、服务端根据第二操作系统的应用程序的下载地址,进行第二操作系统的应用程序的下载,并判断下载是否成功,若否则执行步骤302,若是则执行步骤303;
步骤302、服务端将处理状态信息置为下载失败;
步骤303、服务端判断能否找到可执行文件,若否,则执行步骤304,若是则执行步骤305;
步骤304、服务端将处理状态信息置为下载成功后找不到可执行文件;
步骤305、服务端将处理状态信息置为未处理;
步骤306、在从服务端下载应用程序后,客户端将处理状态信息置为处理中;
步骤307、客户端判断自动安装过程中是否采集到错误信息,若是,则执行步骤308,否则执行步骤309;
步骤308、客户端将处理状态信息置为安装失败;
步骤309、客户端判断自动启动过程中是否采集到错误信息,若是,则执行步骤310,否则执行步骤311;
步骤310、客户端将处理状态信息置为启动失败;
步骤311、客户端判断自动使用过程中是否采集到错误信息,若是,则执行步骤312,否则执行步骤313;
步骤312、客户端向服务端发送错误信息以及对应的应用标识;
步骤313、客户端将处理状态信息置为使用成功。
在实际应用中,服务端可以根据错误信息,确定应用标识对应的处理状态信息。例如,在错误信息不影响正常使用的情况下,可以将应用标识对应的处理状态信息置为使用成功。又如,在错误信息影响正常使用的情况下,可以将应用标识对应的处理状态信息置为使用失败。
可以理解,图3只是作为更新方法的示例,而不理解为本申请实施例的更新方法的限制。例如,对于有些免安装的应用程序而言,其对应的自动处理可以不包括自动安装,因此,其对应的处理状态信息可以不包括:安装失败。
综上,本申请实施例的应用程序的移植处理方法,在兼容层软件中设置预设代码;该预设代码可用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取该预设交互组件的组件信息;这样,本申请实施例可以根据该预设交互组件的组件信息,进行第一应用程序的自动安装、自动启动和自动使用等自动处理,并采集第一应用程序在自动处理过程中的错误信息。
由于本申请实施例的错误信息可用于建立并保存错误信息与解决方案之间的映射关系,该映射关系可用于解决应用移植过程中的后续错误。例如,在第一操作系统上处理第二操作系统的第二应用程序的过程中,若采集到错误信息,则可以依据已保存的映射关系执行该错误信息对应的目标解决方案,以实现应用移植过程中错误的自动解决,因此能够提高应用移植过程中的错误解决效率。
并且,本申请实施例的解决方案可以涉及:在兼容层软件中设置错误信息对应的动态链接库、代码、处理逻辑和依赖关系等兼容层软件的更新和优化方案,上述兼容层软件的更新和优化方案可以减少后续错误的出现概率。
此外,本申请实施例可以在不借助于人力的情况下,根据该预设交互组件的组件信息,进行第一应用程序的自动处理和错误信息的自动采集。上述自动处理和自动采集可以降低错误信息的采集成本。在降低错误信息的采集成本的情况下,本申请实施例可以针对数量更多的第一应用程序进行自动处理和错误信息的自动采集,因此能够增加错误信息与解决方案所对应的应用程序范围。
方法实施例二
参考图4,示出了本申请一个实施例的应用程序的移植处理方法的步骤流程示意图,该方法可以应用于服务端,该服务端可以为第一服务端或第二服务端,该方法具体可以包括如下步骤:
步骤401、从客户端获取第二操作系统的第一应用程序在自动处理过程中的错误信息;该客户端运行在第一操作系统上,该第一操作系统中运行有兼容层软件;在兼容层软件中设置预设代码;该预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取该预设交互组件的组件信息;该客户端根据该预设交互组件的组件信息,进行第一应用程序的自动处理,并采集该错误信息;该自动处理包括:安装、启动和使用中的至少一种;
步骤402、建立并保存错误信息与解决方案之间的映射关系;
步骤403、执行该映射关系中的解决方案,以对兼容层软件进行更新;
其中,该解决方案可以包括如下方案种类中的至少一种:方案种类A、方案种类B、方案种类C和方案种类D。
其中,方案种类A、在兼容层软件中设置该错误信息对应的动态链接库。
方案种类B、在兼容层软件中设置该错误信息对应的代码。
方案种类C、在兼容层软件中设置该错误信息对应的处理逻辑;如在预设应用程序的环境下,采用预设处理方式等,可以理解,不同的预设应用程序可以对应不同的预设处理方式。例如,对于图像处理程序而言,其可以采用第一图形接口进行渲染处理,以提升3D图像的渲染速度,其中,第一图形接口可以为支持3D的图形接口。又如,对于除了图像处理程序之外的应用程序而言,由于其可以不涉及3D图像,故可以采用第二图形接口进行渲染处理。在实际应用中,可以在兼容层软件的注册表文件中设置该错误信息对应的处理逻辑。
方案种类D、在兼容层软件中设置错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系。在实际应用中,可以兼容层软件的基础文件中设置第三方应用程序的资源。
在步骤401中,服务端可以利用与客户端之间的连接,从客户端获取第二操作系统的第一应用程序在自动处理过程中的错误信息。服务端还可以从客户端获取错误信息对应的应用标识,应用标识可以唯一标识第一应用程序,例如,应用标识可以为安装包的名称等。
在步骤402中,服务端针对处理状态信息为预设处理状态信息的目标第一应用程序,根据目标第一应用程序对应的错误信息,确定对应的解决方案。预设处理状态信息可以为对应错误信息的处理状态信息,如安装失败、启动失败和使用失败中任一对应的处理状态信息。本申请实施例可以经由例如表1的状态标识表征处理状态信息,则安装失败对应的处理状态信息可以为:状态标识为2的处理状态信息。
本申请实施例可以对错误信息进行分析,以得到对应的解决方案。本申请实施例可以针对错误信息,确定和执行备选解决方案,并根据备选解决方案的执行结果,判断备选解决方案的有效性。例如,若执行结果表征:执行备选解决方案后、对应的错误信息消失,则备选解决方案的有效性为有效。或者,若执行结果表征:执行备选解决方案后、对应的错误信息仍存在,则备选解决方案的有效性为无效。
在方案种类A对应的应用示例中,假设错误信息A包括:Windows的即时通讯程序X在扫码登录的过程中无法刷新二维码的错误,则错误信息A对应的解决方案A可以为:在兼容层软件中设置该错误信息A对应的动态链接库。
在方案种类B对应的应用示例中,假设错误信息B包括:Windows的即时通讯程序X的窗口遮挡的错误,则错误信息B对应的解决方案B可以为:在兼容层软件中设置该错误信息对应的代码,该代码中可以包括:上层窗口的透明度属性,这样,可以解决下层窗口被上层窗口遮挡的问题。
在方案种类C对应的应用示例中,假设错误信息C包括:Windows的图像处理程序存在3D功能卡顿的错误,则错误信息C对应的解决方案C可以为:在兼容层软件中设置该错误信息对应的处理逻辑,该处理逻辑可用于在图像处理程序的环境下,使用预设图形接口进行3D图像的渲染。
对于方案种类D,可以提供应用程序与第三方应用程序之间的依赖关系,则可以根据该依赖关系,在兼容层软件中设置错误信息对应的第三方应用程序的资源。例如,作业辅导类别或解题类别的应用程序通常依赖于办公类别的第三方应用程序,因此,可以提供作业辅导类别或解题类别的应用程序与办公类别的第三方应用程序之间的依赖关系,并根据该依赖关系,在兼容层软件中设置办公类别的第三方应用程序的资源,如办公套件等。
在具体实现中,可以对多个第一应用程序的错误信息进行聚类,以得到多种错误类别。并且,可以按照错误类别所包含错误信息的数量,确定错误类别的优先级。通常错误类别所包含错误信息的数量越多,错误类别的优先级越高。进一步,可以按照错误类别从高到低的顺序,针对错误类别确定对应的解决方案。
参照表2,示出了本申请一个实施例的错误类别与解决方案之间的映射关系的示例。
表2
错误类别 解决方案
未在本地注册数据库引擎 在兼容层软件中设置该错误类别对应的动态链接库(数据库引擎对应的动态链接库)
虚拟机相关模块错误 在兼容层软件中设置该错误类别对应的动态链接库(虚拟机相关模块对应的动态链接库)
数据库操作错误 在兼容层软件中设置该错误类别对应的动态链接库(数据库操作对应的动态链接库)
死锁 在兼容层软件中设置锁对应的处理逻辑
动画播放器控件未安装 在兼容层软件中设置该错误类别对应的动态链接库(插件对应的动态链接库)
摄像头驱动错误 在兼容层软件中设置该摄像头驱动方案对应的代码
超文本标记语言解析错误 在兼容层软件中设置超文本标记语言解析对应的动态链接库,或者,更换超文本标记语言
3D加速卡错误 在兼容层软件中设置3D加速度对应的处理逻辑,或者在兼容层软件中设置3D加速卡对应的动态链接库
内核崩溃 在兼容层软件中设置该错误类别对应的动态链接库;其中,该动态链接库可以根据内核崩溃对应的调度栈确定;或者,在兼容层软件中设置该错误类别对应的代码,并在该代码中提供对应的动态链接库
花屏 在兼容层软件中设置该错误类别对应的代码,并在该代码中提供窗口状态对应的处理
在步骤403中,执行该映射关系中的解决方案,可以实现兼容层软件的更新和优化,因此可以减少后续错误的出现概率。
假设映射关系中包括M(M为正整数)个解决方案,则可以执行M个解决方案中的部分或全部,以实现兼容层软件的更新和优化。
在实际应用中,随着第二操作系统的应用程序的不断更新,服务端可以根据第二操作系统的应用程序的下载地址,进行第二操作系统的应用程序的扩充,由此可以实现第一应用程序的扩充(如新增)。进一步,本申请实施例可以根据新增的第一应用程序,采集新增的错误信息,确定新增的解决方案。因此,本申请实施例还可以利用更新后的兼容层软件,生成新增的解决方案。这样,在后续使用新版本的第一应用程序、或者与第一应用程序不同的应用程序的情况下,可以对后续出现的错误信息提供对应的目标解决方案。
如表1所示,本申请实施例可以将状态标识为-1或-2的应用程序删除,以释放对应的资源。
在执行该映射关系中的解决方案后,第一应用程序包含的错误信息可以有所减少。本申请实施例可以对使用成功或包含错误信息的第一应用程序进行审核,并对审核通过的第一应用程序进行发布。由于审核通过的第一应用程序不包含错误信息或包含较少的错误信息,因此能够提高发布应用程序的稳定性和安全性等性能。
服务端还可以针对下载的应用程序,记录数据源、应用类别、信息摘要、版本等应用信息。其中,数据源可用于对应用程序进行溯源。例如,在第三应用程序的错误信息表征第三应用程序包含病毒信息时,可以对第三应用程序对应数据源的多个应用程序进行下架处理和删除处理。其中,下架处理可以将已发布的应用程序进行下架。
应用类别可以用于解决应用移植过程中的后续错误。例如,在后续使用第二应用程序的过程中,可以采用第四应用程序对应的映射关系,解决第二应用程序的错误;其中,第二应用程序与第四应用程序可以对应相同的应用类别。在实际应用中,可以建立并保存应用类别、错误信息与解决方案之间的映射关系。
信息摘要可以避免下载信息摘要相同的多个应用程序,以减少应用程序的冗余。
综上,本申请实施例的应用程序的移植处理方法,在兼容层软件中设置预设代码;该预设代码可用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取该预设交互组件的组件信息;这样,本申请实施例可以根据该预设交互组件的组件信息,进行第一应用程序的自动安装、自动启动和自动使用等自动处理,并采集第一应用程序在自动处理过程中的错误信息。
由于本申请实施例的错误信息可用于建立并保存错误信息与解决方案之间的映射关系,该映射关系可用于解决应用移植过程中的后续错误。例如,在第一操作系统上处理第二操作系统的第二应用程序的过程中,若采集到错误信息,则可以执行该错误信息对应的目标解决方案,以实现应用移植过程中错误的自动解决,因此能够提高应用移植过程中的错误解决效率。
并且,本申请实施例的解决方案可以涉及:在兼容层软件中设置错误信息对应的动态链接库、代码、处理逻辑和依赖关系等兼容层软件的更新和优化方案,上述兼容层软件的更新和优化方案可以减少后续错误的出现概率。
此外,本申请实施例可以在不借助于人力的情况下,根据该预设交互组件的组件信息,进行第一应用程序的自动处理和错误信息的自动采集。上述自动处理和自动采集可以降低错误信息的采集成本。在降低错误信息的采集成本的情况下,本申请实施例可以针对数量更多的第一应用程序进行自动处理和错误信息的自动采集,因此能够增加错误信息与解决方案所对应的应用程序范围。
方法实施例三
参考图5,示出了本申请一个实施例的应用程序的移植处理方法的步骤流程示意图,该方法可以应用于运行在第一操作系统上的客户端,该第一操作系统中运行有兼容层软件,该方法具体可以包括如下步骤:
步骤501、采集第二操作系统的第二应用程序在处理过程中的待处理错误信息;
步骤502、根据该待处理错误信息,在预先保存的错误信息与解决方案之间的映射关系中进行查找,以得到该待处理错误信息对应的目标解决方案;
步骤503、执行该目标解决方案;
其中,该解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置错误信息对应的动态链接库;
在兼容层软件中设置错误信息对应的代码;
在兼容层软件中设置错误信息对应的处理逻辑;以及
在兼容层软件中设置错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系;
在兼容层软件中设置预设代码;该预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取该预设交互组件的组件信息;该预设交互组件的组件信息用于进行第一应用程序的自动处理;该自动处理包括:安装、启动和使用中的至少一种;该第一应用程序在自动处理过程中的错误信息用于建立和保存错误信息与解决方案之间的映射关系。
在步骤501中,待处理错误信息可以为待处理的错误日志信息。例如,可以从兼容层软件获取第二应用程序在处理过程中出现的、待处理的错误日志信息。处理过程可以包括:安装过程、启动过程和使用过程中的至少一种。
在步骤502中,服务端可以向客户端下发错误信息与解决方案之间的映射关系。客户端可以将待处理的错误日志信息与映射关系中的错误信息进行匹配。对应的匹配可以包括:字符串匹配或者语义匹配等。其中,字符串匹配可以包括:对待处理的错误日志信息包含的第一字符串与映射关系中的错误信息包含的第二字符串进行匹配。语义匹配可以首先确定待处理的错误日志信息对应的第一语义信息、以及映射关系中的错误信息对应的第二语义信息,并对第一语义信息与第二语义信息进行匹配。其中,可以利用自然语言理解方法或日志分析方法,确定第一语义信息与第二语义信息。
在一种实现方式中,映射关系可以包括:应用类别、错误信息与解决方案之间的映射关系。这样,不仅对第二应用程序与应用类别进行匹配,而且,对待处理的错误日志信息与映射关系中的错误信息进行匹配。在第二应用程序的处理过程中,可以采用第四应用程序对应的映射关系,解决第二应用程序的错误;其中,第二应用程序与第四应用程序可以对应相同的应用类别。
在本申请的一种可选实施例中,上述方法还可以包括:根据第二应用程序在处理过程中需要调用的第一动态链接库,确定所述第一动态链接库依赖的第二动态链接库;在兼容层软件中增设所述第二动态链接库。
本申请实施例可以提供第一动态链接库与第二动态链接库之间的对应关系,并根据该对应关系,确定所述第一动态链接库依赖的第二动态链接库,以及在兼容层软件中增设所述第二动态链接库。上述在兼容层软件中增设所述第二动态链接库,可以提升第二应用程序的运行稳定性。其中,服务端可以保存有动态链接库的集合,该集合中可以包括第二动态链接库等动态链接库。
在步骤503中,执行该目标解决方案,可以实现应用移植过程中错误的自动解决,因此能够提高应用移植过程中的错误解决效率。
方法实施例四
参考图6,示出了本申请一个实施例的应用程序的移植处理方法的步骤流程示意图,该方法具体可以包括如下步骤:
步骤601、客户端根据预设代码,获取预设交互组件的组件信息;
步骤602、客户端根据预设交互组件的组件信息,进行第一应用程序的自动处理;该自动处理包括:安装、启动和使用中的至少一种;
步骤603、客户端采集第一应用程序在自动处理过程中的错误信息;
步骤604、服务端从客户端获取第二操作系统的第一应用程序在自动处理过程中的错误信息;
步骤605、服务端建立并保存错误信息与解决方案之间的映射关系;
步骤606、服务端执行该映射关系中的解决方案,以对兼容层软件进行更新;
在实际应用中,服务端可以向客户端下发错误信息与解决方案之间的映射关系、以及更新后的兼容层软件。
步骤607、客户端采集第二操作系统的第二应用程序在处理过程中的待处理错误信息;
步骤608、客户端根据该待处理错误信息,在预先保存的错误信息与解决方案之间的映射关系中进行查找,以得到该待处理错误信息对应的目标解决方案;
步骤609、客户端执行该目标解决方案。
方法实施例五
参考图7,示出了本申请一个实施例的应用程序的移植处理方法的步骤流程示意图,该方法具体可以包括如下步骤:
步骤701、数据获取。服务端可以利用爬虫工具,从下载网站等数据源,进行第二操作系统的应用程序的批量下载。
步骤702、数据存储。服务端可以利用数据库存储应用程序的安装包等数据,还可以提供FTP、BT等通信协议的下载服务。
步骤703、自动处理。客户端可以从服务端下载第一应用程序,并进行第一应用程序的自动安装、自动启动和自动使用等自动处理。
步骤704、错误收集。客户端可以采集第一应用程序在自动处理过程中的错误信息。
步骤705、映射关系的建立。服务端可以收集多个客户端采集的错误信息,并建立和保存错误信息与解决方案之间的映射关系。
步骤706、第二应用程序的处理过程。客户端可以根据第二应用程序在处理过程中需要调用的第一动态链接库,确定所述第一动态链接库依赖的第二动态链接库;在兼容层软件中增设所述第二动态链接库。客户端还可以采集第二应用程序在处理过程中的待处理错误信息,根据该待处理错误信息,在预先保存的错误信息与解决方案之间的映射关系中进行查找,以得到该待处理错误信息对应的目标解决方案,并执行该目标解决方案。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
在上述实施例的基础上,本实施例还提供了一种应用程序的移植处理装置,所述装置应用于运行在第一操作系统上的客户端,所述第一操作系统中运行有兼容层软件,在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;参照图8,该装置具体可以包括如下模块:
获取模块801,用于根据预设代码,获取预设交互组件的组件信息;
自动处理模块802,用于根据所述预设交互组件的组件信息,进行第一应用程序的自动处理;所述自动处理包括:安装、启动和使用中的至少一种;
第一采集模块803,用于采集第一应用程序在自动处理过程中的错误信息;所述错误信息用于建立并保存错误信息与解决方案之间的映射关系;
其中,所述解决方案可以包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系。
可选地,自动处理模块802具体可以包括:
自动触发模块,用于根据自动处理对应的逻辑信息,触发自动处理的第一界面中预设交互组件对应的点击操作,以从自动处理的第一界面跳转至自动处理的第二界面。
可选地,所述装置还可以包括:
更新模块,用于根据自动处理过程中是否采集到错误信息,对第一应用程序的处理状态信息进行更新;
所述处理状态信息可以包括如下信息中的至少一种:安装失败、启动失败、使用失败和使用成功。
可选地,服务端根据第二操作系统的应用程序的下载地址,进行第二操作系统的应用程序的批量下载,对批量下载的第一应用程序进行存储,根据存储的第一应用程序,提供第一应用程序的下载服务,以使客户端根据所述下载服务进行第一应用程序的下载。
可选地,所述装置还可以包括:
设置模块,用于在兼容层软件的容器中设置预设字符种类、预设开发语言对应软件的运行和3D图像对应的动态链接库。
本实施例还提供了一种应用程序的移植处理装置,该装置应用于服务端,参照图9,该装置具体可以包括:
获取模块901,用于从客户端获取第二操作系统的第一应用程序在自动处理过程中的错误信息;所述客户端运行在第一操作系统上,所述第一操作系统中运行有兼容层软件;在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;所述客户端根据所述预设交互组件的组件信息,进行第一应用程序的自动处理,并采集所述错误信息;所述自动处理包括:安装、启动和使用中的至少一种;
建立保存模块902,用于建立并保存错误信息与解决方案之间的映射关系;
第一执行模块903,用于执行所述映射关系中的解决方案,以对兼容层软件进行更新;
其中,所述解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系。
可选地,客户端根据自动处理过程中是否采集到错误信息,对第一应用程序的处理状态信息进行更新;
则所述建立保存模块具体可以包括:
确定模块,用于针对处理状态信息为预设处理状态信息的目标第一应用程序,根据目标第一应用程序对应的错误信息,确定对应的解决方案。
本申请实施例公开了一种应用程序的移植处理装置,所述装置应用于运行在第一操作系统上的客户端,所述第一操作系统中运行有兼容层软件,参照图10,该装置可以包括:
第二采集模块1001,用于采集第二操作系统的第二应用程序在处理过程中的待处理错误信息;
查找模块1002,用于根据所述待处理错误信息,在预先保存的错误信息与解决方案之间的映射关系中进行查找,以得到所述待处理错误信息对应的目标解决方案;
第二执行模块1003,用于执行所述目标解决方案;
其中,所述解决方案具体可以包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系;
在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;所述预设交互组件的组件信息用于进行第一应用程序的自动处理;所述自动处理包括:安装、启动和使用中的至少一种;所述第一应用程序在自动处理过程中的错误信息用于建立和保存错误信息与解决方案之间的映射关系。
可选地,所述装置还可以包括:
确定模块,用于根据第二应用程序在处理过程中需要调用的第一动态链接库,确定所述第一动态链接库依赖的第二动态链接库;
增设模块,用于在兼容层软件中增设所述第二动态链接库。
可选地,所述映射关系可以包括:应用类别、错误信息与解决方案之间的映射关系。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例中各方法步骤的指令(instructions)。
本申请实施例提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本申请实施例中,所述电子设备包括终端设备、服务器(集群)等各类型的设备。
本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括:终端设备、服务器(集群)等电子设备。图11示意性地示出了可被用于实现本申请中所述的各个实施例的示例性装置1100 。
对于一个实施例,图11示出了示例性装置1100,该装置具有一个或多个处理器1102、被耦合到(一个或多个)处理器1102中的至少一个的控制模块(芯片组)1104、被耦合到控制模块1104的存储器1106、被耦合到控制模块1104的非易失性存储器(NVM)/存储设备1108、被耦合到控制模块1104的一个或多个输入/输出设备1110,以及被耦合到控制模块1104的网络接口1112。
处理器1102可包括一个或多个单核或多核处理器,处理器1102可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,装置1100 能够作为本申请实施例中所述终端设备、服务器(集群)等设备。
在一些实施例中,装置1100 可包括具有指令1114的一个或多个计算机可读介质(例如,存储器1106或NVM/ 存储设备1108) 以及与该一个或多个计算机可读介质相合并被配置为执行指令1114以实现模块从而执行本公开中所述的动作的一个或多个处理器1102。
对于一个实施例,控制模块1104可包括任意适当的接口控制器,以向(一个或多个)处理器1102中的至少一个和/或与控制模块1104通信的任意适当的设备或组件提供任意适当的接口。
控制模块1104可包括存储器控制器模块,以向存储器1106提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
存储器1106可被用于例如为装置1100加载和存储数据和/或指令1114。对于一个实施例,存储器1106可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,存储器1106可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM) 。
对于一个实施例,控制模块1104可包括一个或多个输入/输出控制器,以向NVM/存储设备1108及(一个或多个)输入/输出设备1110 提供接口。
例如,NVM/存储设备1108可被用于存储数据和/或指令1114。NVM/存储设备1108可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD) 、一个或多个光盘(CD) 驱动器和/或一个或多个数字通用光盘(DVD) 驱动器)。
NVM/存储设备1108可包括在物理上作为装置1100 被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如, NVM/存储设备1108可通过网络经由(一个或多个)输入/输出设备1110 进行访问。
(一个或多个)输入/输出设备1110 可为装置1100 提供接口以与任意其他适当的设备通信,输入/输出设备1110可以包括通信组件、音频组件、传感器组件等。网络接口1112可为装置1100 提供接口以通过一个或多个网络通信,装置1100 可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如WiFi、2G、3G、4G、5G等,或它们的组合进行无线通信。
对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器(例如,存储器控制器模块) 的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP) 。对于一个实施例, (一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例, (一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC) 。
在各个实施例中,装置1100可以但不限于是:服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置1100 可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置1100包括一个或多个摄像机、键盘、液晶显示器(LCD) 屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC) 和扬声器。
其中,检测装置中可采用主控芯片作为处理器或控制模块,传感器数据、位置信息等存储到存储器或NVM/存储设备中,传感器组可作为输入/输出设备,通信接口可包括网络接口。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种应用程序的移植处理方法和装置、一种电子设备和一种机器可读介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (15)

1.一种应用程序的移植处理方法,其特征在于,所述方法应用于运行在第一操作系统上的客户端,所述第一操作系统中运行有兼容层软件,在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;所述方法包括:
根据预设代码,获取预设交互组件的组件信息;
根据所述预设交互组件的组件信息,进行第一应用程序的自动处理;所述自动处理包括:安装、启动和使用中的至少一种;
采集第一应用程序在自动处理过程中的错误信息;所述错误信息用于建立并保存错误信息与解决方案之间的映射关系;
其中,所述解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系。
2.根据权利要求1所述的方法,其特征在于,所述组件信息包括:标识信息和位置信息;所述根据所述预设交互组件的组件信息,进行第一应用程序的自动处理,包括:
根据所述标识信息,从第一应用程序的界面中确定出目标预设交互组件;
根据所述目标预设交互组件的位置信息,触发所述目标预设交互组件对应的操作,以进行自动处理过程中界面的跳转。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据自动处理过程中是否采集到错误信息,对第一应用程序的处理状态信息进行更新;
所述处理状态信息包括如下信息中的至少一种:安装失败、启动失败、使用失败和使用成功。
4.根据权利要求1所述的方法,其特征在于,服务端根据第二操作系统的应用程序的下载地址,进行第二操作系统的应用程序的批量下载;对批量下载得到的第一应用程序进行存储;根据存储的第一应用程序,提供第一应用程序的下载服务,以使客户端根据所述下载服务进行第一应用程序的下载。
5.根据权利要求1至4中任一所述的方法,其特征在于,所述方法还包括:
在兼容层软件的容器中设置预设字符种类、预设开发语言对应软件的运行和3D图像对应的动态链接库。
6.一种应用程序的移植处理方法,其特征在于,所述方法应用于服务端,所述方法包括:
从客户端获取第二操作系统的第一应用程序在自动处理过程中的错误信息;所述客户端运行在第一操作系统上,所述第一操作系统中运行有兼容层软件;在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;所述客户端根据所述预设交互组件的组件信息,进行第一应用程序的自动处理,并采集所述错误信息;所述自动处理包括:安装、启动和使用中的至少一种;
建立并保存错误信息与解决方案之间的映射关系;
执行所述映射关系中的解决方案,以对兼容层软件进行更新;
其中,所述解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系。
7.根据权利要求6所述的方法,其特征在于,客户端根据自动处理过程中是否采集到错误信息,对第一应用程序的处理状态信息进行更新;
则所述建立并保存错误信息与解决方案之间的映射关系,包括:
服务端针对处理状态信息为预设处理状态信息的目标第一应用程序,根据目标第一应用程序对应的错误信息,确定对应的解决方案。
8.一种应用程序的移植处理方法,其特征在于,所述方法应用于运行在第一操作系统上的客户端,所述第一操作系统中运行有兼容层软件,所述方法包括:
采集第二操作系统的第二应用程序在处理过程中的待处理错误信息;
根据所述待处理错误信息,在预先保存的错误信息与解决方案之间的映射关系中进行查找,以得到所述待处理错误信息对应的目标解决方案;
执行所述目标解决方案;
其中,所述解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系;
在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;所述预设交互组件的组件信息用于进行第一应用程序的自动处理;所述自动处理包括:安装、启动和使用中的至少一种;所述第一应用程序在自动处理过程中的错误信息用于建立和保存错误信息与解决方案之间的映射关系。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
根据第二应用程序在处理过程中需要调用的第一动态链接库,确定所述第一动态链接库依赖的第二动态链接库;
在兼容层软件中增设所述第二动态链接库。
10.根据权利要求8所述的方法,其特征在于,所述映射关系包括:应用类别、错误信息与解决方案之间的映射关系。
11.一种应用程序的移植处理装置,其特征在于,所述装置应用于运行在第一操作系统上的客户端,所述第一操作系统中运行有兼容层软件,在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;所述装置包括:
获取模块,用于根据预设代码,获取预设交互组件的组件信息;
自动处理模块,用于根据所述预设交互组件的组件信息,进行第一应用程序的自动处理;所述自动处理包括:安装、启动和使用中的至少一种;
第一采集模块,用于采集第一应用程序在自动处理过程中的错误信息;所述错误信息用于建立并保存错误信息与解决方案之间的映射关系;
其中,所述解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系。
12.一种应用程序的移植处理装置,其特征在于,所述装置应用于服务端,所述装置包括:
获取模块,用于从客户端获取第二操作系统的第一应用程序在自动处理过程中的错误信息;所述客户端运行在第一操作系统上,所述第一操作系统中运行有兼容层软件;在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;所述客户端根据所述预设交互组件的组件信息,进行第一应用程序的自动处理,并采集所述错误信息;所述自动处理包括:安装、启动和使用中的至少一种;
建立保存模块,用于建立并保存错误信息与解决方案之间的映射关系;
第一执行模块,用于执行所述映射关系中的解决方案,以对兼容层软件进行更新;
其中,所述解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系。
13.一种应用程序的移植处理装置,其特征在于,所述装置应用于运行在第一操作系统上的客户端,所述第一操作系统中运行有兼容层软件,所述装置包括:
第二采集模块,用于采集第二操作系统的第二应用程序在处理过程中的待处理错误信息;
查找模块,用于根据所述待处理错误信息,在预先保存的错误信息与解决方案之间的映射关系中进行查找,以得到所述待处理错误信息对应的目标解决方案;
第二执行模块,用于执行所述目标解决方案;
其中,所述解决方案包括如下方案种类中的至少一种:
在兼容层软件中设置所述错误信息对应的动态链接库;
在兼容层软件中设置所述错误信息对应的代码;
在兼容层软件中设置所述错误信息对应的处理逻辑;以及
在兼容层软件中设置所述错误信息对应的第三方应用程序的资源;第三方应用程序与错误信息对应应用程序存在依赖关系;
在兼容层软件中设置预设代码;所述预设代码用于在第二操作系统的第一应用程序调用预设交互组件的情况下,获取所述预设交互组件的组件信息;所述预设交互组件的组件信息用于进行第一应用程序的自动处理;所述自动处理包括:安装、启动和使用中的至少一种;所述第一应用程序在自动处理过程中的错误信息用于建立和保存错误信息与解决方案之间的映射关系。
14.一种电子设备,其特征在于,包括:处理器;和
存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如权利要求1-10中任一项所述的方法。
15.一种机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如权利要求1-10中任一项所述的方法。
CN202211009512.5A 2022-08-23 2022-08-23 应用程序的移植处理方法、装置和介质 Active CN115080114B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211009512.5A CN115080114B (zh) 2022-08-23 2022-08-23 应用程序的移植处理方法、装置和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211009512.5A CN115080114B (zh) 2022-08-23 2022-08-23 应用程序的移植处理方法、装置和介质

Publications (2)

Publication Number Publication Date
CN115080114A true CN115080114A (zh) 2022-09-20
CN115080114B CN115080114B (zh) 2022-10-28

Family

ID=83245038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211009512.5A Active CN115080114B (zh) 2022-08-23 2022-08-23 应用程序的移植处理方法、装置和介质

Country Status (1)

Country Link
CN (1) CN115080114B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117009308A (zh) * 2023-09-28 2023-11-07 统信软件技术有限公司 基于兼容层的可执行文件加载方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0315493A2 (en) * 1987-11-06 1989-05-10 VIsystems, Inc Virtual interface system and method for enabling software applications to be environment-independent
CN103530199A (zh) * 2012-07-02 2014-01-22 腾讯科技(深圳)有限公司 一种修复软件运行错误的方法、装置及系统
CN108009037A (zh) * 2017-11-24 2018-05-08 中国银行股份有限公司 批处理作业故障处理方法、装置、存储介质及设备
CN111026581A (zh) * 2019-10-29 2020-04-17 口碑(上海)信息技术有限公司 应用程序的修复方法及装置、系统、存储介质、电子装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0315493A2 (en) * 1987-11-06 1989-05-10 VIsystems, Inc Virtual interface system and method for enabling software applications to be environment-independent
CN103530199A (zh) * 2012-07-02 2014-01-22 腾讯科技(深圳)有限公司 一种修复软件运行错误的方法、装置及系统
CN108009037A (zh) * 2017-11-24 2018-05-08 中国银行股份有限公司 批处理作业故障处理方法、装置、存储介质及设备
CN111026581A (zh) * 2019-10-29 2020-04-17 口碑(上海)信息技术有限公司 应用程序的修复方法及装置、系统、存储介质、电子装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王亚军等: "Windows程序运行于Linux系统的技术", 《计算机应用》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117009308A (zh) * 2023-09-28 2023-11-07 统信软件技术有限公司 基于兼容层的可执行文件加载方法及系统
CN117009308B (zh) * 2023-09-28 2023-12-22 统信软件技术有限公司 基于兼容层的可执行文件加载方法及系统

Also Published As

Publication number Publication date
CN115080114B (zh) 2022-10-28

Similar Documents

Publication Publication Date Title
US8126859B2 (en) Updating a local version of a file based on a rule
US20170147469A1 (en) Correlation of source code with system dump information
CN111061643B (zh) Sdk集群的兼容性检测方法、装置、电子设备及存储介质
US9892122B2 (en) Method and apparatus for determining a range of files to be migrated
US9069829B2 (en) Data items manager
CN110688096B (zh) 包含插件的应用程序的构建方法、装置、介质及电子设备
US12061901B2 (en) Documentation enforcement during compilation
CN110990346A (zh) 基于区块链的文件数据处理方法、装置、设备及存储介质
CN115080114B (zh) 应用程序的移植处理方法、装置和介质
CN112748866B (zh) 一种增量索引数据的处理方法和装置
CN114816816A (zh) 崩溃堆栈信息处理方法、装置、设备及存储介质
US11775290B2 (en) Detection of API backward compatibility across software versions
CN110716804A (zh) 无用资源的自动删除方法、装置、存储介质及电子设备
US9703848B2 (en) Caching linked queries for optimized compliance management
US10129328B2 (en) Centralized management of webservice resources in an enterprise
CN112631621A (zh) 一种依赖包管理方法、装置、服务器及存储介质
CN111488286A (zh) 一种Android模块独立开发的方法及装置
CN113687880B (zh) 一种调用组件的方法、装置、设备和介质
CN115421785B (zh) 应用程序的移植处理方法、装置和介质
CN113656044B (zh) 安卓安装包压缩方法、装置、计算机设备及存储介质
CN115454827B (zh) 兼容性检测方法、系统、设备和介质
CN111061699B (zh) 一种电能表数据库版本更新的方法及装置
CN112947846B (zh) 对象存储系统的批处理任务执行方法、装置及电子设备
CN114095494B (zh) 一种用于快速下载文件的方法和系统
CN111638903B (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
GR01 Patent grant
GR01 Patent grant