CN111552517A - 应用程序启动方法、装置、电子设备及计算机存储介质 - Google Patents

应用程序启动方法、装置、电子设备及计算机存储介质 Download PDF

Info

Publication number
CN111552517A
CN111552517A CN201910063172.6A CN201910063172A CN111552517A CN 111552517 A CN111552517 A CN 111552517A CN 201910063172 A CN201910063172 A CN 201910063172A CN 111552517 A CN111552517 A CN 111552517A
Authority
CN
China
Prior art keywords
decompression
independent component
initialization
result
application program
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
CN201910063172.6A
Other languages
English (en)
Other versions
CN111552517B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910063172.6A priority Critical patent/CN111552517B/zh
Publication of CN111552517A publication Critical patent/CN111552517A/zh
Application granted granted Critical
Publication of CN111552517B publication Critical patent/CN111552517B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明实施例提供了一种应用程序启动方法、装置、电子设备及计算机存储介质。其中,所述应用程序启动方法包括:根据接收的所述应用程序的启动指令,获取启动所述应用程序所需的独立组件信息;依据所述独立组件信息,确定所述独立组件初始化所需的数据是否完成解压缩操作;若完成解压,则根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,以启动所述应用程序。通过本发明实施例,可以提升初始化速度,减小应用程度启动速度。

Description

