CN112711435A - 版本更新方法、版本更新装置、电子设备和存储介质 - Google Patents

版本更新方法、版本更新装置、电子设备和存储介质 Download PDF

Info

Publication number
CN112711435A
CN112711435A CN202110076459.XA CN202110076459A CN112711435A CN 112711435 A CN112711435 A CN 112711435A CN 202110076459 A CN202110076459 A CN 202110076459A CN 112711435 A CN112711435 A CN 112711435A
Authority
CN
China
Prior art keywords
language
version
bin
character string
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.)
Granted
Application number
CN202110076459.XA
Other languages
English (en)
Other versions
CN112711435B (zh
Inventor
吴佳颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vivo Mobile Communication Co Ltd
Original Assignee
Vivo Mobile Communication Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vivo Mobile Communication Co Ltd filed Critical Vivo Mobile Communication Co Ltd
Priority to CN202110076459.XA priority Critical patent/CN112711435B/zh
Publication of CN112711435A publication Critical patent/CN112711435A/zh
Application granted granted Critical
Publication of CN112711435B publication Critical patent/CN112711435B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

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

Abstract

本申请公开了一种版本更新方法、版本更新装置、电子设备和存储介质,属于通信技术领域。本申请中预置了目标应用对应的,包括各语言版本对应的字符串资源的语言仓,并在各语言版本的代码工程中预置语言仓的引用地址,此时,可以对语言仓中的字符串资源统一进行更新,再由目标语言版本的代码工程根据引用地址获取更新后的语言仓,以根据更新后的语言仓对代码工程进行编译获得安装包。本申请中只需在语言仓中对字符串资源进行统一修改,各语言版本的代码工程再根据更新后的语言仓直接进行安装包编译,无需在编译各语言版本的安装包时对各语言版本的字符串资源分别进行修改,从而节省了目标应用的字符串资源语言版本的更新时间,提高了更新效率。

Description

版本更新方法、版本更新装置、电子设备和存储介质
技术领域
本申请属于通信技术领域,具体涉及一种版本更新方法、版本更新装置、电子设备和存储介质。
背景技术
随着APP(应用程序,Application)在多地区不同人群间的推广,对其开发的要求也越来越高,如针对不同地区不同人群的多语言需求,需要对同一APP进行多版本开发、多语言适配,使得APP的安装包编译、更新时需要进行维护的字符串资源版本数量日益增多。
目前,APP各版本之间的字符串资源互相独立,当出现翻译、校正错误等bug(漏洞)时,需要对不同版本的字符串资源分别同步修改,耗时长、效率低。
发明内容
本申请实施例的目的是提供一种版本更新方法、版本更新装置、电子设备和存储介质,能够解决当前不同版本的字符串资源更新耗时长、效率低的问题。
为了解决上述技术问题,本申请是这样实现的:
第一方面,本申请实施例提供了一种版本更新方法,该方法包括:
确定目标应用的目标语言版本,所述目标应用的各语言版本对应的字符串资源共享在所述目标应用对应的语言仓中,所述目标语言版本的代码工程中包含所述语言仓的引用地址;
对所述语言仓中的字符串资源进行更新,得到更新后的语言仓;
根据所述引用地址,获取所述更新后的语言仓;
根据所述更新后的语言仓对所述代码工程进行编译,得到所述目标应用对应所述目标语言版本的安装包。
第二方面,本申请实施例提供了一种版本更新装置,所述装置包括:
版本确定模块,用于确定目标应用的目标语言版本,所述目标应用的各语言版本对应的字符串资源共享在所述目标应用对应的语言仓中,所述目标语言版本的代码工程中包含所述语言仓的引用地址;
资源更新模块,用于对所述语言仓中的字符串资源进行更新,得到更新后的语言仓;
资源获取模块,用于根据所述引用地址,获取所述更新后的语言仓;
安装包编译模块,用于根据所述更新后的语言仓对所述代码工程进行编译,得到所述目标应用对应所述目标语言版本的安装包。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
在本申请实施例中,预置了目标应用对应的语言仓,语言仓中包括目标应用对应的各语言版本对应的字符串资源,同时在目标应用的各语言版本的代码工程中预置语言仓的引用地址,在对目标应用的字符串资源进行更新时,可以对语言仓中的字符串资源进行更新,此时,各语言版本中的目标语言版本的代码工程可以根据引用地址获取更新后的语言仓,并根据更新后的语言仓对代码工程进行编译,获得目标应用对应目标语言版本的安装包,本申请中只需在语言仓中对字符串资源进行统一修改,之后各语言版本的代码工程可以根据更新后的语言仓直接进行安装包的编译,无需在编译各语言版本的安装包时对各语言版本的字符串资源分别进行同步修改,从而节省了目标应用的字符串资源语言版本的更新时间,提高了更新效率。
附图说明
图1是本申请实施例提供的一种版本更新方法的步骤流程图;
图2是本申请实施例提供的另一种版本更新方法的步骤流程图;
图3是本申请实施例提供的一种版本更新方法的交互示意图;
图4是本申请实施例提供的一种版本更新装置的结构框图;
图5是本申请实施例提供的一种电子设备的结构示意图;
图6为实现本申请实施例的另一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的版本更新方法进行详细地说明。
图1是本申请实施例提供的一种版本更新方法的步骤流程图,如图1所示,该方法可以包括:
步骤101、确定目标应用的目标语言版本,所述目标应用的各语言版本对应的字符串资源共享在所述目标应用对应的语言仓中,所述目标语言版本的代码工程中包含所述语言仓的引用地址。
本申请实施例中,目标应用为通过分析、设计、编码获得的,具有两个以上语言版本的任意APP,其中,可以目标应用是社交类APP、游戏类APP、图像类APP、阅读类APP等;语言版本指目标应用根据不同用户群、发布渠道、发布时间、发布地区等发布的不同版本的目标应用中字符串资源的版本。同一目标应用可能包括多种语言版本,如语言版本可以包括普通版目标应用的语言版本、极速版目标应用的语言版本、海外版目标应用的语言版本、稳定版目标应用的语言版本、开发版目标应用的语言版本等等。
本申请实施例中,一个语言版本中可以包括至少一种语言的字符串资源,如稳定版目标应用的语言版本中包括简体中文、繁体中文、英语的字符串资源,开发版目标应用的语言版本中包括简体中文、繁体中文、英语、日语、法语的字符串资源等;另外,由于不同版本的目标应用可能在功能上也有所差别,语言版本中还可以包括支持该版本目标应用的各功能正常运行的字符串资源,如稳定版为了保持运行的稳定、安全功能较少、开发版为了获得测试数据功能较多等,此时,根据功能的多寡不同版本的目标应用对应的字符串资源也会有所差别,如稳定版的字符串资源少、开发版的字符串资源多等,以支持目标应用的开发版稳定运行。其中,字符串资源指目标应用中提供文本样式、文本格式等的资源。
本申请实施例中,目标应用的不同语言版本对应不同的代码工程,代码工程指集成目标应用对应的语言版本所有的代码的数据库,语言仓是独立于代码工程且包含有目标应用各语言版本共享的字符串资源的数据库,不同的目标应用对应的语言仓不同,其中,语言仓可以包括各语言版本的通用字符串资源,以及各语言版本的独立字符串资源,通用字符串资源指两个以上语言版本均可采用的字符串资源,独立字符串资源指仅一个语言版本可采用的字符串资源。另外,代码工程中预置有语言仓的引用地址,从而使得代码工程根据引用地址调用语言仓。
本申请实施例中,可以在目标应用对应的多种语言版本中先确定目标语言版本,可选地,根据目标应用的实际应用需求目标语言版本可以包括语言仓中所有语言、所有功能对应的字符串资源,也可以是语言仓中的部分语言、部分功能的字符串资源,本申请实施例对此不作具体限制。
如,目标应用对应的语言仓中包括功能1简体中文、功能2简体中文、功能3简体中文、功能1繁体中文、功能2繁体中文、功能3繁体中文、功能1英语、功能2英语、功能3英语的字符串资源。此时,当确定目标应用的目标语言版本为稳定版目标应用的语言版本时,目标语言版本包括功能1简体中文、功能2简体中文、功能1繁体中文、功能2繁体中文的字符串资源;或,当确定目标语言版本为开发版目标应用的语言版本时,目标语言版本包括功能1简体中文、功能2简体中文、功能3简体中文、功能1繁体中文、功能2繁体中文、功能3繁体中文、英语功能1、英语功能2、英语功能3的字符串资源。
步骤102、对所述语言仓中的字符串资源进行更新,得到更新后的语言仓。
本申请实施例中,在测试目标应用或用户使用目标应用的过程中,可能收到字符串资源对应的问题的反馈,如文本丢失、错别字、拼写错误、文本格式错误等等,或者,也可能需要添加新的文本内容、删除旧的文本内容等,此时,可以对语言仓中的字符串资源进行更新,可选地,可以对语言仓中所有的字符串资源进行更新,也可以仅对目标语言版本的字符串资源进行更新。另外,步骤102也可以在步骤101之前执行,在对语言仓中的字符串资源进行更新后,再确定目标应用的目标语言版本,本申请实施例对此不做具体限制。
步骤103、根据所述引用地址,获取所述更新后的语言仓。
本申请实施例中,根据目标语言版本对应的代码工程中包含的引用地址,可以确定语言仓的位置,使得代码工程可以和语言仓对接,从而可以获得语言仓中更新后的字符串资源,可选地,可以在代码工程中内置语言仓对应的模块,并在模块中引入语言仓的引用地址,从而使得代码工程可以调用语言仓中的字符串资源。
步骤104、根据所述更新后的语言仓对所述代码工程进行编译,得到所述目标应用对应所述目标语言版本的安装包。
本申请实施例中,代码工程在与更新后的语言仓对接后,可以根据更新后的语言仓对代码工程进行编译,其中,可以从语言仓的字符串资源中提取代码工程的目标语言版本对应的字符串资源,从而编译得到目标语言版本对应的安装包,可选地,目标语言版本的字符串资源可以包括目标语言版本对应的通用字符串资源、独立字符串资源中的至少一种,本申请实施例对此不作具体限制。
本申请实施例中,可以在目标应用对应的各语言版本中,多次分别确定不同的语言版本为目标语言版本,并重复获取更新后的语言仓进行代码工程编译的步骤,从而获得不同语言版本对应的安装包,其中,只需在第一次编译安装包时对语言仓进行统一的更新,即可将语言仓的更新分别同步到不同目标应用的不同语言版本中。
在本申请实施例中,预置了目标应用对应的语言仓,语言仓中包括目标应用对应的各语言版本对应的字符串资源,同时在目标应用的各语言版本的代码工程中预置语言仓的引用地址,在对目标应用的字符串资源进行更新时,可以对语言仓中的字符串资源进行更新,此时,各语言版本中的目标语言版本的代码工程可以根据引用地址获取更新后的语言仓,并根据更新后的语言仓对代码工程进行编译,获得目标应用对应目标语言版本的安装包,本申请中只需在语言仓中对字符串资源进行统一修改,之后各语言版本的代码工程可以根据更新后的语言仓直接进行安装包的编译,无需在编译各语言版本的安装包时对各语言版本的字符串资源分别进行同步修改,从而节省了目标应用的字符串资源语言版本的更新时间,提高了更新效率。
图2是本申请实施例提供的另一种版本更新方法的步骤流程图,如图2所示,该方法可以包括:
步骤201、获取所述目标应用的各语言版本分别对应的字符串资源。
本申请实施例中,目标应用的各语言版本对应的代码工程的本地分别包含各语言版本对应的字符串资源,此时,可以从代码工程中获取各语言版本分别对应的字符串资源,从而对目标应用的字符串资源进行汇总,可选地,各语言版本可以包括目标应用已发布或开发中的所有语言版本,也可以包括预设时间内发布或开发中的语言版本,本申请实施例对此不做具体限制,其中,目标应用的语言版本可对应参照前述步骤101中目标应用的语言版本的相关描述,为避免重复,在此不再赘述。
步骤202、根据所述各语言版本分别对应的字符串资源,构建所述目标应用对应的语言仓。
本申请实施例中,由于汇总的字符串资源对应于目标应用的各语言版本,因此,其中可能包括大量重复的字符串资源,其中,字符串资源可能在所有语言版本间重复,也可能在部分语言版本间重复,此时,可以对重复的字符串资源进行去重,并将需要去重的字符串资源确定为通用字符串资源,而仅在一个语言版本中包含的字符串资源可以确定为独立字符串资源,将通用字符串资源与独立字符串资源保存在预置的语言仓中,从而构建目标应用对应的语言仓。
步骤203、在所述各语言版本分别对应的代码工程中增加所述语言仓的引用地址,并在所述各语言版本分别对应的代码工程中删除本地的字符串资源。
本申请实施例中,在从代码工程中获取各语言版本分别对应的字符串资源后,可以从各语言版本分别对应的代码工程中删除本地的字符串资源,以减少代码工程的资源占用,并且,在各语言版本分别对应的代码工程中增加语言仓的引用地址,以便后续编译时可以根据该引用地址调用语言仓中的字符串资源,可选地,可以在代码工程中增加语言仓模块,并在语言仓模块中添加语言仓的引用地址,在代码工程中包括源集时还可以在代码配置中将对应源集指向语言仓模块的路径,以便编译时的调用、合并等。
步骤204、确定目标应用的目标语言版本,所述目标应用的各语言版本对应的字符串资源共享在所述目标应用对应的语言仓中,所述目标语言版本的代码工程中包含所述语言仓的引用地址。
本申请实施例中,步骤204可对应参照前述步骤101的相关描述,为避免重复,在此不再赘述。
步骤205、对所述语言仓中的字符串资源进行更新,得到更新后的语言仓。
可选地,对所述语言仓中的字符串资源进行更新,可以包括:
对所述语言仓中的字符串资源执行增加、删除、修改中的至少一种操作。
本申请实施例中,在发现字符串资源的错误,或接收到字符串资源的错误反馈时,可以对语言仓中的字符串资源进行更新,根据字符串资源的错误所属的种类,可以执行对应的操作进行更新,如目标应用的显示文本中存在错别字、拼写错误等,可以对字符串资源执行修改操作,目标应用的显示文本中存在文本缺失错误等,可以对字符串资源执行修改操作,目标应用的显示文本中存在文本重复错误、文本冗余错误等,可以对字符串资源执行删除操作,从而对语言仓中的字符串资源进行更新。
步骤206、根据所述引用地址,获取所述更新后的语言仓。
本申请实施例中,步骤206可对应参照前述步骤103的相关描述,为避免重复,在此不再赘述。
可选地,所述目标应用包括至少两个模块,所述至少两个模块分别对应的字符串资源存储在所述语言仓中的不同文件夹中,所述步骤203包括:
在所述各语言版本分别对应的代码工程的各模块中,增加所述各模块对应所述语言仓中文件夹的引用地址。
本申请实施例中,目标应用可以包括至少两个模块,其中,模块可以根据目标应用的功能进行区分,如社交类APP可以分为聊天模块、动态发布模块等,阅读类APP可以分为图书导入模块、图书显示模块、图书分享模块等,在此基础上,不同模块对应的字符串资源可以分别存储在语言仓不同文件夹中,并且在代码工程的各模块中分别新增语言仓模块,各语言仓模块分别引入代码工程各模块对应的文件夹的引用地址,使得对字符串资源的更新、调用更有针对性,以提高字符串资源更新,以及后续编译的效率,另外,在代码工程中包括源集时代码工程中的各模块源集可以分别指向对应语言仓模块的路径。
可选地,所述步骤206包括:
根据所述文件夹的引用地址,获取所述代码工程各模块在所述更新后的语言仓中对应的文件夹。
本申请实施例中,在代码工程对接语言仓时,代码工程中各模块可以分别根据引用地址在语言仓中获取对应的文件夹,由于代码工程中各模块可能独立划分为不同的代码仓库,在不划分文件夹的情况下每一个代码仓库都会引入语言仓所有的字符串资源,从而导致资源冗余、处理效率低,在根据各模块对字符串资源进行预先划分、分模块引入的情况下,可以有效提高处理效率。
可选地,在上述步骤206之后,还可以包括:
步骤207、扫描所述更新后的语言仓,确定其中的无用字符串资源。
本申请实施例中,由于语言仓中包括各语言版本的字符串资源,因此,可能包括目标语言版本以外的无用字符串资源,如目标语言版本以外语言的字符串资源、目标语言版本以外功能的字符串资源,此时,可以扫描更新后的语言仓,从而确定语言仓中的无用字符串资源,可选地,当本申请实施例应用在安卓平台时,可以通过代码工程中Gradle的lint检查工具在语言仓的字符串资源中确定非目标语言版本对应的无用字符串资源,其中,Gradle是安卓的构建工具,可以支持多种工程的构建,lint检查工具是一种用于对代码中潜在的错误进行检查的工具,可以通过在Gradle中配置lint工具来进行字符串资源的错误检查。
可选地,所述步骤207之前包括:
在所述代码工程中设置白名单。
本申请实施例中,可以预先在目标语言版本的代码工程中设置白名单,白名单中包括语言仓中不需要接受检查的字符串资源的信息,如字符串资源的字符串ID(IdentityDocument,身份标识)、字符串文件名等,可选地,可以在Gradle中提供白名单接口,并通过白名单接口接收字符串资源的字符串ID、字符串文件名等,在lint检查工具对语言仓中的字符串资源进行检查时,可以跳过白名单中的字符串资源,以避免对需要保留的字符串资源额外的检查操作,提高处理效率,同时也避免误删问题。本领域技术人员可以根据实际应用需求,将任意字符串资源加入白名单,本申请实施例对此不作具体限制。
所述步骤207具体包括扫描所述语言仓中所述白名单中未包含的字符串资源,确定其中的无用字符串资源。
如,通过白名单接口Gradle字符串文件名title(标题),则通过lint检查工具对语言仓中的字符串资源进行检查时,不对字符串文件名为title的字符串资源进行检查。
步骤208、在所述更新后的语言仓中删除所述无用字符串资源,得到清洗后的语言仓。
本申请实施例中,可以对语言仓中的无用字符串资源进行删除,保留目标语言版本对应的字符串资源,从而得到清洗后的语言仓。可选地,也可以将无用字符串资源以外的字符串资源复制到代码工程的本地,本申请实施例对此不作具体限制。
步骤209、根据所述清洗后的语言仓对所述代码工程进行编译,得到所述目标应用对应所述目标语言版本的安装包。
本申请实施例中,步骤209可对应参照前述步骤104的相关描述,为避免重复,在此不再赘述。
可选地,在上述步骤209之后,还可以包括:
步骤210、对所述清洗后的语言仓进行还原,得到所述目标应用对应的原始的语言仓。
本申请实施例中,在目标语言版本的安装包编译结束后,可以对语言仓进行还原,得到目标应用对应的原始的语言仓,其中,原始的语言仓为前述更新后、删除无用字符串资源前的语言仓。对语言仓还原后可以确定目标应用对应的另一个语言版本为目标语言版本,并无需再对语言仓进行更新,重复上述步骤206至209编译新的目标语言版本对应的安装包,至目标应用对应的语言版本对应的安装包编译完毕。
在本申请实施例中,预置了目标应用对应的语言仓,语言仓中包括目标应用对应的各语言版本对应的字符串资源,同时在目标应用的各语言版本的代码工程中预置语言仓的引用地址,在对目标应用的字符串资源进行更新时,可以对语言仓中的字符串资源进行更新,此时,各语言版本中的目标语言版本的代码工程可以根据引用地址获取更新后的语言仓,并根据更新后的语言仓对代码工程进行编译,获得目标应用对应目标语言版本的安装包,本申请中只需在语言仓中对字符串资源进行统一修改,之后各语言版本的代码工程可以根据更新后的语言仓直接进行安装包的编译,无需在编译各语言版本的安装包时对各语言版本的字符串资源分别进行同步修改,从而节省了目标应用的字符串资源语言版本的更新时间,提高了更新效率。
图3是本申请实施例提供的一种版本更新方法的交互示意图,以目标应用为安卓平台的应用程序为例,目标应用可以包括多个语言版本,本申请实施例中以目标应用的语言版本包括目标语言版本和其他语言版本为例,如图3所示,该方法通过目标语言版本的代码工程301、其他语言版本的代码工程302以及语言仓303的交互实现,该方法可以包括:
步骤S11、语言仓303接收目标语言版本的代码工程301提交的目标语言版本的字符串资源,以及其他语言版本的代码工程302提交的其他语言版本的字符串资源。
步骤S12、分别在目标语言版本的代码工程301和其他版本的代码工程302中增加语言仓模块,并在语言仓模块中引入语言仓的引用地址。
步骤S13、在目标语言版本的代码工程301中将源集指向语言仓模块路径。
步骤S14、在目标语言版本的代码工程301中通过Gradle的白名单接口,接收无需接受检查的字符串资源的信息,建立白名单。
步骤S15、对语言仓303中的字符串资源进行更新,获得更新后的语言仓。
步骤S16、在目标语言版本的代码工程301中,通过语言仓模块中的引用地址与语言仓303对接,获取更新后的语言仓303。
步骤S17、在更新后的语言仓303中,通过Gradle的lint检查工具扫描更新后的语言仓303,确定其中的无用字符串资源。
步骤S18、删除更新后的语言仓303中的无用字符串资源,得到清洗后的语言仓303。
步骤S19、在目标语言版本的代码工程301中,根据清洗后的语言仓303进行编译,获得目标应用对应目标语言版本的APK(Android application package,安卓应用程序包)安装包。
步骤S20、运行Git reset(Git撤销)命令,对清洗后的语言仓303进行还原,得到目标应用对应的原始的语言仓,并将其他版本的代码工程302作为新的目标语言版本的代码工程,重复上述步骤S16至步骤S18编译新的目标语言版本的代码工程对应的安装包,至目标应用各语言版本对应的安装包编译完毕。
在本申请实施例中,预置了目标应用对应的语言仓,语言仓中包括目标应用对应的各语言版本对应的字符串资源,同时在目标应用的各语言版本的代码工程中预置语言仓的引用地址,在对目标应用的字符串资源进行更新时,可以对语言仓中的字符串资源进行更新,此时,各语言版本中的目标语言版本的代码工程可以根据引用地址获取更新后的语言仓,并根据更新后的语言仓对代码工程进行编译,获得目标应用对应目标语言版本的安装包,本申请中只需在语言仓中对字符串资源进行统一修改,之后各语言版本的代码工程可以根据更新后的语言仓直接进行安装包的编译,无需在编译各语言版本的安装包时对各语言版本的字符串资源分别进行同步修改,从而节省了目标应用的字符串资源语言版本的更新时间,提高了更新效率。
需要说明的是,本申请实施例提供的版本更新方法,执行主体可以为版本更新装置,或者,或者该版本更新装置中的用于执行加载版本更新方法的控制模块。本申请实施例中以版本更新装置执行加载版本更新方法为例,说明本申请实施例提供的版本更新方法。
图4是本申请实施例提供的一种版本更新装置400的结构框图,如图4所示,该装置可以包括:
版本确定模块401,用于确定目标应用的目标语言版本,所述目标应用的各语言版本对应的字符串资源共享在所述目标应用对应的语言仓中,所述目标语言版本的代码工程中包含所述语言仓的引用地址;
资源更新模块402,用于对所述语言仓中的字符串资源进行更新,得到更新后的语言仓;
资源获取模块403,用于根据所述引用地址,获取所述更新后的语言仓;
安装包编译模块404,用于根据所述更新后的语言仓对所述代码工程进行编译,得到所述目标应用对应所述目标语言版本的安装包。
可选地,所述装置还包括:
字符串资源获取模块,用于获取所述目标应用的各语言版本分别对应的字符串资源;
语言仓构建模块,用于根据所述各语言版本分别对应的字符串资源,构建所述目标应用对应的语言仓;
引用地址引入模块,用于在所述各语言版本分别对应的代码工程中增加所述语言仓的引用地址,并在所述各语言版本分别对应的代码工程中删除本地的字符串资源。
可选地,所述目标应用包括至少两个模块,所述至少两个模块分别对应的字符串资源存储在所述语言仓中的不同文件夹中,所述引用地址引入模块具体用于在所述各语言版本分别对应的代码工程的各模块中,增加所述各模块对应所述语言仓中文件夹的引用地址。
所述资源获取模块403,具体用于根据所述文件夹的引用地址,获取所述代码工程各模块在所述更新后的语言仓中对应的文件夹。
可选地,所述装置还包括:
无用资源确定模块,用于扫描所述更新后的语言仓,确定其中的无用字符串资源。
语言仓清洗模块,用于在所述更新后的语言仓中删除所述无用字符串资源,得到清洗后的语言仓。
可选地,所述安装包编译模块404,具体用于根据所述清洗后的语言仓对所述代码工程进行编译,得到所述目标应用对应所述目标语言版本的安装包。
可选地,所述装置还包括:
语言仓还原模块,用于对所述清洗后的语言仓进行还原,得到所述目标应用对应的原始的语言仓。
可选地,所述装置还包括:
白名单设置模块,用于在所述代码工程中设置白名单。
所述无用资源确定模块,具体用于扫描所述语言仓中所述白名单中未包含的字符串资源,确定其中的无用字符串资源。
可选地,所述资源更新模块402,具体用于对所述语言仓中的字符串资源执行增加、删除、修改中的至少一种操作。
本申请实施例中的版本更新装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personaldigital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(NetworkAttached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的版本更新装置可以为具有操作***的装置。该操作***可以为安卓(Android)操作***,可以为ios操作***,还可以为其他可能的操作***,本申请实施例不作具体限定。
本申请实施例提供的版本更新装置能够实现图1至图3的方法实施例中版本更新装置实现的各个过程,为避免重复,这里不再赘述。
在本申请实施例中,预置了目标应用对应的语言仓,语言仓中包括目标应用对应的各语言版本对应的字符串资源,同时在目标应用的各语言版本的代码工程中预置语言仓的引用地址,在对目标应用的字符串资源进行更新时,可以对语言仓中的字符串资源进行更新,此时,各语言版本中的目标语言版本的代码工程可以根据引用地址获取更新后的语言仓,并根据更新后的语言仓对代码工程进行编译,获得目标应用对应目标语言版本的安装包,本申请中只需在语言仓中对字符串资源进行统一修改,之后各语言版本的代码工程可以根据更新后的语言仓直接进行安装包的编译,无需在编译各语言版本的安装包时对各语言版本的字符串资源分别进行同步修改,从而节省了目标应用的字符串资源语言版本的更新时间,提高了更新效率。
可选的,本申请实施例还提供一种电子设备,图5是本申请实施例提供的一种电子设备500的结构示意图,如图5所示,包括处理器501,存储器502,存储在存储器502上并可在所述处理器501上运行的程序或指令,该程序或指令被处理器501执行时实现上述版本更新方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要注意的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图6为实现本申请实施例的另一种电子设备600的硬件结构示意图。
该电子设备600包括但不限于:射频单元601、网络模块602、音频输出单元603、输入单元604、传感器605、显示单元606、用户输入单元607、接口单元608、存储器609、以及处理器610等部件。
本领域技术人员可以理解,电子设备600还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理***与处理器610逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。图6中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,所述处理器610,用于确定目标应用的目标语言版本,所述目标应用的各语言版本对应的字符串资源共享在所述目标应用对应的语言仓中,所述目标语言版本的代码工程中包含所述语言仓的引用地址;对所述语言仓中的字符串资源进行更新,得到更新后的语言仓;根据所述引用地址,获取所述更新后的语言仓;根据所述更新后的语言仓对所述代码工程进行编译,得到所述目标应用对应所述目标语言版本的安装包。
在本申请实施例中,预置了目标应用对应的语言仓,语言仓中包括目标应用对应的各语言版本对应的字符串资源,同时在目标应用的各语言版本的代码工程中预置语言仓的引用地址,在对目标应用的字符串资源进行更新时,可以对语言仓中的字符串资源进行更新,此时,各语言版本中的目标语言版本的代码工程可以根据引用地址获取更新后的语言仓,并根据更新后的语言仓对代码工程进行编译,获得目标应用对应目标语言版本的安装包,本申请中只需在语言仓中对字符串资源进行统一修改,之后各语言版本的代码工程可以根据更新后的语言仓直接进行安装包的编译,无需在编译各语言版本的安装包时对各语言版本的字符串资源分别进行同步修改,从而节省了目标应用的字符串资源语言版本的更新时间,提高了更新效率。
可选地,所述输入单元604,用于获取所述目标应用的各语言版本分别对应的字符串资源。
可选地,所述处理器610,还用于根据所述各语言版本分别对应的字符串资源,构建所述目标应用对应的语言仓;在所述各语言版本分别对应的代码工程中增加所述语言仓的引用地址,并在所述各语言版本分别对应的代码工程中删除本地的字符串资源。
可选地,所述目标应用包括至少两个模块,所述至少两个模块分别对应的字符串资源存储在所述语言仓中的不同文件夹中;
所述处理器610,具体用于在所述各语言版本分别对应的代码工程的各模块中,增加所述各模块对应所述语言仓中文件夹的引用地址。
所述处理器610,具体用于根据所述文件夹的引用地址,获取所述代码工程各模块在所述更新后的语言仓中对应的文件夹。
所述处理器610,还用于扫描所述更新后的语言仓,确定其中的无用字符串资源;在所述更新后的语言仓中删除所述无用字符串资源,得到清洗后的语言仓。
所述处理器610,具体用于根据所述清洗后的语言仓对所述代码工程进行编译,得到所述目标应用对应所述目标语言版本的安装包。
所述处理器610,还用于对所述清洗后的语言仓进行还原,得到所述目标应用对应的原始的语言仓。
所述处理器610,还用于在所述代码工程中设置白名单。
所述处理器610,具体用于扫描所述语言仓中所述白名单中未包含的字符串资源,确定其中的无用字符串资源。
所述处理器610,具体用于对所述语言仓中的字符串资源执行增加、删除、修改中的至少一种操作。
在本申请实施例中,预置了目标应用对应的语言仓,语言仓中包括目标应用对应的各语言版本对应的字符串资源,同时在目标应用的各语言版本的代码工程中预置语言仓的引用地址,在对目标应用的字符串资源进行更新时,可以对语言仓中的字符串资源进行更新,此时,各语言版本中的目标语言版本的代码工程可以根据引用地址获取更新后的语言仓,并根据更新后的语言仓对代码工程进行编译,获得目标应用对应目标语言版本的安装包,本申请中只需在语言仓中对字符串资源进行统一修改,之后各语言版本的代码工程可以根据更新后的语言仓直接进行安装包的编译,无需在编译各语言版本的安装包时对各语言版本的字符串资源分别进行同步修改,从而节省了目标应用的字符串资源语言版本的更新时间,提高了更新效率。
应理解的是,本申请实施例中,输入单元604可以包括图形处理器(GraphicsProcessing Unit,GPU)6041和麦克风6042,图形处理器6041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元606可包括显示面板6061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板6061。用户输入单元607包括触控面板6071以及其他输入设备6072。触控面板6071,也称为触摸屏。触控面板6071可包括触摸检测装置和触摸控制器两个部分。其他输入设备6072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。存储器609可用于存储软件程序以及各种数据,包括但不限于应用程序和操作***。处理器610可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器610中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述版本更新方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述版本更新方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为***级芯片、***芯片、芯片***或片上***芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (10)

1.一种版本更新方法,其特征在于,所述方法包括:
确定目标应用的目标语言版本,所述目标应用的各语言版本对应的字符串资源共享在所述目标应用对应的语言仓中,所述目标语言版本的代码工程中包含所述语言仓的引用地址;
对所述语言仓中的字符串资源进行更新,得到更新后的语言仓;
根据所述引用地址,获取所述更新后的语言仓;
根据所述更新后的语言仓对所述代码工程进行编译,得到所述目标应用对应所述目标语言版本的安装包。
2.根据权利要求1的方法,其特征在于,所述确定目标应用的目标语言版本之前,所述方法还包括:
获取所述目标应用的各语言版本分别对应的字符串资源;
根据所述各语言版本分别对应的字符串资源,构建所述目标应用对应的语言仓;
在所述各语言版本分别对应的代码工程中增加所述语言仓的引用地址,并在所述各语言版本分别对应的代码工程中删除本地的字符串资源。
3.根据权利要求2的方法,其特征在于,所述目标应用包括至少两个模块,所述至少两个模块分别对应的字符串资源存储在所述语言仓中的不同文件夹中;
所述在所述各语言版本分别对应的代码工程中增加所述语言仓的引用地址,包括:
在所述各语言版本分别对应的代码工程的各模块中,增加所述各模块对应所述语言仓中文件夹的引用地址;
所述根据所述引用地址,获取所述更新后的语言仓,包括:
根据所述文件夹的引用地址,获取所述代码工程各模块在所述更新后的语言仓中对应的文件夹。
4.根据权利要求1的方法,其特征在于,所述获取所述更新后的语言仓之后,还包括:
扫描所述更新后的语言仓,确定其中的无用字符串资源;
在所述更新后的语言仓中删除所述无用字符串资源,得到清洗后的语言仓;
所述根据所述更新后的语言仓对所述代码工程进行编译,得到所述目标应用对应所述目标语言版本的安装包,包括:
根据所述清洗后的语言仓对所述代码工程进行编译,得到所述目标应用对应所述目标语言版本的安装包。
5.根据权利要求4的方法,其特征在于,所述得到所述目标应用对应所述目标语言版本的安装包之后,还包括:
对所述清洗后的语言仓进行还原,得到所述目标应用对应的原始的语言仓。
6.根据权利要求4的方法,其特征在于,所述扫描所述更新后的语言仓,确定其中的无用字符串资源之前,还包括:
在所述代码工程中设置白名单;
所述扫描所述更新后的语言仓,确定其中的无用字符串资源,包括:
扫描所述语言仓中所述白名单中未包含的字符串资源,确定其中的无用字符串资源。
7.根据权利要求1的方法,其特征在于,所述对所述语言仓中的字符串资源进行更新,包括:
对所述语言仓中的字符串资源执行增加、删除、修改中的至少一种操作。
8.一种版本更新装置,其特征在于,所述装置包括:
版本确定模块,用于确定目标应用的目标语言版本,所述目标应用的各语言版本对应的字符串资源共享在所述目标应用对应的语言仓中,所述目标语言版本的代码工程中包含所述语言仓的引用地址;
资源更新模块,用于对所述语言仓中的字符串资源进行更新,得到更新后的语言仓;
资源获取模块,用于根据所述引用地址,获取所述更新后的语言仓;
安装包编译模块,用于根据所述更新后的语言仓对所述代码工程进行编译,得到所述目标应用对应所述目标语言版本的安装包。
9.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-7任一所述的版本更新方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-7任一所述的版本更新方法的步骤。
CN202110076459.XA 2021-01-20 2021-01-20 版本更新方法、版本更新装置、电子设备和存储介质 Active CN112711435B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110076459.XA CN112711435B (zh) 2021-01-20 2021-01-20 版本更新方法、版本更新装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110076459.XA CN112711435B (zh) 2021-01-20 2021-01-20 版本更新方法、版本更新装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN112711435A true CN112711435A (zh) 2021-04-27
CN112711435B CN112711435B (zh) 2024-06-04

Family

ID=75549341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110076459.XA Active CN112711435B (zh) 2021-01-20 2021-01-20 版本更新方法、版本更新装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN112711435B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579168A (zh) * 2022-05-05 2022-06-03 苏州浪潮智能科技有限公司 代码更新方法、装置、电子设备和计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479185A (zh) * 2010-11-23 2012-05-30 大连兆阳软件科技有限公司 一种通过服务器端控制软件语言版本的方法
US20120151438A1 (en) * 2010-12-08 2012-06-14 Microsoft Corporation Visual cues based on file type
CN103019736A (zh) * 2012-12-26 2013-04-03 广东欧珀移动通信有限公司 一种语言文件生成方法及装置
CN104123150A (zh) * 2013-04-28 2014-10-29 百度在线网络技术(北京)有限公司 应用程序的语言资源管理方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479185A (zh) * 2010-11-23 2012-05-30 大连兆阳软件科技有限公司 一种通过服务器端控制软件语言版本的方法
US20120151438A1 (en) * 2010-12-08 2012-06-14 Microsoft Corporation Visual cues based on file type
CN103019736A (zh) * 2012-12-26 2013-04-03 广东欧珀移动通信有限公司 一种语言文件生成方法及装置
CN104123150A (zh) * 2013-04-28 2014-10-29 百度在线网络技术(北京)有限公司 应用程序的语言资源管理方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579168A (zh) * 2022-05-05 2022-06-03 苏州浪潮智能科技有限公司 代码更新方法、装置、电子设备和计算机可读存储介质

Also Published As

Publication number Publication date
CN112711435B (zh) 2024-06-04

Similar Documents

Publication Publication Date Title
US10990367B2 (en) Application development method, tool, and device, and storage medium
CN108549538B (zh) 一种代码检测方法、装置、存储介质及测试终端
CN111736840B (zh) 小程序应用的编译方法、运行方法、存储介质及电子设备
CN108536745B (zh) 基于Shell的数据表提取方法、终端、设备及存储介质
CN108205560B (zh) 一种数据同步方法以及装置
CN109669692B (zh) 源码共享方法、服务器、计算机可读存储介质及***
CN112817657B (zh) 一种应用程序启动项加载方法、装置、***及存储介质
CN108197024B (zh) 嵌入式浏览器调试方法、调试终端及计算机可读存储介质
CN111068328A (zh) 游戏广告配置表格的生成方法、终端设备及介质
CN110941779A (zh) 加载页面的方法、装置、存储介质及电子设备
CN110688145A (zh) Android MVP代码自动生成方法、装置、介质、电子设备
CN114780615A (zh) 错误码管理方法及其装置
CN102982217A (zh) 丝印的处理方法和装置
CN112711435B (zh) 版本更新方法、版本更新装置、电子设备和存储介质
CN112835568A (zh) 一种项目构建方法和装置
CN111090651A (zh) 数据源的处理方法、装置、设备及可读存储介质
CN106020616A (zh) 桌面快链图标的更新方法和装置
CN115080114A (zh) 应用程序的移植处理方法、装置和介质
CN115202643A (zh) 图标资源的删除方法、装置、电子设备及介质
CN109634647B (zh) 大型前端项目的构建方法及***
CN112764634A (zh) 内容处理方法及装置
CN111026466A (zh) 文件处理方法、装置、计算机可读存储介质及电子设备
CN110780983A (zh) 任务异常处理方法、装置、计算机设备以及存储介质
CN115421785B (zh) 应用程序的移植处理方法、装置和介质
CN113778488B (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