CN114816570A - 处理配置信息和生成应用程序的方法、装置、设备及介质 - Google Patents

处理配置信息和生成应用程序的方法、装置、设备及介质 Download PDF

Info

Publication number
CN114816570A
CN114816570A CN202210389287.6A CN202210389287A CN114816570A CN 114816570 A CN114816570 A CN 114816570A CN 202210389287 A CN202210389287 A CN 202210389287A CN 114816570 A CN114816570 A CN 114816570A
Authority
CN
China
Prior art keywords
information
authority
storing
application program
configuration
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
Application number
CN202210389287.6A
Other languages
English (en)
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.)
Jingdong City Beijing Digital Technology Co Ltd
Original Assignee
Jingdong City Beijing Digital Technology 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 Jingdong City Beijing Digital Technology Co Ltd filed Critical Jingdong City Beijing Digital Technology Co Ltd
Priority to CN202210389287.6A priority Critical patent/CN114816570A/zh
Publication of CN114816570A publication Critical patent/CN114816570A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例涉及一种处理配置信息和生成应用程序的方法、装置、设备及介质,涉及计算机技术领域。该处理配置信息的方法包括:获取应用程序的配置文件,初始化用于存储配置信息的存储变量;解析所述应用程序的配置文件得到所述应用程序的配置信息,并将所述配置信息存储至与所述配置信息对应的存储变量;返回存储有所述配置信息的存储变量。该生成应用程序的方法包括:根据处理配置信息的方法,基于应用程序的配置文件获取所述应用程序的配置信息;调整所述配置信息,以生成适配于应用平台的应用程序。

Description