应用程序启动方法、装置、电子设备及计算机存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种应用程序启动方法、装置、电子设备及计算机存储介质。
背景技术
随着各种应用程序功能的不断完善和提升,应用程序的数据量越来越大,为了减小应用程序的体积,将应用程序中的部分功能分割出来,形成一个独立组件。在应用程序启动过程中需要这些独立组件进行初始化。
以Android系统的浏览器中的内核组件初始化为例,其初始化过程一般包括下述的至少部分步骤:下载安装包APK,解压APK,加载APK中的Dex文件(又称Load Dex或者ODEX),安全校验,加载APK中的so文件(又称Load so),渲染引擎初始化以及生成新的WebView(又称new WebView)。
由于独立组件的功能也越来越丰富,其数据部分越来越庞大,由此导致初始化时间越来越长,导致应用程序启动所需时间较长。
发明内容
有鉴于此,本发明实施例提供一种应用程序启动方案,以解决上述部分或全部问题。
根据本发明实施例的第一方面,提供了一种应用程序启动方法,包括:根据接收的所述应用程序的启动指令,获取启动所述应用程序所需的独立组件信息;依据所述独立组件信息,确定所述独立组件初始化所需的数据是否完成解压缩操作;若完成解压,则根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,以启动所述应用程序。
根据本发明实施例的第二方面,提供了一种应用程序启动装置,包括:获取模块,用于根据接收的所述应用程序的启动指令,获取启动所述应用程序所需的独立组件信息;解压确认模块,用于依据所述独立组件信息,确定所述独立组件初始化所需的数据是否完成解压缩操作;初始化模块,用于在完成解压时,根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,以启动所述应用程序。
根据本发明实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面所述的应用程序启动方法对应的操作。
根据本发明实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的应用程序启动方法。
根据本发明实施例提供的应用程序启动方案,根据启动指令启动应用程序时,获取启动应用程序所需的独立组件信息,依据独立组件信息确定述独立组件初始化所需的数据是否完成解压缩操作,若完成解压,则根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,以启动所述应用程序。由于具有确定是否完成解压缩操作的步骤,因此可以预先完成解压缩操作,在初始化独立组件时若确定完成解压,则根据解压结果完成初始化,从而提升在应用程序启动时,独立组件初始化的速度,降低时间占用,提升应用程序启动速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例一的一种应用程序启动方法的步骤流程图;
图2为根据本发明实施例二的一种应用程序启动方法的步骤流程图;
图3为根据本发明实施例三的一种应用程序启动方法的步骤流程图;
图4为根据本发明实施例四的一种应用程序启动装置的结构框图;
图5为根据本发明实施例五的一种应用程序启动装置的结构框图;
图6为根据本发明实施例六的一种电子设备的结构示意图;
图7为根据本使用场景中的Android系统中应用程序启动过程的步骤示意图。
具体实施方式
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
下面结合本发明实施例附图进一步说明本发明实施例具体实现。
实施例一
参照图1,示出了根据本发明实施例一的一种应用程序启动方法的步骤流程图。
本实施例的应用程序启动方法包括以下步骤:
步骤S102:根据接收的所述应用程序的启动指令,获取启动所述应用程序所需的独立组件信息。
所述独立组件是独立于所述应用程序的,用于为所述应用程序提供功能支持的组件。
例如,一些应用程序内嵌有web页面,为了展示web页面需要使用具有渲染功能的渲染引擎进行web页面渲染。由于渲染引擎本身体积(size)过大,通常不会集成在这些应用程序中,而是以独立组件形式存在。
当所述应用程序启动时,可以根据启动指令确定所述应用程序所需的独立组件信息。所述独立组件信息可以是独立组件的安装包标识或URL(Uniform Resource Locator,统一资源定位符)等。
步骤S104:依据所述独立组件信息,确定所述独立组件初始化所需的数据是否完成解压缩操作。
根据不同的所述独立组件,其初始化过程可能不同,初始化所需的数据也可能不同。
例如,应用在Android系统中的浏览器中的内核组件的初始化过程一般包括以下过程:下载安装包APK,解压所述安装包APK,预提取所述安装包APK中的可执行文件Dex(又称Load Dex或者ODEX),安全校验,加载安装包APK中的so文件(又称Load so),渲染引擎初始化以及生成新的WebView(又称new WebView)。
其中,为了尽可能的减小安装包的体积,便于传输,使用户下载更加方便、下载效率更高,安装包通常是将所述独立组件的数据进行压缩形成的。
在进行所述独立组件初始化时,需要对所述安装包进行解压缩操作,以获取所述安装包中所述独立组件初始化所需的数据。但是,由于所述独立组件本身的数据较多,导致其安装包进行解压缩操作所需的时间较长,使得所述独立组件初始化较慢,进而导致应用程序启动较慢。
本实施例中,为了提升独立组件初始化速度,在所述独立组件初始化时,不直接对安装包进行解压缩操作,而是确定所述独立组件初始化所需的数据是否已完成解压缩操作,若已完成解压,则执行步骤S106,根据解压结果完成对所述独立组件的初始化;或者,若未完成解压,则执行解压缩操作,再根据解压结果完成对所述独立组件的初始化。
这样可以将独立组件初始化过程中占有时间比较长的解压缩操作,从初始化过程中解耦出来,提前完成,从而提升初始化速度,降低所述独立组件初始化占用时间。
步骤S106:若完成解压,则根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,以启动所述应用程序。
完成对所述独立组件的初始化时,本领域技术人员可以根据需要,确定匹配的初始化过程,完成对独立组件的初始化,以启动所述应用程序。
例如,根据所述解压结果,加载APK中的so文件(又称Load so),渲染引擎初始化以及生成新的WebView(又称new WebView),完成对独立组件的初始化,以启动所述应用程序。
在一具体实现中,所述解压缩操作的解压结果可以存储于所述独立组件所在的设备中。例如,所述解压缩操作的解压结果集成在所述独立组件所在设备的固件系统(ROM)中。由于固件系统中的数据通常不对用户开放写入权限(如修改和删除等权限),因此可以防止用户在使用时误操作删除或修改解压结果,可以有效保证所述独立组件初始化的速度和可靠性。
通过本实施例,根据启动指令启动应用程序时,获取启动应用程序所需的独立组件信息,依据独立组件信息确定述独立组件初始化所需的数据是否完成解压缩操作,若完成解压,则根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,以启动所述应用程序。由于具有确定是否完成解压缩操作的步骤,因此可以预先完成解压缩操作,在初始化独立组件时若确定完成解压,则根据解压结果完成初始化,从而提升在应用程序启动时,独立组件初始化的速度,降低时间占用,提升应用程序启动速度。
本实施例的应用程序启动方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机等。
实施例二
参照图2,示出了根据本发明实施例二的一种应用程序启动方法的步骤流程图。
本实施例的应用程序启动方法包括前述的步骤S102~步骤S106。
其中,步骤S104包括以下子步骤:
子步骤S1041:依据所述独立组件信息,确定所述独立组件所在设备中是否存在与所述独立组件初始化所需的数据对应的解压结果。
在本申请的一具体实现中,以所述独立组件信息包括所述独立组件的安装包标识为例,依据所述安装包标识确定所述独立组件初始化所需的数据,进而确定所述独立组件所在设备中是否存在与所述所需的数据对应的解压结果。
其中,在确定所述所需的数据时,可以根据所述安装包标识和预设的数据记录,确定与所述安装包标识对应的所述所需的数据。当然,也可以根据需要,采用其他匹配的方式确定所述所需的数据。
在确定是否存在与所述所需的数据对应的解压结果时,可以通过查找所述独立组件所在设备,确定所述设备上是否有非压缩格式的文件的文件名与所述所需的数据名称一致的方式,确定是否存在对应的解压结果。
或者,为了提升初始化速度,预先在设备上建立文件索引,通过查询文件索引的方式,确定是否存在对应的解压结果。
又或者,针对集成在固件系统中的解压结果,在查找时,仅查找所述独立组件所在设备中固件系统路径下是否存在非压缩格式的文件的文件名与所述所需的数据名称一致。这样可以减少查找量,从而减少初始化用时。
当然,在其他实施例中,本领域技术人员可以根据需要,选择其他任意匹配的方式确定解压结果是否存在,本实施例对此不作限定。
子步骤S1042:若存在解压结果,则确定所述独立组件初始化所需的数据完成解压缩操作。
若存在解压结果,则确定所述独立组件初始化所需的数据完成解压缩操作,后续初始化过程可以直接根据存在的所述解压结果执行,以提升初始化速度。反之,若不存在解压结果,则需要对所述所需的数据进行解压缩操作,以获得解压结果。
由上,通过本实施例,通过确定独立组件所在设备中是否存在解压结果,可以准确确定是否已完成对独立组件初始化所需的数据的解压缩操作,防止独立组件初始化失败。
此外,由于未直接执行解压缩操作,而是依据独立组件信息确定述独立组件初始化所需的数据是否完成解压缩操作,因此可以预先完成解压缩操作。在确定完成解压时,根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,可以提升在应用程序启动时,独立组件初始化的速度,降低时间占用,提升应用程序启动速度。
本实施例的应用程序启动方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机等。
实施例三
参照图3,示出了根据本发明实施例三的一种应用程序启动方法的步骤流程图。
本实施例的应用程序启动方法包括前述的步骤S102~S106。
其中,所述步骤S104可以采用实施例二中所述的实现方式,或其他实现方式。
在本实施例中,所述步骤S106包括以下子步骤:
子步骤S1061:若完成解压,则确定是否完成预提取所述解压结果中的可执行文件的操作。
可执行文件是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样。例如,在Android系统中,可执行文件以.dex或.odex为扩展名。在windows系统中,可执行文件以.exe为扩展名。
现有技术中,所述独立组件在每次启动时,需要从解压结果中提取可执行文件,再根据提取的可执行文件进行启动。为了提升启动速度,在所述独立组件初始化(即首次启动)时,从所述解压结果中预提取出所述可执行文件,生成快速可执行文件并单独存放(即执行Load Dex,生成.ode文件)。这样在后续每次启动时就无需再从所述解压结果中提取可执行文件,以提升后续启动速度,减少对RAM的占用。
但是,预提取操作会占用一些初始化时间,为了提升初始化速度,本实施例中,不直接执行预提取操作,而是在确定完成解压的情况下,确定是否完成预提取操作,若完成预提取,则执行子步骤S1062;若未完成预提取,则可以根据所述解压结果,对所述解压结果中的可执行文件进行预提取操作;根据所述预提取操作的预提取结果,完成对所述独立组件的初始化,以启动所述应用程序。
这样可以将所述独立组件初始化过程中的预提取操作从初始化过程中解耦出来,提前完成预提取操作,从而减少初始化的用时,提升初始化速度。
例如,一种提前完成预提取操作的实现方式为:将对所述解压结果进行预提取操作,获取的预提取结果(即快速可执行文件)集成到所述独立组件所在设备的固件系统(ROM)中,在向所述设备刷入所述固件系统时,将所述预提取结果一同刷入。
通常情况下,固件系统中的文件不对用户提供删除或修改的权限,将预提取结果集成在固件系统中,可以防止用户误删除或误修改预提取结果,有助于保证所述独立组件初始化的稳定性和成功率。
在本申请一具体实现中,所述子步骤S1061包括:若完成解压,则确定所述独立组件所在设备中是否存在与所述解压结果中可执行文件对应的预提取结果;若存在预提取结果,则确定完成预提取所述解压结果中的可执行文件的操作。
其中,在确定是否存在与可执行文件对应的预提取结果时,可以根据所述可执行文件的文件名,查找所述设备中是否存在文件名相同的快速可执行文件。若存在,则确定完成预提取,反之,若不存在,则确定未完成预提取。
为了加快所述独立组件的初始化速度,预先在设备上建立文件索引,通过查询文件索引的方式,确定是否存在对应的预提取结果。或者,针对集成在固件系统中的预提取结果,可以仅查找所述设备的固件系统路径,确定是否存在预提取结果,以减少查找量,提升初始化效率。
子步骤S1062:若完成预提取,则根据预提取结果,完成对所述独立组件的初始化,以启动所述应用程序。
若完成预提取,则可以根据预提取结果,完成对所述独立组件的初始化。本领域技术人员可以根据需要,确定匹配的初始化过程,完成对独立组件的初始化,以启动所述应用程序。
例如,根据所述解压结果,加载APK中的so文件(又称Load so),渲染引擎初始化以及生成新的WebView(又称new WebView),完成对独立组件的初始化,以启动所述应用程序。
通过本实施例,根据启动指令启动应用程序时,获取启动应用程序所需的独立组件信息,依据独立组件信息确定述独立组件初始化所需的数据是否完成解压缩操作和预提取操作,若完成了解压缩操作和预提取操作,则可以根据所述预提取结果,完成对所述独立组件的初始化,以启动所述应用程序。这样可以将初始化过程中的步骤尽量多的解耦出来提前完成,从而提升在应用程序启动时,独立组件初始化的速度,降低时间占用,提升应用程序启动速度。
此外,由于在本实施例中,解压结果和预提取结果均是集成在固件系统中,即在刷入固件系统时就完成了解压缩操作和预提取操作,使得本领域技术人员可以根据需要对任何独立组件、独立Bundle技术的组件、应用程序等进行预提取操作,解决了现有技术中,Android系统必须要有安装过程才能对可执行文件进行预提取操作,且只能对应用程序的主Dex文件执行预提取操作的问题,适应性更好,有助于提升依赖独立组件的应用程序的启动速度。
本实施例的应用程序启动方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机等。
实施例四
参照图4,示出了根据本发明实施例四的一种应用程序启动装置的结构框图。
本实施例的应用程序启动装置包括:获取模块402、解压确认模块404和初始化模块406。
所述获取模块402,用于根据接收的所述应用程序的启动指令,获取启动所述应用程序所需的独立组件信息。
所述独立组件是独立于所述应用程序的,用于为所述应用程序提供功能支持的组件。
例如,一些应用程序内嵌有web页面,为了展示web页面需要使用具有渲染功能的渲染引擎进行web页面渲染。由于渲染引擎本身体积(size)过大,通常不会集成在这些应用程序中,而是以独立组件形式存在。
当所述应用程序启动时,可以根据启动指令确定所述应用程序所需的独立组件信息。所述独立组件信息可以是独立组件的安装包标识或URL(Uniform Resource Locator,统一资源定位符)等。
解压确认模块404,用于依据所述独立组件信息,确定所述独立组件初始化所需的数据是否完成解压缩操作。
根据不同的所述独立组件,其初始化过程可能不同,初始化所需的数据也可能不同。
例如,应用在Android系统中的浏览器中的内核组件的初始化过程一般包括以下过程:下载安装包APK,解压所述安装包APK,预提取所述安装包APK中的可执行文件Dex(又称Load Dex或者ODEX),安全校验,加载安装包APK中的so文件(又称Load so),渲染引擎初始化以及生成新的WebView(又称new WebView)。
其中,为了尽可能的减小安装包的体积,便于传输,使用户下载更加方便、下载效率更高,安装包通常是将所述独立组件的数据进行压缩形成的。
在进行所述独立组件初始化时,需要对所述安装包进行解压缩操作,以获取所述安装包中所述独立组件初始化所需的数据。但是,由于所述独立组件本身的数据较多,导致其安装包进行解压缩操作所需的时间较长,使得所述独立组件初始化较慢,进而导致应用程序启动较慢。
本实施例中,为了提升独立组件初始化速度,在所述独立组件初始化时,不直接对安装包进行解压缩操作,而是确定所述独立组件初始化所需的数据是否已完成解压缩操作,若已完成解压,则由初始化模块406,根据解压结果完成对所述独立组件的初始化;或者,若未完成解压,则执行解压缩操作,再根据解压结果完成对所述独立组件的初始化。
这样可以将独立组件初始化过程中占有时间比较长的解压缩操作,从初始化过程中解耦出来,提前完成,从而提升初始化速度,降低所述独立组件初始化占用时间。
所述初始化模块406,用于在完成解压时,根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,以启动所述应用程序。
完成对所述独立组件的初始化时,本领域技术人员可以根据需要,确定匹配的初始化过程,完成对独立组件的初始化,以启动所述应用程序。
例如,根据所述解压结果,加载APK中的so文件(又称Load so),渲染引擎初始化以及生成新的WebView(又称new WebView),完成对独立组件的初始化,以启动所述应用程序。
通过本实施例,根据启动指令启动应用程序时,获取启动应用程序所需的独立组件信息,依据独立组件信息确定述独立组件初始化所需的数据是否完成解压缩操作,若完成解压,则根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,以启动所述应用程序。由于具有确定是否完成解压缩操作的步骤,因此可以预先完成解压缩操作,在初始化独立组件时若确定完成解压,则根据解压结果完成初始化,从而提升在应用程序启动时,独立组件初始化的速度,降低时间占用,提升应用程序启动速度。
实施例五
参照图5,示出了根据本发明实施例五的一种应用程序启动装置的结构框图。
本实施例的应用程序启动装置包括前述的获取模块402、解压确认模块404和初始化模块406。
可选地,所述解压缩操作的解压结果集成在所述独立组件所在设备的固件系统(ROM)中。
由于固件系统中的数据通常不对用户开放写入权限(如修改和删除等权限),因此可以防止用户在使用时误操作删除或修改解压结果,可以有效保证所述独立组件初始化的速度和可靠性。
可选地,所述解压确认模块404包括第一确定模块4041和第二确定模块4042。
所述第一确定模块4041,用于依据所述独立组件信息,确定所述独立组件所在设备中是否存在与所述独立组件初始化所需的数据对应的解压结果。
在本申请的一具体实现中,以所述独立组件信息包括所述独立组件的安装包标识为例,依据所述安装包标识确定所述独立组件初始化所需的数据,进而确定所述独立组件所在设备中是否存在与所述所需的数据对应的解压结果。
其中,在确定所述所需的数据时,可以根据所述安装包标识和预设的数据记录,确定与所述安装包标识对应的所述所需的数据。当然,也可以根据需要,采用其他匹配的方式确定所述所需的数据。
在确定是否存在与所述所需的数据对应的解压结果时,可以通过查找所述独立组件所在设备,确定所述设备上是否有非压缩格式的文件的文件名与所述所需的数据名称一致的方式,确定是否存在对应的解压结果。
或者,为了提升初始化速度,预先在设备上建立文件索引,通过查询文件索引的方式,确定是否存在对应的解压结果。
又或者,针对集成在固件系统中的解压结果,在查找时,仅查找所述独立组件所在设备中固件系统路径下是否存在非压缩格式的文件的文件名与所述所需的数据名称一致。这样可以减少查找量,从而减少初始化用时。
当然,在其他实施例中,本领域技术人员可以根据需要,选择其他任意匹配的方式确定解压结果是否存在,本实施例对此不作限定。
所述第二确定模块4042,用于在存在解压结果时,确定所述独立组件初始化所需的数据完成解压缩操作。
若存在解压结果,则确定所述独立组件初始化所需的数据完成解压缩操作,后续初始化过程可以直接根据存在的所述解压结果执行,以提升初始化速度。反之,若不存在解压结果,则需要对所述所需的数据进行解压缩操作,以获得解压结果。
通过确定独立组件所在设备中是否存在解压结果,可以准确确定是否已完成对独立组件初始化所需的数据的解压缩操作,防止独立组件初始化失败。
可选地,初始化模块406包括预提取确认模块4061和完成模块4062。
所述预提取确认模块4061,用于在完成解压时,确定是否完成预提取所述解压结果中的可执行文件的操作。
可执行文件是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样。例如,在Android系统中,可执行文件以.dex或.odex为扩展名。在windows系统中,可执行文件以.exe为扩展名。
现有技术中,所述独立组件在每次启动时,需要从解压结果中提取可执行文件,再根据提取的可执行文件进行启动。为了提升启动速度,在所述独立组件初始化(即首次启动)时,从所述解压结果中预提取出所述可执行文件,生成快速可执行文件并单独存放(即执行Load Dex,生成.ode文件)。这样在后续每次启动时就无需再从所述解压结果中提取可执行文件,以提升后续启动速度,减少对RAM的占用。
但是,预提取操作会占用一些初始化时间,为了提升初始化速度,本实施例中,不直接执行预提取操作,而是在确定完成解压的情况下,确定是否完成预提取操作,若完成预提取,则完成模块4062根据预提取结果完成初始化;若未完成预提取,则可以根据所述解压结果,对所述解压结果中的可执行文件进行预提取操作;根据所述预提取操作的预提取结果,完成对所述独立组件的初始化,以启动所述应用程序。
这样可以将所述独立组件初始化过程中的预提取操作从初始化过程中解耦出来,提前完成预提取操作,从而减少初始化的用时,提升初始化速度。
可选地,所述预提取结果集成在所述独立组件所在设备的固件系统中。例如,一种提前完成预提取操作的实现方式为:将对所述解压结果进行预提取操作,获取的预提取结果(即快速可执行文件)集成到所述独立组件所在设备的固件系统(ROM)中,在向所述设备刷入所述固件系统时,将所述预提取结果一同刷入。
通常情况下,固件系统中的文件不对用户提供删除或修改的权限,将预提取结果集成在固件系统中,可以防止用户误删除或误修改预提取结果,有助于保证所述独立组件初始化的稳定性和成功率。
可选地,所述预提取确认模块4061包括第三确模块4061a和第四确定模块4061b。其中,第三确认模块4061a用于在完成解压时,确定所述独立组件所在设备中是否存在与所述解压结果中可执行文件对应的预提取结果。第四确定模块4061b,用于在存在预提取结果时,确定完成预提取所述解压结果中的可执行文件的操作。
其中,在确定是否存在与可执行文件对应的预提取结果时,可以根据所述可执行文件的文件名,查找所述设备中是否存在文件名相同的快速可执行文件。若存在,则确定完成预提取,反之,若不存在,则确定未完成预提取。
为了加快所述独立组件的初始化速度,预先在设备上建立文件索引,通过查询文件索引的方式,确定是否存在对应的预提取结果。或者,针对集成在固件系统中的预提取结果,可以仅查找所述设备的固件系统路径,确定是否存在预提取结果,以减少查找量,提升初始化效率。
完成模块4062,用于在完成预提取时,根据预提取结果,完成对所述独立组件的初始化,以启动所述应用程序。
若完成预提取,则可以根据预提取结果,完成对所述独立组件的初始化。本领域技术人员可以根据需要,确定匹配的初始化过程,完成对独立组件的初始化,以启动所述应用程序。
例如,根据所述解压结果,加载APK中的so文件(又称Load so),渲染引擎初始化以及生成新的WebView(又称new WebView),完成对独立组件的初始化,以启动所述应用程序。
根据启动指令启动应用程序时,获取启动应用程序所需的独立组件信息,依据独立组件信息确定述独立组件初始化所需的数据是否完成解压缩操作和预提取操作,若完成了解压缩操作和预提取操作,则可以根据所述预提取结果,完成对所述独立组件的初始化,以启动所述应用程序。这样可以将初始化过程中的步骤尽量多的解耦出来提前完成,从而提升在应用程序启动时,独立组件初始化的速度,降低时间占用,提升应用程序启动速度。
此外,由于在本实施例中,解压结果和预提取结果均是集成在固件系统中,即在刷入固件系统时就完成了解压缩操作和预提取操作,使得本领域技术人员可以根据需要对任何独立组件、独立Bundle技术的组件、应用程序等进行预提取操作,解决了现有技术中,Android系统必须要有安装过程才能对可执行文件进行预提取操作,且只能对应用程序的主Dex文件执行预提取操作的问题,适应性更好,有助于提升依赖独立组件的应用程序的启动速度。
实施例六
参照图6,示出了根据本发明实施例六的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图6所示,该电子设备可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
其中:
处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。
通信接口604,用于与其它电子设备如终端设备或服务器进行通信。
处理器602,用于执行程序610,具体可以执行上述下载应用的方法实施例中的相关步骤。
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序610具体可以用于使得处理器602执行以下操作:根据接收的所述应用程序的启动指令,获取启动所述应用程序所需的独立组件信息;依据所述独立组件信息,确定所述独立组件初始化所需的数据是否完成解压缩操作;若完成解压,则根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,以启动所述应用程序。
在一种可选的实施方式中,所述解压缩操作的解压结果集成在所述独立组件所在设备的固件系统中。
在一种可选的实施方式中,程序610还用于使得处理器602在所述依据所述独立组件信息,确定所述独立组件初始化所需的数据是否完成解压缩操作时,依据所述独立组件信息,确定所述独立组件所在设备中是否存在与所述独立组件初始化所需的数据对应的解压结果;若存在解压结果,则确定所述独立组件初始化所需的数据完成解压缩操作。
在一种可选的实施方式中,程序610还用于使得处理器602在完成解压,根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,以启动所述应用程序时,若完成解压,则确定是否完成预提取所述解压结果中的可执行文件的操作;若完成预提取,则根据预提取结果,完成对所述独立组件的初始化,以启动所述应用程序。
在一种可选的实施方式中,所述预提取结果集成在所述独立组件所在设备的固件系统中。
在一种可选的实施方式中,程序610还用于使得处理器602在完成解压,则确定是否完成预提取所述解压结果中的可执行文件的操作时,若完成解压,则确定所述独立组件所在设备中是否存在与所述解压结果中可执行文件对应的预提取结果;若存在预提取结果,则确定完成预提取所述解压结果中的可执行文件的操作。
程序610中各步骤的具体实现可以参见上述应用程序启动方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本实施例的电子设备,根据启动指令启动应用程序时,获取启动应用程序所需的独立组件信息,依据独立组件信息确定述独立组件初始化所需的数据是否完成解压缩操作,若完成解压,则根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,以启动所述应用程序。由于具有确定是否完成解压缩操作的步骤,因此可以预先完成解压缩操作,在初始化独立组件时若确定完成解压,则根据解压结果完成初始化,从而提升在应用程序启动时,独立组件初始化的速度,降低时间占用,提升应用程序启动速度。
需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的应用程序启动方法。此外,当通用计算机访问用于实现在此示出的应用程序启动方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的应用程序启动方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
应用场景:
如图7所示,本应用场景中,以Android系统中的应用程序为例,尤其是使用Android系统的POS机,对应用程序启动方法进行说明如下。
固件系统(ROM)集成阶段:
在设备的固件系统中预先集成某一个或多个独立组件的解压结果和预提取结果(即Odex文件)。
应用程序(APP)运行阶段:
步骤A:在应用程序启动时,根据启动指令,若需要独立组件初始化,则检查设备的固件系统中是否存在解压结果。若存在解压结果,则执行步骤B;反之,则执行步骤C。
步骤B:存在解压结果表示已经完成解压缩操作,则确定设备的固件系统中是否存在与解压结果中的可执行文件对应的快速可执行文件,若存在快速可执行文件,则表示完成了对解压结果中的可执行文件的预提取操作,根据预提取结果(即快速可执行文件)完成独立组件初始化;反之,则执行步骤D。
步骤C:不存在解压结果表示未完成解压缩操作,则可以获取独立组件的安装包(安装包中包括其初始化所需的数据),并对安装包执行解压缩操作;解压缩完成后,执行步骤D。
步骤D:当不存在快速可执行文件时,对解压结果中的可执行文件执行预提取操作,获得快速可执行文件,并根据快速可执行文件完成独立组件初始化。
本使用场景中,对独立组件的初始化过程进行技术剥离,将解压缩操作,和预提取操作从初始化过程中切分出来并提取完成,将解压结果和预提取结果集成在固件系统中。调整独立组件的业务流程,利用集成的解压结果和预提取结果,来提高当次独立组件及使用其的应用程序运行的性能。从图N中可以看出,优化后的应用程序在启动过程中,完全没有了解压缩操作和预提取操作的性能消耗。
此外,还可以解决Android系统中在应用程序安装时做预提取操作,只能针对应用程序的主可执行文件,无法适用独立组件中的可执行文件且必须要依赖有安装过程的问题。
在本使用场景中,可以有效地加快应用程序冷启动速度,尤其是提升首次启动的速度,满足POS机系统一启动就需要打开应用程序界面(即完成应用程序启动)的需求,适应这种对应用程序启动性能要求较高的使用场景。
其中,冷启动是指当启动应用程序时,操作系统后台没有该应用程序的进程,这时操作系统会重新创建一个新的进程分配给该应用程序,供该应用程序启动。
首次启动是冷启动中的一种,指应用程序安装后首次启动。在应用程序首次启动过程中,除了需要执行应用程序每次冷启动需要执行的常规过程外,还需要对其中的独立组件进行初始化。

