WO2022083316A1 - 一种应用运行的方法、装置及计算机存储介质 - Google Patents

一种应用运行的方法、装置及计算机存储介质 Download PDF

Info

Publication number
WO2022083316A1
WO2022083316A1 PCT/CN2021/116488 CN2021116488W WO2022083316A1 WO 2022083316 A1 WO2022083316 A1 WO 2022083316A1 CN 2021116488 W CN2021116488 W CN 2021116488W WO 2022083316 A1 WO2022083316 A1 WO 2022083316A1
Authority
WO
WIPO (PCT)
Prior art keywords
target
file
subprogram
game
code
Prior art date
Application number
PCT/CN2021/116488
Other languages
English (en)
French (fr)
Inventor
余强
黄造军
金士杰
Original Assignee
北京字节跳动网络技术有限公司
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 北京字节跳动网络技术有限公司 filed Critical 北京字节跳动网络技术有限公司
Publication of WO2022083316A1 publication Critical patent/WO2022083316A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • 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/44505Configuring for program initiating, e.g. using registry, configuration files
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/552Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • a game developed using a game engine generally requires the user to download the corresponding software installation package through the download link, and perform operations such as installation, registration, login, and permission settings based on the software installation package to experience the game, and the use process is relatively cumbersome.
  • an embodiment of the present disclosure provides a method for running an application, the method comprising:
  • embodiments of the present disclosure further provide a computer device, including: a processor, a memory, and a bus, where the memory stores machine-readable instructions executable by the processor, and when the computer device runs, the processing A bus communicates between the processor and the memory, and when the machine-readable instructions are executed by the processor, the first aspect or the steps in any possible implementation manner of the first aspect are performed.
  • the code file includes dynamic library files and game engine code files that are respectively matched with multiple CPU architectures; the resource file may include game resources of the target game.
  • the dynamic library file may contain the code required to run the target game; the game resources may include resources such as pictures, audios, videos, etc., which are required when the target game runs.
  • the subprogram downloaded through the target application may be a game program.
  • the configuration module 403 is specifically configured to store the code file and the resource file in different storage directories corresponding to the target subprogram in the target application program, and modify the access path of the code file and the resource file.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)

Abstract

一种应用运行的方法、装置及计算机存储介质,该方法包括:通过目标应用程序下载目标子程序的安装包(S101);基于安装包,获取目标子程序的代码文件和资源文件(S102);将代码文件和资源文件分别配置在目标应用程序的对应目录下,并对代码文件和资源文件分别进行访问路径的重定向,以通过重定向后的访问路径,在目标应用程序中调用代码文件和资源文件,运行目标子程序(S103)。在通过目标应用程序下载目标子程序的安装包后,不需要对该安装包进行本地安装,就能实现在应用程序中直接运行该目标子程序,省去了安装过程,目标子程序运行过程简便。

Description

