CN104991793B - 一种用于应用程序分包的方法、装置以及系统 - Google Patents

一种用于应用程序分包的方法、装置以及系统 Download PDF

Info

Publication number
CN104991793B
CN104991793B CN201510329986.1A CN201510329986A CN104991793B CN 104991793 B CN104991793 B CN 104991793B CN 201510329986 A CN201510329986 A CN 201510329986A CN 104991793 B CN104991793 B CN 104991793B
Authority
CN
China
Prior art keywords
installation kit
application program
main
sub
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510329986.1A
Other languages
English (en)
Other versions
CN104991793A (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.)
Shanghai Haiyang Software Technology Co Ltd
Original Assignee
Shanghai Haiyang Software 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 Shanghai Haiyang Software Technology Co Ltd filed Critical Shanghai Haiyang Software Technology Co Ltd
Priority to CN201510329986.1A priority Critical patent/CN104991793B/zh
Publication of CN104991793A publication Critical patent/CN104991793A/zh
Application granted granted Critical
Publication of CN104991793B publication Critical patent/CN104991793B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种用于应用程序分包的方法,包括:获取应用程序的安装包;获取预先在所述应用程序的安装包设置的标签;根据所述标签,将所述应用程序拆分为至少一个主安装包和至少一个子安装包;其中,所述标签包括:记录在用于编译生成所述安装包的源代码中的标识信息;所述主安装包和所述子安装包能够在终端设备安装和运行;所述主安装包包含有下载所述主安装包和所述子安装包的索引信息。所述用于应用程序分包的方法,可将应用程序拆分为主安装包和子安装包,无需针对应用程序的每一个功能开发独立的应用程序,节省了人力和物力资源;此外,主安装包在较短时间内即可安装,节省时间。

Description