处理配置信息和生成应用程序的方法、装置、设备及介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种处理配置信息和生成应用程序的方法、装置、设备及介质。
背景技术
目前,存在诸多不同的Android应用分发渠道及平台,在不同的平台发布应用程序时,由于不同渠道对配置信息(例如包名等信息)的要求各不相同,通常需要开发人员针对每一种平台,通过手动修改配置文件代码(例如,主配置文件,AndroidManifest.xml文件)来修改配置信息。
在实现本发明构思的过程中,发明人发现现有技术中至少存在如下技术问题:针对配置适用于不同应用平台的应用程序的需求,仅能够通过开发人员针对不同平台分别执行不同的大量的手动修改操作来实现,工作量大,效率低,无法实现配置信息的提取及应用的快速配置。
发明内容
有鉴于此,本发明实施例提供一种处理配置信息和生成应用程序的方法、装置、设备及介质,能够通过处理配置文件提取配置信息,从而使得无需开发人员逐一手动修改配置文件以适配不同平台,非开发人员也能够通过修改提取出的配置信息即可快速完成配置,解决了仅能够通过开发人员针对不同平台分别执行不同的大量的手动修改操作来实现且工作量大、效率低的技术问题,大大提升了配置效率,并且从一定程度上解放了人工。
为实现上述目的,第一方面,本发明的实施例提供了一种配置信息处理方法,该方法包括:获取应用程序的配置文件,初始化用于存储配置信息的存储变量;解析所述应用程序的配置文件得到所述应用程序的配置信息,并将所述配置信息存储至与所述配置信息对应的存储变量;返回存储有所述配置信息的存储变量。
根据本发明的实施例,所述配置信息包括应用程序的应用名称、权限信息、图标信息和组件信息,所述存储变量包括应用名称存储变量、权限存储变量、图标存储变量和组件存储变量,所述解析所述应用程序的配置文件得到所述应用程序的配置信息,包括:读取所述配置文件的代码,查找并存储所述应用程序的应用名称;在查找到所述应用名称的情况下,继续读取所述配置文件的代码,查找并存储所述应用程序的权限信息和图标信息;在查找到所述权限信息和所述图标信息的情况下,继续读取所述配置文件的代码,查找并存储所述应用程序的组件信息。
根据本发明的实施例,上述在查找到所述应用名称的情况下,继续读取所述配置文件的代码,查找并存储所述应用程序的权限信息和图标信息,包括:在查找到所述应用名称的情况下,继续读取所述配置文件的代码;在已读取的代码中查找所述应用程序的权限信息和图标信息,在查找到权限信息或图标信息的情况下,将查找到的权限信息存储至所述权限存储变量或将查找到的图标信息存储至所述图标存储变量,并继续读取所述配置文件的代码,直到所述权限信息和所述图标信息被查找到并被分别存储至所述权限存储变量和所述图标存储变量。
根据本发明的实施例,上述在已读取的代码中查找所述权限信息和所述图标信息,包括:在已读取的代码中未查找到所述权限信息的情况下,在所述已读取的代码中查找所述图标信息,在查找到所述图标信息的情况下,将查找到的所述图标信息存储至所述图标存储变量。
根据本发明的实施例,上述权限信息包括第一权限信息和第二权限信息,所述查找到所述权限信息包括查找到所述第一权限信息或所述第二权限信息。
根据本发明的实施例,当所述查找到所述权限信息为查找到所述第二权限信息且未查找到所述第一权限信息的情况下,上述方法还包括:在查找并存储所述应用程序的组件信息之后,继续读取所述配置文件的代码并查找所述第一权限信息,在查找到所述第一权限信息的情况下,将所述第一权限信息存储至所述第一权限存储变量。
根据本发明的实施例,存储所述权限信息的所述权限存储变量为键值结构,上述将查找到的权限信息存储至所述权限存储变量包括:根据所述权限信息确定权限类型和权限名称;以键值结构存储所述权限信息,其中,所述权限存储变量的主键包括所述权限类型和所述权限名称。
根据本发明的实施例,在已读取的代码中查找到权限信息的情况下,上述以键值结构存储所述权限信息包括:将所述权限类型和所述权限名称构建成字符串,作为所述权限存储变量的主键,将所述已读取的代码确定为所述主键对应的值,存储所述权限信息。
根据本发明的实施例,在所述配置文件包括多个组件的组件信息的情况下,上述查找所述应用程序的组件信息包括:针对每一组件,在已读取的代码中查找到该组件的组件信息的情况下,获取描述该组件的组件信息的起始标识;根据所述起始标识确定描述该组件的组件信息的结束标识;继续读取所述配置文件的代码,查找所述结束标识,将由所述起始标识至所述结束标识的代码段描述的信息确定为该组件的组件信息。
根据本发明的实施例,存储所述组件信息的所述组件存储变量为有序键值结构,上述存储所述应用程序的组件信息包括:根据查找到的多个组件的组件信息确定所述多个组件的组件名称;以有序键值结构存储所述多个组件的组件信息,其中,所述组件存储变量的主键包括所述多个组件的组件名称。
根据本发明的实施例,通过正则匹配执行对所述应用程序的应用名称、权限信息、图标信息和组件信息的查找操作。
第二方面,本发明的实施例提供了一种应用程序生成方法,上述方法包括:根据如上所述的配置信息处理方法,基于应用程序的配置文件获取所述应用程序的配置信息;调整所述配置信息,以生成适配于应用平台的应用程序。
第三方面,本发明的实施例提供了一种配置信息处理装置,上述装置包括:初始化模块,用于获取应用程序的配置文件,初始化用于存储配置信息的存储变量;解析模块,用于解析所述应用程序的配置文件得到所述应用程序的配置信息,并将所述配置信息存储至与所述配置信息对应的存储变量;返回模块,用于返回存储有所述配置信息的存储变量。
第四方面,本发明的实施例提供了一种应用程序生成装置,上述装置包括:获取模块,用于根据如上所述的配置信息处理方法,基于应用程序的配置文件获取所述应用程序的配置信息;生成模块,用于调整所述配置信息,以生成适配于应用平台的应用程序。
第五方面,本发明的实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现如上所述的方法。
第六方面,本发明的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的方法。
本发明实施例提供的上述技术方案与现有技术相比至少具有如下优点的部分或全部:
本发明实施例通过解析配置文件提取应用程序的配置信息,存储至存储变量并返回存储变量,从而使得无需开发人员逐一手动修改配置文件以适配不同平台,非开发人员也能够通过修改提取出的配置信息即可快速完成配置,解决了仅能够通过开发人员针对不同平台分别执行不同的大量的手动修改操作来实现且工作量大、效率低的技术问题,大大提升了配置效率,并且从一定程度上解放了人工。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出适用于本发明实施例的配置信息的处理方法及装置的系统架构;
图2示意性示出了根据本发明一实施例的配置信息的处理方法的流程图;
图3示意性示出了根据本发明实施例的操作S204的详细实施流程图;
图4示意性示出了根据本发明一实施例的配置信息的处理方法的流程图;
图5示意性示出了根据本发明一实施例的配置信息的处理装置的结构框图;
图6示意性示出了根据本发明又一实施例的应用程序生成装置的结构框图;以及
图7示意性示出了根据本发明实施例的电子设备的结构框图。
具体实施方式
目前,存在诸多不同的Android应用分发渠道及平台,在不同的平台发布应用程序时,由于不同渠道对配置信息(例如包名等信息)的要求各不相同,通常需要开发人员针对每一种平台,通过手动修改配置文件代码(例如,主配置文件,AndroidManifest.xml文件)来修改配置信息。AndroidManifest.xml文件是Android应用的主配置文件,此文件配置了一个Android应用的包名、SDK版本号、目标版本号、权限信息、启动项、组件信息(包含activity、service、content provider、broadcast receiver等)、元数据等重要信息。
现有技术中,开发人员通常在Android开发工具(例如,Android Studio)中管理及修改主配置文件,并且只能通过手工修改主配置文件代码来修改及维护此配置文件,即需要改动xml文件代码。不同的平台对配置信息的要求各不相同,例如,现有的上百个Android应用分发渠道及平台,不同渠道要求使用不同的包名等信息,同时需要接入不同的渠道官方SDK(SDK,Software Development Kit,软件开发工具包,是辅助开发某一类软件的相关文档、范例和工具的集合)。
因此,在需要配置适用于不同应用平台的应用程序时,在Android官网及一些开发者说明文档里,也只有对AndroidManifest.xml各配置项的说明,没有能够提取配置信息的方法(如处理配置文件、解析配置信息相关的方法),仅能够通过开发人员针对不同平台分别执行不同的大量的手动修改操作来实现,十分费力费时,无法实现非技术人员,如产品人员、运营人员去修改配置或做任何配置管理,工作量大,效率低,无法实现配置信息的提取及应用的快速配置。
有鉴于此,本发明的实施例提供了一种配置信息处理方法,该方法包括:获取应用程序的配置文件,初始化用于存储配置信息的存储变量;解析所述应用程序的配置文件得到所述应用程序的配置信息,并将所述配置信息存储至与所述配置信息对应的存储变量;返回存储有所述配置信息的存储变量。
本发明实施例通过解析配置文件提取应用程序的配置信息,存储至存储变量并返回存储变量,从而使得无需开发人员逐一手动修改配置文件以适配不同平台,非开发人员也能够通过修改提取出的配置信息即可快速完成配置,解决了仅能够通过开发人员针对不同平台分别执行不同的大量的手动修改操作来实现且工作量大、效率低的技术问题,大大提升了配置效率,并且从一定程度上解放了人工。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的第一个示例性实施例提供了一种配置信息处理方法。
图1示意性示出了适用于本发明实施例的配置信息处理方法及装置的系统架构。
参照图1所示,适用于本发明实施例的解析配置文件的方法及装置的系统架构100包括:终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各类客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是显示屏并且支持网页浏览的各种电子设备,例如电子设备包括但不限于智能手机、平板电脑、笔记本电脑、台式计算机、智能手表等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103访问的网页进行数据处理提供服务支持的管理服务器(仅为示例)。管理服务器可以对接收到的访问请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、数据等)反馈给终端设备。
需要说明的是,本发明实施例所提供的配置信息处理方法一般可以由服务器105或具有一定运算能力的终端设备执行。相应地,本发明实施例所提供的配置信息处理装置一般可以设置于服务器105中或上述具有一定运算能力的终端设备中。本发明实施例所提供的配置信息处理方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本发明实施例所提供的配置信息处理装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了根据本发明一实施例的配置信息的处理方法的流程图。
参照图2所示,本发明的实施例提供的配置信息处理方法,包括以下操作:S202、S204和S206。
在操作S202,获取应用程序的配置文件,初始化用于存储配置信息的存储变量。
在操作S204,解析所述应用程序的配置文件得到所述应用程序的配置信息,并将所述配置信息存储至与所述配置信息对应的存储变量。
在操作S206,返回存储有所述配置信息的存储变量。
示例性的,配置文件可以是Android应用主配置文件,即,AndroidManifest.xml文件,对于每个应用来说,根目录中都必须包含一个该主配置文件,并且文件名必须一模一样。该文件中包含了APP的配置信息,系统需要根据里面的内容运行APP的代码,显示界面。具体的,该文件可以包括APP包名(即,应用名称)、SDK版本号、目标版本号、权限信息、启动项、组件信息(包含activity、service、content provider、broadcast receiver等)、元数据等重要信息,其中,activity用于表现功能,service后台运行服务,不提供界面呈现,content provider支持多个应用中存储和读取数据,相当于数据库,broadcast receiver用于接收广播。
操作S202中,初始化用于存储配置信息的存储变量,存储变量可以是字符串变量、键值对、有序键值对等多种类型的变量。以获取的配置信息是应用名称、存储应用名称的应用名称存储变量为一个字符串变量为例,可以具体实施为定义一个字符串变量,作为应用名称存储变量,例如packageName,并初始化该变量packageName,赋初始值,初始值可以为空。
在操作S204~S206中,可以通过解析配置文件提取出APP的配置信息,配置信息可以包括应用程序的应用名称、权限信息、图标信息和组件信息,将配置信息存储至操作S202中已创建的多个存储变量,分别对应地存储上述配置信息。然后返回所述存储变量,从而可以供其他程序或流程使用。
基于上述操作,本发明实施例通过解析配置文件提取应用程序的配置信息,存储至存储变量并返回存储变量,从而使得无需开发人员逐一手动修改配置文件以适配不同平台,非开发人员也能够通过修改提取出的配置信息即可快速完成配置,解决了仅能够通过开发人员针对不同平台分别执行不同的大量的手动修改操作来实现且工作量大、效率低的技术问题,大大提升了配置效率,并且从一定程度上解放了人工。
图3示意性示出了根据本发明实施例的操作S204的详细实施流程图。
参照图3所示,根据本发明实施例提供的配置信息处理方法,配置信息可以包括应用程序的应用名称、权限信息、图标信息和组件信息,存储变量可以包括应用名称存储变量、权限存储变量、图标存储变量和组件存储变量,上述操作S202可以实施为S301、S302和S303:
在操作S301,读取所述配置文件的代码,查找并存储所述应用程序的应用名称;
在操作S302,在查找到所述应用名称的情况下,继续读取所述配置文件的代码,查找并存储所述应用程序的权限信息和图标信息;
在操作S303,在查找到所述权限信息和所述图标信息的情况下,继续读取所述配置文件的代码,查找并存储所述应用程序的组件信息。
图4示意性示出了根据本发明一实施例的配置信息的处理方法的流程图,下面结合图2~图4,以处理主配置文件的配置信息为例,通过一具体示例解释本发明实施例提供的配置信息处理方法。
基于上述操作S202,已初始化的存储变量可以包括应用名称存储变量、权限存储变量、图标存储变量和组件存储变量。示例性的,应用名称存储变量可以是一个字符串变量packageName,用于存储App包名,权限存储变量可以是一个键值对(HashMap<String,String>)permissions,用于存储App权限信息;图标存储变量可以是一个字符串变量icon,用于存储App图标;组件存储变量可以是一个有序键值对(LinkedHashMap<String,String>)components,用于存储APP的组件信息。
然后执行操作S204,即,解析所述应用程序的配置文件得到所述应用程序的配置信息,并将所述配置信息存储至与所述配置信息对应的存储变量,操作S204可以具体实施为操作S301~S303。
具体的,在操作S301,读取主配置文件的代码,查找并存储应用程序的应用名称。在读取主配置文件时,可以逐行读取该xml文件的文本内容,即,代码。读取主配置文件的代码可以实施为定义一个中间变量,例如字符串变量line,那么,通过读取主配置文件的一行文本内容到一个字符串变量line中,并在该变量line中查找应用名称,即可以实现对应用程序的应用名称的查找。
例如,按行读取主配置文件的代码,读取一行内容到字符串变量line中,查找应用名称,即,可以通过如下步骤进行查找:判断该字符串变量line中是否包含字符串"<manifest",如果包含,则通过正则匹配规则"package=\"([^\"]+)"获取到的匹配字符串,然后,将此字符串存储到初始化的应用名称存储变量packageName中,如果字符串变量line中没有包含字符串"<manifest",则继续按行读取代码,即,可以读取下一行文本数据,重复执行上述操作,直到查找到应用名称并存储至存储变量packageName中。
具体的,在操作S302,在查找到应用名称的情况下,继续读取配置文件的代码,查找并存储应用程序的权限信息和图标信息。在查找到权限信息后,可以将权限信息存储至权限存储变量permissions(例如,将权限名存储到permission Map变量)。在查找到图标信息后,可以将图标信息存储至图标存储变量icon。
操作S302还可以进一步包括如下操作:在查找到应用名称的情况下,继续读取配置文件的代码;在已读取的代码中查找应用程序的权限信息和图标信息,在查找到权限信息或图标信息的情况下,将查找到的权限信息存储至权限存储变量或将查找到的图标信息存储至图标存储变量,并继续读取配置文件的代码,直到权限信息和图标信息被查找到并被分别存储至权限存储变量和图标存储变量。
例如,继续按行读取主配置文件,可以将一行文本内容到一个字符串变量line中,在该变量line中查找权限信息,权限信息可以包括第一权限信息和第二权限信息,查找到所述权限信息包括查找到所述第一权限信息或所述第二权限信息。第一权限信息可以是字符串"permission",第二权限信息字符串可以"feature",如果查找到字符串变量line中包含字符串"permission"或者包含字符串"feature",则可以认为是查找到权限信息。
上述查找到权限信息的过程可以具体实施为,判断字符串变量line中是否包含字符串"permission"或者包含字符串"feature",如果包含,则通过正则匹配规则"<([a-z\\-]+)[^>]+name=\"([^\"]+)"获取到匹配变量m1及匹配变量m2,该匹配变量m1可以表示该权限的类型(例如,信息类型,如“uses-permission”、“permission”等),该匹配变量m2可以表示权限名称(如,“android.permission.INTERNET”等)。
在查找到上述权限信息的情况下,可以将查找到的权限信息存储至权限存储变量permissions中。存储权限信息的权限存储变量可以为键值结构,存储权限信息可以包括如下操作:根据所述权限信息确定权限类型和权限名称;以键值结构存储所述权限信息,其中,所述权限存储变量的主键包括所述权限类型和所述权限名称。进一步地,可以将权限类型和权限名称构建成字符串,作为权限存储变量的主键,将所述已读取的代码确定为所述主键对应的值,存储所述权限信息。
以权限存储变量是键值对(HashMap<String,String>)permissions为例,以如下两个示例说明存储权限信息的操作。
在一种可能的实现方式中,当查找到第一权限信息"permission"时,通过上述正则匹配规则可以确定该权限的类型为“uses-permission”、权限名称为“android.permission.INTERNET”,可以通过将匹配变量m1与匹配变量m2以中划线连接作为该权限存储变量的主键,如,“uses-permission-android.permission.INTERNET”。可选的,与该主键对应的值可以为所读取的本行文本内容。
在另一种可能的实现方式中,当查找到第二权限信息"feature"时,通过上述正则匹配规则可以确定该权限的类型为“uses”、权限名称为“android.hardware.bluetooth”,可以通过将匹配变量m1与匹配变量m2以中划线连接作为该权限存储变量的主键,如,“uses-feature-android.hardware.bluetooth”。可选的,与该主键对应的值可以为所读取的本行文本内容。
上述在已读取的代码中查找权限信息和图标信息,进一步包括如下操作:在已读取的代码中未查找到权限信息的情况下,在所述已读取的代码中查找图标信息,在查找到图标信息的情况下,将查找到的图标信息存储至图标存储变量。
例如,如果字符串变量line中没有包含字符串"permission"或者包含字符串"feature",即,未找到权限信息,则在该已读取的代码中查找图标信息,具体可以通过如下操作进行查找:判断line中是否包含字符串"<application",如果包含,则通过正则匹配规则"android:icon=\"@drawable/([^\"]+)\""获取到其中的android:icon对应的值,并将此值存储到图标信息存储变量icon中。如果不包含字符串"<application",则继续读取一行文本到字符串变量line中,并重复执行上述查找权限信息和图标信息的操作,直到权限信息和图标信息都被查找到并被分别存储至权限存储变量和图标存储变量。
具体的,在操作S303,在查找到所述权限信息和所述图标信息的情况下,继续读取所述配置文件的代码,查找并存储所述应用程序的组件信息。在配置文件包括多个组件的组件信息的情况下,操作S303还可以进一步包括如下操作:针对每一组件,在已读取的代码中查找到该组件的组件信息的情况下,获取描述该组件的组件信息的起始标识;根据起始标识确定描述该组件的组件信息的结束标识;继续读取配置文件的代码,查找所述结束标识,将由起始标识至结束标识的代码段描述的信息确定为该组件的组件信息。
例如,继续按行读取主配置文件,可以将一行文本内容到一个字符串变量line中,在该变量line中查找组件信息。上述查找组件信息的过程可以具体实施为,对于每一个组件,继续按行读取代码,判断字符串变量line是否匹配正则规则"<([a-z\\-]+)[^>]+name=\"([^\"]+)",如果匹配,即,查找到该组件的组件信息的情况下,获取描述该组件的组件信息的起始标识,然后根据起始标识确定描述该组件的组件信息的结束标识,可以通过定义中间变量来查找结束标识,例如令中间变量的值为结束标识,令变量tag(定义的中间变量,如字符串变量tag)等于"</{匹配到字符串1}>",并继续读取主配置文件文本一行内容到字符串变量line中,直到检查到line变量中含有tag值为止,即,查找到结束标识。
由此,可以确定由起始标识至结束标识的代码段描述的信息确定为该组件的组件信息,在实际应用中,一个组件的组件信息通常包含多行代码,(例如,4行、5行等),可以将一个组件的组件信息包含的所有行串联成一个字符串,并存储到components对象中(例如,将组件值存储到component有序Map变量)。
存储所述组件信息的所述组件存储变量为有序键值结构,存储上述组件信息可以具体实施为如下操作,根据查找到的多个组件的组件信息确定多个组件的组件名称;以有序键值结构存储多个组件的组件信息,其中,所述组件存储变量的主键包括所述多个组件的组件名称
上述操作中,使用有序键值对(LinkedHashMap)存储组件信息,能够确保存储的组件信息值是有序的,在实际应用场景中,通常采用有序键值对存储组件信息,以避免仅使用键值对(HashMap)存储的组件信息值无序,可能会导致的未知问题。因此,使用有序键值对进行存储的可靠性更高。
示例性的,上述查找并存储组件信息的操作可以通过多种计算机语言实现,例如,java,python等。
可选的,上述查找组件信息的操作还可以进一步包括如下步骤,如果判断字符串变量line不匹配正则规则"<([a-z\\-]+)[^>]+name=\"([^\"]+)",则判断line是否包含</application>字符串,如果包含,则继续读取所述配置文件的代码。在实际应用中,由于AndroidManifest.xml文件固有的格式及数据特点,主配置文件中关于权限信息"permission"的文本可能存在于应用名称信息之后,还可能存在于组件信息之后。在一种可能的实施方式中,当操作S302中查找到权限信息为查找到第二权限信息且未查找到第一权限信息的情况下,即已查找到"feature"未查找到"permission",这种情况下,继续读取所述配置文件的代码并查找所述第一权限信息,在查找到所述第一权限信息的情况下,将所述第一权限信息存储至所述第一权限存储变量。
例如,按行读取主配置文件的代码,读取一行内容到字符串变量line中,查找应用名称,即,可以通过如下步骤查找第一权限信息:判断字符串变量line中是否包含字符串"permission",如果包含,可以通过将匹配变量m1与匹配变量m2以中划线连接作为该权限存储变量的主键,如,“uses-permission-android.permission.INTERNET”,将权限信息存储至键值对变量permissions。可选的,与该主键对应的值可以为所读取的本行文本内容。然后,继续读取主配置文件的代码,判断是否读取到主配置文件文本最后一行,如果还没有到最后一行,则继续读取配置文件并执行上述查找权限信息的操作,如果已经读取到最后一行文本,则结束文件读取。
具体的,在操作S206,返回存储有所述配置信息的存储变量。在上述示例中,执行上述解析配置信息及存储配置信息的操作后,可以返回存储变量、权限存储变量、图标存储变量和组件存储变量。
可选的,在上述示例中,通过正则匹配执行对所述应用程序的应用名称、权限信息、图标信息和组件信息的查找操作。需要说明的是,正则匹配仅为一种可选的实施方式,上述查找操作还可以通过其他方式来实现,例如通过字符串查找等方式,相比于通过字符串查找等方式需大量代码枚举所有可能的情况进行查找,通过根据本发明实施例的方法,采用正则匹配可以大大提升了效率和计算速度,其算法时间复杂度为O(n)及空间复杂度为n,均较优,解析速度较快,从而实现更快速地查找和匹配到配置信息,进而在实际应用中可以更加高效地完成应用的快速配置。
基于上述操作,本发明实施例通过解析配置文件提取应用程序的配置信息,存储至存储变量并返回存储变量,从而使得无需开发人员逐一手动修改配置文件以适配不同平台,非开发人员也能够通过修改提取出的配置信息即可快速完成配置,解决了仅能够通过开发人员针对不同平台分别执行不同的大量的手动修改操作来实现且工作量大、效率低的技术问题,大大提升了配置效率,并且从一定程度上解放了人工。
此外,上述配置信息处理方法充分运用了主配置文件的结构及数据特点,通过正则匹配检索字符串、和遍历读取等技术手段,可以快速地将Android应用的主配置文件AndroidManifest.xml内的配置项抽离到不同的存储对象(变量)中。同时,算法时间复杂度O(n)及空间复杂度n均较优,解析速度较快,并且,还可以作为核心关键基础算法,广泛应用于主配置文件的在线管理工具、批量管理工具、主配置文件合并工具等应用场景,即,基于返回的存储对象,可以结合其他开发框架或程序,能够快速实现多种功能,提高效率,进一步解放人工。
例如,根据本发明实施例的配置信息处理方法可以与java web开发框架结合,构建出主配置文件的在线管理工具,即,非开发人员可以在简单易用的web版在线管理工具中,基于前端web交互界面展示的配置信息,在线配置和管理应用的具体配置信息,从而实现了快速完成配置,大大提升了配置效率和灵活度。
又如,根据本发明实施例的配置信息处理方法还可以结合后端程序,搭建出Android应用的主配置批量管理工具、主配置文件合并工具,既可以针对多个渠道平台,将同一个应用包按照不用渠道的要求,批量修改配置信息以适配各种平台,从而进一步实现自动批量打包和分发至多种不同渠道的功能,还可以处理多个应用的批量处理,如Android的APK包合并等。
本发明的第二个示例性实施例提供了一种应用程序生成方法。该应用程序生成方法包括:根据如上所述的配置信息处理方法,基于应用程序的配置文件获取所述应用程序的配置信息;调整所述配置信息,以生成适配于应用平台的应用程序。
示例性的,在根据本发明实施例的配置信息处理方法获取所述应用程序的配置信息后,可通过调整配置信息来对应用进行配置,例如,针对不同渠道平台,可以修改和管理配置信息使得应用适配于各个平台。基于此,实现了无需开发人员逐一手动修改配置文件以适配不同平台,非开发人员也能够通过修改提取出的配置信息即可快速完成配置,大大提升了配置效率和灵活度,并且可以进一步实现自动批量地生成应用,实现更快速、高效的批处理功能。
本发明的第三个示例性实施例提供了一种配置信息处理装置。
图5示意性示出了根据本发明一实施例的配置信息处理的结构框图。
参照图5所示,本发明实施例提供的配置信息处理装置500,包括初始化模块501、解析模块502和返回模块503。
上述初始化模块501用于获取应用程序的配置文件,初始化用于存储配置信息的存储变量。
上述解析模块502用于解析所述应用程序的配置文件得到所述应用程序的配置信息,并将所述配置信息存储至与所述配置信息对应的存储变量。上述解析模块502还可以进一步包括应用名称解析模块、权限信息和图标信息解析模块、组件信息解析模块,其中,上述应用名称解析模块用于读取所述配置文件的代码,查找并存储所述应用程序的应用名称;上述权限信息和图标信息解析模块用于在查找到所述应用名称的情况下,继续读取所述配置文件的代码,查找并存储所述应用程序的权限信息和图标信息;上述组件信息解析模块用于在查找到所述权限信息和所述图标信息的情况下,继续读取所述配置文件的代码,查找并存储所述应用程序的组件信息。
上述返回模块503用于返回存储有所述配置信息的存储变量。
上述初始化模块501、解析模块502和返回模块503中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。初始化模块501、解析模块502和返回模块503中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,初始化模块501、解析模块502和返回模块503中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
本发明的第四个示例性实施例提供了一种应用程序生成装置。
图6示意性示出了根据本发明又一实施例的应用程序生成装置的结构框图。
参照图6所示,本发明实施例提供的应用程序生成装置600,包括获取模块601和生成模块602。
上述获取模块601用于根据如上所述的配置信息处理方法,基于应用程序的配置文件获取所述应用程序的配置信息。
上述生成模块602用于调整所述配置信息,以生成适配于应用平台的应用程序。
上述获取模块601和生成模块602中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。获取模块601和生成模块602中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块601和生成模块602中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
本发明的第五个示例性实施例提供了一种电子设备。
图7示意性示出了本发明实施例提供的电子设备的结构框图。
参照图7所示,本发明实施例提供的电子设备700包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701、通信接口702和存储器703通过通信总线704完成相互间的通信;存储器703,用于存放计算机程序;处理器701,用于执行存储器上所存放的程序时,实现如上所述的配置信息处理方法或应用程序生成方法。
本发明的第六个示例性实施例还提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的配置信息处理方法或应用程序生成方法。
该计算机可读存储介质可以是上述实施例中描述的设备/装置中所包含的;也可以是单独存在,而未装配入该设备/装置中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本发明实施例的配置信息处理方法或应用程序生成方法。
根据本发明的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所发明的原理和新颖特点相一致的最宽的范围。