一种应用运行的方法、装置及计算机存储介质
相关申请的交叉引用
本申请基于申请号为202011134355.1、申请日为2020年10月21日、名称为“一种应用运行的方法、装置及计算机存储介质”的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种应用运行的方法、装置及计算机存储介质。
背景技术
随着互联网技术的发展,逐渐开发出大量满足用户娱乐需求的各种游戏。当前可以通过内嵌网页,在网页中使用Web图形库(Web Graphics Library,WebGL)技术,开发出可以在第三方浏览器上运行的游戏;还可以通过游戏引擎开发出可以直接下载并安装在智能终端上的游戏应用程序。
但是,由于WebGL技术开发能力的限制,因此,开发出来的在浏览器上运行的游戏无法展示丰富的图像细节、且交互界面以及涉及到场景较为简单,因此,一般使用游戏引擎开发交互界面以及场景相对复杂的游戏。
但是使用游戏引擎开发出来的游戏,一般需要用户通过下载链接下载相应的软件安装包,基于该软件安装包进行安装、注册、登录以及权限设置等操作,才能体验该游戏,使用过程较为繁琐。
发明内容
本公开实施例至少提供一种应用运行的方法、装置及计算机存储介质。
第一方面,本公开实施例提供了一种应用运行的方法,所述方法包括:
通过目标应用程序下载目标子程序的安装包;
基于所述安装包,获取所述目标子程序的代码文件和资源文件;
将所述代码文件和所述资源文件分别配置在所述目标应用程序的对应目录下,并对所述代码文件和所述资源文件分别进行访问路径的重定向,以通过重定向后的访问路径,在所述目标应用程序中调用所述代码文件和所述资源文件,运行所述目标子程序。
在一种可能的实施方式中,所述基于所述安装包,获取目标子程序的代码文件和资源文件,包括:
基于所述目标应用程序对应的应用程序二进制接口ABI的类型,从所述安装包中, 解压得到与所述ABI的类型对应的代码文件;
将所述安装包中除所述代码文件外的文件作为所述资源文件。
在一种可能的实施方式中,所述目标子程序为游戏程序。
在一种可能的实施方式中,将所述代码文件和所述资源文件分别配置在所述目标应用程序的对应目录下,并对所述代码文件和所述资源文件分别进行访问路径的重定向,包括:
将所述代码文件和资源文件分别存储在所述目标应用程序中与所述目标子程序代码对应的不同存储目录下,并分别修改所述代码文件和所述资源文件的访问路径。
在一种可能的实施方式中,所述修改所述代码文件的访问路径,包括:
采用预设的路径修改机制,将所述代码文件在所述目标应用程序中的存储目录添加至所述代码文件的查找路径的最前端位置。
在一种可能的实施方式中,所述对所述代码文件和所述资源文件分别进行访问路径的重定向之后,还包括:
响应针对所述目标子程序的启动指令,基于访问到的游戏引擎的代码,在所述目标应用程序中启动游戏引擎,并通过游戏引擎调用所述代码文件的其它代码和所述资源文件,以运行所述目标子程序。
在一种可能的实施方式中,所述通过目标应用程序下载目标子程序的安装包之前,还包括:
获取所述目标子程序在所述目标应用程序上的运行环境信息;
基于所述运行环境信息,下载所述目标子程序对应的容器插件并安装在所述目标应用程序上;所述容器插件用于执行下载所述目标子程序的安装包、以及获取所述代码文件和资源文件,并进行访问路径的重定向的过程。
第二方面,本公开实施例还提供一种应用运行的装置,所述装置包括:
下载模块,用于通过目标应用程序下载目标子程序的安装包。
获取模块,用于基于所述安装包,获取所述目标子程序的代码文件和资源文件。
配置模块,用于将所述代码文件和所述资源文件分别配置在所述目标应用程序的对应目录下,并对所述代码文件和所述资源文件分别进行访问路径的重定向,以通过重定向后的访问路径,在所述目标应用程序中调用所述代码文件和所述资源文件,运行所述目标子程序。
在一种可能的实施方式中,所述获取模块,具体用于基于所述目标应用程序对应的应用程序二进制接口ABI的类型,从所述安装包中,解压得到与所述ABI的类型对应的代码文件;将所述安装包中除所述代码文件外的文件作为所述资源文件。
在一种可能的实施方式中,所述目标子程序为游戏程序。
在一种可能的实施方式中,所述配置模块,具体用于将所述代码文件和资源文件分别存储在所述目标应用程序中与所述目标子程序对应的不同存储目录下,并分别修改所述代码文件和所述资源文件的访问路径。
在一种可能的实施方式中,所述配置模块,还具体用于采用预设的路径修改机制,将所述代码文件在所述目标应用程序中的存储目录添加至所述代码文件的查找路径的最前端位置。
在一种可能的实施方式中,所述装置还包括响应模块,用于响应针对所述目标子程序的启动指令,基于访问到的游戏引擎的代码,在所述目标应用程序中启动游戏引擎,并通过游戏引擎调用所述代码文件的其它代码和所述资源文件,以运行所述目标子程序。
在一种可能的实施方式中,所述装置还包括插件获取模块,具体用于获取所述目标子程序在所述目标应用程序上的运行环境信息;基于所述运行环境信息,下载所述目标子程序对应的容器插件并安装在所述目标应用程序上;所述容器插件用于执行下载所述目标子程序的安装包、以及获取所述代码文件和资源文件,并进行访问路径的重定向的过程。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本公开实施例提供的上述应用运行的方法、装置及计算机存储介质,通过目标应用程序下载目标子程序的安装包,基于安装包,获取目标子程序的代码文件和资源文件,将代码文件和资源文件分别配置在目标应用程序的对应目录下,并对代码文件和资源文件分别进行访问路径的重定向,这样,通过重定向后的访问路径,可以在目标应用程序中调用代码文件和资源文件,运行目标子程序;本公开实施例中,无需进行子程序安装包的本地安装,可以直接通过目标应用程序对目标子程序进行相关代码文件和资源文件的存储与访问路径重定向,实现在目标应用程序中直接运行该目标子程序,省去了安装过程,目标子程序运行过程简便。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附 图。
图1示出了本公开实施例所提供的一种应用运行的方法的流程图;
图2示出了本公开实施例所提供的保存代码文件和资源文件目录结构的示意图;
图3示出了本公开实施例所提供的一种应用运行的方法在应用过程中的详细流程图;
图4示出了本公开实施例所提供的一种应用运行的装置的结构示意图;
图5示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
对于使用游戏引擎开发出来的游戏,一般需要用户通过下载链接下载相应的安装包,并在下载完成后,对上述下载好的安装包进行安装;在安装完成后,当用户访问该软件时,需要进行一系列的软件注册、登录以及权限设置等操作,才能体验该游戏。
为了简化用户操作,省去安装、软件注册、登录以及权限设置等操作,直接在当前运行的目标应用程序(目标应用程序可以称为相关游戏软件的宿主APP)中运行相关游戏;在提出本申请实施例之前,也可以通过重新编译游戏引擎来适配目标应用程序,使用重新编译的游戏引擎,对游戏项目进行重新开发和发布;并对运行该游戏的目标应用程序进行相应的改造,从而使重新构建的游戏项目能够直接在改造后的目标应用程序中运行。但是,上述实现在宿主中直接运行游戏的方法,需要对游戏引擎的代码进行修改,开发难度较大,并且,对于不同版本的游戏引擎需要分别进行修改,开发成本太高。
因此,基于上述研究,本公开实施例提供了一种应用运行的方法,可以通过目标应用程序下载目标子程序的安装包,获取目标子程序的代码文件和资源文件,然后将代码文件和资源文件分别配置在目标应用程序的对应目录下,并对代码文件和资源文件分别进行访问路径的重定向。这里,在通过目标应用程序获取到目标子程序的安装包后,通过将代码文件和资源文件分别配置在目标应用程序的对应目录下,并对代码文件和资源文件分别进行访问路径的重定向,实现对目标子程序的运行,目标子程序运行过程简便,当目标子程序包含小游戏的情况下,本公开实施例不依赖于游戏引擎功能代码的修改,开发难度较小,成本较低。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是 发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种应用运行的方法进行详细介绍,本公开实施例所提供的应用运行的方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、个人数字处理(Personal Digital Assistant,PDA)等。在一些可能的实现方式中,该应用运行的方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面,首先对本公开涉及到的几个技术术语进行解释说明。
游戏引擎,指一些已经编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程序而不用由零开始。游戏引擎是一个为运行某一类游戏的机器设计的能够被机器识别的代码(指令)集合,控制着游戏的运行;这里,一个游戏作品可以分为游戏引擎和游戏资源两大部分,游戏资源包括图像、声音、动画等部分;这里,可以用下述公式:游戏=引擎(程序代码)+资源(图像、声音、动画等);而游戏引擎则是按游戏设计的要求,顺序地调用这些资源。
安卓应用程序安装包(Android application package,APK)是Android(安卓)操作系统使用的一种应用程序包文本格式,代码经过编译、资源经过压缩后使用项目自动化构建工具可以构建APK,APK中包含一个Android应用程序的所有内容,比如,一个游戏项目的APK文件中,具体可以包括代码文件(动态库文件(这里,动态库文件为基于游戏引擎构建的,用于实现游戏项目的游戏代码文件)、游戏引擎的代码)、资源文件(其中,资源文件可以包括图片资源、视频资源和音频资源等)等。
应用程序二进制接口(Application Binary Interface,ABI),每个操作系统都会为运行在该系统下的应用程序提供应用程序二进制接口,ABI包含了应用程序在该系统下运行时必须遵守的编程约定。在Android系统上,CPU对应的ABI可以包含armeabi、armeabi-v7a、x86、mips、arm64-v8a、mips64、x86_64等;当一个应用程序安装在应用Android系统的设备上时,只有与该设备提供的ABI对应的动态库文件(也叫.so文件)会被安装。
在Android系统中,Android应用安装一般会涉及到如下几个目录:system目录下的app目录(system/app):该目录下包含多个系统自带的应用程序,用户无法删除;data目录下的app目录(data/app):为用户程序(这里,用户程序是应用软件的两大类型之一,是为满足用户不同领域、不同问题的应用需求而提供的软件)的安装目录,一般用户自行安装的应用程序都在该目录下,该安装目录下创建有每个安装好的应用程序对应的子程序存储目录(该子程序存储目录,用于存储用户通过应用程序下载的子程序的APK压缩包文件),用户具有删除权限;data目录下的data目录(data/data):该目 录用于存放安装的应用程序的数据,该目录下创建有每个安装好的应用程序对应的子程序代码加载目录(该子程序代码加载目录,用于存储用户通过应用程序下载的子程序的代码文件)。
若需要本地安装APK,系统会将APK压缩包文件复制到data/app目录下,并在data/app目录下创建子程序存储目录(这里,子程序存储目录用来存储用户通过该应用程序下载的子程序的APK压缩包文件),解压并扫描APK压缩包文件,将与Android系统的ABI对应的动态库文件解压到data/lib目录下,并将APK中的dex文件(即dalvik字节码)保存到data/dalvik-cache目录下,并在data/data目录下创建该应用程序对应的子程序代码加载目录。
容器插件为遵守一定规范的应用程序接口编写出来的程序,只能运行在应用程序规定的系统平台下,可以同时支持多个系统平台,脱离指定的系统平台则无法单独运行,容器插件用于下载适配于当前支持的系统平台的APK。
下面以执行主体为终端设备为例对本公开实施例提供的应用运行的方法加以说明。
实施例一
在具体实施中,可以通过重写、反射、钩子函数hook等方式,在不修改游戏引擎代码的情况下,实现在目标应用程序中运行游戏;这里,可以将目标应用程序(Application,APP)作为宿主APP,宿主APP从插件服务器下载容器插件,通过容器插件下载并管理与该容器插件匹配的游戏项目的APK压缩包文件,使该游戏项目能够直接在宿主APP中运行,从而实现在不安装该游戏APP的情况下,用户可以直接在宿主APP中体验该游戏,具体描述如下。
参见图1所示,为本公开实施例提供的一种应用运行的方法的流程图,该方法可以应用于游戏领域,所述方法包括步骤S101~S103,其中:
S101、通过目标应用程序下载目标子程序的安装包。
其中,目标应用程序为宿主APP,可以为安装在手机、平板电脑等电子设备上的APP;目标子程序可以为游戏程序,目标子程序可以为用户通过宿主APP推送的相关介绍信息以及下载链接,下载的目标游戏。本公开实施例中,以目标子程序为目标游戏为例进行具体描述。
这里,目标游戏的安装包为该目标游戏的APK压缩包文件,该安装包中可以包括:与多个CPU架构中每个CPU架构匹配的动态库文件、以及游戏引擎和游戏资源;其中,游戏资源可以包括图片资源、视频资源、音频资源等多种资源;其中,CPU架构可以armeabi、armeabi-v7a、x86、mips、arm64-v8a、mips64、x86_64等架构。
在具体实施中,宿主APP可以从插件服务器中下载容器插件,通过容器插件下载并管理与该容器插件匹配的目标游戏项目的APK压缩包文件,可以通过下述方法获取该容器插件,具体描述如下:获取目标子程序在目标应用程序上的运行环境信息;基于该运行环境信息,下载该目标子程序对应的容器插件并安装在目标应用程序上。
在目标应用程序上,通过安装的容器插件执行下载目标子程序的安装包、以及下述 步骤S102-步骤S103中获取该目标子程序的安装包的代码文件和资源文件,并进行访问路径的重定向的过程。
其中,运行环境信息可以包括该游戏支持的操作系统信息、运行该游戏设备对应的硬件配置信息、以及该游戏运行过程中所需的运行库信息、以及目标游戏的应用程序编程接口(Application Programming Interface,API)、以及运行该游戏设备对应的CPU架构等。
上述容器插件为遵守一定规范的应用程序接口编写出来的程序;一般可以通过云服务或者远程服务器获取到容器插件。
具体的,目标应用程序从插件服务器中下载与目标游戏的API匹配的容器插件,并将该容器插件安装在目标应用程序上,该容器插件在容器云服务中获取与该容器插件匹配的目标游戏的APK压缩包文件,并将目标游戏的APK压缩包文件存储到目标应用程序的子程序存储目录中的与目标子程序对应的存储目录下(即目标应用程序的子程序存储目录中的目标游戏专属目录下,即根目录/data/app/目标应用程序名称/目标游戏名称目录下)。
这里,目标应用程序的子程序存储目录为:该目标应用程序目录下创建的,用于存储用户通过该目标应用程序下载的子程序的APK压缩包文件的目录;这里,目标应用程序的子程序存储目录中包含:以通过该目标应用程序下载的子程序的名称命名的子程序专属目录。
这里,由于本公开实施例中以通过该目标应用程序下载的子程序为游戏程序为例进行详细描述,因此目标应用程序的子程序存储目录中包含以目标游戏的名称命名的目标游戏专属目录。
在具体实施中,根据步骤S101在目标应用程序中通过容器插件获取并下载目标子程序的安装包后,该容器插件可以通过步骤S102,将保存的目标子程序的安装包进行处理,具体描述如下。
S102、基于所述安装包,获取所述目标子程序的代码文件和资源文件。
其中,代码文件中包含与多个CPU架构分别匹配的动态库文件和游戏引擎的代码文件;资源文件中可以包含目标游戏的游戏资源。这里,动态库文件中可以包含运行该目标游戏所需的代码;游戏资源可以包括目标游戏运行时所需的图片、音频、视频等资源。
这里,ABI为应用程序与操作系统之间、应用程序与运行库之间进行信息交互的接口;一般安装在手机、平板电脑等设备上的APP可以通过该APP对应的ABI,与系统进行通信,调用系统的各种功能函数,并通过该ABI对运行时所需要的各个运行库进行调用。
通常情况下,若是对目标游戏APP进行本地下载安装,会将目标游戏的动态库文件从目标游戏的APK压缩包文件中解压到系统安装目录下(即根目录/data/lib目录下),当运行该目标游戏APP时,该目标游戏APP的游戏引擎会直接在系统安装目录下的文 件夹中查找并调用该目标游戏的动态库文件;而本公开实施例中并未对目标游戏APP进行安装,因此,通过步骤S101获取到的容器插件需要将目标游戏APP的安装包中的动态库文件和游戏引擎代码文件提取出来保存到目标应用程序中与目标子程序对应的存储目录下(即目标应用程序中以该目标游戏名称命名的子程序代码加载目录下,即根目录/data/app/目标应用程序名称/目标游戏名称目录下),并需要将宿主APP对应的ABI作为目标游戏与系统进行通信的接口,从而实现在未安装目标游戏APP的情况下,也能够运行目标游戏。
这里,子程序代码加载目录为:该目标应用程序目录下创建的,用于存储用户通过该目标应用程序下载的子程序的代码文件的目录。
其中,通过该目标应用程序下载的子程序可以为游戏程序。
综上,需要根据目标应用程序的ABI类型,从该目标游戏的安装包中,解压得到运行目标游戏所需的代码文件。
这里,ABI类型可以包括32位的armeabi、armeabi-v7a、x86、mips和64位的arm64-v8a、mips64、x86_64。
具体的,安装在目标应用程序上的容器插件,将与目标应用程序的ABI类型匹配的动态库文件从目标游戏的安装包中解压出来,并将该目标游戏的安装包中游戏引擎代码解压出来,得到包含动态库文件和游戏引擎代码的代码文件;并将安装包中除代码文件外的文件作为资源文件。
在具体实施中,安装在目标应用程序上的容器插件,通过步骤S102确定目标游戏的安装包中的代码文件和资源文件之后,则可以根据步骤S103分别对代码文件和资源文件进行保存,并对调用代码文件和资源文件的访问路径进行配置,具体描述如下所示。
S103、将所述代码文件和所述资源文件分别配置在所述目标应用程序的对应目录下,并对所述代码文件和所述资源文件分别进行访问路径的重定向,以通过重定向后的访问路径,在所述目标应用程序中调用所述代码文件和所述资源文件,运行所述目标子程序。
在Android系统中,目标应用程序一般安装在根目录下的data目录下,将目标应用程序的APK压缩包文件保存在根目录/data/app/目标应用程序名称目录下,并在该目录下创建子程序存储目录(这里,子程序存储目录,用来存储用户通过该目标应用程序下载的子程序的APK压缩包文件);并在根目录/data/data目录下创建该目标应用程序对应的子程序代码加载目录(这里,子程序代码加载目录,用于存储用户通过该目标应用程序下载的子程序的代码文件)。
在具体实施中,将通过步骤S102确定的目标子程序的代码文件和资源文件分别存储在目标应用程序中与目标子程序对应的不同存储目录下,并分别修改代码文件和资源文件的访问路径。
具体的,可以将从目标子程序的安装包中提取出来的代码文件存储在目标应用程序中以目标子程序名称命名的子程序代码加载目录下;可以将资源文件保存在目标子程序 的安装包中,并根据目标子程序的安装包的存储目录,确定资源文件的存储目录;也可以将资源文件从目标子程序的安装包中提取出来,并将资源文件保存到目标应用程序的子程序存储目录中的与目标子程序对应的存储目录下(即目标应用程序的子程序存储目录中以目标子程序名称命名的目标子程序专属目录下)。
这里,目标子程序的安装包的存储目录为:目标应用程序的子程序存储目录中的与目标子程序对应的存储目录,即目标应用程序的子程序存储目录中的目标子程序专属目录,即根目录/data/app/目标应用程序名称/目标子程序名称目录。
这里,由于本公开实施例中以通过该目标应用程序下载的目标子程序为游戏程序为例进行详细描述,因此下述以目标游戏专属目录作为目标子程序专属目录的一种具体实施例进行详细描述。
具体的,将通过步骤S102从目标游戏的安装包中解压得到的代码文件(即与宿主APP的ABI对应的动态库文件和游戏引擎代码文件)存储在目标应用程序中以目标游戏名称命名的子程序代码加载目录下(即根目录/data/data/目标应用程序名称/目标游戏名称目录下);可以根据步骤S101中确定的目标游戏的APK压缩包文件的存储目录(即:根目录/data/app/目标应用程序名称/目标游戏名称目录),确定通过步骤S102确定的资源文件的存储目录为:根目录/data/app/目标应用程序名称/目标游戏名称目录;也可以将通过步骤S102确定的目标游戏的资源文件从目标游戏的APK压缩包文件中提取出来,直接保存到目标应用程序的子程序存储目录中以目标游戏名称命名的目标游戏专属目录下(即:根目录/data/app/目标应用程序名称/目标游戏名称目录下),具体保存代码文件和资源文件的目录结构图如图2所示。
通常情况下,若将目标游戏APP进行本地下载安装,当运行该目标游戏APP时,一般将该目标游戏APP的系统安装路径作为默认的访问路径,系统进程会在系统安装目录下查找该目标游戏APP的游戏引擎代码,并启动该目标游戏APP的游戏引擎,该目标游戏APP的游戏引擎会直接在系统安装目录下的文件夹中查找并调用该目标游戏运行时所需的代码文件以及运行时所需资源文件;但是本公开并未对目标游戏APP进行安装,而是通过安装在目标应用程序上的容器插件将代码文件和资源文件分别保存到目标应用程序中与目标游戏对应的不同存储目录下,因此需要通过安装在目标应用程序上的容器插件对查找并调用代码文件和资源文件的默认路径进行修改,具体修改描述如下所示。
在具体实施中,将代码文件和资源文件分别保存到目标应用程序中与目标子程序对应的不同存储目录下后,可以根据代码文件的存储目录(即目标应用程序中以目标子程序名称命名的子程序代码加载目录,也即根目录/data/data/目标应用程序名称/目标子程序名称目录,修改查找代码文件的查找路径;并根据资源文件的存储目录(即目标应用程序的子程序存储目录中以目标子程序名称命名的目标子程序专属目录,也即根目录/data/app/目标应用程序名称/目标子程序名称目录),修改游戏引擎的资源读写路径。
具体的,安装在目标应用程序上的容器插件可以采用预设的路径修改机制,将目标 应用程序中以目标游戏名称命名的子程序代码存储目录添加至代码文件的查找路径的最前端位置,从而对用于查找代码文件的查找路径进行配置;并将目标应用程序的子程序存储目录中以目标游戏名称命名的目标游戏专属目录下资源文件的存储路径(即:根目录/data/app/目标应用程序名称/目标游戏名称/资源文件名称),作为调用资源文件的调用地址。
其中,预设的路径修改机制可以包括重写(override,重写是子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变)、反射机制(java反射机制是在运行状态中,对于任意一个类,都能够知道整个类的所有属性和方法;对于任意一个对象,都能够调用它任意一个方法和属性,具有动态获取信息和动态调用对象的方法的功能)、钩子函数hook。
具体的,安装在宿主APP中的容器插件可以通过反射机制,获取游戏引擎的实例对象,并通过override、活动组件activity中的获取应用文件存储路径函数(即getExternalFilesDir函数)等,基于游戏引擎代码的存储路径:根目录/data/data/目标应用程序名称/目标游戏名称/游戏引擎代码名称,对实例对象进行相应修改,实现系统进程访问游戏引擎代码路径的重定向;并通过override、活动组件activity中的获取应用文件存储路径函数(即getExternalFilesDir函数)等,基于目标游戏的动态库文件的存储路径:根目录/data/data/目标应用程序名称/目标游戏名称目录/动态库文件名称,对游戏引擎访问目标游戏项目的动态库文件的路径进行重新配置;并基于目标游戏的资源文件的存储路径:根目录/data/app/目标应用程序名称/目标游戏名称目录/资源文件名称,对游戏引擎访问游戏资源的路径进行重新配置,从而实现游戏引擎对游戏项目代码和游戏资源的访问路径的重定向;这里,游戏项目代码中可以包括实现多种功能的函数,比如,可以包括实现画面切换、实现人物对象控制等功能的函数。
这里,由于系统目录(即根目录)下、目标应用程序目录下以及目标游戏目录下可以同时包含能够实现同一功能的代码文件,因此,当在目标应用程序中运行目标游戏时,若游戏引擎需要调用的代码文件为系统目录下、目标应用程序目录下以及目标游戏目录下同时具有的功能的代码文件时,则游戏引擎需要先在目标游戏目录下查找实现该功能的代码文件。
具体的,安装在目标应用程序上的容器插件可以通过预设路径修改机制,将游戏引擎查找目标游戏的代码文件的查找目录顺序由:先在系统目录(即根目录)下查找实现该功能的代码文件、再在目标应用程序目录下查找实现该功能的代码文件、最后在目标游戏目录下查找实现该功能的代码文件,修改为先在目标游戏目录下查找实现该功能的代码文件、再在系统目录下查找实现该功能的代码文件、最后在目标应用程序目录下查找实现该功能的代码文件。
在具体实施中,安装在目标应用程序上的容器插件对代码文件和资源文件的访问路径进行重新配置后,可以响应针对目标游戏的启动指令,并基于访问到的游戏引擎的代码,在目标应用程序中启动游戏引擎,并通过游戏引擎调用代码文件的其它代码和资源 文件,以运行目标游戏。
这里,目标游戏的启动指令可以为用户根据目标应用程序展示页面提供的操作提示信息(可以为:“点击页面进入游戏”等文字提示信息等操作提示信息),对目标游戏进行触发操作后生成的指令。
具体的,可以根据目标游戏的启动指令,在根目录/data/data/目标应用程序名称/目标游戏名称目录下查找游戏引擎代码,并在目标应用程序中启动游戏引擎;在启动游戏引擎之后,通过游戏引擎在根目录/data/data/目标应用程序名称/目标游戏名称目录下查找并调用目标游戏运行过程中所需的其他代码,并通过游戏引擎在根目录/data/app/目标应用程序名称/目标游戏名称目录下查找并调用目标游戏运行过程中所需的资源,从而实现在目标应用程序中运行目标游戏。
参照图3所示,为本公开所提供的一种应用运行在应用过程中的详细流程图,具体描述如下:
在具体实施方式中,在目标应用程序运行过程中,用户点击在目标应用程序页面展示的目标游戏的相关介绍信息以及下载链接,在用户点击下载链接之后,目标应用程序会获取到该下载链接中包含的运行目标游戏的运行环境信息,并根据该运行环境信息中包含的目标游戏的API,在插件服务器中获取与目标游戏匹配的容器插件,下载该容器插件,并将该容器插件安装在目标应用程序上;通过该容器插件下载目标游戏的安装包,并将该安装包存储到目标应用程序的子程序存储目录中目标游戏专属目录下:根目录/data/app/目标应用程序名称/目标游戏名称目录下,该容器插件在下载该目标游戏的安装包之后,将该安装包中与目标应用程序的ABI对应的动态库文件、以及游戏引擎的代码文件解压保存到目标应用程序中以该目标游戏名称命名的子程序代码加载目录下:根目录/data/data/目标应用程序名称/目标游戏名称目录下;将安装包中的除与目标应用程序的ABI对应的动态库文件、以及游戏引擎的代码文件外的文件作为资源文件(即游戏资源文件);并根据目标游戏的安装包的存储目录,确定将资源文件的存储到目标应用程序中的子程序存储目录下的目标游戏专属目录下,即根目录/data/app/目标应用程序名称/目标游戏名称目录下(也可以将资源文件从目标游戏的安装包中提取出来,并将资源文件保存到:根目录/data/app/目标应用程序名称/目标游戏名称目录下)。
在将代码文件(即动态库文件和游戏引擎的代码文件)与资源文件存储到目标应用程序中与目标游戏对应的不同存储目录下后,可以通过重写、反射、钩子函数等方法,将动态库文件的调用路径修改为:根目录/data/data/目标应用程序名称/目标游戏名称/动态库文件名称,并将游戏引擎的代码文件的访问路径修改为:根目录/data/data/目标应用程序名称/目标游戏名称/游戏引擎代码文件名称;将资源的调用路径修改为:根目录/data/app/目标应用程序名称/资源文件名称(此处的资源文件名称根据需要调用的资源文件名称确定);并可以通过重写、反射、钩子函数等方法,将游戏引擎查找运行目标游戏时所需功能的代码文件的查找目录顺序由:先在系统目录(即根目录)下查找实现该功能的代码文件、再在目标应用程序目录下查找实现该功能的代码文件、最后在目标游 戏目录下查找实现该功能的代码文件,修改为先在目标游戏目录下查找实现该功能的代码文件、再在系统目录下查找实现该功能的代码文件、最后在目标应用程序目录下查找实现该功能的代码文件。
在重新配置代码文件和资源文件的调用路径之后,系统进程可以根据游戏引擎的代码文件的访问路径:根目录/data/data/目标应用程序名称/目标游戏名称/游戏引擎代码文件名称,访问到游戏引擎的代码,从而在目标应用程序中启动游戏引擎;在游戏引擎启动之后,游戏引擎会根据目标游戏的动态库文件的调用路径,在根目录/data/data/目标应用程序名称/目标游戏名称目录下查找并调用目标游戏运行过程中所需的代码,并根据目标游戏的资源文件的调用路径,在根目录/data/app/目标应用程序名称/目标游戏名称目录下查找并调用目标游戏运行过程中所需的资源,从而实现在目标应用程序中运行目标游戏。
本公开实施例中,通过目标应用程序下载目标子程序的安装包,基于安装包,获取目标子程序的代码文件和资源文件,将代码文件和资源文件分别配置在目标应用程序的对应目录下,并对代码文件和资源文件分别进行访问路径的重定向,这样,通过重定向后的访问路径,可以在目标应用程序中调用代码文件和资源文件,运行目标子程序;本公开实施例中,无需进行子程序安装包的本地安装,可以直接通过目标应用程序对目标子程序进行相关代码文件和资源文件的存储与访问路径重定向,实现在目标应用程序中直接运行该目标子程序,省去了安装过程,目标子程序运行过程简便。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与应用运行的方法对应的应用运行的装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述应用运行的方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
实施例二
参照图4所示,为本公开实施例提供的一种应用运行的装置400的结构示意图,所述装置包括:下载模块401、获取模块402和配置模块403;其中,下载模块401,用于通过目标应用程序下载目标子程序的安装包。
获取模块402,用于基于所述安装包,获取所述目标子程序的代码文件和资源文件。
配置模块403,用于将所述代码文件和所述资源文件分别配置在所述目标应用程序的对应目录下,并对所述代码文件和所述资源文件分别进行访问路径的重定向,以通过重定向后的访问路径,在所述目标应用程序中调用所述代码文件和所述资源文件,运行所述目标子程序。
在一种可能的实施方式中,获取模块402,具体用于基于所述目标应用程序对应的应用程序二进制接口ABI的类型,从所述安装包中,解压得到与所述ABI的类型对应的代码文件;将所述安装包中除所述代码文件外的文件作为所述资源文件。
在一种可能的实施方式中,所述目标子程序为游戏程序。
在一种可能的实施方式中,配置模块403,具体用于将所述代码文件和资源文件分别存储在所述目标应用程序中与所述目标子程序对应的不同存储目录下,并分别修改所述代码文件和所述资源文件的访问路径。
在一种可能的实施方式中,配置模块403,还具体用于采用预设的路径修改机制,将所述代码文件在所述目标应用程序中的存储目录添加至所述代码文件的查找路径的最前端位置。
在一种可能的实施方式中,所述装置还包括响应模块,用于响应针对所述目标子程序的启动指令,基于访问到的游戏引擎的代码,在所述目标应用程序中启动游戏引擎,并通过游戏引擎调用所述代码文件的其它代码和所述资源文件,以运行所述目标子程序。
在一种可能的实施方式中,所述装置还包括插件获取模块,具体用于获取所述目标子程序在所述目标应用程序上的运行环境信息;基于所述运行环境信息,下载所述目标子程序对应的容器插件并安装在所述目标应用程序上;所述容器插件用于执行下载所述目标子程序的安装包、以及获取所述代码文件和资源文件,并进行访问路径的重定向的过程。
本公开实施例中,通过目标应用程序下载目标子程序的安装包,基于安装包,获取目标子程序的代码文件和资源文件,将代码文件和资源文件分别配置在目标应用程序的对应目录下,并对代码文件和资源文件分别进行访问路径的重定向,这样,通过重定向后的访问路径,可以在目标应用程序中调用代码文件和资源文件,运行目标子程序;本公开实施例中,无需进行子程序安装包的本地安装,可以直接通过目标应用程序对目标子程序进行相关代码文件和资源文件的存储与访问路径重定向,实现在目标应用程序中直接运行该目标子程序,省去了安装过程,目标子程序运行过程简便。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本申请实施例还提供了一种计算机设备。参照图5所示,为本申请实施例提供的计算机设备500的结构示意图,包括处理器501、存储器502、和总线503。其中,存储器502用于存储执行指令,包括内存5021和外部存储器5022;这里的内存5021也称内存储器,用于暂时存放处理器501中的运算数据,以及与硬盘等外部存储器5022交换的数据,处理器501通过内存5021与外部存储器5022进行数据交换,当计算机设备500运行时,处理器501与存储器502之间通过总线503通信,使得处理器501执行以下指令:
通过目标应用程序下载目标子程序的安装包;基于所述安装包,获取所述目标子程序的代码文件和资源文件;将所述代码文件和所述资源文件分别配置在所述目标应用程序的对应目录下,并对所述代码文件和所述资源文件分别进行访问路径的重定向,以通过重定向后的访问路径,在所述目标应用程序中调用所述代码文件和所述资源文件,运 行所述目标子程序。
其中,处理器501的具体处理流程可以参照上述方法实施例的记载,这里不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的应用运行的方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的应用运行的方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的应用运行的方法的步骤,具体可参见上述方法实施例,在此不再赘述。
本公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开 的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (10)

  1. 一种应用运行的方法,其特征在于,所述方法包括:
    通过目标应用程序下载目标子程序的安装包;
    基于所述安装包,获取所述目标子程序的代码文件和资源文件;
    将所述代码文件和所述资源文件分别配置在所述目标应用程序的对应目录下,并对所述代码文件和所述资源文件分别进行访问路径的重定向,以通过重定向后的访问路径,在所述目标应用程序中调用所述代码文件和所述资源文件,运行所述目标子程序。
  2. 根据权利要求1所述的方法,其特征在于,所述基于所述安装包,获取目标子程序的代码文件和资源文件,包括:
    基于所述目标应用程序对应的应用程序二进制接口ABI的类型,从所述安装包中,解压得到与所述ABI的类型对应的代码文件;
    将所述安装包中除所述代码文件外的文件作为所述资源文件。
  3. 根据权利要求1所述的方法,其特征在于,所述目标子程序包括游戏程序。
  4. 根据权利要求3所述的方法,其特征在于,将所述代码文件和所述资源文件分别配置在所述目标应用程序的对应目录下,并对所述代码文件和所述资源文件分别进行访问路径的重定向,包括:
    将所述代码文件和资源文件分别存储在所述目标应用程序中与所述目标子程序对应的不同存储目录下,并分别修改所述代码文件和所述资源文件的访问路径。
  5. 根据权利要求4所述的方法,其特征在于,修改所述代码的访问路径,包括:
    采用预设的路径修改机制,将所述代码文件在所述目标应用程序中的存储目录添加至所述代码文件的查找路径的最前端位置。
  6. 根据权利要求3所述的方法,其特征在于,所述对所述代码文件和所述资源文件分别进行访问路径的重定向之后,还包括:
    响应针对所述目标子程序的启动指令,基于访问到的游戏引擎的代码,在所述目标应用程序中启动游戏引擎,并通过游戏引擎调用所述代码文件的其它代码和所述资源文件,以运行所述目标子程序。
  7. 根据权利要求1所述的方法,其特征在于,所述通过目标应用程序下载目标子程序的安装包之前,还包括:
    获取所述目标子程序在所述目标应用程序上的运行环境信息;
    基于所述运行环境信息,下载所述目标子程序对应的容器插件并安装在所述目标应用程序上;所述容器插件用于执行下载所述目标子程序的安装包、以及获取所述代码文件和资源文件,并进行访问路径的重定向的过程。
  8. 一种应用运行的装置,其特征在于,所述装置包括:
    下载模块,用于通过目标应用程序下载目标子程序的安装包;
    获取模块,用于基于所述安装包,获取所述目标子程序的代码文件和资源文件;
    配置模块,用于将所述代码文件和所述资源文件分别配置在所述目标应用程序的对应目录下,并对所述代码文件和所述资源文件分别进行访问路径的重定向,以通过重定向后的访问路径,在所述目标应用程序中调用所述代码文件和所述资源文件,运行所述目标子程序。
  9. 一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的应用运行的方法的步骤。
  10. 一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的应用运行的方法的步骤。
PCT/CN2021/116488 2020-10-21 2021-09-03 一种应用运行的方法、装置及计算机存储介质 WO2022083316A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011134355.1 2020-10-21
CN202011134355.1A CN112256286B (zh) 2020-10-21 2020-10-21 一种应用运行的方法、装置及计算机存储介质

Publications (1)

Publication Number Publication Date
WO2022083316A1 true WO2022083316A1 (zh) 2022-04-28

Family

ID=74263063

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/116488 WO2022083316A1 (zh) 2020-10-21 2021-09-03 一种应用运行的方法、装置及计算机存储介质

Country Status (2)

Country Link
CN (1) CN112256286B (zh)
WO (1) WO2022083316A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114721676A (zh) * 2022-05-16 2022-07-08 龙芯中科技术股份有限公司 软件安装方法、装置、电子设备和可读存储介质
CN116009959A (zh) * 2023-01-17 2023-04-25 广州创盒信息科技有限公司 Flash项目的移植方法、装置、系统及存储介质
CN117311853A (zh) * 2023-11-28 2023-12-29 深圳市移卡科技有限公司 Apk文件的处理方法、装置、计算机设备及存储介质
CN117762430A (zh) * 2024-02-22 2024-03-26 腾讯科技(深圳)有限公司 基于应用程序的处理方法、装置、计算机设备和存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256286B (zh) * 2020-10-21 2023-05-05 抖音视界有限公司 一种应用运行的方法、装置及计算机存储介质
CN112732365B (zh) * 2021-01-28 2024-07-12 北京字跳网络技术有限公司 预装应用程序启动方法、装置、电子设备及存储介质
CN114296830A (zh) * 2021-12-30 2022-04-08 上海完美时空软件有限公司 应用程序运行方法、装置、存储介质及电子设备
CN114489850B (zh) * 2022-01-20 2023-08-22 中广核工程有限公司 一种设计软件的调用方法、装置、计算机设备及存储介质
CN115640269B (zh) * 2022-12-23 2023-03-10 北京麟卓信息科技有限公司 一种基于按需复制的安卓应用安装加速方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170052764A1 (en) * 2015-08-21 2017-02-23 Oracle International Corporation Pluggable components for runtime-image generation
CN109395395A (zh) * 2018-09-20 2019-03-01 Oppo广东移动通信有限公司 游戏运行方法及相关产品
CN110609689A (zh) * 2019-08-23 2019-12-24 北京安云世纪科技有限公司 一种应用的安装运行方法及装置
CN111722885A (zh) * 2020-06-19 2020-09-29 北京字节跳动网络技术有限公司 程序运行方法、装置以及电子设备
CN112256286A (zh) * 2020-10-21 2021-01-22 北京字节跳动网络技术有限公司 一种应用运行的方法、装置及计算机存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7516445B2 (en) * 2005-06-30 2009-04-07 Microsoft Corporation Locating source code when stopping in a debugger
CN106775793A (zh) * 2015-11-23 2017-05-31 卓望数码技术(深圳)有限公司 一种安卓应用免安装启动的方法、装置及终端
CN105740033A (zh) * 2016-03-15 2016-07-06 广州彩瞳网络技术有限公司 一种终端设备、插件加载运行装置及插件加载运行方法
CN110244984B (zh) * 2018-03-06 2023-06-02 腾讯科技(深圳)有限公司 应用程序处理方法、装置、存储介质和计算机设备
CN111737692B (zh) * 2020-08-17 2020-12-18 腾讯科技(深圳)有限公司 应用程序的风险检测方法及装置、设备、存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170052764A1 (en) * 2015-08-21 2017-02-23 Oracle International Corporation Pluggable components for runtime-image generation
CN109395395A (zh) * 2018-09-20 2019-03-01 Oppo广东移动通信有限公司 游戏运行方法及相关产品
CN110609689A (zh) * 2019-08-23 2019-12-24 北京安云世纪科技有限公司 一种应用的安装运行方法及装置
CN111722885A (zh) * 2020-06-19 2020-09-29 北京字节跳动网络技术有限公司 程序运行方法、装置以及电子设备
CN112256286A (zh) * 2020-10-21 2021-01-22 北京字节跳动网络技术有限公司 一种应用运行的方法、装置及计算机存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114721676A (zh) * 2022-05-16 2022-07-08 龙芯中科技术股份有限公司 软件安装方法、装置、电子设备和可读存储介质
CN114721676B (zh) * 2022-05-16 2022-08-26 龙芯中科技术股份有限公司 软件安装方法、装置、电子设备和可读存储介质
CN116009959A (zh) * 2023-01-17 2023-04-25 广州创盒信息科技有限公司 Flash项目的移植方法、装置、系统及存储介质
CN116009959B (zh) * 2023-01-17 2024-02-27 广州创盒信息科技有限公司 Flash项目的移植方法、装置、系统及存储介质
CN117311853A (zh) * 2023-11-28 2023-12-29 深圳市移卡科技有限公司 Apk文件的处理方法、装置、计算机设备及存储介质
CN117311853B (zh) * 2023-11-28 2024-03-12 深圳市移卡科技有限公司 Apk文件的处理方法、装置、计算机设备及存储介质
CN117762430A (zh) * 2024-02-22 2024-03-26 腾讯科技(深圳)有限公司 基于应用程序的处理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN112256286A (zh) 2021-01-22
CN112256286B (zh) 2023-05-05

Similar Documents

Publication Publication Date Title
WO2022083316A1 (zh) 一种应用运行的方法、装置及计算机存储介质
EP3035191B1 (en) Identifying source code used to build executable files
US9645804B2 (en) Extracting source code
US8572033B2 (en) Computing environment configuration
JP5090169B2 (ja) プラットホーム独立の動的リンキング
US5903753A (en) Name space registry with backward compatibility for older applications
Gilbert et al. Pocket ISR: Virtual machines anywhere
US11016785B2 (en) Method and system for mirror image package preparation and application operation
RU2459238C2 (ru) Управляемая среда выполнения для организации взаимодействия между программными приложениями
CN110187910B (zh) 一种热更新方法、装置、设备及计算机可读存储介质
US8539506B2 (en) Dynamic injection of code into running process
JP2008234673A (ja) モバイル・デバイスのアプリケーション・インストール管理システムおよび方法
US9378013B2 (en) Incremental source code analysis
JP2008516324A (ja) ランタイム動的リンキング
CN106569856A (zh) 一种应用视图资源文件的加载方法和装置
EP3207453B1 (en) Api versioning independent of product releases
CN115629971A (zh) 一种应用的开发系统和开发方法
CN112882694A (zh) 一种程序编译方法、装置、电子设备及可读存储介质
US9448782B1 (en) Reducing a size of an application package
WO2022078057A1 (zh) 应用包发布方法、应用方法、装置、介质、服务器及设备
Lange Eclipse rich ajax platform: Bringing rich client to the web
CN113138754A (zh) 一种动态扩展浏览器Javascript引擎功能的方法、装置及电子设备
CN115237458A (zh) 一种调用推理硬件执行ai应用的方法及相关产品
WO2021223544A1 (zh) 一种启动应用的方法和相关装置
US20240241708A1 (en) Method and apparatus for controlling android app, and terminal device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21881735

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21881735

Country of ref document: EP

Kind code of ref document: A1