CN113971052B - 一种应用运行方法、装置、设备、存储介质及程序产品 - Google Patents
一种应用运行方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN113971052B CN113971052B CN202111246708.1A CN202111246708A CN113971052B CN 113971052 B CN113971052 B CN 113971052B CN 202111246708 A CN202111246708 A CN 202111246708A CN 113971052 B CN113971052 B CN 113971052B
- Authority
- CN
- China
- Prior art keywords
- application
- configuration
- database
- data
- target
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000004458 analytical method Methods 0.000 claims abstract description 10
- 244000035744 Hura crepitans Species 0.000 claims description 53
- 230000015654 memory Effects 0.000 claims description 41
- 230000008569 process Effects 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 28
- 238000013515 script Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 239000011800 void material Substances 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000002253 acid Substances 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种应用运行方法、装置、设备、存储介质及程序产品;该应用运行方法包括:响应于目标应用的运行请求,建立与配置数据库的连接,其中,配置数据库是嵌入在目标应用中的、且是由与目标应用对应的配置数据构成的,配置数据是用于支持目标应用运行的配置信息;基于与配置数据库的连接,从配置数据库中获取与运行请求对应的目标配置数据;基于目标配置数据的解析结果,控制目标应用的运行。通过本申请,能够提升应用的运行效率。
Description
技术领域
本申请涉及计算机应用领域中的数据处理技术,尤其涉及一种目标应用的方法、装置、设备、存储介质及程序产品。
背景技术
一般来说,功能应用(简称为应用)对应着支持该应用运行的配置数据,比如,业务流程数据和业务配置数据等;在运行应用时,常常是将应用的配置数据加载至内存中,进而通过对内存中配置数据的读取实现应用的运行。然而,在实现应用的运行的过程中,由于配置数据被加载至了内存中,在配置数据对应的量较大的情况下,将会导致内存的占用量较大,从而应用运行的效率较低。
发明内容
本申请实施例提供一种应用运行方法、装置、设备、计算机可读存储介质及计算机程序产品,能够提升应用的运行效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种应用运行方法,包括:
响应于目标应用的运行请求,建立与配置数据库的连接,其中,所述配置数据库是嵌入在所述目标应用中的、且是由与所述目标应用对应的配置数据构成的,所述配置数据是用于支持所述目标应用运行的配置信息;
基于与所述配置数据库的连接,从所述配置数据库中获取与所述运行请求对应的目标配置数据;
基于所述目标配置数据的解析结果,控制所述目标应用的运行。
本申请实施例提供一种应用运行装置,包括:
连接建立模块,用于响应于目标应用的运行请求,建立与配置数据库的连接,其中,所述配置数据库是嵌入在所述目标应用中的、且是由与所述目标应用对应的配置数据构成的,所述配置数据是用于支持所述目标应用运行的配置信息;
数据获取模块,用于基于与所述配置数据库的连接,从所述配置数据库中获取与所述运行请求对应的目标配置数据;
应用运行模块,用于基于所述目标配置数据的解析结果,控制所述目标应用的运行。
本申请实施例提供一种应用运行设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的应用运行方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,所述可执行指令用于被处理器执行时,实现本申请实施例提供的应用运行方法。
在本申请实施例中,所述应用运行装置还包括数据配置模块,用于对所述目标应用进行数据配置,得到待转换配置数据;对所述待转换配置数据进行指定格式的转换,得到所述配置数据,其中,所述指定格式为嵌入应用中的数据库对应的数据格式;将所述配置数据构建的所述配置数据库嵌入至所述目标应用的应用目录中,其中,所述应用目录为所述目标应用进行运行时所访问的目录。
在本申请实施例中,所述应用运行装置还包括数据配置模块,用于呈现电子表格,其中,所述电子表格用于生成数据可读性高于所述配置数据的数据;响应于作用在所述电子表格中的数据配置操作,获得所述待转换配置数据,其中,所述待转换配置数据的数据可读性高于所述配置数据的数据可读性。
在本申请实施例中,所述连接建立模块,还用于响应于所述目标应用的运行请求,将所述配置数据库存储至所述目标应用对应的沙盒目录中,其中,所述沙盒目录用于在所述目标应用的运行过程中读写数据;建立与所述沙盒目录中的所述配置数据库的连接。
在本申请实施例中,所述连接建立模块,还用于从所述目标应用对应的应用数据包中获取连接密码,其中,所述应用数据包为所述目标应用对应的应用数据;基于所述连接密码,建立与所述沙盒目录中的所述配置数据库的连接。
在本申请实施例中,所述连接建立模块,还用于响应于所述目标应用的所述运行请求,从所述目标应用对应的所述沙盒目录中读取缓存的配置数据库,得到数据库读取结果;当所述数据库读取结果为所述沙盒目录中不包括所述缓存的配置数据库时,从所述目标应用对应的应用目录中获取第一配置数据库,并从后台服务器获取第二配置数据库;当所述第二配置数据库与所述第一配置数据库不匹配时,将所述第二配置数据库作为所述配置数据库存储至所述目标应用对应的所述沙盒目录中。
在本申请实施例中,所述数据获取模块,用于获取与所述运行请求对应的配置数据获取信息,其中,所述配置数据获取信息包括数据标识和数据获取条件中的至少一种;基于与所述配置数据库的连接,在所述配置数据库中执行与所述配置数据获取信息对应的查询;将查询结果确定为所述目标配置数据。
在本申请实施例中,所述连接建立模块,还用于响应于所述目标应用的所述运行请求,当确定所述运行请求对应的请求端为脚本端时,从配置数据缓存中获取与所述运行请求对应的目标配置数据,得到配置数据获取结果,其中,所述请求端包括主程序端和所述脚本端,所述脚本端对所述配置数据的获取频率高于所述主程序端对所述配置数据的获取频率;当所述配置数据获取结果为所述配置数据缓存中不包括所述目标配置数据时,建立与所述配置数据库的连接。
在本申请实施例中,所述应用运行装置还包括数据缓存模块,用于将所述目标配置数据缓存至所述配置数据缓存;基于所述配置数据缓存中缓存的所述目标配置数据响应所述目标应用的下次运行请求。
在本申请实施例中,所述应用运行装置还包括连接断开模块,用于响应于所述目标应用的关闭请求,断开与所述配置数据库的连接。
在本申请实施例中,所述数据配置模块,还用于对所述配置数据构成的所述配置数据库进行编译,得到编译链接库;将所述编译链接库嵌入至所述目标应用的所述应用目录中。
在本申请实施例中,所述应用运行装置还包括连接建立模块,还用于响应于目标应用的运行请求,基于所述编译链接库建立与所述配置数据库的连接。
本申请实施例提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时,实现本申请实施例提供的应用运行方法。
本申请实施例至少具有以下有益效果:通过预先将目标应用对应的配置数据构建成能够嵌入在目标应用中配置数据库,使得目标应用在运行的过程中,能够通过访问数据库的方式加载所需的目标配置数据;由于所需的目标配置数据对应的内存占用量较小,从而,能够降低目标应用运行过程中的内存资源的消耗,提升应用的运行效率。
附图说明
图1是本申请实施例提供的应用运行系统的架构示意图;
图2是本申请实施例提供的图1中的终端的组成结构示意图;
图3是本申请实施例提供的应用运行方法的流程示意图一;
图4是本申请实施例提供的应用运行方法的流程示意图二;
图5是本申请实施例提供的应用运行方法的流程示意图三;
图6是本申请实施例提供的示例性的运行目标应用的流程示意图;
图7是本申请实施例提供的示例性的与数据库的连接示意图;
图8是本申请实施例提供的示例性的获取目标配置数据的流程示意图;
图9是本申请实施例提供的示例性的关键模块的关联示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本申请实施例中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)功能应用,简称为应用,用于通过计算机程序实现指定功能,可以是操作系统中的原生程序或软件模块,可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如游戏APP、直播APP或者即时通信APP;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序;总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。在本申请实施例中,涉及的应用为目标应用。
2)数据库(Database),用于存储电子文件,可以对电子文件中的数据进行新增、查询、更新和删除等操作;从而,数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用彼此独立的数据集合。本申请实施例中,所涉及的配置数据库为一种特殊的数据库,能够嵌入在目标应用中。
3)数据库管理系统(Database Management System,DBMS),用于管理数据库,包括存储、截取、安全保障和备份等基础功能;一般来说,数据库管理系统可以依据所支持的数据库模型来作分类,例如,关系式,可扩展标记语言(Extensible Markup Language,XML);还可以依据所支持的计算机类型来作分类,例如,服务器群集,移动电话;又可以依据所用查询语言来作分类,例如,结构化查询语言(Structured Query Language,SQL),“XQuery”;以及可以据性能冲量重点来作分类,例如,最大规模,最高运行速度;亦或其他的分类方式。
一般来说,应用对应着支持该应用运行的配置数据,比如,业务流程数据和业务配置数据等;在运行应用时,常常是将应用的配置数据加载至内存中,进而通过对内存中配置数据的读取实现应用的运行。示例性地,电子设备采用可读取格式的文件(比如,“Protobuf”文件,XML文件,“Json”文件,等等)对应用进行数据配置,获得可读取格式的配置数据,并将可读取格式的配置数据加载至内存中,进而通过对内存中可读取格式的配置数据进行读取并解析成数据对象,来实现应用的运行。然而,在实现应用的运行的过程中,由于配置数据被加载至了内存中,在配置数据对应的量较大的情况下,将会导致内存的占用量较大,从而应用运行的效率较低。
基于此,本申请实施例提供一种应用运行方法、装置、设备、计算机可读存储介质及计算机程序产品,能够降低目标应用运行过程中的内存资源的消耗,提升应用的运行效率。下面说明本申请实施例提供的应用运行设备的示例性应用,本申请实施例提供的应用运行设备可以实施为智能手机、智能手表、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、智能车载设备、便携式音乐播放器、个人数字助理、专用消息设备、便携式游戏设备和智能音箱等各种类型的终端,也可以实施为服务器。下面,将说明设备实施为终端时的示例性应用。
参见图1,图1是本申请实施例提供的应用运行系统的架构示意图;如图1所示,为支撑一个应用运行应用,在应用运行系统100中,终端400(称为应用运行设备,示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,服务器200用于通过网络300向终端400提供计算服务,网络300可以是广域网或者局域网,又或者是二者的组合。另外,该应用运行系统100中还包括数据库500,用于向服务器200提供数据支持;并且,图1中示出的为数据库500独立于服务器200的一种情况,此外,数据库500还可以集成在服务器200中,本申请实施例对此不作限定。
终端400,用于响应于目标应用的运行请求,建立与配置数据库的连接,其中,配置数据库是嵌入在目标应用中的、且是由与目标应用对应的配置数据构成的,配置数据是用于支持目标应用运行的配置信息;基于与配置数据库的连接,从配置数据库中获取与运行请求对应的目标配置数据;基于目标配置数据的解析结果,控制目标应用的运行(比如,终端400中示出的运行界面)。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,ContentDelivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、智能手表、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、智能车载设备、便携式音乐播放器、个人数字助理、专用消息设备、便携式游戏设备和智能音箱等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不作限制。
参见图2,图2是本申请实施例提供的图1中的终端的组成结构示意图,图2所示的终端400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算机设备,示例性的网络接口420包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的应用运行装置可以采用软件方式实现,图2示出了存储在存储器450中的应用运行装置455,其可以是程序和插件等形式的软件,包括以下软件模块:连接建立模块4551、数据获取模块4552、应用运行模块4553、数据配置模块4554、数据缓存模块4555和连接断开模块4556,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在一些实施例中,本申请实施例提供的应用运行装置可以采用硬件方式实现,作为示例,本申请实施例提供的应用运行装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的应用运行方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
下面,将结合本申请实施例提供的应用运行设备的示例性应用和实施,说明本申请实施例提供的应用运行方法。
参见图3,图3是本申请实施例提供的应用运行方法的流程示意图一,将结合图3示出的步骤进行说明。
S301、响应于目标应用的运行请求,建立与配置数据库的连接。
在本申请实施例中,当应用运行设备启动目标应用以运行目标应用时,应用运行设备也就获得了目标应用的运行请求;此时,应用运行设备响应于该运行请求,执行用于运行目标应用的处理流程;应用运行设备在执行用于运行目标应用的处理流程的过程中,当需要获取用于支持目标应用的此次运行的配置信息时,获取嵌入在目标应用的配置数据库,并建立与配置数据库的连接,以从配置数据库中读取用于支持目标应用的此次运行的配置信息。这里,与配置数据库的连接是指应用运行设备与配置数据库的连接。
需要说明的是,运行请求用于请求运行目标应用,以实现目标应用对应的部分功能或全部功能;其中,运行请求可以是响应于用户针对目标应用的运行操作生成的,还可以是基于指定条件的触发而生成的运行请求,又可以是接收到的运行请求,等等,本申请实施例对此不作限定。配置数据库是嵌入在目标应用中的,比如,“SQLite”数据库,从而应用运行设备能够从目标应用对应的应用数据包中获取到该配置数据库;又由于配置数据库是由与目标应用对应的配置数据构成的,配置数据是用于支持目标应用运行的配置信息,比如,“SQL ite”文件,从而,应用运行设备通过建立与配置数据库的连接,能够实现对配置数据的访问,进而能够获取到用于支持目标应用的此次运行的配置信息。这里,配置数据包括业务逻辑、默认设置和交互规则等配置信息。
S302、基于与配置数据库的连接,从配置数据库中获取与运行请求对应的目标配置数据。
在本申请实施例中,应用运行设备基于与配置数据库的连接对配置数据库中的配置数据进行访问;这里,由于运行请求用于请求运行目标应用,从而,运行请求对应着支持目标应用的此次运行的配置数据获取信息,从而,应用运行设备基于配置数据获取信息,从配置数据库的配置数据中获取与运行请求对应的目标配置数据。
需要说明的是,目标配置数据即为用于支持目标应用的此次运行的配置信息;并且,支持目标应用的运行的配置信息包括支持目标应用的此次运行的配置信息,即为配置数据包括目标配置数据,以及,目标配置数据可以是配置数据的部分,还可以是配置数据的全部。
S303、基于目标配置数据的解析结果,控制目标应用的运行。
在本申请实施例中,应用运行设备获得了目标配置数据之后,对目标配置数据进行解析,以将目标配置数据解析为数据对象;进而,应用运行设备基于解析出的数据对象控制目标应用的运行,以实现目标应用此次的运行。其中,解析出的数据对象即为目标配置数据的解析结果。
可以理解的是,通过预先将目标应用对应的配置数据构建成能够嵌入在目标应用中配置数据库,使得目标应用在运行的过程中,能够通过访问数据库的方式加载所需的目标配置数据;由于所需的目标配置数据对应的内存占用量较小,从而,能够降低目标应用运行过程中的内存资源和配置数据对应的解析资源的消耗,提升应用的运行效率。
参见图4,图4是本申请实施例提供的应用运行方法的流程示意图二;如图4所示,在本申请实施例中,S301之前还包括S304至S306;也就是说,应用运行设备响应于目标应用的运行请求,建立与配置数据库的连接之前,该应用运行方法还包括S304至S306,下面对各步骤分别进行说明。
S304、对目标应用进行数据配置,得到待转换配置数据。
在本申请实施例中,应用运行设备还用于获取目标应用对应的配置数据,并基于配置数据构建配置数据库。这里,应用运行设备在获取目标应用对应的配置数据的过程中,先获得的为待转换配置数据,再由待转换配置数据转换为配置数据。
需要说明的是,待转换配置数据可以为目标应用对应的用于显示的配置信息,具有可读性,比如,“Excel”文件;也可以为其他非嵌入式数据库对应的格式的数据,比如,XML文件,“Json”文件;本申请实施例对此不作限定。
S305、对待转换配置数据进行指定格式的转换,得到配置数据。
需要说明的是,由于待转换配置数据为非嵌入式数据库对应的格式的数据,因此,应用运行设备需要将待转换配置数据转换为嵌入式数据库对应的格式的数据,才能构成配置数据库。其中,指定格式为嵌入应用中的数据库对应的数据格式,即为嵌入式数据库对应的格式,比如,“SQLite”格式;配置数据即为指定格式的数据。
在本申请实施例中,待转换配置数据和配置数据均为支持目标应用运行的配置信息,只是待转换配置数据和配置数据在数据格式上不同。
S306、将配置数据构建的配置数据库嵌入至目标应用的应用目录中。
在本申请实施例中,应用运行设备基于获得的配置数据构建成配置数据库,并将该配置数据库存储至目标应用的应用目录中,以实现配置数据库在目标应用的嵌入。其中,应用目录为目标应用进行运行时所访问的目录。
可以理解的是,通过将支持目标应用运行的配置信息转换为嵌入式数据库对应的数据格式,能够获得包括支持目标应用运行的配置信息的配置数据库;进而当将配置数据库嵌入在目标应用时,就能够实现通过访问配置数据获取到目标配置数据,实现目标应用的运行,降低目标应用的资源消耗,提升目标应用的运行效率。
在本申请实施例中,应用运行设备可以将配置数据库直接存储至应用目录中实现配置数据库在目标应用中的嵌入,还可以间接地实现配置数据库在目标应用中的嵌入;下面描述应用运行设备间接地实现配置数据库在目标应用中的嵌入的过程,S305之后还包括S307和S308(图中未示出);也就是说,应用运行设备对待转换配置数据进行指定格式的转换,得到配置数据之后,该应用运行方法还包括S307和S308,下面对各步骤分别进行说明。
S307、对配置数据构成的配置数据库进行编译,得到编译链接库。
需要说明的是,编译链接库可以是与配置数据库对应的静态链接库,还可以是与配置数据库对应的动态链接库,等等,本申请实施例对此不作限定。
S308、将编译链接库嵌入至目标应用的应用目录中。
在本申请实施例中,应用运行设备将编译链接库存储至目标应用的应用目录中,以实现配置数据库在目标应用的嵌入。
相应地,在本申请实施例中,S301可通过S3011(图中未示出)实现;也就是说,应用运行设备响应于目标应用的运行请求,建立与配置数据库的连接,包括S3011,下面对该步骤进行说明。
S3011、响应于目标应用的运行请求,基于编译链接库建立与配置数据库的连接。
需要说明的是,当应用运行设备是通过将配置数据库对应的编译链接库存储在目标应用对应的应用目录中时,在建立与配置数据库的连接时,应用运行设备通过访问目标应用对应的应用目录中的编译链接库,以通过编译链接库建立与配置数据库的连接。
可以理解的是,当应用运行设备通过将配置数据库对应的编译链接库存储在目标应用对应的应用目录中,以实现配置数据库在目标应用的嵌入时,能够提升目标应用运行过程时的数据装载速度,进而提升目标应用的运行效率。
在本申请实施例中,S304可通过S3041和S3042(图中未示出)实现;也就是说,应用运行设备对目标应用进行数据配置,得到待转换配置数据,包括S3041和S3042,下面对各步骤分别进行说明。
S3041、呈现电子表格。
在本申请实施例中,应用运行设备通过呈现电子表格来获取待转换配置数据;其中,电子表格用于生成数据可读性高于配置数据的数据,并且,电子表格为输入待转换配置数据的表格控件,对输入的信息无语法规则等要求,以及电子表格是通过获取与字段对应的属性来获取数据的;比如,Excel表格。
S3042、响应于作用在电子表格中的数据配置操作,获得待转换配置数据。
在本申请实施例中,当用户(比如,目标应用的策划人员)通过在电子表格中进行数据输入来对目标应用进行数据配置时,应用运行设备也就接收到了作用在电子表格中的数据配置操作;此时,应用运行设备响应于该数据配置操作,也就获得了待转换配置数据。
需要说明的是,数据配置操作是指对目标应用进行数据配置的操作;待转换配置数据的数据可读性高于配置数据的数据可读性。
可以理解的是,应用运行设备在对目标应用进行数据配置时,采用电子表格获得数据可读性较高的待转换配置数据,提升了目标应用中进行数据配置的效率和准确度。
在本申请实施例中,S301可通过S3012和S3013(图中未示出)实现;也就是说,应用运行设备响应于目标应用的运行请求,建立与配置数据库的连接,包括S3012和S3013,下面对各步骤分别进行说明。
S3012、响应于目标应用的运行请求,将配置数据库存储至目标应用对应的沙盒目录中。
在本申请实施例中,应用运行设备响应于目标应用的运行请求,获取嵌入在目标应用中的配置数据库,并将配置数据库存储至目标应用对应的沙盒目录中,以获得对配置数据库访问的权限。其中,沙盒目录用于在目标应用的运行过程中读写数据。
S3013、建立与沙盒目录中的配置数据库的连接。
需要说明的是,当应用运行设备将配置数据库房子沙盒目标中之后,应用运行设备建议与配置数据库的连接,即为建立与沙盒目录中的配置数据库的连接。
可以理解的是,应用运行设备通过将配置数据库放置在目标应用对应的沙盒目录中,使得能够获得对配置数据库进行访问的权限,进而能够实现通过对配置数据库的访问来获得目标配置数据并运行目标应用。
在本申请实施例中,当配置数据库中的配置数据为加密后的数据时,即应用运行设备在基于配置数据构建配置数据库时进行了加密处理时,应用设备在建立与沙盒目录中的配置数据库的连接时需要进行解密处理;也就是说,S3013可通过S30131和S30132(图中未示出)实现;也就是说,应用运行设备建立与沙盒目录中的配置数据库的连接,包括S30131和S30132,下面对各步骤分别进行说明。
S30131、从目标应用对应的应用数据包中获取连接密码。
需要说明的是,当配置数据库为加密的数据库时,则应用运行设备预先在目标应用对应的应用数据包中存储着密码,从而,应用运行设备能够从应用数据包中获取到密码,即为连接密码。其中,应用数据包为目标应用对应的应用数据,并且,应用数据包包括应用目录对应的数据;连接密码用于对配置数据库的连接进行安全验证。
S30132、基于连接密码,建立与沙盒目录中的配置数据库的连接。
在本申请实施例中,应用运行设备获得了连接密码之后,基于该连接密码获取与沙盒目录中的配置数据库进行连接的权限,进而建立与沙盒目录中的配置数据库的连接。
可以理解的是,应用运行设备通过在配置数据库的构建过程中进行加密,并在建立与配置数据库的连接时进行解密,提升了配置数据库的安全性;进而在通过访问配置数据库实现目标应用运行的过程中,能够提升目标应用运行的安全性。
在本申请实施例中,S3012可通过S30121至S30123(图中未示出)实现;也就是说,应用运行设备响应于目标应用的运行请求,将配置数据库存储至目标应用对应的沙盒目录中,包括S30121至S30123,下面对各步骤分别进行说明。
S30121、响应于目标应用的运行请求,从目标应用对应的沙盒目录中读取缓存的配置数据库,得到数据库读取结果。
在本申请实施例中,应用运行设备在响应于目标应用的运行请求建立与配置数据库的连接时,可以直接将配置数据库存储至沙盒目录中,也可以通过更新检测确定配置数据库之后再将配置数据库存储至沙盒目录中,还可以先判断沙盒目录中是否包括之前缓存的配置数据库,再基于判断结果确定是否将配置数据库存储至沙盒目录中,亦可以是上述各方式的结合,本申请实施例对此不作限定。
需要说明的是,判断结果即为数据库读取结果,可以是沙盒目录中包括之前缓存的配置数据库,也可以是沙盒目录中不包括之前缓存的配置数据库。
S30122、当数据库读取结果为沙盒目录中不包括缓存的配置数据库时,从目标应用对应的应用目录中获取第一配置数据库,并从后台服务器获取第二配置数据库。
需要说明的是,当应用运行设备将沙盒目录中的数据库读取结果与更新检测结合时,如果确定数据库读取结果为沙盒目录中不包括缓存的配置数据库,则执行更新检测处理;而如果确定数据库读取结果为沙盒目录中包括缓存的配置数据库,则直接基于缓存的配置数据库进行连接和访问处理,当然,也可以执行更新检测处理。其中,后台服务器是应用运行设备运行目标应用时对应的服务器;比如,图1中的服务器200。
在本申请实施例中,应用运行设备在执行更新检测处理时,从后台服务器中获取与目标应用对应的配置信息构建成的数据库,得到第二配置数据库,以及从应用运行设备对应的本地中获取与目标应用对应的配置信息构建成的数据库,得到第一配置数据库。
S30123、当第二配置数据库与第一配置数据库不匹配时,将第二配置数据库作为配置数据库存储至目标应用对应的沙盒目录中。
在本申请实施例中,应用运行设备对第一配置数据库和第二配置数据库进行匹配,确定第二配置数据库与第一配置数据库匹配时,将第一配置数据库作为配置数据库存储至目标应用对应的沙盒目录中。确定第二配置数据库与第一配置数据库不匹配时,将第二配置数据库作为配置数据库存储至目标应用对应的沙盒目录中。
在本申请实施例中,S302可通过S3021至S3023(图中未示出)实现;也就是说,应用运行设备基于与配置数据库的连接,从配置数据库中获取与运行请求对应的目标配置数据,包括S3021至S3023,下面对各步骤分别进行说明。
S3021、获取与运行请求对应的配置数据获取信息。
需要说明的是,应用运行设备获得的配置数据获取信息包括数据标识和数据获取条件中的至少一种;其中,数据标识为指定的字段对应的属性值,数据获取条件为多个字段的属性值构成的条件组合。这里,配置数据库获取信息可以是数据库查询语言。
S3022、基于与配置数据库的连接,在配置数据库中执行与配置数据库获取信息对应的查询。
S3023、将查询结果确定为目标配置数据。
在本申请实施例中,由于配置数据库获取信息用于从配置数据库中获取请求的配置信息,因此,应用运行设备基于建立的与配置数据库的连接,在配置数据库中执行与配置数据库获取信息对应的数据库查询语言,所获得的查询结果即为目标配置数据。这里,当目标配置数据包括多个数据时,应用运行设备还可以对目标配置数据进行遍历,以基于筛选条件获得最终的配置数据,进而基于最终的配置数据控制目标应用的运行。
在本申请实施例中,S301还可通过S3014和S3015实现(图中未示出);也就是说,应用运行设备响应于目标应用的运行请求,建立与配置数据库的连接,包括S3014和S3015,下面对各步骤分别进行说明。
S3014、响应于目标应用的运行请求,当确定运行请求对应的请求端为脚本端时,从配置数据缓存中获取与运行请求对应的目标配置数据,得到配置数据获取结果。
需要说明的是,目标应用设备在运行目标应用时,目标应用设备是通过目标应用对应的请求端执行目标配置数据的获取的;其中,请求端包括主程序端和脚本端,脚本端对配置数据的获取频率高于主程序端对配置数据的获取频率;比如,主程序端为目标应用的框架模块,脚本端为用于热更新的模块。
在本申请实施例中,由于脚本端对配置数据的获取频率高于主程序端对配置数据的获取频率,因此,将脚本端获得的目标配置数据在配置数据缓存中进行缓存;从而,当应用运行设备确定运行请求对应的请求端为脚本端时,先判断配置数据缓存中是否缓存了目标配置数据;其中,配置数据获取结果表征了配置数据缓存中是否缓存了目标配置数据,可以是配置数据缓存中包括目标配置数据,还可以是配置数据缓存中不包括目标配置数据。这里,配置数据缓存为与脚本端对应的缓存。
S3015、当配置数据获取结果为配置数据缓存中不包括目标配置数据时,建立与配置数据库的连接。
在本申请实施例中,当配置数据获取结果为配置数据缓存中包括目标配置数据时,应用运行设备直接从配置数据缓存中获得该目标配置数据,不再建立与配置数据库的连接,以降低目标应用的资源消耗,提升目标应用运行的效率;而当配置数据获取结果为配置数据缓存中不包括目标配置数据时,应用运行设备建立与配置数据库的连接,以从配置数据库中获得该目标配置数据。其中,包括目标配置数据是指包括与运行请求对应的配置信息。
在本申请实施例中,应用运行设备还可以在运行目标应用的过程中始终保持着与配置数据库的连接,直至目标应用关闭时才断开与配置数控的连接;此时,如果应用运行设备先建立与配置数据库的连接,之后确定缓存中包括目标配置数据,从缓存中直接获取该目标配置数据;之后确定缓存中不包括目标配置数据,则基于与配置数据库的连接从数据库中获取目标配置数据。
相应地,在本申请实施例中,S302中应用运行设备基于与配置数据库的连接,从配置数据库中获取与运行请求对应的目标配置数据之后,该应用运行方法包括:应用运行设备将目标配置数据缓存至配置数据缓存;基于配置数据缓存中缓存的目标配置数据响应目标应用的下次运行请求。
需要说明的是,当应用运行设备确定是脚本端获取目标配置数据时,则将从配置数据库获得的目标配置数据在配置数据缓存中进行缓存;进而在获得了目标应用的下次运行请求时,能够直接从配置数据缓存中获得该目标配置数据。其中,下次运行请求与本次的运行请求在所请求的配置信息上一致,均为目标配置数据。
可以理解的是,应用运行设备通过将访问频率较大的脚本端获得的目标配置数据再配置数据缓存中进行缓存,使得目标应用运行时请求同样的数据时,能够直接从配置数据缓存中快速获得该目标配置数据,进而能够提升目标应用的运行效率。
参见图5,图5是本申请实施例提供的应用运行方法的流程示意图三;如图5所示,在本申请实施例中,S303之后还包括S309;也就是说,应用运行设备基于目标配置数据的解析结果,控制目标应用的运行之后,该应用运行方法还包括S309,下面对该步骤进行说明。
S309、响应于目标应用的关闭请求,断开与配置数据库的连接。
在本申请实施例中,当应用运行设备关闭运行的目标应用时,应用运行设备也就获得了目标应用的关闭请求;此时,应用运行设备响应于该关闭请求,执行用于关闭目标应用的处理流程;其中,用于关闭目标应用的处理流程中包括断开与配置数据库的连接的处理。
需要说明的是,关闭请求可以是响应于用户针对目标应用的运行操作生成的,还可以是基于指定条件的触发而生成的关闭请求,又可以是接收到的关闭请求,等等,本申请实施例对此不作限定。
可以理解的是,应用运行设备在关闭目标应用时,断开与配置数据库的连接,降低了应用运行设备的资源消耗。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
参见图6,图6是本申请实施例提供的示例性的运行目标应用的流程示意图;如图6所示,该示例性的运行目标应用的包括S601至S606,描述了基于SQLite数据库(称为配置数据库)存储游戏应用(称为目标应用)的游戏配置表(称为待转换配置数据),并在游戏应用运行时,通过访问SQLite数据库获取所需的游戏配置(称为目标配置数据)实现游戏应用运行的过程。其中,SQLite数据库是一款可靠的和轻型的数据库,且是遵守四个特性(Atomicity Consistency Isolation Durability,ACID)的关系型数据库管理系统,能够嵌入到使用它的应用程序中,占用资源非常的低;游戏配置表是存储游戏策划者(称为用户)对游戏设置的业务系统、活动玩法和系统默认设置等一系列配置的表格。
下面结合图6示出的各步骤分别进行说明。
S601、通过“Excel”表格(称为电子表格)对游戏应用进行数据配置,得到游戏配置表。
需要说明的是,由于“Excel”表格中存储的数据具有可读性,因此,这里通过“Excel”表格供游戏策划者进行目标应用对应的数据配置。
S602、将游戏配置表转换成SQLite文件(称为配置数据)。
需要说明的是,通过额外的转换工具,读取游戏配置表,并将读取到的游戏配置表导出成SQLite文件。其中,转换工具用于将“Excel”表格中的数据转换成SQLite数据库格式的文件。
S603、将基于SQLite文件构建的SQLite数据库存储至游戏目录(称为应用目录)中。
需要说明的是,游戏目录为游戏应用的“pak”包对应的目录,游戏应用运行时,通过读取游戏目录中的数据实现游戏应用的运行。
在本申请实施例中,S601至S603是通过用于对游戏应用进行数据配置的客户端实现的。下面S604至S606描述的是通过运行游戏应用的客户端(称为应用运行设备,比如,图1中的终端400)实现的。
S604、建立与SQLite数据库的连接。
参见图7,图7是本申请实施例提供的示例性的与数据库的连接示意图;如图7所示,游戏应用启动7-1时,客户端对本地中游戏应用“pak”包中的SQLite数据库(称为第一配置数据库)中的SQLite文件进行更新检测7-2;即从游戏应用对应的后台服务器(比如,图1中的服务器200)中获取游戏应用“pak”包中的SQLite数据库(称为第二配置数据库)中的SQLite文件,基于从后台服务器中获取到的游戏应用“pak”中的SQLite数据库(称为第二配置数据库)中的SQLite文件,对客户端本地中游戏应用“pak”中的SQLite数据库中的SQLite文件进行更新检测。接着,将更新检测的SQLite文件拷贝至沙盒目录7-3,在沙盒目录中对更新检测的SQLite文件进行压缩,并基于压缩结果连接至沙盒目录中的更新检测的SQLite文件7-4,此时,也就建立了与SQLite数据库的连接。
还需要说明的时,如果构建的SQLite数据库是加密后的数据库,则在建立与SQLite数据库的连接时,基于密码建立与SQLite数据库的连接;其中,该密码也是嵌入在游戏应用对应的应用数据包中,这里,应用数据包包括“pak”包。
S605、基于与SQLite数据库的连接,从SQLite数据库中获取所需配置信息(称为目标配置数据)。
需要说明的是,游戏应用中需要读取游戏配置表的模块(称为请求端)包括“Lua”端(称为脚本端)和功能程序端(称为主程序端,比如,C++语言(The C++ProgrammingLanguage)端)。其中,“Lua”端相比于功能程序端,对游戏配置表的频率较大。从而,参见图8,图8是本申请实施例提供的示例性的获取目标配置数据的流程示意图;如图8所示,该示例性的获取目标配置数据的流程包括S801至S807,下面结合图8示出的各步骤分别进行说明。
S801、判断是否是“Lua”端获取所需配置信息;如果是则执行S802;如果否则执行S804。
需要说明的是,客户端在获取所需配置信息的流程开始时执行S801。
S802、判断是否缓存了所需配置信息;如果是则执行S803;如果否则执行S804。
需要说明的是,“Lua”端相比于功能程序端,对游戏配置表的频率较大;从而,“Lua”端获得的配置信息将会在缓存(称为配置数据缓存)中进行缓存;故,“Lua”端从游戏配置表中获取所需配置信息时,先判断缓存中是否缓存了该所需配置信息。如果缓存中缓存了该所需配置信息,则直接从缓存中获取该所需配置信息,而如果缓存中未缓存该所需配置信息,则通过读取SQLite数据库获取所需配置信息。
S803、从缓存中获取所需配置信息。并结束目标配置数据的获取流程。
S804、读取SQLite数据库。执行S805或S806。
S805、在SQLite数据库中通过特定关键字(key)获取所需配置信息。
需要说明的是,通过特定关键字(称为数据标识)获取所需配置信息时,可通过数据库查询语言“Select*form table Where id=key”获取数据,并基于获取到的数据构建“Lua”表。
S806、在SQLite数据库中通过特定条件(称为数据获取条件)获取所需配置信息。
需要说明的是,通过特定条件获取所需配置信息时,可通过数据库查询语言“Select*form table Where‘特定条件’”获取数据,并基于获取到的数据构建“Lua”表,也就获得了所需配置信息。
这里,还可以对S805或S806中获得的所需配置信息进行遍历,以对所需配置信息进一步进行筛选,获得最终的所需配置信息。
S807、缓存所需配置信息。
需要说明的是,在处理流程是由S802执行S804直至执行S805或S806时,则执行S807,并结束所需配置信息的获取流程。而在处理流程是由S801执行S804直至执行S805或S806时,则在完成S805或S806的执行时,结束所需配置信息的获取流程。
S606、断开与SQLite数据库的连接。
继续参见图7,当游戏应用关闭7-5时,则断开与SQLite数据库的连接7-6。
在本申请实施例中,在从SQLite数据库获取所需配置信息时,是通过四个关键模块实现的:接口提供模块、接口封装模块、配置返回模块和配置获取模块。参见图9,图9是本申请实施例提供的示例性的关键模块的关联示意图;如图9所示,其中,接口提供模块9-1,是游戏应用中业务逻辑访问游戏配置数据表的工具,用于向业务层提供一系列需要用到的接口,以使业务逻辑可以通过这些接口连接SQLite数据库9-11(OpenDatabase(Stringpath))、断开与SQLite数据库的连接9-12(CloseDatabase())、查找SQLite数据库中的表9-13(SelectAll(String tableName))、根据主键值查找SQLite数据库的表中的一行数据9-14(SelectOneRowWhere(String tableName,String key)),以及根据特定条件查找SQLite数据库的表中满足条件的所有数据9-15(SelectOneRowWhere(String tableName,String condition))。
接口封装模块9-2,为接口提供模块9-1和SQLite数据库(对应于配置获取模块9-4)之间的模块,是沟通桥梁,对SQLite数据库中的接口进行包装(比如,图9中示出的连接接口9-21(Open(String path):bool)、断开接口9-22(Close())、查找接口9-23(Execute(String cmd):bool)和结果返回接口9-24(PrepareStatement(String statement)),提升调用的方便性。另外,接口封装模块9-2还包括SQLite数据库的指针,并管理SQLite数据库的指针;SQLite数据库的指针,在连接SQLite数据库的时候获得,在断开SQLite数据库连接的时候释放。
配置返回模块9-3,用于连接数据库后,在执行SQLite语句时向结果返回接口9-24返回查询结果,比如用于获取列字段名9-31(GetColumnValue(int index):object)、获取列字段属性值9-32(GetColumnName(int index):string)、获取字段类型9-33、获取行数9-34、获取每一行每一列的值9-35(Reset())和获取下一行9-36(Step())。
配置获取模块9-4,为SQLite数据库的源码库中的功能模块(是一些C函数接口),用于操作数据库。比如,连接9-41(sqlite_open())、断开9-42(sqlite_close())和查询9-43(sqlite_stmt()、sqlite_prepare()、sqlite_step()、sqlite_column()和sqlite_finalize(),以及sqlite_exec())。
示例性地,连接9-41对应的处理可通过“int sqlite3_open(const char*filename,sqlite3**ppDb);”实现,其中,“*filename”为SQLite数据库名称,“**ppDb”为SQLite数据库的指针,是SQLite数据库连接对象;另外,返回值表征连接结果,比如,返回“SQLITE_OK”表明连接成功,返回其他值表明连接失败。
断开9-42对应的处理可通过“int sqlite3_close(sqlite3*);”实现,其中,“sqlite3*”是已连接的SQLite数据库。
查询9-43对应的处理可通过“int sqlite3_exec(sqlite3*,const char*sql,int(*callback)(void*,int,char**,char**),char**errmsg)”实现,其中,“*sql”是要执行的SQLite语句,“*callback”是回调函数,“void*,int,char**,char**”是回调函数的参数,“**errmsg”是错误信息。这里,查询9-43对应的两种处理情况,一种是没有返回结果的处理情况,此时不需要回调函数,返回空(NULL)即可,比如,增删查改。另一种是有结果集返回的处理情况,此时需要通过回调函数获取结果集,即每查到一条记录调用一次回调函数;比如,通过“select int(*callback)(void*arg,int column_count,char**column_value,char**column_name);char*column_name[3]={"abc","123","hello"};”,其中,“*arg”是传给回调函数的参数,“column_count”是记录的字段(列)个数,“**column_value”是字段值,“**column_name”是字段名,这里,字段名包括“abc”、“123”和“hello”。
在本申请实施例中,可以将SQLite数据库内嵌程序库实现所需配置信息的获取,此时,在游戏应用的游戏目录中存储的为预先编译好的静态链接库文件或者动态链接库文件(称为编译链接库);如此,能够提升游戏应用的装载效率,降低游戏应用的资源消耗。
可以理解的是,通过将游戏配置表转换为SQLite文件并构建成SQLite数据库嵌入至游戏应用的“pak”包中,使得游戏应用运行时通过访问SQLite数据库加载所需配置信息来实现运行,降低了游戏应用运行时的内存占用量,避免了解析游戏应用的整个配置信息导致的卡顿效果,提升了游戏应用的运行效果和效率。
下面继续说明本申请实施例提供的应用运行装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的应用运行装置455中的软件模块可以包括:
连接建立模块4551,用于响应于目标应用的运行请求,建立与配置数据库的连接,其中,所述配置数据库是嵌入在所述目标应用中的、且是由与所述目标应用对应的配置数据构成的,所述配置数据是用于支持所述目标应用运行的配置信息;
数据获取模块4552,用于基于与所述配置数据库的连接,从所述配置数据库中获取与所述运行请求对应的目标配置数据;
应用运行模块4553,用于基于所述目标配置数据的解析结果,控制所述目标应用的运行。
在本申请实施例中,所述应用运行装置455还包括数据配置模块4554,用于对所述目标应用进行数据配置,得到待转换配置数据;对所述待转换配置数据进行指定格式的转换,得到所述配置数据,其中,所述指定格式为嵌入应用中的数据库对应的数据格式;将所述配置数据构建的所述配置数据库嵌入至所述目标应用的应用目录中,其中,所述应用目录为所述目标应用进行运行时所访问的目录。
在本申请实施例中,所述应用运行装置455还包括数据配置模块4554,用于呈现电子表格,其中,所述电子表格用于生成数据可读性高于所述配置数据的数据;响应于作用在所述电子表格中的数据配置操作,获得所述待转换配置数据,其中,所述待转换配置数据的数据可读性高于所述配置数据的数据可读性。
在本申请实施例中,所述连接建立模块4551,还用于响应于所述目标应用的运行请求,将所述配置数据库存储至所述目标应用对应的沙盒目录中,其中,所述沙盒目录用于在所述目标应用的运行过程中读写数据;建立与所述沙盒目录中的所述配置数据库的连接。
在本申请实施例中,所述连接建立模块4551,还用于从所述目标应用对应的应用数据包中获取连接密码,其中,所述应用数据包为所述目标应用对应的应用数据;基于所述连接密码,建立与所述沙盒目录中的所述配置数据库的连接。
在本申请实施例中,所述连接建立模块4551,还用于响应于所述目标应用的所述运行请求,从所述目标应用对应的所述沙盒目录中读取缓存的配置数据库,得到数据库读取结果;当所述数据库读取结果为所述沙盒目录中不包括所述缓存的配置数据库时,从所述目标应用对应的应用目录中获取第一配置数据库,并从后台服务器获取第二配置数据库;当所述第二配置数据库与所述第一配置数据库不匹配时,将所述第二配置数据库作为所述配置数据库存储至所述目标应用对应的所述沙盒目录中。
在本申请实施例中,所述数据获取模块4552,用于获取与所述运行请求对应的配置数据获取信息,其中,所述配置数据获取信息包括数据标识和数据获取条件中的至少一种;基于与所述配置数据库的连接,在所述配置数据库中执行与所述配置数据获取信息对应的查询;将查询结果确定为所述目标配置数据。
在本申请实施例中,所述连接建立模块4551,还用于响应于所述目标应用的所述运行请求,当确定所述运行请求对应的请求端为脚本端时,从配置数据缓存中获取与所述运行请求对应的目标配置数据,得到配置数据获取结果,其中,所述请求端包括主程序端和所述脚本端,所述脚本端对所述配置数据的获取频率高于所述主程序端对所述配置数据的获取频率;当所述配置数据获取结果为所述配置数据缓存中不包括所述目标配置数据时,建立与所述配置数据库的连接。
在本申请实施例中,所述应用运行装置455还包括数据缓存模块4555,用于将所述目标配置数据缓存至所述配置数据缓存;基于所述配置数据缓存中缓存的所述目标配置数据响应所述目标应用的下次运行请求。
在本申请实施例中,所述应用运行装置455还包括连接断开模块4556,用于响应于所述目标应用的关闭请求,断开与所述配置数据库的连接。
在本申请实施例中,所述数据配置模块4554,还用于对所述配置数据构成的所述配置数据库进行编译,得到编译链接库;将所述编译链接库嵌入至所述目标应用的所述应用目录中。
在本申请实施例中,所述应用运行装置455还包括连接建立模块4551,还用于响应于目标应用的运行请求,基于所述编译链接库建立与所述配置数据库的连接。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的应用运行方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的应用运行方法,例如,如图3示出的应用运行方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算机设备上执行(此时,这一个计算机设备即应用运行设备),或者在位于一个地点的多个计算机设备上执行(此时,位于一个地点的多个计算机设备即应用运行设备),又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行(此时,分布在多个地点且通过通信网络互连的多个计算机设备即应用运行设备)。
综上所述,本申请实施例通过预先将目标应用对应的配置数据构建成能够嵌入在目标应用中配置数据库,使得目标应用在运行的过程中,能够通过访问数据库的方式加载所需的目标配置数据;由于所需的目标配置数据对应的内存占用量较小,从而,能够降低目标应用运行过程中的内存资源的消耗,提升应用的运行效率;进而,能够提升目标应用运行的流畅度,提升目标应用的运行效果。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (14)
1.一种应用运行方法,其特征在于,所述方法包括:
响应于目标应用的运行请求,建立与配置数据库的连接,其中,所述配置数据库是存储在应用运行设备的所述目标应用的应用目录中、且是由与所述目标应用对应的配置数据构成的,所述应用目录为所述目标应用进行运行时所访问的目录,所述配置数据是用于支持所述目标应用运行的配置信息,所述配置数据是对待转换配置数据进行指定格式的转换得到的,所述指定格式为嵌入应用中的数据库对应的数据格式;
基于与所述配置数据库的连接,从所述配置数据库中获取与所述运行请求对应的目标配置数据;
基于所述目标配置数据的解析结果,控制所述目标应用的运行。
2.根据权利要求1所述的方法,其特征在于,所述响应于目标应用的运行请求,建立与配置数据库的连接之前,所述方法还包括:
对所述目标应用进行数据配置,得到待转换配置数据。
3.根据权利要求2所述的方法,其特征在于,所述对所述目标应用进行数据配置,得到待转换配置数据,包括:
呈现电子表格,其中,所述电子表格用于生成数据可读性高于所述配置数据的数据;
响应于作用在所述电子表格中的数据配置操作,获得所述待转换配置数据,其中,所述待转换配置数据的数据可读性高于所述配置数据的数据可读性。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述响应于目标应用的运行请求,建立与配置数据库的连接,包括:
响应于所述目标应用的运行请求,将所述配置数据库存储至所述目标应用对应的沙盒目录中,其中,所述沙盒目录用于在所述目标应用的运行过程中读写数据;
建立与所述沙盒目录中的所述配置数据库的连接。
5.根据权利要求4所述的方法,其特征在于,所述建立与所述沙盒目录中的所述配置数据库的连接,包括:
从所述目标应用对应的应用数据包中获取连接密码,其中,所述应用数据包为所述目标应用对应的应用数据;
基于所述连接密码,建立与所述沙盒目录中的所述配置数据库的连接。
6.根据权利要求4所述的方法,其特征在于,所述响应于所述目标应用的运行请求,将所述配置数据库存储至所述目标应用对应的沙盒目录中,包括:
响应于所述目标应用的所述运行请求,从所述目标应用对应的所述沙盒目录中读取缓存的配置数据库,得到数据库读取结果;
当所述数据库读取结果为所述沙盒目录中不包括所述缓存的配置数据库时,从所述目标应用对应的应用目录中获取第一配置数据库,并从后台服务器获取第二配置数据库;
当所述第二配置数据库与所述第一配置数据库不匹配时,将所述第二配置数据库作为所述配置数据库存储至所述目标应用对应的所述沙盒目录中。
7.根据权利要求1至3任一项所述的方法,其特征在于,所述基于与所述配置数据库的连接,从所述配置数据库中获取与所述运行请求对应的目标配置数据,包括:
获取与所述运行请求对应的配置数据获取信息,其中,所述配置数据获取信息包括数据标识和数据获取条件中的至少一种;
基于与所述配置数据库的连接,在所述配置数据库中执行与所述配置数据获取信息对应的查询;
将查询结果确定为所述目标配置数据。
8.根据权利要求1至3任一项所述的方法,其特征在于,所述响应于目标应用的运行请求,建立与配置数据库的连接,包括:
响应于所述目标应用的所述运行请求,当确定所述运行请求对应的请求端为脚本端时,从配置数据缓存中获取与所述运行请求对应的目标配置数据,得到配置数据获取结果,其中,所述请求端包括主程序端和所述脚本端,所述脚本端对所述配置数据的获取频率高于所述主程序端对所述配置数据的获取频率;
当所述配置数据获取结果为所述配置数据缓存中不包括所述目标配置数据时,建立与所述配置数据库的连接;
所述基于与所述配置数据库的连接,从所述配置数据库中获取与所述运行请求对应的目标配置数据之后,所述方法包括:
将所述目标配置数据缓存至所述配置数据缓存;
基于所述配置数据缓存中缓存的所述目标配置数据响应所述目标应用的下次运行请求。
9.根据权利要求1至3任一项所述的方法,其特征在于,所述基于所述目标配置数据的解析结果,控制所述目标应用的运行之后,所述方法还包括:
响应于所述目标应用的关闭请求,断开与所述配置数据库的连接。
10.根据权利要求2所述的方法,其特征在于,对所述待转换配置数据进行指定格式的转换,得到所述配置数据之后,所述方法还包括:
对所述配置数据构成的所述配置数据库进行编译,得到编译链接库;
将所述编译链接库嵌入至所述目标应用的所述应用目录中;
所述响应于目标应用的运行请求,建立与配置数据库的连接,包括:
响应于目标应用的运行请求,基于所述编译链接库建立与所述配置数据库的连接。
11.一种应用运行装置,其特征在于,所述应用运行装置包括:
连接建立模块,用于响应于目标应用的运行请求,建立与配置数据库的连接,其中,所述配置数据库是存储在应用运行设备的所述目标应用的应用目录中、且是由与所述目标应用对应的配置数据构成的,所述应用目录为所述目标应用进行运行时所访问的目录,所述配置数据是用于支持所述目标应用运行的配置信息,所述配置数据是对待转换配置数据进行指定格式的转换得到的,所述指定格式为嵌入应用中的数据库对应的数据格式;
数据获取模块,用于基于与所述配置数据库的连接,从所述配置数据库中获取与所述运行请求对应的目标配置数据;
应用运行模块,用于基于所述目标配置数据的解析结果,控制所述目标应用的运行。
12.一种应用运行设备,其特征在于,所述应用运行设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至10任一项所述的方法。
13.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令用于被处理器执行时,实现权利要求1至10任一项所述的方法。
14.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时,实现权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111246708.1A CN113971052B (zh) | 2021-10-26 | 2021-10-26 | 一种应用运行方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111246708.1A CN113971052B (zh) | 2021-10-26 | 2021-10-26 | 一种应用运行方法、装置、设备、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113971052A CN113971052A (zh) | 2022-01-25 |
CN113971052B true CN113971052B (zh) | 2024-05-17 |
Family
ID=79588302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111246708.1A Active CN113971052B (zh) | 2021-10-26 | 2021-10-26 | 一种应用运行方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113971052B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729694A (zh) * | 2008-10-29 | 2010-06-09 | 中兴通讯股份有限公司 | 一种自动业务实现流程配置及运行的方法及系统 |
CN104978203A (zh) * | 2014-04-03 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 运行参数加载方法和装置 |
CN105808697A (zh) * | 2016-03-03 | 2016-07-27 | 北京东方车云信息技术有限公司 | 一种基于本地存储的数据预加载方法 |
CN106547576A (zh) * | 2015-09-16 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 配置文件的获取方法及装置 |
CN107179907A (zh) * | 2017-05-15 | 2017-09-19 | 北京奇艺世纪科技有限公司 | 一种配置系统及方法 |
CN108549556A (zh) * | 2018-04-16 | 2018-09-18 | 腾讯科技(深圳)有限公司 | 一种应用程序加速方法、装置、终端及存储介质 |
CN109062592A (zh) * | 2018-07-16 | 2018-12-21 | 福建省天奕网络科技有限公司 | 一种游戏数值同步的方法及系统 |
CN109684203A (zh) * | 2018-11-27 | 2019-04-26 | 平安科技(深圳)有限公司 | 程序运行参数配置方法、装置、计算机设备及存储介质 |
CN111880786A (zh) * | 2020-07-31 | 2020-11-03 | 广州华多网络科技有限公司 | 多应用共享方法、系统、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9122719B2 (en) * | 2006-04-28 | 2015-09-01 | Bmc Software, Inc. | Database application federation |
US10061800B2 (en) * | 2014-09-15 | 2018-08-28 | Sap Se | Embedding database procedures in data-driven applications |
-
2021
- 2021-10-26 CN CN202111246708.1A patent/CN113971052B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729694A (zh) * | 2008-10-29 | 2010-06-09 | 中兴通讯股份有限公司 | 一种自动业务实现流程配置及运行的方法及系统 |
CN104978203A (zh) * | 2014-04-03 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 运行参数加载方法和装置 |
CN106547576A (zh) * | 2015-09-16 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 配置文件的获取方法及装置 |
CN105808697A (zh) * | 2016-03-03 | 2016-07-27 | 北京东方车云信息技术有限公司 | 一种基于本地存储的数据预加载方法 |
CN107179907A (zh) * | 2017-05-15 | 2017-09-19 | 北京奇艺世纪科技有限公司 | 一种配置系统及方法 |
CN108549556A (zh) * | 2018-04-16 | 2018-09-18 | 腾讯科技(深圳)有限公司 | 一种应用程序加速方法、装置、终端及存储介质 |
CN109062592A (zh) * | 2018-07-16 | 2018-12-21 | 福建省天奕网络科技有限公司 | 一种游戏数值同步的方法及系统 |
CN109684203A (zh) * | 2018-11-27 | 2019-04-26 | 平安科技(深圳)有限公司 | 程序运行参数配置方法、装置、计算机设备及存储介质 |
CN111880786A (zh) * | 2020-07-31 | 2020-11-03 | 广州华多网络科技有限公司 | 多应用共享方法、系统、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113971052A (zh) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9459862B2 (en) | Automated porting of application to mobile infrastructures | |
US8671417B2 (en) | Lightweight framework for web applications | |
US20120089676A1 (en) | Live data form viewing and updating system | |
US9563679B2 (en) | Adaptive warehouse data validation tool | |
CN112256321A (zh) | 静态库打包方法、装置、计算机设备和存储介质 | |
US20180307692A1 (en) | Software application interface for mediating access to services of a centralized data store | |
CN101930361B (zh) | 在线数据存储服务提供方法及系统 | |
CN113094387A (zh) | 一种数据查询方法、装置、电子设备及机器可读存储介质 | |
US20120101993A1 (en) | On-device database service for mobile device | |
Kuderu et al. | Relational database to NoSQL conversion by schema migration and mapping | |
CN117171108B (zh) | 一种虚拟模型映射方法和系统 | |
CN113778897A (zh) | 接口的自动测试方法、装置、设备及存储介质 | |
CN113971052B (zh) | 一种应用运行方法、装置、设备、存储介质及程序产品 | |
CN116450107B (zh) | 低代码平台二次开发软件的方法、装置、电子设备 | |
US11966408B2 (en) | Active data executable | |
CN116069725A (zh) | 文件迁移方法、装置、设备、介质和程序产品 | |
CN115292415A (zh) | 一种数据库访问方法及装置 | |
US20140207729A1 (en) | Rapid Provisioning of Information for Business Analytics | |
CN116627448A (zh) | 一种创建微服务的方法及相关设备 | |
CN114003583A (zh) | 一种目标格式数据请求体的构建方法、装置、介质及设备 | |
CN113064987A (zh) | 数据处理方法、装置、电子设备、介质和程序产品 | |
EP3035212A1 (en) | Transparent database table replacement | |
RU2595763C2 (ru) | Способ и устройство менеджмента загрузки на базе браузера android | |
CN112148450A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN114553688B (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 |