CN116954579A - 资源的处理方法、装置、电子设备及可读存储介质 - Google Patents
资源的处理方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN116954579A CN116954579A CN202310692959.5A CN202310692959A CN116954579A CN 116954579 A CN116954579 A CN 116954579A CN 202310692959 A CN202310692959 A CN 202310692959A CN 116954579 A CN116954579 A CN 116954579A
- Authority
- CN
- China
- Prior art keywords
- resource
- client
- server
- target
- target resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title description 10
- 238000000034 method Methods 0.000 claims abstract description 71
- 238000012545 processing Methods 0.000 claims abstract description 39
- 230000004044 response Effects 0.000 claims description 16
- 238000011161 development Methods 0.000 abstract description 25
- 238000012423 maintenance Methods 0.000 abstract description 13
- 239000002699 waste material Substances 0.000 abstract description 11
- 230000006870 function Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 19
- 230000001960 triggered effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241000341910 Vesta Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 208000015041 syndromic microphthalmia 10 Diseases 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- 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
- 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/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开公开了一种资源的处理方法、装置、电子设备及计算机可读存储介质,该方法包括:响应于客户端的启动指令,获取预设的启动文件,基于启动文件启动客户端;从服务器获取资源目录并加载至客户端的界面中;响应于针对资源目录中目标资源的编辑指令,将目标资源加载到客户端的本地存储中;通过客户端从本地存储中读取目标资源并进行编辑指令所指示的编辑操作。本公开提供的方案能够降低资源开发维护时的时间空间浪费,从而能够提高资源的开发维护效率。
Description
技术领域
本公开涉及计算机技术领域,具体涉及一种资源的处理方法、装置、电子设备及计算机可读存储介质。
背景技术
在应用程序的开发设计中,存在大量的美术资源,例如在虚拟游戏的开发中,对应有大量的贴图、特效、动画等游戏中的美术资源。在开发人员对美术资源的开发设计中,通常需要对美术资源进行修改、增加、删除等更新操作,以对应用程序进行维护和更新。
在实际应用中,一个应用程序的美术资源数量庞大,文件数目以万数量级存在,在开发人员对美术资源进行开发设计时,通常需要将所有的美术资源保存到本地。然而,由于美术资源往往是由多个开发人员进行维护,因此在每次对美术资源进行开发设计时,开发人员都需要重新拉取最新的美术资源,基于最新的美术资源进行开发设计。上述方案中对美术资源进行开发设计时将会耗费大量的时间来将美术资源保存到本地,并且所拉取的美术资源将会占用大量的存储空间。
发明内容
本公开提供了一种资源的处理方法、装置、电子设备及计算机可读存储介质,能够降低资源开发维护时的时间空间浪费,从而能够提高资源的开发维护效率。具体方案如下:
第一方面,本公开实施例提供了一种资源的处理方法,所述方法包括:
响应于客户端的启动指令,获取预设的启动文件,基于所述启动文件启动所述客户端;
从服务器获取资源目录并加载至所述客户端的界面中;
响应于针对所述资源目录中的目标资源的编辑指令,将所述目标资源加载到所述客户端的本地存储中;通过所述客户端从所述本地存储中读取所述目标资源并进行所述编辑指令所指示的编辑操作。
第二方面,本公开实施例提供了一种资源的处理装置,所述装置包括:
获取单元,用于响应于客户端的启动指令,获取预设的启动文件,基于所述启动文件启动所述客户端;
加载单元,用于从服务器获取资源目录并加载至所述客户端的界面中;
编辑单元,用于响应于针对所述资源目录中的目标资源的编辑指令,将所述目标资源加载到所述客户端的本地存储中;通过所述客户端从所述本地存储中读取所述目标资源并进行所述编辑指令所指示的编辑操作。
第三方面,本公开还提供了一种电子设备,包括:
处理器;以及
存储器,用于存储数据处理程序,该电子设备通电并通过所述处理器运行该程序后,执行如第一方面所述的方法。
第四方面,本公开实施例还提供了一种计算机可读存储介质,存储有数据处理程序,该程序被处理器运行,执行如第一方面所述的方法。
本公开提供的资源的处理方法,该方法包括:响应于客户端的启动指令,获取预设的启动文件,基于启动文件启动客户端;从服务器获取资源目录并加载至客户端的界面中;响应于针对资源目录中的目标资源的编辑指令,将目标资源加载到客户端的本地存储中;通过客户端从本地存储中读取目标资源并进行编辑指令所指示的编辑操作。可见,本公开在基于所获取的启动文件启动客户端时,通过从服务器获取资源目录,并基于所获取的资源目录对需要编辑的目标资源进行按需下载。这样,在需要对某一个或者某多个目标资源进行编辑时,仅下载所需的部分目标资源,而非获取全部的资源文件。由于资源目录的空间占用远小于资源文件的空间占用,获取部分资源文件的速度也远快于获取全部的资源文件,这样可以避免在对资源进行开发维护时造成的时间空间浪费。
另外,在本公开提供的资源的处理方法中,由于无需在终端设备上获取全部的资源文件,因此,本公开还降低了用于对资源进行开发维护的终端设备的硬件要求,进而节约了对资源进行开发维护的成本。
附图说明
图1是本公开实施例提供的资源的处理系统的系统架构示意图;
图2是本公开实施例提供的资源的处理系统的数据交互示意图;
图3是本公开实施例提供的资源的处理方法的流程图;
图4是本公开实施例提供的客户端的一例界面示意图;
图5是本公开实施例提供的客户端的另一例界面示意图;
图6是本公开实施例提供的客户端从服务器获取数据时的数据调用过程示意图;
图7是本公开实施例提供的资源的处理装置的一例的结构框图;
图8是本公开实施例提供的一种用于实现资源的处理的电子设备的逻辑结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本公开。但是本公开能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本公开内涵的情况下做类似推广,因此本公开不受下面公开的具体实施的限制。
需要说明的是,本公开的权利要求书、说明书及附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,并不用于描述特定的顺序或先后次序。这样使用的数据在适当情况下是可以互换的,以便于本文所描述的本公开的实施例,能够以除了在本文图示或描述的内容以外的顺序实施。此外,术语“包括”、“具有”以及他们的变形形式,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。另外,在本公开中,用户包括需要对美术资源进行开发维护的业务人员、开发人员、测试人员等相关技术人员,此处不具体限定。
为了满足应用程序更新迭代的需求,相关技术人员需要对美术资源进行及时更新或者维护。通常情况下,一个应用程序对应的美术资源存储在一个服务器上,用户在对美术资源进行开发维护时需要先将服务器上的美术资源拉取到本地,以对所拉取的美术资源进行编辑,之后,再将编辑后的美术资源同步至服务器。
随着应用程序的更新迭代,一个应用程序对应的美术资源的数据量会不断膨胀,占用极大的存储空间,例如:大型游戏项目对应的美术资源已接近1TB,普通固态硬盘无法提供这一存储空间;另外,每次在对美术资源进行开发维护时,都需要耗费较长的时间从服务器上拉取美术资源,这将导致美术资源的开发维护出现极大的时间空间浪费,使得美术资源的开发维护效率较低。
基于上述原因,为了降低资源开发维护时的时间空间浪费,从而能够提高资源的开发维护效率,本公开实施例提供了一种资源的处理方法,该方法应用于电子设备,该电子设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑等终端设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。本公开对于电子设备的类型具体不作限定。
在介绍本公开实施例之前,首先对本实施例涉及到的相关概念以及技术进行介绍。
通常美术资源都通过资源版本控制技术进行管理,这是由于美术资源通常需要被多个用户协同进行开发维护资源,因此,可以通过版本控制技术来记录每一次美术资源的修改情况,并且通过版本控制技术对美术资源进行管理,可以允许用户在各自的电子设备中修改和管理同一组美术资源来促进团队协作。允许。首先,对资源版本控制进行介绍。
版本控制,最主要的功能就是资源文件的存储并追踪资源文件的变更。可以将资源文件的变更时间、变更内容或者变更人员等信息记录下来。每一次资源文件的改变,资源文件的版本号都将增加。除了记录版本变更功能外,还可以进行并行开发。例如,软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。
开源版本控制工具可以包括:Concurrent Versions System(CVS)版本控制系统、Subversion(SVN)版本控制系统、Vesta版本控制系统、Revision Control System(RCS)版本控制系统、Source Code Control System(SCCS)版本控制系统等。比较常用的两个工具是CVS版本控制系统和SVN版本控制系统,在本实施例中,版本控制工具采用SVN版本控制系统。SVN版本控制系统常用客户端为TortoiseSVN,通常是集成到项目开发平台中,或者提供单独的版本控制界面。
版本控制系统在搭建时需要设置资源仓库,资源仓库可以部署于终端本地并使用file://协议访问,也可以部署于服务器使用http://或svn://访问,这两种服务器协议可以被加密,即使用https://或svn+ssh://。在本实施例中,以资源仓库部署于服务器进行方法介绍,在服务器部署完资源仓库之后,可在资源仓库中存放用户有权限访问的相关资源,在本实施例中,将维持客户端运行的启动文件存放至该资源仓库中。用户在客户端中通过调用版本服务接口将仓库中存储的相关资源文件获取至本地进行进一步编辑操作。
可以理解的是,本公开实施例中的资源可以包括项目代码、美术资源或者音乐资源等,本公开不具体限制。在后续方案介绍过程中以资源为美术资源、客户端为美术编辑器举例进行说明。
在介绍本公开实施例提供的资源的处理方法之前,以下先结合图1和图2对本公开实施例提供的资源的处理系统的系统架构以及资源的处理系统的数据交互进行介绍。
如图1所示资源的处理系统100可以理解为版本控制系统,该资源的处理系统100包括终端设备101和服务器102。
终端设备101和服务器102之间通过网络连接。终端设备101包括但不限于台式电脑、笔记本电脑、手机、平板电脑、服务器等。服务器102可以是为客户端提供计算、存储等功能的服务器等设备。服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,本公开不具体限定。网络可以是无线网络或者有线网络,比如无线网络为无线局域网(WLAN)、局域网(LAN)、蜂窝网络、2G网络、3G网络、4G网络、5G网络等。当场景架构中包括多个终端设备、多个服务器、多个网络时,不同的终端设备和不同的服务器可以通过不同的网络相互连接。
其中,终端设备101是具有计算硬件的任何设备,该计算硬件能够支持和运行进行资源的处理的客户端103,因此资源的处理系统100可以看作是包括客户端103和服务器102。将多个终端101中的一个终端设备称为第一终端,第一终端可以是某一个用户使用的终端设备,该用户通过键盘和/或鼠标在第一终端上的客户端103中进行界面操作,以对资源进行处理。另外,不同的终端设备之间也可以使用自身的蓝牙网络或者热点网络连接到其他终端设备或者连接到服务器等。
本公开实施例的应用场景中,服务器102为版本管理系统中的服务器,用于对资源文件以及资源目录进行版本管理的任意电子设备。服务器102中可以包括资源仓库104、资源目录105和启动文件106,资源仓库104中存储有完整的资源文件,资源目录105为完整的资源对应的完整资源目录,启动文件106为维持客户端运行的基础文件。其中,资源仓库104、资源目录105和启动文件106可以存储在服务器102中的同一个电子设备上,也可以存储在服务器102中的不同的电子设备上。本公开对此不具体限定。
当资源仓库104和启动文件106存储在同一个电子设备上时,启动文件106可以区别于资源文件单独存储在该电子设备的一个文件中。另外,资源仓库104和资源目录105之间可以通过网络相互连接,资源目录105可以根据资源仓库104中存储的完整的资源文件生成。
如图2所示,图2是本公开实施例在应用资源交互方法时,终端101、服务器102之间的数据交互图,图中所述数据交互过程可以包括以下步骤201~步骤209。
步骤201:在服务器上统计并存储维持客户端运行的启动文件;
步骤202:在服务器上根据所管理的资源文件统计并存储资源目录;
步骤203:首次启动客户端时终端设备向服务器发送针对维持客户端运行的启动文件的获取命令,终端设备从服务器获取启动文件;
步骤204:终端设备基于启动文件启动客户端;
步骤205:服务器周期性更新资源目录;
步骤206:在启动客户端时终端设备向服务器发送资源目录的获取命令,终端设备从服务器获取资源目录并加载至客户端界面;
步骤207:终端设备响应于针对资源目录中目标资源的编辑指令,将目标资源从服务器加载到客户端的本地存储中;
步骤208:终端设备通过客户端读取目标资源并进行编辑指令所指示的编辑操作;
步骤209:终端设备将进行编辑操作后的目标资源同步至服务器。
需要说明的是,步骤201和步骤202之间并没有执行上的先后顺序的限定。步骤205与其他步骤之间没有执行顺序的限定,步骤205可能发生在上述任何步骤之前、之后或同时。终端101、服务器102之间的数据交互也可以仅包括步骤201~步骤209中的部分步骤。对于步骤201~步骤209的详细解释可以参照以下对本公开实施例提供的资源的处理方法的详细介绍。
以下结合图3、图4、图5以及图6对申请实施例提供的资源的处理方法进行详细介绍,可以理解的是,本公开实施例的资源交互方法可以应用于版本控制系统中的客户端,该版本控制系统包括客户端和服务器,服务器为版本管理系统中的服务器。
如图3所示,是本公开实施例提供的资源的处理方法的流程图,该方法包括以下步骤301~步骤303。
步骤301:响应于客户端的启动指令,获取预设的启动文件,基于启动文件启动客户端。
本步骤用于在客户端启动时,通过获取启动文件来快速启动客户端。其中,上述客户端是用户用于获取并编辑资源的工具,对资源进行编辑可以理解为根据资源进行项目开发,例如,可以根据美术资源进行虚拟游戏开发或动画电影制作。在本公开实施例中以虚拟游戏中的美术资源为例进行说明,对美术资源进行编辑的客户端可以是美术编辑器。
可选的,用于维持客户端运行的启动文件例如可以包括:字体文件夹fonts、材质文件夹material、图层样式文件夹fx等。
可以理解的,维持客户端运行的启动文件通常情况下并不会发生变化,因此,在具体实施方式中,只需要在首次启动客户端时,终端设备获取一次启动文件即可,在之后客户端启动时,可以基于首次启动时所获取的启动文件来启动客户端。
美术编辑器是用来对美术资源进行编辑的工具,对美术资源进行的编辑操作包括新增美术资源、删除美术资源、修改美术资源等。其中,美术资源为应用程序中的美术资源,在本公开实施例中以虚拟游戏中的美术资源为例进行说明,在虚拟游戏中,美术资源可以是贴图资源、特效资源、动画资源、场景资源、模型资源等中的至少一种,其中,模型资源可以理解为虚拟游戏中的虚拟对象,场景资源可以理解为虚拟游戏中的虚拟场景。这样,游戏引擎可以根据虚拟游戏对应的美术资源来构建对应的虚拟对象、游戏场景、游戏道具、游戏动画、游戏特效等。
其中,虚拟游戏可以是多人在线战术竞技游戏(Multiplayer Online BattleArena Games,简称MOBA)、多人在线角色扮演游戏(Multiplayer Online Role-PlayingGame,简称MMORPG)应用程序中的任意一种。上述游戏的类型可以包括但不限于以下至少之一:二维(Two Dimension,二维)游戏应用、三维(Three Dimension,三维)游戏应用、虚拟现实(Virtual Reality,VR)游戏应用、增强现实(Augmented Reality,AR)游戏应用、混合现实(Mixed Reality,MR)游戏应用。
虚拟对象指现实中不存在的对象,可以是电视剧、电影、漫画、游戏中的至少一个创作性作品中虚构的对象,虚拟对象可以包括但不限于虚拟人物、虚拟动物等。
游戏场景是指虚拟游戏中用户操作的虚拟对象以及非玩家角色(non-playercharacter,简称NPC)等虚拟对象所处的游戏环境,游戏场景是由游戏开发人员构建设计的虚拟场景,而非真实场景。
步骤302:从服务器获取资源目录并加载至客户端的界面中。
本步骤用于获取资源目录并显示在客户端的界面中,这样,用户可以基于所显示的资源目录进行按需下载。可以理解的是,参照前述介绍,资源目录为根据服务器中存储的资源文件所生成的。
由于每个用户通常情况下负责某一部分资源的开发维护,因此为了提高资源的开发维护效率,减少将资源文件从资源仓库获取到本地的时间,降低资源在本地的空间占用,本公开中可以采用“按需下载”的策略,即,需要对哪部分资源进行编辑则获取哪部分资源文件,从而避免将全部的资源文件获取到本地时耗费大量的时间,并占用大量的存储空间。
因此,在具体实施方式中,当终端设备上的客户端启动时,可以自动向服务器发送针对某一个项目的资源文件的资源目录的获取命令,也可以在客户端启动时由用户触发资源目录的获取指令,终端设备在接收到该资源目录的获取指令后,向服务器发送针对该资源目录的获取指令的获取命令。
其中,资源目录的获取指令可以通过语音来触发,也可以通过特定手势来触发,还可以通过相应控件来触发,本公开对此并不作限定。
其中,服务器上存储有资源文件对应的资源目录,当由终端设备发送的针对资源目录的获取命令到达服务器时,可以从服务器上将所存储的资源目录获取到该终端设备上。
通过这一步骤,可以使得终端设备上的客户端(美术编辑器)在启动时,从服务器上获取资源目录并加载显示在客户端的界面中,以使得用户能够基于所加载显示的资源目录来按需获取自己想要进行编辑操作的特定资源文件。并且,由于资源目录所占用的存储空间远小于资源文件所占用的存储空间,这样,减轻了终端设备上的存储压力。
步骤303:响应于针对资源目录中的目标资源的编辑指令,将目标资源加载到客户端的本地存储中,通过客户端从本地存储中读取目标资源并进行编辑指令所指示的编辑操作。
当终端设备成功获取到资源目录时,可以通过客户端的显示界面显示该资源目录,这样,用户可以基于所显示的资源目录对所需要编辑的美术资源触发编辑指令,基于该编辑指令来从服务器中按需下载所需要的美术资源,之后对所下载的美术资源进行编辑。
具体的,用户可以在资源目录中针对目标资源触发编辑指令后,终端设备基于该编辑指令将服务器上对应的目标资源加载到客户端的本地存储中,加载成功后,通过客户端(美术编辑器)从客户端的本地存储中读取该目标资源,并在客户端的显示界面中显示所读取的目标资源。
其中,针对目标资源的编辑指令可以通过语音来触发,也可以通过特定手势来触发,还可以通过相应控件来触发,对于本公开中涉及的指令均可以通过上述方式来触发,也可以通过其他可实现的方式来触发,本公开对此并不作限定。
可以理解的,本步骤中的编辑指令中可以理解为包含了加载指令和具体编辑动作的指令,具体编辑动作例如可以包括但不限于复制、修改、删除、新增中的至少一个。例如,当编辑指令为针对资源A的复制指令时,客户端先将资源A从服务器中加载到本地存储中,加载完成后客户端从本地存储中读取资源A并进行复制。
这样,基于资源目录对所需要编辑的目标资源进行下载,实现了资源文件的按需下载,从而避免了将全部的资源文件下载到本地所造成的时间和空间浪费。
具体的,用户可以使用客户端(美术编辑器)中的各个工具对所显示的目标资源进行编辑。在实际应用中,一个虚拟游戏中的资源文件可以存储在一个专用服务器上。
如图4所示,是本公开实施例提供的客户端的一例界面示意图,包括界面4(a)和界面4(b),界面4(a)为美术编辑器首页的显示界面,界面4(b)为模型编辑器的编辑界面。
界面4(a)中可以展示有对美术资源进行不同维度编辑的各类子编辑器,例如,子编辑器可以包括地图编辑器、模型编辑器、特效编辑器、场景编辑器、动画编辑器或者音频编辑器。本实施例对子编辑器的类别具体不做限制。
进一步的,美术编辑器响应于在界面4(a)中显示的任一子编辑器的点击操作,可以显示子编辑器的编辑界面,如界面4(a)所示,触发模型子编辑器的控件,在界面4(b)中显示模型子编辑器的编辑界面。在进一步显示子编辑器的编辑界面4(b)时,该界面4(b)中可以包括工具栏、美术资源展示界面、目录界面或者编辑界面。其中,工具栏中包括但不限于编辑、视图、工具、帮助等中的至少一个控件。美术资源展示界面用于展示用户选中的目标美术资源的资源内容,例如,用户当前在创建模型,此时在美术资源展示界面可以展示用户正在创建的模型资源。目录界面用于展示美术资源的资源目录。编辑界面为用户的工作界面,用户可以在该界面中对当前选中目标美术资源进行编辑操作,例如,编辑操作具体包括:对模型头发进行编辑操作、对当前选中模型进行修容、进行角色浏览等中的至少一种操作。
具体的,在美术资源展示界面中,模型列表中的显示的可以是各模型对应的模型标识,模型标识可以为图片或者字符串,模型与模型标识之间具有一一对应关系。
目录界面中的刷新目录控件用于对美术资源的资源目录进行刷新,例如用户在本地创建了一个全新的美术资源文件,可以点击刷新目录控件来使得所展示的目录中包括这一新创建的美术资源,搜索控件用于对某一美术资源文件进行搜索,微端下载控件用于从资源仓库中下载美术资源,下载进度用于显示美术资源下载的进度。
编辑界面中所做的编辑操作具体可以包括:对头发进行编辑操作、对当前选中模型进行修容、进行角色浏览等中的至少一种操作。
用户可以在目录界面中所显示的资源目录中选中所需要获取的美术资源,或者在搜索控件中搜索需要获取的美术资源,点击微端下载控件进行下载,之后,可以点击下载进度控件了解所要获取的美术资源下载到本地的进度情况。
在实际应用中,目标资源中包括一个或多个美术资源,在从服务器获取目标资源时,可以通过下载进度控件来了解各目标资源的下载进度,具体请参照图5。如图5所示,是本公开实施例提供的美术编辑器的另一例界面示意图,包括界面5(a)和界面5(b),在界面5(a)中,用户在选择了所要获取的目标资源后,点击下载进度控件了解目标资源的下载进度,在界面5(b)中,展示了下载进度详情,在下载进度详情中,可以看到目标资源中的各个文件的具体下载情况。在实际应用中,下载进度与网络情况以及资源文件的大小有关。
本公开提供的资源的处理方法,该方法包括:响应于客户端的启动指令,获取预设的启动文件,基于启动文件启动客户端;从服务器获取资源目录并加载至客户端的界面中;响应于针对资源目录中的目标资源的编辑指令,将目标资源加载到客户端的本地存储中;通过客户端从本地存储中读取目标资源并进行编辑指令所指示的编辑操作。可见,本公开在基于所获取的启动文件启动客户端时,通过从服务器获取资源目录,并基于所获取的资源目录对需要编辑的目标资源进行按需下载。这样,在需要对某一个或者某多个目标资源进行编辑时,仅下载所需的部分目标资源,而非获取全部的资源文件。由于资源目录的空间占用远小于资源文件的空间占用,获取部分资源文件的速度也远快于获取全部的资源文件,这样可以避免在对资源进行开发维护时造成的时间空间浪费。
另外,在本公开提供的资源的处理方法中,由于无需在终端设备上获取全部的资源文件,因此,本公开还降低了用于对资源进行开发维护的终端设备的硬件要求,进而节约了对资源进行开发维护的成本。
本公开提供的资源的处理方法通过以下方式实现了资源的最小化:用户在客户端对资源进行维护时仅需要加载以下文件:其一是启动文件,启动文件在客户端启动时即加载;其二是按需下载的目标资源文件,只有在需要对目标资源文件进行编辑操作时才从服务器加载至本地,并实现对本地文件的编辑。
另外,为了保证管理资源文件的服务器中的目标资源为最新编辑后的目标资源,在对目标资源编辑完成之后,可以通过终端设备将编辑后的目标资源上传到存储美术资源的服务器中。
因此,在对目标资源进行编辑操作后,本公开实施例提供的资源的处理方法还可以包括以下步骤:将进行编辑操作后的目标资源同步至服务器中。
这样,将用户在本地对目标资源进行的编辑操作后的得到的目标资源同步至服务器上,可以使得其他用户能够基于进行编辑操作后的目标资源再次进行开发维护,可以同步开发维护的进度,避免各用户进行无用的工作。
本步骤中将进行编辑操作后的目标资源同步至服务器中实质上可以理解为将进行编辑操作后的目标资源同步至存储资源文件的服务器中,具体可以通过以下步骤实现:客户端向存储资源文件的服务器发送携带进行编辑操作后的目标资源的同步命令,当该同步命令到达该服务器时,可以将该服务器存储的目标资源更新为该进行编辑操作后的目标资源,以在目标资源被编辑后实现目标资源的同步。
由于在游戏在开发过程中,存在大量的资源需要进行迭代或者进行修改优化,因此通常情况下,可以通过部署版本控制系统,来对服务器中存储的资源文件进行版本控制以及管理。
在具体实施方式中,版本控制系统可以是Subversion(软件项目版本控制管理系统/文件版本管理工具,简称SVN),来对所存储的美术资源进行版本控制。SVN将文件存放在版本库里,该版本库可以记录每一次文件和目录的修改情况,这样就可以借此将所存储的文件恢复到以前的版本,并可以查看文件的更改细节。SVN的版本库可以通过网络访问,从而使用户可以在不同的电子设备上进行操作,允许用户在各自的空间里修改和管理同一组文件来促进团队协作。本公开中可以基于TortoiseSVN来对美术资源进行开发维护,TortoiseSVN是SVN版本控制系统的一个开源客户端,可以超越时间的管理文件和目录。文件版本管理工具还可以是其他类型的可以满足多人同时对同一份文件进行修改操作的系统,本公开对此并不具体限定。
因此,本公开中存储美术资源的服务器可以是SVN服务器,在SVN服务器上部署有资源仓库,美术资源存储在资源仓库内,这样,用户可以在各自所持有的终端设备上对资源仓库中存储的美术资源进行编辑修改操作。
本公开中用户所持有的终端设备可以通过SharpSVN来与资源仓库进行通信,SharpSVN是基于C#语言(面向对象的编程语言)开发的一个虚拟客户端,可以允许本地不用安装Svn客户端工具而直接调用SharpSVN的接口进行Svn对应的操作。
需要说明的是,在终端设备上通过TortoiseSVN可以看到美术资源的更新情况,当某一个美术资源发生更新时,可以通过TortoiseSVN来将该美术资源获取到本地存储中。
在一种可选的实施方式中,客户端包括基于第一编程语言实现的第一动态库;服务器的目标接口基于第二编程语言实现,该目标接口用于从服务器获取数据。本公开实施例提供的资源的处理方法还包括以下步骤:
客户端调用第一动态库,以使第一动态库调用目标接口以从服务器获取数据。
可以理解的,本步骤中的第一编程语言和第二编程语言为不同的计算机语言,计算机语言(Computer Language)指用于人与计算机之间进行通信的语言,是人与计算机之间传递信息的媒介。本步骤中的目标接口为SharpSVN中封装的一个或多个接口,由于SharpSVN的编程语言是C#语言,因此目标接口的第二编程语言为C#语言。本步骤目的在于:通过美术编辑器对应的可执行文件调用第一动态库,第一动态库来调用目标接口来间接实现基于第一编程语言实现的美术编辑器对基于第二编程语言实现的目标接口的调用,进而实现在美术编辑器中对服务器上所存储数据的获取。
以下对美术编辑器对应的可执行文件通过调用第一动态库来实现对SharpSVN中的目标接口的调用的原因进行说明:
在美术编辑器运行的过程中,可以通过可执行文件来实现美术编辑器自身的功能,通常情况下,美术编辑器的可执行文件的编程语言与对应的开发程序的编程语言相同。而很多开发程序是基于C++语言(继承C语言,是一种比较底层的技术语言)开发的程序,因此,支持美术编辑器运行的可执行文件也是基于C++语言实现的。在这种情况下,用户在美术编辑器上基于C++语言调用C#语言的SharpSVN的目标接口来从服务器获取数据时,需要开启公共语言运行时支持选项(/clr选项,C++调用由C#语言开发的开放接口技术)。
然而,在实际应用中,大型的C++项目通常包括很多编译选项,而编译选项之间可能会存在冲突,也即,有些编译选项是无法同时开启的。在本公开实施例中,有些编译选项和/clr同时开启会出现问题,例如:C++项目的异常处理的编译选项只能处理C++的异常,当该C++项目同时开启了/clr来调用C#项目时,所调用的C#项目存在的异常则无法通过异常处理的编译选项来处理,这将导致编译无法进行。因此,为了避免开启/clr造成的编译冲突,在基于C++的美术编辑器中不支持开启/clr选项。因此,在本公开实施例中,为了实现不开启/clr选项的C++的美术编辑器对C#项目的成功调用,可以新增一个开启/clr选项的C++动态库,由C++的美术编辑器来调用该C++动态库,该C++动态库来调用C#项目,由于C++的美术编辑器直接调用的是C++动态库,这样,在进行编译时,异常处理的编译选项可以处理原C++项目以及所调用的C++动态库的异常,使得未开启/clr选项的美术编辑器可以通过调用开启了/clr选项的C++动态库,以实现对C#接口/C#动态库的调用,解决了美术编辑器因需要同时开启/clr选项和异常处理的编译选项而无法跨语言处理编译异常的问题,使得未开启/clr选项的C++语言的美术编辑器能够成功调用C#语言的SharpSVN,以从服务器获取数据。
具体的,可以在美术编辑器中增加一个开启/clr选项的C++动态链接库(即本步骤中的第一动态库)SvnCppLib.dll,在需要从服务器上获取数据时,未开启/clr选项的C++语言的美术编辑器的可执行文件调用开启了/clr选项的C++第一动态库SvnCppLib.dll,开启了/clr选项的C++第一动态库SvnCppLib.dll调用C#语言的SharpSVN的目标接口,从而间接实现C++语言的美术编辑器对C#语言的SharpSVN的目标接口的调用。
动态链接库(Dynamic Link Library,简称DLL),DLL是一个包含可由多个程序,同时使用的代码和数据的库,通过使用DLL,程序可以实现模块化,动态链接库的使用使得在程序运行时将各个模块加载到主程序中,可以在程序未运行时节省所占用的存储空间,进一步减轻了终端设备的存储压力。
由于在编译时,美术编辑器的C++项目文件直接调用的是C++第一动态库,保证了项目文件在编译时能够通过异常处理的编译选项来处理编译过程中出现的异常,使得编译能够成功进行,进而生成用于美术编辑器运行的可执行文件。可执行文件(executablefile)指的是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样。在windows(视窗操作系统)操作系统下,可执行程序可以是.exe文件、.sys文件、.com等类型的文件。
在一种可选的实施方式中,目标接口包含在预设的功能接口动态库(即SharpSVN库)中,该功能接口动态库中包括目标接口在内的多个功能接口,相应地,还可以在客户端中配置第二动态库,该第二动态库用于调用该功能接口动态库中的目标接口,也即只调用该功能接口动态库中与从服务器获取数据有关的接口。
基于此,上述客户端调用第一动态库,以使第一动态库调用目标接口以从服务器获取数据的步骤,则具体包括以下步骤:
客户端调用第一动态库;
通过第一动态库调用第二动态库,以使第二动态库调用目标接口以从服务器获取数据。
由于C#语言的SharpSVN中对应的接口种类繁多,数量庞大,在进行接口调用时仅需要调用能够实现对应功能的接口,SharpSVN中的很多接口对应的功能并不是美术编辑器需要用到的功能,若调用逻辑为通过美术编辑器的可执行文件调用第一动态库,通过第一动态库调用SharpSVN库,则在进行编译的过程中需要将SharpSVN库的所有接口均链接到程序中,如此,若编译过程中出现错误时,无法很快从SharpSVN中确定出现错误的位置,因此,为了提高代码编译的效率,本公开实施例中可以通过一个较小的C#第二动态库(SvnDLL.dll)来调用C#语言的SharpSVN库中所需的一部分接口,即各目标接口,这样,在编译过程中,只需将仅涉及SharpSVN库中用得到的各目标接口的第二动态库链接到程序中以实现编译,如此一来,在编译过程中出现错误时,可以从各目标接口中定位出现错误的接口,而无需从SharpSVN库提供的所有接口中定位错误的接口,从而缩小了定位错误的范围。
如图6所示,是本公开实施例提供的客户端从服务器获取数据时的数据调用过程示意图,首先,通过未开启/crl选项的美术编辑器的C++可执行文件601调用开启了/clr选项的C++第一动态库602,通过开启了/clr选项的C++第一动态库602调用C#第二动态库603,通过C#第二动态库603调用C#SharpSVN库604,从而在需要从服务器获取数据时,通过未开启/crl选项的美术编辑器的C++可执行文件601间接对C#SharpSVN库604的调用,实现在美术编辑器中对服务器上所存储数据获取。
可选的,客户端从服务器获取数据可以包括以下一种或多种:
客户端从服务器获取资源目录、客户端从服务器获取目标资源。
其中,客户端从服务器获取资源目录为终端设备在启动客户端时向服务器发送的针对资源目录的获取命令,当针对资源目录的获取命令到达服务器时,从服务器上将所存储的资源目录获取到终端设备上,以实现客户端从服务器获取资源目录。
客户端从服务器获取目标资源具体可以包括以下情况一和/或情况二:
情况一:在客户端的本地存储中未存储有目标资源的情况下,响应于目标资源的编辑指令,客户端向服务器发送针对目标资源的获取命令,当针对目标资源的获取命令到达服务器时,从服务器上将所存储的目标资源获取到客户端的本地存储中,以实现客户端从服务器获取目标资源。
情况二:在客户端的本地存储中存储有目标资源的情况下,响应于在客户端的本地存储中针对所存储的目标资源的更新指令,客户端向服务器发送针对目标资源的更新命令,当针对目标资源的更新命令到达服务器时,从服务器上将所存储的目标资源获取到客户端的本地存储,以对客户端的本地存储中所存储的目标资源进行更新或者直接替换,以实现客户端从服务器获取目标资源以更新客户端的本地存储中存储的目标资源。
需要说明的是,上述客户端向服务器发送的针对资源目录的获取命令、针对目标资源的获取命令、针对目标资源的更新命令可以是调用目标接口发送,在调用目标接口时,将所需参数传入目标接口。其中,不同的命令可以通过向目标接口传入不同的参数来发送,以完成客户端从服务器获取数据。
由于客户端的本地存储可能已经获取过服务器上的美术资源,因此本地可能存储的有美术资源,因此,当用户在客户端的界面所显示的资源目录中获取某一个美术资源时,可以检测该美术资源是否存储在客户端的本地存储中,若本地存储中存储的有、且本地存储中存储的为最新版本的美术资源的话,可以通过客户端从本地存储中读取该美术资源,若本地存储中未存储该美术资源时,客户端可以通过接口的调用从服务器上将该美术资源获取到本地存储中。因此,步骤303中“响应于针对所述资源目录中的目标资源的编辑指令,将目标资源加载到客户端的本地存储中”,可以按照以下步骤实现:
响应于针对所述资源目录中的目标资源的编辑指令,在客户端的本地存储中查找目标资源;在未查找到目标资源的情况下,则将目标资源从服务器加载到客户端的本地存储中。
相应的,在本地存储中查找到目标资源、且本地存储中存储的目标资源为距离当前时刻最近的目标资源版本的情况下,则通过客户端读取本地存储中所存储的目标资源。
当在客户端的本地存储中未查找到目标资源时,终端设备将所述目标资源从服务器加载到客户端的本地存储中具体可以包括以下步骤:
客户端通过目标接口传入针对目标资源的获取命令对应的参数,以向服务器发送针对目标资源的获取命令;当针对目标资源的获取命令到达服务器时,从服务器上将所存储的目标资源加载到客户端的本地存储中上。
这样,当用户需要对目标资源进行编辑时,若目标资源文件存储在本地存储中,则直接从本地存储中将该目标资源文件加载到客户端,若本地存储中未存储目标资源文件,则客户端可以快速通过调用获取资源文件对应的接口来从服务器获取该目标资源。由于目标资源文件的空间占用远小于全部的资源文件,用户每次可能仅需要对某一个模型或者某一个场景进行编辑,因此无论客户端直接从本地存储中所存储的文件中读取目标资源文件,还是客户端从服务器将目标资源文件获取到本地存储,再从本地存储中读取该目标资源文件,客户端都会以较快的速度加载完成该目标资源文件。因此,这一过程对于用户是无感的,不影响用户对客户端的使用体验。
基于此,为了使得用户能够根据客户端的界面中所显示的资源目录快速明确终端设备上是否存储有某一个资源文件,本公开实施例中资源目录中的资源标识还可以设置有用于指示对应资源是否已下载的第一标识。
因此,步骤303中的“将目标资源加载到客户端的本地存储中”还可以通过以下步骤实现:
在资源目录中目标资源对应的第一标识指示目标资源未下载至客户端的本地存储的情况下,将更新时刻距离当前时刻最近的目标资源版本从服务器加载到客户端的本地存储中。
在实际应用中,某一个用户通常情况下开发维护的是同一份美术资源,因此在终端设备上退出客户端(美术编辑器)时,本地存储中获取的目标资源文件不需要删除,以避免频繁的从资源仓库上获取该目标资源,但由于服务器存储的该目标资源可能被其他用户开发维护过,本地存储所存储的目标资源可能并不是资源仓库中的最新的目标资源。因此,为了保证本地上的目标资源与资源仓库中的目标资源保持一致,使得用户能够基于最新的目标资源进行编辑修改操作,本公开中可以根据服务器中存储的目标资源对本地存储的目标资源文件进行更新。具体可以是按照预设周期从服务器获取最新版本的目标资源,也可以是在使用客户端(美术编辑器)前从服务器获取目标资源,将本地存储的目标资源更新为从服务器获取的最新版本的目标资源,本公开对此并不做限定。
因此,本公开实施例提供的资源的处理方法还包括以下步骤:
在资源目录中目标资源对应的第一标识指示目标资源已下载至客户端的本地存储的情况下,响应于针对客户端的本地存储中的目标资源的更新指令,根据服务器中更新时刻距离当前时刻最近的目标资源版本,对客户端的本地存储中的目标资源进行更新。
在实际应用中,资源目录中存储的可以是资源对应的资源标识,资源仓库中的每个资源可以对应有唯一的一个标识信息。资源目录中的资源标识可以理解为该资源在资源目录中的唯一身份信息UID(user interface designer)。资源与资源标识之间具有一一对应关系,资源标识可以为一串字符,也可以为一个向量,还可以是图片,本公开对此不具体限定。
在一种可能实现的实施方式中,为了使得用户能够根据客户端的界面中所显示的资源目录,快速明确客户端的本地存储上存储的某一个资源文件是否在服务器中已经存在更新后的版本,资源目录中的资源标识还可以设置有用于指示服务器中对应资源是否发生更新的第二标识。
需要说明的是,由于各用户对应的客户端中资源文件的下载情况以及更新情况可能有所不同,因此,针对不同的用户资源目录中资源标识对应的第一标识和/或第二标识可能会有所不同。本公开中,可以在客户端从服务器获取了资源目录后,再查询客户端的本地存储中所存储的文件是否存在所需要编辑的资源文件,以及在查询到本地存储中存储有所需要编辑的资源文件时,查询服务器上是否存在本地下载了该资源文件之后又重新上传/更新的版本。
当本地存储中存在需要编辑的资源文件时,可以向用户展示该资源文件在本地存储中的存储路径,用户可以基于该存储路径找到本地存储中的资源文件,并对该资源文件触发更新指令,这样,可以将本地存储中存储的资源文件更新为服务器中距离当前时刻最近的目标资源版本。具体可以是将本地存储的目标资源删除并将服务器中距离当前时刻最近的目标资源版本下载到本地存储中,还可以是直接将本地存储的目标资源替换为服务器中距离当前时刻最近的目标资源版本。
这样,在从服务器获取了资源目录并在客户端的界面上显示了该资源目录后,用户可以根据资源目录中资源标识所对应的第一标识快速明确本地存储中是否存储有某一个资源文件,并且快速将最新版本的该资源文件获取到客户端的本地存储中。
这样,与将服务器中存储的所有资源文件获取到本地,以保证本地存储的资源文件是最新版本的资源相比,本公开实施例中仅更新部分资源文件,可以有效减少获取所有资源文件造成的时间浪费,使得资源的开发维护更加高效。
由于客户端启动时需要依赖一些启动文件,为了快速启动客户端,本公开提供的资源的处理方法中,可以将用于维持美术编辑器运行所需的启动文件放置于一个服务器中的特定文件夹中,并将启动文件记录在客户端的一个配置文件中,在客户端首次启动时,终端设备可以响应于客户端的启动指令,从客户端获取文件列表,根据文件列表从服务器获取预设的启动文件。
具体的,响应于客户端的启动指令,终端设备可以从客户端本地读取启动文件对应的配置文件的文件列表,并向服务器发送针对文件列表中启动文件的获取命令,当针对文件列表中启动文件的获取命令到达服务器时,从服务器上存储的文件中将该启动文件获取到客户端,使得该客户端能够基于该启动文件成功启动并运行。
可以理解的,在部署用于管理资源文件的服务器(本公开中的第二服务器)时,可以部署一个用于管理资源目录的服务器(本公开中的第一服务器),通过特定的服务器来存储不同的文件,实现服务器专用。因此,本公开的服务器可以包括第一服务器和第二服务器,用于对不同的数据进行管理。
将资源目录存储在另外的服务器上,一方面,可以便于进行资源目录管理应用的开发、资源目录版本管理等目录管理事宜,另一方面,存储及管理资源文件的第二服务器可选用SVN服务器,而将资源目录存储在另外的服务器上,管理资源目录的服务器则可以选用非SVN服务器,避免占用第二服务器的资源,从而为资源文件的存储及管理提供节省出更多的资源。
因此,本公开的步骤302中的“从服务器获取资源目录”实质上为:客户端通过调用目标接口从第一服务器获取资源目录;本公开的步骤303中的“将目标资源从服务器加载到客户端的本地存储中”实质上为:客户端通过调用目标接口将目标资源从第二服务器加载到客户端的本地存储中。
另外,本公开中的步骤“将进行编辑操作后的目标资源同步至服务器中”实质上为:客户端将进行编辑操作后的目标资源同步至第二服务器中。
在用于管理资源文件的第二服务器部署完成后,可以统计并确定资源文件对应的资源目录,并将该资源目录存储至用于管理资源目录的第一服务器中。可以理解的是,资源目录可以以目录树的形式进行存储,每一个资源文件在该目录树(资源目录)中的资源标识以及完整路径都是独一无二的。
在实际应用中,由于资源仓库中的资源文件可能被多个用户协同进行开发维护,因此资源仓库中的资源文件可能会频繁的发生变化,因此,资源文件对应的资源目录可能也会发生变化,在本公开中,可以在管理资源文件的第二服务器上按照预设统计周期对的资源目录进行统计,并将所统计的资源目录发送给管理资源目录的第一服务器,以对所存储的资源目录进行更新。在终端设备启动客户端时,首先从管理资源目录的第一服务器上获取最新版本的资源目录。
基于此,步骤302中的“从服务器获取资源目录”实质上为:客户端从服务器获取更新时刻距离当前时刻最近的资源目录。
可以理解的,按照预设周期更新的资源目录可以记录有所更新的时间,管理资源目录的第一服务器中可能存储有每一版本的资源目录,也可能只存储有最新的资源目录。
在第一服务器存储多个版本的资源目录的情况下,客户端可以从第一服务器获取最新版本的资源目录,也即,获取更新时刻距离当前时刻最近的资源目录。在第一服务器只存储有最新的资源目录的情况下,客户端则从第一服务器获取该最新的资源目录。
本公开实施例提供的资源的处理方法,将维持客户端运行的启动文件和资源目录存储在服务器上,在基于启动文件启动客户端后,从服务器获取资源目录,并基于资源目录按需下载所需要的资源文件,避免获取全部资源文件所浪费的时间,并且由于资源目录的空间占用远小于资源文件的空间占用,获取的部分资源文件的空间占用也较小,减轻了客户端的本地存储的存储压力,从而降低了资源开发维护的成本。
另外,由于客户端的本地存储中所存储的资源文件需要频繁的进行更新,在本公开客户端的本地存储中存储的为部分资源文件的前提下,与现有技术中对全部资源文件进行更新相比,对部分资源文件进行更新显然会花费更少的时间,进一步提高了资源开发维护的效率。
与本公开实施例提供的资源的处理方法相对应的,本公开实施例还提供一种资源的处理装置,如图7所示,所述资源的处理装置700包括:
获取单元701,用于响应于客户端的启动指令,获取预设的启动文件,基于所述启动文件启动所述客户端;
加载单元702,用于从服务器获取资源目录并加载至所述客户端的界面中;
编辑单元703,用于响应于针对所述资源目录中的目标资源的编辑指令,将所述目标资源加载到所述客户端的本地存储中;通过所述客户端从所述本地存储中读取所述目标资源并进行所述编辑指令所指示的编辑操作。
可选的,在所述客户端包括基于第一编程语言实现的第一动态库;所述服务器的目标接口基于第二编程语言实现,所述目标接口用于从所述服务器获取数据的情况下,所述获取单元701还用于:调用所述第一动态库,以使所述第一动态库调用所述目标接口以从所述服务器获取数据。
可选的,在所述客户端还包括第二动态库,所述第二动态库用于调用包含在预设的功能接口动态库中的所述目标接口,所述功能接口动态库中包括所述目标接口在内的多个功能接口的情况下,所述获取单元701具体用于:调用所述第一动态库;通过所述第一动态库调用所述第二动态库,以使所述第二动态库调用所述目标接口以从所述服务器获取数据。
可选的,所述编辑单元703具体用于:响应于针对所述资源目录中的目标资源的编辑指令,在所述客户端的本地存储中查找所述目标资源;在所述本地存储中未查找到所述目标资源的情况下,则将所述目标资源从所述服务器加载到所述客户端的本地存储中。
可选的,在所述服务器包括第一服务器和第二服务器;所述第一服务器用于管理所述资源目录,所述第二服务器用于管理资源文件的情况下,所述获取单元701具体用于:从所述第一服务器获取资源目录;
所述编辑单元703具体用于:将所述目标资源从所述第二服务器加载到所述客户端的本地存储中。
可选的,所述获取单元701具体用于:响应于所述客户端的启动指令,从所述客户端获取文件列表;根据所述文件列表从所述服务器获取预设的启动文件。
可选的,所述服务器中的所述资源目录按照预设周期更新,所述获取单元701还用于:从所述服务器获取更新时刻距离当前时刻最近的资源目录版本。
可选的,所述资源目录中的资源标识设置有用于指示对应资源是否已下载的第一标识,所述编辑单元703具体用于:在所述资源目录中所述目标资源对应的所述第一标识指示所述目标资源未下载至所述客户端的本地存储的情况下,将更新时刻距离当前时刻最近的目标资源版本从所述服务器加载到所述客户端的本地存储中。
可选的,所述资源的处理装置700还包括更新单元,所述更新单元用于:在所述资源目录中所述目标资源对应的所述第一标识指示所述目标资源已下载至所述客户端的本地存储的情况下,响应于针对所述客户端的本地存储中的所述目标资源的更新指令,根据所述服务器中更新时刻距离当前时刻最近的目标资源版本,对所述客户端的本地存储中的所述目标资源进行更新。
可选的,所述资源的处理装置700还包括上传单元,所述上传单元用于:将进行所述编辑操作后的目标资源同步至所述服务器中。
本公开提供的资源的处理装置,通过响应于客户端的启动指令,获取预设的启动文件,基于启动文件启动客户端;从服务器获取资源目录并加载至客户端的界面中;响应于针对资源目录中的目标资源的编辑指令,将目标资源加载到客户端的本地存储中;通过客户端从本地存储中读取目标资源并进行编辑指令所指示的编辑操作。基于所获取的启动文件启动客户端时,通过从服务器获取资源目录,并基于所获取的资源目录对需要编辑的目标资源进行按需下载。这样,在需要对某一个或者某多个目标资源进行编辑时,仅下载所需的部分目标资源,而非获取全部的资源文件。由于资源目录的空间占用远小于资源文件的空间占用,获取部分资源文件的速度也远快于获取全部的资源文件,可以避免在对资源进行开发维护时造成的时间空间浪费。
与本公开实施例提供的资源的处理方法相对应的,本公开实施例还提供了一种用于实现资源的处理的电子设备。如图8所示,所述电子设备800包括:处理器801;以及存储器802,用于存储资源的处理方法的程序,该设备通电并通过所述处理器运行资源的处理方法的程序后,执行如下步骤:
响应于客户端的启动指令,获取预设的启动文件,基于所述启动文件启动所述客户端;
从服务器获取资源目录并加载至所述客户端的界面中;
响应于针对所述资源目录中的目标资源的编辑指令,将所述目标资源加载到所述客户端的本地存储中;
通过所述客户端从所述本地存储中读取所述目标资源并进行所述编辑指令所指示的编辑操作。
可选的,所述客户端包括基于第一编程语言实现的第一动态库;所述服务器的目标接口基于第二编程语言实现,所述目标接口用于从所述服务器获取数据;所述电子设备800还可以执行如下步骤:
调用所述第一动态库,以使所述第一动态库调用所述目标接口以从所述服务器获取数据。
可选的,所述客户端还包括第二动态库,所述第二动态库用于调用包含在预设的功能接口动态库中的所述目标接口,所述功能接口动态库中包括所述目标接口在内的多个功能接口;所述电子设备800具体执行如下步骤:
调用所述第一动态库;
通过所述第一动态库调用所述第二动态库,以使所述第二动态库调用所述目标接口以从所述服务器获取数据。
可选的,所述电子设备800具体执行如下步骤:
从所述服务器获取所述资源目录;和/或,
从所述服务器获取所述目标资源。
可选的,所述电子设备800具体执行如下步骤:
响应于针对所述资源目录中的目标资源的编辑指令,在所述客户端的本地存储中查找所述目标资源;
在所述本地存储中未查找到所述目标资源的情况下,则将所述目标资源从所述服务器加载到所述客户端的本地存储中。
可选的,所述服务器包括第一服务器和第二服务器;所述第一服务器用于管理所述资源目录,所述第二服务器用于管理资源文件;所述电子设备800具体执行如下步骤:
从所述第一服务器获取资源目录;
将所述目标资源从所述第二服务器加载到所述客户端的本地存储中。
可选的,所述电子设备800具体执行如下步骤:
响应于所述客户端的启动指令,从所述客户端获取文件列表;
根据所述文件列表从所述服务器获取预设的启动文件。
可选的,所述服务器中的所述资源目录按照预设周期更新,所述电子设备800具体执行如下步骤:
从服务器获取更新时刻距离当前时刻最近的资源目录版本。
可选的,所述资源目录中的资源标识设置有用于指示对应资源是否已下载的第一标识;所述电子设备800具体执行如下步骤:
在所述资源目录中所述目标资源对应的所述第一标识指示所述目标资源未下载至所述客户端的本地存储的情况下,将更新时刻距离当前时刻最近的目标资源版本从所述服务器加载到所述客户端的本地存储中。
可选的,所述电子设备800具体执行如下步骤:
在所述资源目录中所述目标资源对应的所述第一标识指示所述目标资源已下载至所述客户端的本地存储的情况下,响应于针对所述客户端的本地存储中的所述目标资源的更新指令,根据所述服务器中更新时刻距离当前时刻最近的目标资源版本,对所述客户端的本地存储中的所述目标资源进行更新。
可选的,所述电子设备800还可以执行如下步骤:
将进行所述编辑操作后的目标资源同步至所述服务器中。
本公开提供的用于实现资源的处理的电子设备,通过响应于客户端的启动指令,获取预设的启动文件,基于启动文件启动客户端;从服务器获取资源目录并加载至客户端的界面中;响应于针对资源目录中的目标资源的编辑指令,将目标资源加载到客户端的本地存储中;通过客户端从本地存储中读取目标资源并进行编辑指令所指示的编辑操作。基于所获取的启动文件启动客户端时,通过从服务器获取资源目录,并基于所获取的资源目录对需要编辑的目标资源进行按需下载。这样,在需要对某一个或者某多个目标资源进行编辑时,仅下载所需的部分目标资源,而非获取全部的资源文件。由于资源目录的空间占用远小于资源文件的空间占用,获取部分资源文件的速度也远快于获取全部的资源文件,可以避免在对资源进行开发维护时造成的时间空间浪费。
与本公开实施例提供的资源的处理方法相对应的,本公开实施例提供了一种计算机可读存储介质,存储有资源的处理方法的程序,该程序被处理器运行,执行如下步骤:
响应于客户端的启动指令,获取预设的启动文件,基于所述启动文件启动所述客户端;
从服务器获取资源目录并加载至所述客户端的界面中;
响应于针对所述资源目录中的目标资源的编辑指令,将所述目标资源加载到所述客户端的本地存储中;
通过所述客户端从所述本地存储中读取所述目标资源并进行所述编辑指令所指示的编辑操作。
可选的,所述客户端包括基于第一编程语言实现的第一动态库;所述服务器的目标接口基于第二编程语言实现,所述目标接口用于从所述服务器获取数据;所述处理器还可以执行如下步骤:
调用所述第一动态库,以使所述第一动态库调用所述目标接口以从所述服务器获取数据。
可选的,所述客户端还包括第二动态库,所述第二动态库用于调用包含在预设的功能接口动态库中的所述目标接口,所述功能接口动态库中包括所述目标接口在内的多个功能接口;所述处理器具体执行如下步骤:
调用所述第一动态库;
通过所述第一动态库调用所述第二动态库,以使所述第二动态库调用所述目标接口以从所述服务器获取数据。
可选的,所述处理器具体执行如下步骤:
从所述服务器获取所述资源目录;和/或,
从所述服务器获取所述目标资源。
可选的,所述处理器具体执行如下步骤:
响应于针对所述资源目录中的目标资源的编辑指令,在所述客户端的本地存储中查找所述目标资源;
在所述本地存储中未查找到所述目标资源的情况下,则将所述目标资源从所述服务器加载到所述客户端的本地存储中。
可选的,所述服务器包括第一服务器和第二服务器;所述第一服务器用于管理所述资源目录,所述第二服务器用于管理资源文件;所述处理器具体执行如下步骤:
从所述第一服务器获取资源目录;
将所述目标资源从所述第二服务器加载到所述客户端的本地存储中。
可选的,所述处理器具体执行如下步骤:
响应于所述客户端的启动指令,从所述客户端获取文件列表;
根据所述文件列表从所述服务器获取预设的启动文件。
可选的,所述服务器中的所述资源目录按照预设周期更新,所述处理器具体执行如下步骤:
从服务器获取更新时刻距离当前时刻最近的资源目录版本。
可选的,所述资源目录中的资源标识设置有用于指示对应资源是否已下载的第一标识;所述处理器具体执行如下步骤:
在所述资源目录中所述目标资源对应的所述第一标识指示所述目标资源未下载至所述客户端的本地存储的情况下,将更新时刻距离当前时刻最近的目标资源版本从所述服务器加载到所述客户端的本地存储中。
可选的,所述处理器具体执行如下步骤:
在所述资源目录中所述目标资源对应的所述第一标识指示所述目标资源已下载至所述客户端的本地存储的情况下,响应于针对所述客户端的本地存储中的所述目标资源的更新指令,根据所述服务器中更新时刻距离当前时刻最近的目标资源版本,对所述客户端的本地存储中的所述目标资源进行更新。
可选的,所述处理器还可以执行如下步骤:
将进行所述编辑操作后的目标资源同步至所述服务器中。
本公开提供的计算机可读存储介质,通过响应于客户端的启动指令,获取预设的启动文件,基于启动文件启动客户端;从服务器获取资源目录并加载至客户端的界面中;响应于针对资源目录中的目标资源的编辑指令,将目标资源加载到客户端的本地存储中;通过客户端从本地存储中读取目标资源并进行编辑指令所指示的编辑操作。基于所获取的启动文件启动客户端时,通过从服务器获取资源目录,并基于所获取的资源目录对需要编辑的目标资源进行按需下载。这样,在需要对某一个或者某多个目标资源进行编辑时,仅下载所需的部分目标资源,而非获取全部的资源文件。由于资源目录的空间占用远小于资源文件的空间占用,获取部分资源文件的速度也远快于获取全部的资源文件,可以避免在对资源进行开发维护时造成的时间空间浪费。
需要说明的是,对于本公开实施例提供的装置、电子设备及计算机可读存储介质的详细描述可以参考对本公开实施例的相关描述,这里不再赘述。
本公开虽然以较佳实施例公开如上,但其并不是用来限定本公开,任何本领域技术人员在不脱离本公开的精神和范围内,都可以做出可能的变动和修改,因此本公开的保护范围应当以本公开权利要求所界定的范围为准。
在一个典型的配置中,区块链中的节点设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他属性的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储介质或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本公开的实施例可提供为方法、系统或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开虽然以较佳实施例公开如上,但其并不是用来限定本公开,任何本领域技术人员在不脱离本公开的精神和范围内,都可以做出可能的变动和修改,因此本公开的保护范围应当以本公开权利要求所界定的范围为准。
Claims (14)
1.一种资源的处理方法,其特征在于,所述方法包括:
响应于客户端的启动指令,获取预设的启动文件,基于所述启动文件启动所述客户端;
从服务器获取资源目录并加载至所述客户端的界面中;
响应于针对所述资源目录中的目标资源的编辑指令,将所述目标资源加载到所述客户端的本地存储中;
通过所述客户端从所述本地存储中读取所述目标资源并进行所述编辑指令所指示的编辑操作。
2.根据权利要求1所述的方法,其特征在于,所述客户端包括基于第一编程语言实现的第一动态库;所述服务器的目标接口基于第二编程语言实现,所述目标接口用于从所述服务器获取数据;
所述方法还包括:
调用所述第一动态库,以使所述第一动态库调用所述目标接口以从所述服务器获取数据。
3.根据权利要求2所述的方法,其特征在于,所述客户端还包括第二动态库,所述第二动态库用于调用包含在预设的功能接口动态库中的所述目标接口,所述功能接口动态库中包括所述目标接口在内的多个功能接口;
所述调用所述第一动态库,以使所述第一动态库调用所述目标接口以从所述服务器获取数据,包括:
调用所述第一动态库;
通过所述第一动态库调用所述第二动态库,以使所述第二动态库调用所述目标接口以从所述服务器获取数据。
4.根据权利要求2或3所述的方法,其特征在于,所述从所述服务器获取数据包括:
从所述服务器获取所述资源目录;和/或,
从所述服务器获取所述目标资源。
5.根据权利要求1所述的方法,其特征在于,所述响应于针对所述资源目录中的目标资源的编辑指令,将所述目标资源加载到所述客户端的本地存储中,包括:
响应于针对所述资源目录中的目标资源的编辑指令,在所述客户端的本地存储中查找所述目标资源;
在所述本地存储中未查找到所述目标资源的情况下,则将所述目标资源从所述服务器加载到所述客户端的本地存储中。
6.根据权利要求1所述的方法,其特征在于,所述服务器包括第一服务器和第二服务器;所述第一服务器用于管理所述资源目录,所述第二服务器用于管理资源文件;
所述从服务器获取资源目录,包括:
从所述第一服务器获取资源目录;
所述将所述目标资源加载到所述客户端的本地存储中,包括:
将所述目标资源从所述第二服务器加载到所述客户端的本地存储中。
7.根据权利要求1所述的方法,其特征在于,所述响应于客户端的启动指令,获取预设的启动文件,包括:
响应于所述客户端的启动指令,从所述客户端获取文件列表;
根据所述文件列表从所述服务器获取预设的启动文件。
8.根据权利要求1所述的方法,其特征在于,所述服务器中的所述资源目录按照预设周期更新,所述从服务器获取资源目录,包括:
从服务器获取更新时刻距离当前时刻最近的资源目录版本。
9.根据权利要求1所述的方法,其特征在于,所述资源目录中的资源标识设置有用于指示对应资源是否已下载的第一标识;所述将所述目标资源加载到所述客户端的本地存储中,包括:
在所述资源目录中所述目标资源对应的所述第一标识指示所述目标资源未下载至所述客户端的本地存储的情况下,将更新时刻距离当前时刻最近的目标资源版本从所述服务器加载到所述客户端的本地存储中。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
在所述资源目录中所述目标资源对应的所述第一标识指示所述目标资源已下载至所述客户端的本地存储的情况下,响应于针对所述客户端的本地存储中的所述目标资源的更新指令,根据所述服务器中更新时刻距离当前时刻最近的目标资源版本,对所述客户端的本地存储中的所述目标资源进行更新。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将进行所述编辑操作后的目标资源同步至所述服务器中。
12.一种资源的处理装置,其特征在于,所述装置包括:
获取单元,用于响应于客户端的启动指令,获取预设的启动文件,基于所述启动文件启动所述客户端;
加载单元,用于从服务器获取资源目录并加载至所述客户端的界面中;
编辑单元,用于响应于针对所述资源目录中的目标资源的编辑指令,将所述目标资源加载到所述客户端的本地存储中;通过所述客户端从所述本地存储中读取所述目标资源并进行所述编辑指令所指示的编辑操作。
13.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储数据处理程序,该电子设备通电并通过所述处理器运行该程序后,执行如权利要求1-11中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,存储有数据处理程序,该程序被处理器运行,执行如权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310692959.5A CN116954579A (zh) | 2023-06-12 | 2023-06-12 | 资源的处理方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310692959.5A CN116954579A (zh) | 2023-06-12 | 2023-06-12 | 资源的处理方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116954579A true CN116954579A (zh) | 2023-10-27 |
Family
ID=88453810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310692959.5A Pending CN116954579A (zh) | 2023-06-12 | 2023-06-12 | 资源的处理方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116954579A (zh) |
-
2023
- 2023-06-12 CN CN202310692959.5A patent/CN116954579A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6774499B2 (ja) | オフラインでのハイブリッドアプリケーションへのアクセスの提供 | |
CN102436441B (zh) | 同步在线文档编辑 | |
CN102971688B (zh) | 跨平台应用程序框架 | |
CN105474206A (zh) | 支持按需数据传输的虚拟同步 | |
US11016785B2 (en) | Method and system for mirror image package preparation and application operation | |
JP2012128878A (ja) | コンピュータプラットフォームのプログラミングインターフェース | |
CN101479721A (zh) | 从可移动介质运行应用程序 | |
CN1329840C (zh) | 文件归档 | |
CN112256286A (zh) | 一种应用运行的方法、装置及计算机存储介质 | |
WO2023273118A1 (zh) | 资源发布方法、装置、计算机设备及计算机可读存储介质 | |
US11144292B2 (en) | Packaging support system and packaging support method | |
CN110362338B (zh) | 一种在移动平台下的游戏资源打包和资源快速访问方法 | |
CN101490645A (zh) | 用以设备虚拟化的方法及设备 | |
CN108563440A (zh) | 列表控制器代码自动添加方法、装置及可读存储介质 | |
CN112181432B (zh) | ReactNative框架中实现bundle的模块化打包处理的系统 | |
CN113656005B (zh) | 应用组件库构建方法、应用组件配置方法及相关装置 | |
CN113296891A (zh) | 基于平台的多场景知识图谱处理方法及装置 | |
CN115113850A (zh) | 一种跨平台应用的构建、运行方法、服务器、终端和系统 | |
CN114610384A (zh) | 一种应用迁移方法、装置、设备及存储介质 | |
CN116954579A (zh) | 资源的处理方法、装置、电子设备及可读存储介质 | |
CN116962807A (zh) | 视频渲染方法、装置、设备及存储介质 | |
CN114860202A (zh) | 项目运行方法、装置、服务器及存储介质 | |
CN111221623A (zh) | 镜像库管理系统 | |
CN108733378A (zh) | 支持多个原生Cocos游戏接入到安卓应用平台的方法 | |
CN116956249A (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 |