一种用于应用程序分包的方法、装置以及系统
技术领域
本申请涉及应用程序领域,具体涉及一种用于应用程序分包的方法和一种终端设备的应用程序安装方法,二者相互配合。本申请同时涉及一种用于应用程序分包的装置、一种终端设备的应用程序安装装置和一种用于应用程序分包的系统。
背景技术
随着移动互联网的发展,智能设备的普及率越来越高,用户对智能设备上安装的应用软件和游戏的需求也越来越旺盛,导致应用软件市场和游戏市场愈发火热,但是随着智能设备的配置的不断提升,以及智能设备种类的不断丰富,应用软件开发商和游戏开发商为了提高用户体验,使应用软件和游戏的安装包能够适应各种智能设备的硬件需求,比如适应不同处理器的智能设备、不同屏幕大小的智能设备以及内置不同传感器的智能设备,导致开发的应用软件和游戏的安装包越来越大,增加了应用软件和游戏推广的难度。
目前,许多应用软件开发商和游戏开发商为了减小应用软件和游戏安装包的大小,降低安装应用软件和游戏对用户终端设备的存储空间的压力,对于应用软件,根据应用软件所具有的功能,针对应用软件的每一个功能,开发一个独立的应用软件,从而减小应用软件安装包的大小;对于游戏,通过降低游戏的清晰度和画质,尽可能的减小游戏安装包的大小。
上述现有技术提供的方法存在明显的缺陷。
上述现有技术提供的方法,对于应用软件,按照功能开发独立的应用软件来降低应用软件的安装包的大小,首先,根据应用软件所具有的功能,开发独立的应用软件,需要耗费额外的人力和物力资源;其次,用户在下载安装应用软件时,如果要使用应用软件的多个功能,则需要分别安装对应所述多个功能的多个独立的应用软件,操作繁琐复杂;
对于游戏,通过降低游戏的清晰度和画质减小游戏的安装包的大小,导致游戏效果变差,比如游戏的画面感和逼真度降低,用户体验差。
发明内容
本申请提供一种用于应用程序分包的方法,以及一种终端设备的应用程序安装方法,以解决现有技术存在的操作繁琐复杂的问题。本申请同时涉及一种用于应用程序分包的装置、一种终端设备的应用程序安装装置和一种用于应用程序分包的系统。
本申请提供一种用于应用程序分包的方法,包括:
获取应用程序的安装包;
获取预先在所述应用程序的安装包设置的标签;
根据所述标签,将所述应用程序拆分为至少一个主安装包和至少一个子安装包;
其中,所述标签包括:记录在用于编译生成所述安装包的源代码中的标识信息;
所述主安装包和所述子安装包能够在终端设备安装和运行;
所述主安装包包含有下载所述主安装包和所述子安装包的索引信息。
可选的,所述获取应用程序的安装包步骤之后,执行如下步骤:
获取所述应用程序的更新包;
对所述应用程序的安装包和更新包进行差异化分析,生成所述应用程序的差分包;
其中,所述应用程序能够根据所述差分包进行更新。
可选的,所述对所述应用程序的安装包和升级包进行差异化分析,生成所述应用程序的差分包步骤之后,执行如下步骤:
向终端设备发送所述应用程序的更新消息;
其中,所述更新消息中包含的所述应用程序的差分包的下载地址。
可选的,所述获取应用程序的安装包步骤之后,执行如下步骤:
获取所述应用程序的更新包;
获取预先在所述更新包设置的标签;
根据所述标签,将所述更新包拆分为至少一个主更新包和至少一个子更新包;
对所述应用程序的主安装包和对应的主更新包和/或述应用程序的子安装包和对应的子更新包分别进行差异化分析,生成主差分包和/或子差分包;
其中,所述应用程序的主安装包能够根据对应的主差分包进行更新;
所述应用程序的子安装包能够根据对应的子差分包进行更新。
可选的,所述对所述应用程序的主安装包和对应的主更新包和/或述应用程序的子安装包和对应的子更新包分别进行差异化分析,生成主差分包和/或子差分包步骤之后,执行如下步骤:
向终端设备所述应用程序的更新消息;
其中,所述更新消息中包含的所述应用程序的主差分包和/或子差分包的下载地址。
可选的,所述索引信息包括:下载地址。
可选的,所述将所述应用程序拆分为至少一个主安装包和至少一个子安装包步骤,包括:
反编译所述应用程序的安装包,生成所述应用程序的源代码;
根据预先在所述应用程序的安装包设置的标签,将所述源代码拆分为至少一个主代码和至少一个子代码;
编译所述主代码和所述子代码,生成所述应用程序的至少一个主安装包和至少一个子安装包。
本申请还提供一种用于应用程序分包的装置,包括:
安装包获取单元,用于获取应用程序的安装包;
标签获取单元,用于获取预先在所述应用程序的安装包设置的标签;
应用程序拆分单元,用于根据所述标签,将所述应用程序拆分为至少一个主安装包和至少一个子安装包;
其中,所述标签包括:记录在用于编译生成所述安装包的源代码中的标识信息;
所述主安装包和所述子安装包能够在终端设备安装和运行;
所述主安装包包含有下载所述主安装包和所述子安装包的索引信息。
本申请还提供一种终端设备的应用程序安装方法,包括:
获取应用程序的至少一个主安装包;
安装所述主安装包;
读取所述主安装包包含的所述应用程序的至少一个主安装包和至少一个子安装包的索引信息;
下载并安装所述主安装包和/或所述子安装包;
其中,所述主安装包和所述子安装包能够在终端设备安装和运行;
所述主安装包包含有下载所述主安装包和所述子安装包的索引信息。
可选的,所述读取所述主安装包包含的所述应用程序的至少一个主安装包和至少一个子安装包的索引信息步骤之后,所述下载并安装所述主安装包和/或所述子安装包步骤之前,执行如下步骤:
判断是否建立无线网络连接;
若是,则执行所述下载并安装所述主安装包和/或所述子安装包步骤;
若否,则执行所述判断是否建立无线网络连接步骤;
其中,所述无线网络包括下述至少一项:
Wi-Fi网络、蜂窝移动网络。
可选的,所述终端设备的应用程序安装方法,包括:
接收所述应用程序的更新消息;
读取该更新消息中包含的所述应用程序的差分包的下载地址;
下载所述应用程序的差分包;
根据所述差分包对所述应用程序进行更新;
其中,所述更新消息中包含的所述应用程序的差分包的下载地址;
所述应用程序能够根据所述差分包进行更新。
可选的,所述根据所述差分包对所述应用程序进行更新,采用如下方式:
将所述差分包与所述应用程序的主安装包和/或子安装包进行整合编译。
可选的,所述终端设备的应用程序安装方法,包括:
接收所述应用程序的更新消息;
读取所述更新消息中包含的所述应用程序的主差分包和/或子差分包的下载地址;
其中,所述更新消息中包含的所述应用程序的主差分包和/或子差分包的下载地址。
可选的,所述读取所述更新消息中包含的所述应用程序的主差分包和/或子差分包的下载地址子步骤之后,执行如下子步骤:
分别判断所述应用程序的主差分包对应的主安装包是否已安装;
若是,下载该主差分包;
根据该主差分包对该主差分包对应的主安装包进行更新;
其中,所述主安装包能够根据对应的主差分包进行更新。
可选的,所述根据该主差分包对该主差分包对应的主安装包进行更新,采用如下方式:
将该主差分包与该主差分包对应的主安装包进行整合编译。
可选的,所述读取所述更新消息中包含的所述应用程序的主差分包和/或子差分包的下载地址子步骤之后,执行如下子步骤:
分别判断所述应用程序的子差分包对应的子安装包是否已安装;
若是,下载该子差分包;
根据该子差分包对该子差分包对应的子安装包进行更新;
其中,所述子安装包能够根据对应的子差分包进行更新。
可选的,所述根据该子差分包对该子差分包对应的子安装包进行更新,采用如下方式:
将该子差分包与该子差分包对应的子安装包进行整合编译。
可选的,所述更新包括:热更新。
本申请还提供一种终端设备的应用程序安装装置,包括:
主安装包获取单元,用于获取应用程序的至少一个主安装包;
主安装包安装单元,用于安装所述主安装包;
索引信息读取单元,用于读取所述主安装包包含的所述应用程序的至少一个主安装包和至少一个子安装包的索引信息;
下载安装单元,用于下载并安装所述主安装包和/或所述子安装包;
其中,所述主安装包和所述子安装包能够在终端设备安装和运行;
所述主安装包包含有下载所述主安装包和所述子安装包的索引信息。
本申请提供一种用于应用程序分包的系统,包括:
本申请提供的所述用于应用程序分包的装置;以及
本申请提供的所述终端设备的应用程序安装装置。
与现有技术相比,本申请具有以下优点:
本申请提供的用于应用程序分包的方法,包括:获取应用程序的安装包;
获取预先在所述应用程序的安装包设置的标签;根据所述标签,将所述应用程序拆分为至少一个主安装包和至少一个子安装包;其中,所述主安装包和所述子安装包能够在终端设备安装和运行;所述主安装包包含有下载所述主安装包和所述子安装包的索引信息。
本申请提供的用于应用程序分包的方法,根据预先设置在应用程序的标签,可将应用程序拆分为主安装包和子安装包,无需针对应用程序的每一个功能开发独立的应用程序,节省了人力和物力资源;此外,用户只需安装主安装包即可获取应用程序的使用体验,主安装包在较短时间内即可安装,节省时间。
附图说明
附图1是本申请提供的一种用于应用程序分包的方法的处理流程图;
附图2是本申请提供的一种用于应用程序分包的装置的示意图;
附图3是本申请提供的一种终端设备的应用程序安装方法的处理流程图;
附图4是本申请提供的一种终端设备的应用程序安装装置的示意图;
附图5是本申请提供的一种用于应用程序分包的系统的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供一种用于应用程序分包的方法和一种终端设备的应用程序安装方法,二者相互配合。本申请同时涉及一种用于应用程序分包的装置、一种终端设备的应用程序安装装置和一种用于应用程序分包的系统。
本申请提供一种用于应用程序分包的方法实施例如下:
以下结合附图对本实施例提供的一种用于应用程序分包的方法进行说明,并且对该方法的各个步骤进行说明。
参照附图1,其示出了本实施例提供的一种用于应用程序分包的方法的处理流程图。
步骤S101,获取应用程序的安装包。
作为一种优选的实施方式,本实施例中,所述应用程序安装包是指应用程序的开发商或者开发者上传的应用软件的安装包或者游戏的安装包,本申请提供的所述用于应用程序分包的方法,正是对应用程序的开发商或者开发者上传的应用软件的安装包或者游戏的安装包进行分包处理。
安装包,Install pack,即应用程序安装包(可执行文件),是可自行解压缩文件的集合,包括应用程序安装的所有文件,在终端设备当中执行所述应用程序的安装包,可以将所述应用程序的所有文件释放到终端设备的内存。
在具体实施时,在本步骤执行完毕之后,还可以执行生成所述应用程序的差分包的操作;
即:本步骤获取到所述应用程序的安装包之后,针对获取到的所述应用程序,还可以执行生成所述应用程序的差分包的操作,具体实现如下:
1)获取所述应用程序的更新包;
所述更新包,是指开发人员针对之前版本的应用程序存在的问题,开发的应用程序新的安装包,或者针对应用程序新添加或者删除的功能,开发的应用程序新的安装包;
例如:
Android平台的应用软件“微信”,开发人员在1月23日提交的版本号为“6.1.0.56_r1021013”的安装包:“微信6.1.0.56_r1021013.apk”;
此后,开发人员在2月5日提交了应用软件“微信”的版本号为“6.1.0.57_r1024329”的安装包:“微信6.1.0.57_r1024329.apk”;
则“微信6.1.0.57_r1024329.apk”被称为应用软件“微信”的更新包。
2)对所述应用程序的安装包和更新包进行差异化分析,生成所述应用程序的差分包;
其中,所述应用程序能够根据所述差分包进行更新。
一般而言,在应用程序的升级过程中有来那个中包:完整的更新包和差分包;
其中,完整的更新包是指开发人员提交的应用程序的新的安装包;
例如:
Android平台的应用软件“微信”,安装包:“微信6.1.0.56_r1021013.apk”,版本号为“6.1.0.56_r1021013”;
更新包:“微信6.1.0.57_r1024329.apk”,版本号为“6.1.0.57_r1024329”;
用户想要对Android设备中已经安装的安装包:“微信6.1.0.56_r1021013.apk”进行更新,则通过在Android设备中安装“微信6.1.0.57_r1024329.apk”,即可实现从之前的版本“6.1.0.56_r1021013”升级到新版本“6.1.0.57_r1024329”。
差分包,是指应用程序的两个版本之间存在差异的数据或者文件的集合;
例如:
Android平台的应用软件“微信”,Android平台的应用软件“微信”,安装包:“微信6.1.0.56_r1021013.apk”,版本号为“6.1.0.56_r1021013”;
更新包:“微信6.1.0.57_r1024329.apk”,版本号为“6.1.0.57_r1024329”;
通过脚本对二者进行差异化分析,获得应用软件“微信”的差分包;
用户想要将Android设备中应用软件“微信”升级到新版本,通过加载上述获得差分包,即可升级到新版本“6.1.0.57_r1024329”。
3)向终端设备发送所述应用程序的更新消息。
其中,所述更新消息中包含的所述应用程序的差分包的下载地址。
在具体实施时,除上述提供的生成所述应用程序的差分包的操作的实施方式之外,还可以采用其他实施方式执行生成所述应用程序的差分包的操作,比如:
获取所述应用程序的更新包;
获取预先在所述更新包设置的标签;
根据所述标签,将所述更新包拆分为至少一个主更新包和至少一个子更新包;
对所述应用程序的主安装包和对应的主更新包和/或述应用程序的子安装包和对应的子更新包分别进行差异化分析,生成主差分包和/或子差分包;
其中,所述应用程序的主安装包能够根据对应的主差分包进行更新;
所述应用程序的子安装包能够根据对应的子差分包进行更新。
向终端设备所述应用程序的更新消息;
其中,所述更新消息中包含的所述应用程序的主差分包和/或子差分包的下载地址;
在此不做限定。
步骤S102,获取预先在所述应用程序的安装包设置的标签。
其中,所述标签包括:记录在用于编译生成所述安装包的源代码中的标识信息。
例如:
Android平台的应用软件“微信”,开发人员在开发应用软件“微信”时,在该应用软件的源代码中添加标签,具体的,根据该应用软件的功能“聊天”、“通讯录”“、朋友圈”、“摇一摇”、“游戏”,在两个不同功能分别对应的源代码中间添加标签,将两个功能分别对应的源代码区分开。
在具体实施时,所述标签,可以是区别于用于编译生成所述安装包的源代码的特殊标识符,也可以是别于用于编译生成所述安装包的源代码的一行或者多行代码,在此不做限定。
步骤S103,根据所述标签,将所述应用程序拆分为至少一个主安装包和至少一个子安装包。
所述主安装包和所述子安装包能够在终端设备安装和运行;
所述主安装包包含有下载所述主安装包和所述子安装包的索引信息。
其中,所述索引信息包括:下载地址。
作为一种优选的实施方式,本实施例中,利用脚本检测所述应用程序的安装包,即检测用于编译生成所述安装包的源代码中的标签,根据在所述源代码中检测到的标签,将所述应用程序的安装包拆分为至少一个主安装包和至少一个子安装包。
用户想要在终端设备中安装所述应用程序,则至少安装该应用程序的一个主安装包,在终端设备中安装主安装包之后,通过主安装包中内置的主安装包和子安装包的下载地址,可在终端设备下载安装该应用程序的其余主安装包和子安装包。
例如:
Android平台的应用软件“微信”,被拆分后的主安装包:“微信_聊天.apk”、“微信_通讯录.apk”;
被拆分后的子安装包:“微信_朋友圈.apk”、“微信_摇一摇.apk”、“微信_游戏.apk”;
用户可在Android设备上安装“微信_聊天.apk”,通过“微信_聊天.apk”内置的主安装包和子安装包的下载地址,下载并安装其余主主安装包和子安装包:“微信_通讯录.apk”,以及“微信_朋友圈.apk”、“微信_摇一摇.apk”、“微信_游戏.apk”。
在具体实施时,除上述提供的实施方式之外,还可以采用其他实施方式将所述应用程序拆分为至少一个主安装包和至少一个子安装包,比如:
反编译所述应用程序的安装包,生成所述应用程序的源代码;
根据预先在所述应用程序的安装包设置的标签,将所述源代码拆分为至少一个主代码和至少一个子代码;
编译所述主代码和所述子代码,生成所述应用程序的至少一个主安装包和至少一个子安装包;
在此不做限定。
本申请提供的一种用于应用程序分包的装置实施例如下:
在上述的实施例中,提供了一种用于应用程序分包的方法,与之相对应的,本申请还提供了一种用于应用程序分包的装置。
参照附图2,其示出了根据本实施例提供的一种用于应用程序分包的装置示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。
本申请提供一种用于应用程序分包的装置,包括:
安装包获取单元,用于获取应用程序的安装包;
标签获取单元,用于获取预先在所述应用程序的安装包设置的标签;
应用程序拆分单元,用于根据所述标签,将所述应用程序拆分为至少一个主安装包和至少一个子安装包;
其中,所述标签包括:记录在用于编译生成所述安装包的源代码中的标识信息;
所述主安装包和所述子安装包能够在终端设备安装和运行;
所述主安装包包含有下载所述主安装包和所述子安装包的索引信息。
可选的,所述用于应用程序分包的装置,包括:
第一更新包获取单元,用于获取所述应用程序的更新包;
第一差异化分析单元,用于对所述应用程序的安装包和更新包进行差异化分析,生成所述应用程序的差分包;
其中,所述应用程序能够根据所述差分包进行更新。
可选的,所述用于应用程序分包的装置,包括:
第一更新消息发送单元,用于向终端设备发送所述应用程序的更新消息;
其中,所述更新消息中包含的所述应用程序的差分包的下载地址。
可选的,所述用于应用程序分包的装置,包括:
第二更新包获取单元,用于获取所述应用程序的更新包;
更新包标签获取单元,用于获取预先在所述更新包设置的标签;
更新包拆分单元,用于根据所述标签,将所述更新包拆分为至少一个主更新包和至少一个子更新包;
第二差异化分析单元,用于对所述应用程序的主安装包和对应的主更新包和/或述应用程序的子安装包和对应的子更新包分别进行差异化分析,生成主差分包和/或子差分包;
其中,所述应用程序的主安装包能够根据对应的主差分包进行更新;
所述应用程序的子安装包能够根据对应的子差分包进行更新。
可选的,所述用于应用程序分包的装置,包括:
第二更新消息发送单元,用于向终端设备所述应用程序的更新消息;
其中,所述更新消息中包含的所述应用程序的主差分包和/或子差分包的下载地址。
可选的,所述索引信息包括:下载地址。
可选的,所述应用程序拆分单元,包括:
反编译子单元,用于反编译所述应用程序的安装包,生成所述应用程序的源代码;
源代码拆分子单元,用于根据预先在所述应用程序的安装包设置的标签,将所述源代码拆分为至少一个主代码和至少一个子代码;
二次编译子单元,用于编译所述主代码和所述子代码,生成所述应用程序的至少一个主安装包和至少一个子安装包。
本申请提供的一种终端设备的应用程序安装方法实施例如下:
在上述的实施例中,提供了一种用于应用程序分包的方法,在此基础上,本申请还提供一种终端设备的应用程序安装方法,该方法基于终端设备实现,与上述用于应用程序分包的方法相互配合。
本实施例与上述用于应用程序分包的方法实施例相配合,内容相同的部分不再赘述,阅读本实施例请参照上述用于应用程序分包的方法实施例。
以下结合附图3对本申请提供的一种终端设备的应用程序安装方法进行说明,并且对该方法的各个步骤进行说明。
参照附图3,其示出了根据本实施例提供的一种终端设备的应用程序安装方法处理流程图。
本申请提供的终端设备的应用程序安装方法,包括:
步骤S301,获取应用程序的至少一个主安装包。
需要说明的是,所述应用程序存在至少一个主安装包和至少一个子安装包;
其中,所述主安装包和所述子安装包能够在终端设备安装和运行;
所述主安装包包含有下载所述主安装包和所述子安装包的索引信息。
例如:
Android平台的应用软件“微信”,被拆分后的主安装包:“微信_聊天.apk”、“微信_通讯录.apk”;
被拆分后的子安装包:“微信_朋友圈.apk”、“微信_摇一摇.apk”、“微信_游戏.apk”;
并且,主安装包“微信_聊天.apk”和“微信_通讯录.apk”中均包含该应用软件“微信”的所有主安装包的下载地址,以及所有子安装包的下载地址;
则获取“微信_聊天.apk”、“微信_通讯录.apk”,或者“微信_聊天.apk”和“微信_通讯录.apk”。
步骤S302,安装所述主安装包。
安装上述步骤S301获取到的所述应用程序的主安装包。
例如:
参照上述举例,在用户的Android设备上安装“微信_聊天.apk”或者“微信_通讯录.apk”,或者,在用户的Android设备上安装“微信_聊天.apk”和“微信_通讯录.apk”。
步骤S303,读取所述主安装包包含的所述应用程序的至少一个主安装包和至少一个子安装包的索引信息。
在具体实施时,本步骤读取所述主安装包包含的所述应用程序的至少一个主安装包和至少一个子安装包的索引信息之后,还可以执行如下步骤:
判断是否建立无线网络连接;
若是,则执行步骤S304;
若否,则执行所述判断是否建立无线网络连接步骤;
其中,所述无线网络包括下述至少一项:
Wi-Fi网络、蜂窝移动网络。
例如:
判断用户的Android设备是否建立Wi-Fi连接;
若是,则执行下载并安装所述主安装包和所述子安装包步骤;
若否,则执行所述判断用户的Android设备是否建立Wi-Fi连接步骤。
步骤S304,下载并安装所述主安装包和/或所述子安装包。
作为一种优选的实施方式,本实施例中,在执行本步骤时,优先下载安装所述应用程序的主安装包,所述应用程序的主安装包全部安装后,下载安装所述应用程序的所有子安装包;
并且,在安装所述应用程序的主安装包和子安装包时,按照所述主安装包的汉语拼音首字母从前到后的顺序依次安装所述主安装包,以及,按照所述子安装包的汉语拼音首字母从前到后的顺序依次安装所述子安装包。
例如:
Android平台的应用软件“微信”,被拆分后的主安装包:“微信_聊天.apk”、“微信_通讯录.apk”;
被拆分后的子安装包:“微信_朋友圈.apk”、“微信_摇一摇.apk”、“微信_游戏.apk”;
在安装应用软件“微信”的主安装包和子安装包时,按照如下顺序依次进行安装:
“微信_聊天.apk”->“微信_通讯录.apk”->“微信_朋友圈.apk”->“微信_摇一摇.apk”->“微信_游戏.apk”。
在具体实施时,除本实施例提供的上述操作之外,本实施例还包括所述应用程序的差分包下载安装操作,具体实现如下:
1)接收所述应用程序的更新消息;
其中,所述更新消息中包含的所述应用程序的差分包的下载地址;
所述应用程序能够根据所述差分包进行更新。
2)读取该更新消息中包含的所述应用程序的差分包的下载地址;
3)下载所述应用程序的差分包;
4)根据所述差分包对所述应用程序进行更新。
本实施例中,所述更新是指热更新,即:所述应用程序可自动加载所述差分包,无需重启所述应用程序。
具体的,所述根据所述差分包对所述应用程序进行更新,是指将所述差分包与所述应用程序的主安装包和子安装包进行整合编译。
除此之外,除本实施例提供的所述应用程序的差分包下载安装操作的实施方式之外,本实施例还提供所述应用程序的差分包下载安装操作的另外一种实施方式,具体实现如下:
接收所述应用程序的更新消息;
读取所述更新消息中包含的所述应用程序的主差分包和子差分包的下载地址;
其中,所述更新消息中包含的所述应用程序的主差分包和子差分包的下载地址。
在具体实施时,读取所述更新消息中包含的所述应用程序的主差分包和子差分包的下载地址之后,分别对所述应用程序的主安装包和子安装包进行更新,具体的,包括以下两种更新方式,分别对应主安装包和子安装包:
第一种:对应主安装包;
分别判断所述应用程序的主差分包对应的主安装包是否已安装;
若是,下载该主差分包;
根据该主差分包对该主差分包对应的主安装包进行更新;
其中,所述主安装包能够根据对应的主差分包进行更新;
具体的,所述根据该主差分包对该主差分包对应的主安装包进行更新,是指将该主差分包与该主差分包对应的主安装包进行整合编译。
例如:
Android平台的应用软件“微信”,被拆分后的主安装包:“微信_聊天.apk”、“微信_通讯录.apk”,二者分别对应一个主差分包;
根据应用软件“微信”的更新消息中包含的主差分包的下载地址,
下载应用软件“微信”的两个主差分包;
利用下载的主差分包,分别以热更新的方式更新主安装包“微信_聊天.apk”和“微信_通讯录.apk”。
第二种:对应子安装包;
分别判断所述应用程序的子差分包对应的子安装包是否已安装;
若是,下载该子差分包;
根据该子差分包对该子差分包对应的子安装包进行更新;
其中,所述子安装包能够根据对应的子差分包进行更新;
具体的,所述根据该子差分包对该子差分包对应的子安装包进行更新,是指将该子差分包与该子差分包对应的子安装包进行整合编译。
例如:
Android平台的应用软件“微信”,被拆分后的子安装包:“微信_朋友圈.apk”、“微信_摇一摇.apk”、“微信_游戏.apk”,三者分别对应一个子差分包;
根据应用软件“微信”的更新消息中包含的子差分包的下载地址,
下载应用软件“微信”的三个子差分包;
利用下载的子差分包,分别以热更新的方式更新主安装包“微信_朋友圈.apk”、“微信_摇一摇.apk”和“微信_游戏.apk”。
在具体实施时,除上述提供的实施方式之外,还可以采用本实施例之外的其他实施方式,在此不做限定。
本申请提供的一种终端设备的应用程序安装装置实施例如下:
在上述的实施例中,提供了一种终端设备的应用程序安装方法,与之相对应的,本申请还提供了一种终端设备的应用程序安装装置。
参照附图4,其示出了根据本实施例提供的一种终端设备的应用程序安装装置示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。
本申请提供一种终端设备的应用程序安装装置,包括:
主安装包获取单元,用于获取应用程序的至少一个主安装包;
主安装包安装单元,用于安装所述主安装包;
索引信息读取单元,用于读取所述主安装包包含的所述应用程序的至少一个主安装包和至少一个子安装包的索引信息;
下载安装单元,用于下载并安装所述主安装包和/或所述子安装包;
其中,所述主安装包和所述子安装包能够在终端设备安装和运行;
所述主安装包包含有下载所述主安装包和所述子安装包的索引信息。
可选的,所述终端设备的应用程序安装装置,包括:
无线网络连接判断单元,用于判断是否建立无线网络连接;
若是,则进入所述下载安装单元;
若否,则进入所述无线网络连接判断单元;
其中,所述无线网络包括下述至少一项:
Wi-Fi网络、蜂窝移动网络。
可选的,所述终端设备的应用程序安装装置,包括:
第一更新消息接收单元,用于接收所述应用程序的更新消息;
第一差分包下载地址读取单元,用于读取该更新消息中包含的所述应用程序的差分包的下载地址;
差分包下载单元,用于下载所述应用程序的差分包;
更新单元,用于根据所述差分包对所述应用程序进行更新;
其中,所述更新消息中包含的所述应用程序的差分包的下载地址;
所述应用程序能够根据所述差分包进行更新。
可选的,所述更新单元,包括:
整合编译子单元,用于将所述差分包与所述应用程序的主安装包和/或子安装包进行整合编译。
可选的,所述终端设备的应用程序安装装置,包括:
第二更新消息接收单元,用于接收所述应用程序的更新消息;
第二差分包下载地址读取单元,用于读取所述更新消息中包含的所述应用程序的主差分包和/或子差分包的下载地址;
其中,所述更新消息中包含的所述应用程序的主差分包和/或子差分包的下载地址。
可选的,所述终端设备的应用程序安装装置,包括:
主安装包判断单元,用于分别判断所述应用程序的主差分包对应的主安装包是否已安装;
若是,进入主差分包下载单元;
所述主差分包下载单元,用于下载该主差分包;
主安装包更新单元,用于根据该主差分包对该主差分包对应的主安装包进行更新;
其中,所述主安装包能够根据对应的主差分包进行更新。
可选的,所述主安装包更新单元,包括:
第一整合编译子单元,用于将该主差分包与该主差分包对应的主安装包进行整合编译。
可选的,所述终端设备的应用程序安装装置,包括:
子安装包判断单元,用于分别判断所述应用程序的子差分包对应的子安装包是否已安装;
若是,进入子差分包下载单元;
所述子差分包下载单元,用于下载该子差分包;
子安装包更新单元,用于根据该子差分包对该子差分包对应的子安装包进行更新;
其中,所述子安装包能够根据对应的子差分包进行更新。
可选的,所述子安装包更新单元,包括:
第二整合编译子单元,用于将该子差分包与该子差分包对应的子安装包进行整合编译。
可选的,所述更新包括:热更新。
本申请提供的一种用于应用程序分包的系统实施例如下:
在上述提供了一种用于应用程序分包的装置实施例,以及一种终端设备的应用程序安装装置实施例,与之相对应的,本申请还提供了一种用于应用程序分包的系统,该系统由本申请提供的所述用于应用程序分包的装置和所述终端设备的应用程序安装装置组成。
参照附图5,其示出了根据本实施例提供的一种用于应用程序分包的系统示意图。由于该系统由上述用于应用程序分包的装置和终端设备的应用程序安装装置组成,所以描述得比较简单,相关的部分请参见上述装置实施例的对应说明即可。下述描述的实施例仅仅是示意性的。
本申请提供一种用于应用程序分包的系统,包括:
本申请提供的所述用于应用程序分包的装置501;以及
本申请提供的所述终端设备的应用程序安装装置502。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (9)