Claims (14)

1.一种应用程序启动方法,其特征在于,包括:
根据接收的所述应用程序的启动指令,获取启动所述应用程序所需的独立组件信息;
依据所述独立组件信息,确定所述独立组件初始化所需的数据是否完成解压缩操作;
若完成解压,则根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,以启动所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述解压缩操作的解压结果集成在所述独立组件所在设备的固件系统中。
3.根据权利要求1或2所述的方法,其特征在于,所述依据所述独立组件信息,确定所述独立组件初始化所需的数据是否完成解压缩操作,包括:
依据所述独立组件信息,确定所述独立组件所在设备中是否存在与所述独立组件初始化所需的数据对应的解压结果;
若存在解压结果,则确定所述独立组件初始化所需的数据完成解压缩操作。
4.根据权利要求1所述的方法,其特征在于,所述若完成解压,则根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,以启动所述应用程序,包括:
若完成解压,则确定是否完成预提取所述解压结果中的可执行文件的操作;
若完成预提取,则根据预提取结果,完成对所述独立组件的初始化,以启动所述应用程序。
5.根据权利要求4所述的方法,其特征在于,所述预提取结果集成在所述独立组件所在设备的固件系统中。
6.根据权利要求4或5所述的方法,其特征在于,若完成解压,则确定是否完成预提取所述解压结果中的可执行文件的操作,包括:
若完成解压,则确定所述独立组件所在设备中是否存在与所述解压结果中可执行文件对应的预提取结果;
若存在预提取结果,则确定完成预提取所述解压结果中的可执行文件的操作。
7.一种应用程序启动装置,其特征在于,包括:
获取模块,用于根据接收的所述应用程序的启动指令,获取启动所述应用程序所需的独立组件信息;
解压确认模块,用于依据所述独立组件信息,确定所述独立组件初始化所需的数据是否完成解压缩操作;
初始化模块,用于在完成解压时,根据所述解压缩操作的解压结果,完成对所述独立组件的初始化,以启动所述应用程序。
8.根据权利要求7所述的装置,其特征在于,所述解压缩操作的解压结果集成在所述独立组件所在设备的固件系统中。
9.根据权利要求7或8所述的装置,其特征在于,所述解压确认模块包括:
第一确定模块,用于依据所述独立组件信息,确定所述独立组件所在设备中是否存在与所述独立组件初始化所需的数据对应的解压结果;
第二确定模块,用于在存在解压结果时,确定所述独立组件初始化所需的数据完成解压缩操作。
10.根据权利要求7所述的装置,其特征在于,所述初始化模块包括:
预提取确认模块,用于在完成解压时,确定是否完成预提取所述解压结果中的可执行文件的操作;
完成模块,用于若完成预提取,则根据预提取结果,完成对所述独立组件的初始化,以启动所述应用程序。
11.根据权利要求10所述的装置,其特征在于,所述预提取结果集成在所述独立组件所在设备的固件系统中。
12.根据权利要求10或11所述的装置,其特征在于,所述预提取确认模块包括:
第三确定模块,用于在完成解压时,确定所述独立组件所在设备中是否存在与所述解压结果中可执行文件对应的预提取结果;
第四确定模块,用于在存在预提取结果时,确定完成预提取所述解压结果中的可执行文件的操作。
13.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-6中任一项所述的应用程序启动方法对应的操作。
14.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-6中任一所述的应用程序启动方法。
CN201910063172.6A 2019-01-23 2019-01-23 应用程序启动方法、装置、电子设备及计算机存储介质 Active CN111552517B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910063172.6A CN111552517B (zh) 2019-01-23 2019-01-23 应用程序启动方法、装置、电子设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910063172.6A CN111552517B (zh) 2019-01-23 2019-01-23 应用程序启动方法、装置、电子设备及计算机存储介质