Claims (16)

1.一种配置信息的处理方法,其特征在于,包括:
获取应用程序的配置文件,初始化用于存储配置信息的存储变量;
解析所述应用程序的配置文件得到所述应用程序的配置信息,并将所述配置信息存储至与所述配置信息对应的存储变量;
返回存储有所述配置信息的存储变量。
2.根据权利要求1所述的方法,其特征在于,所述配置信息包括应用程序的应用名称、权限信息、图标信息和组件信息,所述存储变量包括应用名称存储变量、权限存储变量、图标存储变量和组件存储变量,所述解析所述应用程序的配置文件得到所述应用程序的配置信息,并将所述配置信息存储至与所述配置信息对应的存储变量,包括:
读取所述配置文件的代码,查找并存储所述应用程序的应用名称;
在查找到所述应用名称的情况下,继续读取所述配置文件的代码,查找并存储所述应用程序的权限信息和图标信息;
在查找到所述权限信息和所述图标信息的情况下,继续读取所述配置文件的代码,查找并存储所述应用程序的组件信息。
3.根据权利要求2所述的方法,其特征在于,所述在查找到所述应用名称的情况下,继续读取所述配置文件的代码,查找并存储所述应用程序的权限信息和图标信息,包括:
在查找到所述应用名称的情况下,继续读取所述配置文件的代码;
在已读取的代码中查找所述应用程序的权限信息和图标信息,在查找到权限信息或图标信息的情况下,将查找到的权限信息存储至所述权限存储变量或将查找到的图标信息存储至所述图标存储变量,并继续读取所述配置文件的代码,直到所述权限信息和所述图标信息被查找到并被分别存储至所述权限存储变量和所述图标存储变量。
4.根据权利要求3所述的方法,其特征在于,所述在已读取的代码中查找所述权限信息和所述图标信息,包括:
在已读取的代码中未查找到所述权限信息的情况下,在所述已读取的代码中查找所述图标信息,在查找到所述图标信息的情况下,将查找到的所述图标信息存储至所述图标存储变量。
5.根据权利要求4所述的方法,其特征在于,所述权限信息包括第一权限信息和第二权限信息,所述查找到所述权限信息包括查找到所述第一权限信息或所述第二权限信息。
6.根据权利要求5所述的方法,其特征在于,当所述查找到所述权限信息为查找到所述第二权限信息且未查找到所述第一权限信息的情况下,所述方法还包括:
在查找并存储所述应用程序的组件信息之后,继续读取所述配置文件的代码并查找所述第一权限信息,在查找到所述第一权限信息的情况下,将所述第一权限信息存储至所述第一权限存储变量。
7.根据权利要求3所述的方法,其特征在于,存储所述权限信息的所述权限存储变量为键值结构,所述将查找到的权限信息存储至所述权限存储变量包括:
根据所述权限信息确定权限类型和权限名称;
以键值结构存储所述权限信息,其中,所述权限存储变量的主键包括所述权限类型和所述权限名称。
8.根据权利要求7所述的方法,其特征在于,在已读取的代码中查找到权限信息的情况下,所述以键值结构存储所述权限信息包括:
将所述权限类型和所述权限名称构建成字符串,作为所述权限存储变量的主键,将所述已读取的代码确定为所述主键对应的值,存储所述权限信息。
9.根据权利要求2所述的方法,其特征在于,在所述配置文件包括多个组件的组件信息的情况下,查找所述应用程序的组件信息包括:
针对每一组件,在已读取的代码中查找到该组件的组件信息的情况下,获取描述该组件的组件信息的起始标识;
根据所述起始标识确定描述该组件的组件信息的结束标识;
继续读取所述配置文件的代码,查找所述结束标识,将由所述起始标识至所述结束标识的代码段描述的信息确定为该组件的组件信息。
10.根据权利要求9所述的方法,其特征在于,存储所述组件信息的所述组件存储变量为有序键值结构,所述存储所述应用程序的组件信息包括:
根据查找到的多个组件的组件信息确定所述多个组件的组件名称;
以有序键值结构存储所述多个组件的组件信息,其中,所述组件存储变量的主键包括所述多个组件的组件名称。
11.根据权利要求2至10中任一项所述的方法,其特征在于,通过正则匹配执行对所述应用程序的应用名称、权限信息、图标信息和组件信息的查找操作。
12.一种应用程序生成方法,其特征在于,包括:
根据权利要求1至11中任一项所述的配置信息的处理方法,基于应用程序的配置文件获取所述应用程序的配置信息;
调整所述配置信息,以生成适配于应用平台的应用程序。
13.一种配置信息的处理装置,其特征在于,包括:
初始化模块,用于获取应用程序的配置文件,初始化用于存储配置信息的存储变量;
解析模块,用于解析所述应用程序的配置文件得到所述应用程序的配置信息,并将所述配置信息存储至与所述配置信息对应的存储变量;
返回模块,用于返回存储有所述配置信息的存储变量。
14.一种应用程序生成装置,其特征在于:
获取模块,用于根据权利要求1至11中任一项所述的配置信息的处理方法,基于应用程序的配置文件获取所述应用程序的配置信息;
生成模块,用于调整所述配置信息,以生成适配于应用平台的应用程序。
15.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现如权利要求1至11中任一项或权利要求12所述的方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至11中任一项或权利要求12所述的方法。
CN202210389287.6A 2022-04-13 2022-04-13 处理配置信息和生成应用程序的方法、装置、设备及介质 Pending CN114816570A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210389287.6A CN114816570A (zh) 2022-04-13 2022-04-13 处理配置信息和生成应用程序的方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210389287.6A CN114816570A (zh) 2022-04-13 2022-04-13 处理配置信息和生成应用程序的方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN114816570A true CN114816570A (zh) 2022-07-29