1.一种用于应用程序分包的方法,其特征在于,包括:
获取应用程序的安装包;
反编译所述应用程序的安装包,生成所述应用程序的源代码;
利用脚本检测所述应用程序的源代码中的标识信息;
根据所述标识信息将所述源代码拆分为至少一个主代码和至少一个子代码;
编译所述主代码和所述子代码,生成所述应用程序的至少一个主安装包和至少一个子安装包;
获取所述应用程序的更新包;
获取预先在所述更新包设置的标签;
根据所述标签,将所述更新包拆分为至少一个主更新包和至少一个子更新包;
对所述应用程序的主安装包和对应的主更新包和/或述应用程序的子安装包和对应的子更新包分别进行差异化分析,生成主差分包和/或子差分包;
其中,所述主安装包和所述子安装包能够在终端设备安装和运行;
所述主安装包包含有下载所述主安装包和所述子安装包的索引信息;
所述应用程序的主安装包能够根据对应的主差分包进行更新;
所述应用程序的子安装包能够根据对应的子差分包进行更新。
2.根据权利要求1所述的用于应用程序分包的方法,其特征在于,所述对所述应用程序的主安装包和对应的主更新包和/或述应用程序的子安装包和对应的子更新包分别进行差异化分析,生成主差分包和/或子差分包步骤之后,执行如下步骤:
向终端设备所述应用程序的更新消息;
其中,所述更新消息中包含的所述应用程序的主差分包和/或子差分包的下载地址。
3.根据权利要求1所述的用于应用程序分包的方法,其特征在于,所述索引信息包括:下载地址。
4.一种用于应用程序分包的装置,其特征在于,包括:
安装包获取单元,用于获取应用程序的安装包;
反编译单元,用于反编译所述应用程序的安装包,生成所述应用程序的源代码;
标识信息检测单元,用于利用脚本检测所述应用程序的源代码中的标识信息;
源代码拆分单元,用于根据所述标识信息将所述源代码拆分为至少一个主代码和至少一个子代码;
二次编译单元,用于编译所述主代码和所述子代码,生成所述应用程序的至少一个主安装包和至少一个子安装包;
更新包获取单元,用于获取所述应用程序的更新包;
更新包标签获取单元,用于获取预先在所述更新包设置的标签;
更新包拆分单元,用于根据所述标签,将所述更新包拆分为至少一个主更新包和至少一个子更新包;
差异化分析单元,用于对所述应用程序的主安装包和对应的主更新包和/或述应用程序的子安装包和对应的子更新包分别进行差异化分析,生成主差分包和/或子差分包;
其中,所述主安装包和所述子安装包能够在终端设备安装和运行;
所述主安装包包含有下载所述主安装包和所述子安装包的索引信息;
所述应用程序的主安装包能够根据对应的主差分包进行更新;
所述应用程序的子安装包能够根据对应的子差分包进行更新。
5.一种终端设备的应用程序安装方法,其特征在于,包括:
从应用程序的至少一个主安装包中,获取该应用程序的至少一个主安装包;
安装获取的所述主安装包;
读取所述主安装包包含的所述应用程序的至少一个主安装包和至少一个子安装包的索引信息;
下载并安装所述主安装包和/或所述子安装包;
接收所述应用程序的更新消息;
读取所述更新消息中包含的所述应用程序的主差分包和/或子差分包的下载地址;
分别判断所述应用程序的主差分包对应的主安装包是否已安装,若是,下载该主差分包;将该主差分包与该主差分包对应的主安装包进行整合编译;
分别判断所述应用程序的子差分包对应的子安装包是否已安装,若是,下载该子差分包;将该子差分包与该子差分包对应的子安装包进行整合编译;
其中,所述主安装包和所述子安装包能够在终端设备安装和运行;
所述主安装包包含有下载所述主安装包和所述子安装包的索引信息;
所述更新消息中包含的所述应用程序的主差分包和/或子差分包的下载地址;
所述主安装包能够根据对应的主差分包进行更新,所述子安装包能够根据对应的子差分包进行更新。
6.根据权利要求5所述的终端设备的应用程序安装方法,其特征在于,所述读取所述主安装包包含的所述应用程序的至少一个主安装包和至少一个子安装包的索引信息步骤之后,所述下载并安装所述主安装包和/或所述子安装包步骤之前,执行如下步骤:
判断是否建立无线网络连接;
若是,则执行所述下载并安装所述主安装包和/或所述子安装包步骤;
若否,则执行所述判断是否建立无线网络连接步骤;
其中,所述无线网络包括下述至少一项:
Wi-Fi网络、蜂窝移动网络。
7.根据权利要求5所述的终端设备的应用程序安装方法,其特征在于,所述更新包括:热更新。
8.一种终端设备的应用程序安装装置,其特征在于,包括:
主安装包获取单元,用于从应用程序的至少一个主安装包中,获取该应用程序的至少一个主安装包;
主安装包安装单元,用于安装获取的所述主安装包;
索引信息读取单元,用于读取所述主安装包包含的所述应用程序的至少一个主安装包和至少一个子安装包的索引信息;
下载安装单元,用于下载并安装所述主安装包和/或所述子安装包;
更新消息接收单元,用于接收所述应用程序的更新消息;
差分包下载地址读取单元,用于读取所述更新消息中包含的所述应用程序的主差分包和/或子差分包的下载地址;
主安装包判断单元,用于分别判断所述应用程序的主差分包对应的主安装包是否已安装,若是,进入主差分包下载单元;所述主差分包下载单元,用于下载该主差分包;第一整合编译子单元,用于将该主差分包与该主差分包对应的主安装包进行整合编译;
子安装包判断单元,用于分别判断所述应用程序的子差分包对应的子安装包是否已安装,若是,进入子差分包下载单元;所述子差分包下载单元,用于下载该子差分包;第二整合编译子单元,用于将该子差分包与该子差分包对应的子安装包进行整合编译;
其中,所述主安装包和所述子安装包能够在终端设备安装和运行;
所述主安装包包含有下载所述主安装包和所述子安装包的索引信息;
所述更新消息中包含的所述应用程序的主差分包和/或子差分包的下载地址;
所述主安装包能够根据对应的主差分包进行更新,所述子安装包能够根据对应的子差分包进行更新。
9.一种用于应用程序分包的系统,其特征在于,包括:
权利要求4所述的用于应用程序分包的装置;以及
权利要求8所述的终端设备的应用程序安装装置。
CN201510329986.1A 2015-06-15 2015-06-15 一种用于应用程序分包的方法、装置以及系统 Active CN104991793B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510329986.1A CN104991793B (zh) 2015-06-15 2015-06-15 一种用于应用程序分包的方法、装置以及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510329986.1A CN104991793B (zh) 2015-06-15 2015-06-15 一种用于应用程序分包的方法、装置以及系统