Publications (2)

Publication Number Publication Date
CN111552517A true CN111552517A (zh) 2020-08-18
CN111552517B CN111552517B (zh) 2023-04-25

Family

ID=72001810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910063172.6A Active CN111552517B (zh) 2019-01-23 2019-01-23 应用程序启动方法、装置、电子设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN111552517B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732365A (zh) * 2021-01-28 2021-04-30 北京字跳网络技术有限公司 预装应用程序启动方法、装置、电子设备及存储介质
CN112799691A (zh) * 2021-02-02 2021-05-14 百果园技术(新加坡)有限公司 一种应用安装包的处理方法、装置、设备及介质
CN112988686A (zh) * 2021-04-07 2021-06-18 北京字节跳动网络技术有限公司 插件处理方法、装置、设备和存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941019B1 (en) * 2000-05-10 2005-09-06 International Business Machines Corporation Reentry into compressed data
CN101292282A (zh) * 2005-08-29 2008-10-22 沃伊斯博克斯科技公司 支持自然语言人机交互的移动系统和方法
CN101770375A (zh) * 2008-12-26 2010-07-07 新奥特(北京)视频技术有限公司 一种软件自动升级的实现方法、系统和装置
US20100257517A1 (en) * 2009-04-01 2010-10-07 Oracle International Corporation Reducing downtime when patching multiple inter-dependent software components
US20110246758A1 (en) * 2010-03-30 2011-10-06 Hon Hai Precision Industry Co., Ltd. Media data playback device and reboot method thereof
CN105912366A (zh) * 2016-04-14 2016-08-31 广州市久邦数码科技有限公司 一种桌面应用程序插件化的实现方法
CN106445569A (zh) * 2015-08-06 2017-02-22 国网智能电网研究院 Vxworks操作系统的嵌入式装置的启动方法及系统
CN106775793A (zh) * 2015-11-23 2017-05-31 卓望数码技术(深圳)有限公司 一种安卓应用免安装启动的方法、装置及终端
CN107329788A (zh) * 2017-06-29 2017-11-07 广州优视网络科技有限公司 应用程序加载方法、装置及用户终端
US10033747B1 (en) * 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
CN108399074A (zh) * 2018-01-30 2018-08-14 努比亚技术有限公司 一种应用程序的更新方法、终端及计算机可读存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941019B1 (en) * 2000-05-10 2005-09-06 International Business Machines Corporation Reentry into compressed data
CN101292282A (zh) * 2005-08-29 2008-10-22 沃伊斯博克斯科技公司 支持自然语言人机交互的移动系统和方法
CN101770375A (zh) * 2008-12-26 2010-07-07 新奥特(北京)视频技术有限公司 一种软件自动升级的实现方法、系统和装置
US20100257517A1 (en) * 2009-04-01 2010-10-07 Oracle International Corporation Reducing downtime when patching multiple inter-dependent software components
US20110246758A1 (en) * 2010-03-30 2011-10-06 Hon Hai Precision Industry Co., Ltd. Media data playback device and reboot method thereof
CN106445569A (zh) * 2015-08-06 2017-02-22 国网智能电网研究院 Vxworks操作系统的嵌入式装置的启动方法及系统
US10033747B1 (en) * 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
CN106775793A (zh) * 2015-11-23 2017-05-31 卓望数码技术(深圳)有限公司 一种安卓应用免安装启动的方法、装置及终端
CN105912366A (zh) * 2016-04-14 2016-08-31 广州市久邦数码科技有限公司 一种桌面应用程序插件化的实现方法
CN107329788A (zh) * 2017-06-29 2017-11-07 广州优视网络科技有限公司 应用程序加载方法、装置及用户终端
CN108399074A (zh) * 2018-01-30 2018-08-14 努比亚技术有限公司 一种应用程序的更新方法、终端及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘新宇;翁健;张悦;冯丙文;翁嘉思;: "基于APK签名信息反馈的Android恶意应用检测" *
周敏;周安民;贾鹏;: "一种面向Android应用第三方库的安全性分析框架" *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732365A (zh) * 2021-01-28 2021-04-30 北京字跳网络技术有限公司 预装应用程序启动方法、装置、电子设备及存储介质
CN112799691A (zh) * 2021-02-02 2021-05-14 百果园技术(新加坡)有限公司 一种应用安装包的处理方法、装置、设备及介质
CN112988686A (zh) * 2021-04-07 2021-06-18 北京字节跳动网络技术有限公司 插件处理方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN111552517B (zh) 2023-04-25