Family

ID=82537338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210389287.6A Pending CN114816570A (zh) 2022-04-13 2022-04-13 处理配置信息和生成应用程序的方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114816570A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139025A (zh) * 2011-12-05 2013-06-05 艾默生网络能源系统北美公司 Modbus设备的接入方法及系统
CN110795140A (zh) * 2019-09-26 2020-02-14 连连银通电子支付有限公司 一种配置文件生成方法及装置
CN110941453A (zh) * 2019-10-31 2020-03-31 苏州浪潮智能科技有限公司 基板管理控制器bmc配置初始化的方法及装置
CN111708582A (zh) * 2020-05-21 2020-09-25 北京百度网讯科技有限公司 上线配置方法、装置、电子设备
CN113407194A (zh) * 2021-07-26 2021-09-17 北京京东乾石科技有限公司 一种部署软件的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139025A (zh) * 2011-12-05 2013-06-05 艾默生网络能源系统北美公司 Modbus设备的接入方法及系统
CN110795140A (zh) * 2019-09-26 2020-02-14 连连银通电子支付有限公司 一种配置文件生成方法及装置
CN110941453A (zh) * 2019-10-31 2020-03-31 苏州浪潮智能科技有限公司 基板管理控制器bmc配置初始化的方法及装置
CN111708582A (zh) * 2020-05-21 2020-09-25 北京百度网讯科技有限公司 上线配置方法、装置、电子设备
CN113407194A (zh) * 2021-07-26 2021-09-17 北京京东乾石科技有限公司 一种部署软件的方法和装置