Publications (2)

Publication Number Publication Date
CN104991793A CN104991793A (zh) 2015-10-21
CN104991793B true CN104991793B (zh) 2019-04-02

Family

ID=54303609

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510329986.1A Active CN104991793B (zh) 2015-06-15 2015-06-15 一种用于应用程序分包的方法、装置以及系统

Country Status (1)

Country Link
CN (1) CN104991793B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105549390A (zh) * 2015-12-18 2016-05-04 长沙中联消防机械有限公司 一种程序组合控制方法、装置及消防车
CN105938436A (zh) * 2016-07-14 2016-09-14 深圳市金立通信设备有限公司 一种操作系统的启动控制方法及终端
CN106484470A (zh) * 2016-09-29 2017-03-08 努比亚技术有限公司 应用程序安装包的处理方法、装置及服务器
CN107992312A (zh) * 2016-10-25 2018-05-04 中兴通讯股份有限公司 一种升级包下发方法及装置
CN106648671B (zh) * 2016-12-27 2020-05-19 宇龙计算机通信科技(深圳)有限公司 一种应用升级方法及终端
CN106886437B (zh) * 2017-01-24 2021-08-31 北京奇虎科技有限公司 应用程序更新方法与装置
CN106919843B (zh) * 2017-01-24 2020-08-28 北京奇虎科技有限公司 漏洞修复系统、方法及设备
CN106951224A (zh) * 2017-02-13 2017-07-14 深信服科技股份有限公司 应用程序封装方法及装置
CN106921524B (zh) * 2017-03-31 2021-12-17 新华三技术有限公司 一种配置命令行标签的方法及装置
CN107122205B (zh) * 2017-04-11 2021-01-29 深圳市客一客信息科技有限公司 安装程序的安装时间确定方法及装置
CN107402786A (zh) * 2017-07-14 2017-11-28 杭州绿湾网络科技有限公司 应用更新方法及装置
CN107678755B (zh) * 2017-09-13 2021-01-26 北京京东尚科信息技术有限公司 安装包打包的方法、装置、电子设备和计算机可读介质
CN108415719B (zh) 2018-03-29 2019-03-19 网易(杭州)网络有限公司 代码热更新方法和装置、存储介质、处理器及终端
CN108710501A (zh) * 2018-04-28 2018-10-26 维沃移动通信有限公司 一种更新应用的方法及终端
CN108829406B (zh) * 2018-06-13 2022-10-14 珠海豹趣科技有限公司 安装包打包方法、装置、电子设备及存储介质
CN109101240A (zh) * 2018-06-25 2018-12-28 北京小米移动软件有限公司 打包方法、装置和存储介质
WO2020073241A1 (zh) * 2018-10-10 2020-04-16 深圳市欢太科技有限公司 小游戏接入方法及相关设备
CN111124473A (zh) * 2018-10-31 2020-05-08 成都鼎桥通信技术有限公司 一种基于专网终端类型生成apk的方法和装置
CN109814913B (zh) * 2018-12-25 2020-09-18 华为终端有限公司 一种应用包拆分重组和运行的方法和装置
CN109947438B (zh) * 2018-12-28 2022-09-13 广州卓动信息科技有限公司 基于机器学习的游戏安装方法及电子设备、可读存储介质
CN110113391B (zh) * 2019-04-17 2021-07-20 北京奇艺世纪科技有限公司 一种客户端上线方法、装置及一种客户端运行方法、装置
CN112306512B (zh) * 2020-11-09 2023-12-26 武汉天喻信息产业股份有限公司 一种基于ccid协议下载安装apk文件的方法及系统
CN112527377B (zh) * 2020-11-25 2024-03-19 深圳左邻永佳科技有限公司 应用程序生成处理方法、装置、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1929646A (zh) * 2005-09-07 2007-03-14 乐金电子(中国)研究开发中心有限公司 一种在移动终端中支持大java应用下载的方法
CN102081535A (zh) * 2010-12-17 2011-06-01 东莞宇龙通信科技有限公司 基于Android的应用程序升级方法、系统及应用开发平台
CN102118500A (zh) * 2010-12-27 2011-07-06 清华大学 移动终端开源操作系统基于软件包的在线自动更新方法
CN102281325A (zh) * 2011-06-30 2011-12-14 杭州斯凯网络科技有限公司 一种移动应用分包下载方法
CN103701930A (zh) * 2014-01-07 2014-04-02 浙江大学 一种移动应用程序的实时更新方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1929646A (zh) * 2005-09-07 2007-03-14 乐金电子(中国)研究开发中心有限公司 一种在移动终端中支持大java应用下载的方法
CN102081535A (zh) * 2010-12-17 2011-06-01 东莞宇龙通信科技有限公司 基于Android的应用程序升级方法、系统及应用开发平台
CN102118500A (zh) * 2010-12-27 2011-07-06 清华大学 移动终端开源操作系统基于软件包的在线自动更新方法
CN102281325A (zh) * 2011-06-30 2011-12-14 杭州斯凯网络科技有限公司 一种移动应用分包下载方法
CN103701930A (zh) * 2014-01-07 2014-04-02 浙江大学 一种移动应用程序的实时更新方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种Android应用软件的分包实现方案;张凯;《电子技术与软件工程》;20140612(第11期);第86页