Similar Documents

Publication Publication Date Title
US10140113B2 (en) Data processing method and device of preset application after upgrading
JP5658283B2 (ja) アプリケーションの稼働方法、装置及びシステム
CN111552517B (zh) 应用程序启动方法、装置、电子设备及计算机存储介质
CN107015870B (zh) 实现web页面与本地应用通信的方法、装置和电子设备
CN105975311B (zh) 一种应用启动方法及装置
WO2016183951A1 (zh) 一种系统升级方法及终端
US11775288B2 (en) Method and apparatus for generating difference between old and new versions of data for updating software
JP2001147826A (ja) 一次メモリのハッシュインデックスからオブジェクトをロードするための装置及び方法
CN111263354B (zh) 一种ota差分升级方法及装置
CN108920691B (zh) 前端静态资源的管理方法、装置、计算机设备及存储介质
CN112181471A (zh) 差分升级方法及装置、存储介质、计算机设备
CN109002710B (zh) 一种检测方法、装置及计算机可读存储介质
CN113396391A (zh) 应用程序启动的方法、装置、电子设备及存储介质
CN111475220B (zh) 冷启动方法、装置、电子设备及计算机存储介质
CN113377382B (zh) 一种软件安装包的处理方法、装置、电子设备及存储介质
CN110955458A (zh) 一种基于EXT4文件系统的快速客制化os方法、系统、存储介质及电子设备
CN110888686B (zh) 应用程序启动方法、设备和存储介质
CN109408063B (zh) 基于虚拟机的指令插桩方法及装置
CN113312149A (zh) 一种密码重置方法
CN110489130B (zh) 一种基于客户端的业务数据提取方法及装置
CN112269601A (zh) 一种bmc及其部件资产信息管理方法、装置和存储介质
CN117311853B (zh) Apk文件的处理方法、装置、计算机设备及存储介质
CN111475171B (zh) 应用程序组件下载方法、装置、电子设备
CN114218441B (zh) 对uof文档进行调用和展示的方法
KR101384929B1 (ko) 사용자 단말의 저장 매체를 위한 미디어 스캐닝 방법 및 미디어 스캐닝 장치

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