Similar Documents

Publication Publication Date Title
US10942708B2 (en) Generating web API specification from online documentation
CN107665233B (zh) 数据库数据处理方法、装置、计算机设备和存储介质
US10528675B2 (en) Context-aware translation memory to facilitate more accurate translation
CN107302597B (zh) 消息文案推送方法和装置
CN107506256B (zh) 一种崩溃数据监控的方法和装置
US10169005B2 (en) Consolidating and reusing portal information
CN110020358B (zh) 用于生成动态页面的方法和装置
CN110895471A (zh) 安装包生成方法、装置、介质及电子设备
US20200302350A1 (en) Natural language processing based business domain modeling
CN111124480A (zh) 应用程序包的生成方法、装置、电子设备及存储介质
CN108932640B (zh) 用于处理订单的方法和装置
CN111381899A (zh) 用于开发目标系统的方法和装置
CN108959294B (zh) 一种访问搜索引擎的方法和装置
CN110851343A (zh) 一种基于决策树的测试方法和装置
CN116414407A (zh) 组件安装和数据处理的方法、装置、设备及介质
CN114816570A (zh) 处理配置信息和生成应用程序的方法、装置、设备及介质
CN115543959A (zh) 一种数据差异性对比方法、装置、设备及介质
CN108268545B (zh) 一种分级的用户标签库的创建的方法和装置
CN114912003A (zh) 文档搜索方法、装置、计算机设备及存储介质
CN112835901A (zh) 文件存储方法及装置、计算机设备、计算机可读存储介质
CN115905274A (zh) 数据处理的方法、装置、电子设备及介质
CN115017185A (zh) 一种数据处理方法、装置及存储介质
CN113765868B (zh) 一种业务处理方法和装置
CN114168852A (zh) 一种针对关键词的网络文档搜索方法及系统
CN118075345A (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