Also Published As

Publication number Publication date
CN104991793A (zh) 2015-10-21

Similar Documents

Publication Publication Date Title
CN104991793B (zh) 一种用于应用程序分包的方法、装置以及系统
US8612947B2 (en) System and method for remotely compiling multi-platform native applications for mobile devices
CN105302587B (zh) 数据更新方法及装置
US8978027B2 (en) Method of disseminating updated drivers to mobile computing devices and a dissemination system therefor
US20110191764A1 (en) Systems, methods, and apparatuses for facilitating distribution of firmware updates
CN107193593B (zh) 一种可升级文件的升级方法、机顶盒和存储介质
KR20110129436A (ko) 디바이스 의존적인 모바일 애플리케이션의 온 디맨드 컴파일링 및 설치
CN109358833B (zh) 一种音频播放方法及系统、一种计算设备及存储介质
CN109725952B (zh) 一种应用程序插件化的方法、系统以及相关装置
CN112328293A (zh) 一种嵌入式设备的差分升级方法及相关组件
CN106775720A (zh) 集成播放器sdk的方法和装置及设置播放器sdk的方法和装置
CN102377793B (zh) 基于移动通讯设备终端的Flash交互方法及装置
CN106843956B (zh) 系统固件包的生成方法及装置
CN112181366A (zh) 基于跨平台交互的移动应用开发框架
CN106919375B (zh) 一种移动终端设备上的屏幕自适应方法及系统
CN110221855B (zh) 一种app与服务器协同更新和离线运行的方法
CN109343880B (zh) 一种rn包更新方法、装置及可读存储介质
JP6001199B2 (ja) アンドロイドアプリケーションのタイゼン導入可能パッケージ自動変換方法及びこのためのコンピュータ読み取り可能な記録媒体
CN112363771B (zh) 应用程序的处理方法及相关产品
CN110968383B (zh) 一种消息框的显示方法及装置、终端、存储介质
CN111142913A (zh) 面向iOS系统应用程序的热更新方法和设备
CN104349209A (zh) 一种更新机顶盒的方法及装置
CN110837476A (zh) 一种应用程序测试的方法和装置
CN110825406A (zh) 一种软件升级的方法及相关设备
CN101442583B (zh) 一种移动终端的场景展现装置及其展现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant