CN111459511A - 应用程序的下载方法、装置及电子设备 - Google Patents

应用程序的下载方法、装置及电子设备 Download PDF

Info

Publication number
CN111459511A
CN111459511A CN202010244466.1A CN202010244466A CN111459511A CN 111459511 A CN111459511 A CN 111459511A CN 202010244466 A CN202010244466 A CN 202010244466A CN 111459511 A CN111459511 A CN 111459511A
Authority
CN
China
Prior art keywords
application program
installation package
downloading
application
channel installation
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
CN202010244466.1A
Other languages
English (en)
Other versions
CN111459511B (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010244466.1A priority Critical patent/CN111459511B/zh
Publication of CN111459511A publication Critical patent/CN111459511A/zh
Application granted granted Critical
Publication of CN111459511B publication Critical patent/CN111459511B/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/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

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)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提出一种应用程序的下载方法、装置及电子设备,属于应用推广技术领域。其中,该方法包括:接收客户端的针对第一应用程序的下载请求,其中,下载请求包括第一应用程序的标识;根据第一应用程序的标识,获取第一应用程序对应的安全下载码;获取第二应用程序的渠道安装包,其中,渠道安装包中包括埋点;以及将安全下载码添加至第二应用程序的渠道安装包中的埋点,并将第二应用程序的渠道安装包发送至客户端,以使客户端在安装第二应用程序之后根据安全下载码下载第一应用程序。由此,通过这种应用程序的下载方法,无需将第一应用程序信息提前预置在第二应用程序的安装包内,不仅耗时短、存储成本低,而且应用覆盖率高。

Description

应用程序的下载方法、装置及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及应用推广技术领域,提出一种应用程序的下载方法、装置及电子设备。
背景技术
安全下载场景是安卓应用市场一种重要的应用推广场景,即用户在搜索引擎中搜索目标应用时,先推荐用户下载应用市场,并在下载、启动应用市场后再下载目标应用。
相关技术中,应用市场在推广前需要提前将目标应用的信息预置在应用市场安装包内。具体的,可以根据应用市场的分发渠道数生成相应数量的应用市场的渠道包并压缩,进而对渠道包进行解压后,根据需要覆盖的目标应用数量,生成渠道数×应用数量的携带各目标应用信息的压缩包,并预置在应用市场安装包内。但是,这种应用推广方法,不仅存储成本高、耗时长,而且应用覆盖率低。
发明内容
提供了一种用于应用程序的下载方法、装置、电子设备及存储介质。
根据第一方面,提供了一种应用程序的下载方法,包括:接收客户端的针对第一应用程序的下载请求,其中,所述下载请求包括所述第一应用程序的标识;根据所述第一应用程序的标识,获取所述第一应用程序对应的安全下载码;获取第二应用程序的渠道安装包,其中,所述渠道安装包中包括埋点;以及将所述安全下载码添加至所述第二应用程序的渠道安装包中的埋点,并将所述第二应用程序的渠道安装包发送至所述客户端,以使所述客户端在安装所述第二应用程序之后根据所述安全下载码下载所述第一应用程序。
根据第二方面,提供了一种应用程序的下载装置,包括:接收模块,用于接收客户端的针对第一应用程序的下载请求,其中,所述下载请求包括所述第一应用程序的标识;第一获取模块,用于根据所述第一应用程序的标识,获取所述第一应用程序对应的安全下载码;第二获取模块,获取第二应用程序的渠道安装包,其中,所述渠道安装包中包括埋点;以及添加模块,用于将所述安全下载码添加至所述第二应用程序的渠道安装包中的埋点,并将所述第二应用程序的渠道安装包发送至所述客户端,以使所述客户端在安装所述第二应用程序之后根据所述安全下载码下载所述第一应用程序。
根据第三方面,提供了一种电子设备,其包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前所述的应用程序的下载方法。
根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行如前所述的应用程序的下载方法。
根据本申请的技术方案,解决了相关技术中,提前将目标应用的信息预置在应用市场安装包内的应用推广方法,不仅存储成本高、耗时长,而且应用覆盖率低的问题。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请实施例所提供的一种应用程序的下载方法的流程示意图;
图2为本申请实施例所提供的另一种应用程序的下载方法的流程示意图;
图3为一种第二应用程序的安装包的结构示意图;
图4为一种对第二应用程序的安装包进行V2签名后所生成的母包的结构示意图;
图5为一种对第二应用程序的母包进行渠道包批量打包的界面示意图;
图6为本申请实施例所提供的再一种应用程序的下载方法的流程示意图;
图7为本申请实施例提供的一种应用程序的下载装置的结构示意图;
图8为本申请实施例提供的电子设备的结构示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本申请实施例针对相关技术中,提前将目标应用的信息预置在应用市场安装包内的应用推广方法,不仅存储成本高、耗时长,而且应用覆盖率低的问题,提出一种应用程序的下载方法。
下面参考附图对本申请提供的应用程序的下载方法、装置、电子设备及存储介质进行详细描述。
图1为本申请实施例所提供的一种应用程序的下载方法的流程示意图。
如图1所示,该应用程序的下载方法,包括以下步骤:
步骤101,接收客户端的针对第一应用程序的下载请求,其中,下载请求包括第一应用程序的标识。
需要说明的是,在本申请实施例的应用程序的下载方法,可以由本申请实施例的应用程序的下载装置执行。实际使用时,本申请实施例的应用程序的下载装置可以配置在服务器中,以响应客户端的应用程序下载请求。
其中,客户端,可以是由服务器管理的任意的电子设备,或者也可以是安装在任意电子设备中由服务器管理的应用程序。比如,客户端可以为手机,也可以为手机中安装的搜索引擎应用程序。
其中,第一应用程序,是指客户端当前需要下载的应用程序。第一应用程序的标识,是指可以将第一应用程序唯一确定的信息;比如,第一应用程序的标识可以为第一应用程序的名称、版本号等。
其中,下载请求,是指客户端在搜索并下载第一应用程序时,生成并发送给服务器的下载请求。比如,在安卓***的安全下载场景中,用户通过搜索引擎A搜索并下载第一应用程序时,在用户点击指示下载第一应用程序的控件时,搜索引擎A可以生成针对第一应用程序的下载请求并发送给服务器。
在本申请实施例中,服务器可以随时接收客户端的针对第一应用程序的下载请求,并从下载请求中获取第一应用程序的标识。
步骤102,根据第一应用程序的标识,获取第一应用程序对应的安全下载码。
其中,第一应用程序对应的安全下载码,是指预先生成的第一应用程序对应的具有一定长度的随机唯一码。实际使用时,安全下载码的长度可以根据现有应用程序的数量预设,以保证可以安全下载码可以覆盖市面中现存的所有应用程序,即可以每个应用程序均分配一个唯一的安全下载码。比如,安全下载码的长度为512字节。
作为一种可能的实现方式,可以预先在服务器中保存应用程序信息与安全下载码的映射关系,其中,应用程序信息中可以包括应用程序的标识、下载链接等信息,本申请实施例对此不做限定。在本申请实施例中,服务器在获取到第一应用程序的标识后,可以根据第一应用程序的标识,以及应用程序信息与安全下载码的映射关系,确定与第一应用程序的标识对应的安全下载码,即第一应用程序对应的安全下载码。
步骤103,获取第二应用程序的渠道安装包,其中,渠道安装包中包括埋点。
其中,第二应用程序,是指可以用于搜索、下载或推荐应用的平台类应用程序。比如,第二应用程序可以为手机助手、应用市场等应用程序。
其中,渠道安装包,是指根据第二应用程序的获取渠道信息,生成的第二应用程序的安装包。比如,第二应用程序具有60个获取渠道,则第二应用程序可以包括60个渠道安装包。
其中,埋点,是指在渠道安装包中的某个位置预留一定存储空间的操作。比如,需要在渠道安装包的第1020字节出预留出1000字节的空间存储数据,则可以采用1000个特殊符号(如“#”)占用1020字节之后的1000个字节,即记录1020和1000两个信息,以完成对渠道包的埋点。
在本申请实施例中,可以在获取到客户端发送的针对第一应用程序的下载请求时,根据下载请求的来源,获取第二应用程序的相应的渠道安装包,并获取埋点在渠道安装包中的起始位置与长度,以使客户端首先安装第二应用程序。
举例来说,本申请实施例的应用程序的下载方法,可以应用在安卓***的安全下载场景中。比如,服务器在获取到客户端通过搜索引擎A搜索并下载第一应用程序所生成的下载请求时,可以获取与搜索引擎A对应的第二应用程序的渠道安装包。
步骤104,将安全下载码添加至第二应用程序的渠道安装包中的埋点,并将第二应用程序的渠道安装包发送至客户端,以使客户端在安装第二应用程序之后根据安全下载码下载第一应用程序。
在本申请实施例中,服务器在确定出第一应用程序对应的安全下载码之后,可以根据获取的第二应用程序的渠道安装包中埋点的起始位置,将安全下载码添加至第二应用程序的渠道安全包中的埋点。之后将包括安全下载码的第二应用程序的渠道安装包发送至客户端,以使客户端利用获取到的渠道安装包安装第二应用程序。
在客户端安装第二应用程序之后,可以在第二应用程序的冷启动时,通过集成的SDK(Software Development Kit,软件开发工具包)读取渠道安装包中的安全下载码并发送给服务器,从而服务器可以在获取到客户端发送的安全下载码之后,根据应用程序信息与安全下载码的映射关系,确定与获取到的安全下载码对应的下载地址,即第一应用程序对应的下载地址,并发送给客户端,以使客户端根据下载地址自动开始下载第一应用程序,并展示下载页。
根据本申请实施例的技术方案,通过在接收到客户端的针对第一应用程序的下载请求时,根据下载请求中包括的第一应用程序的标识,获取第一应用程序对应的安全下载码,并获取包括埋点的第二应用程序的渠道安装包,进而将安全下载码添加至第二应用程序的渠道安装包中的埋点,并将第二应用程序的渠道安装包发送至客户端,以使客户端在安装第二应用程序之后根据安全下载码下载第一应用程序。由此,通过在第二应用程序的渠道包内增加埋点,并根据客户端针对第一应用程序的下载请求,将第一应用程序的安全下载码添加至埋点中,以使客户端可以在安装第二应用程序之后根据安全下载码下载第一应用程序,从而无需将第一应用程序信息提前预置在第二应用程序的安装包内,不仅耗时短、存储成本低,而且应用覆盖率高。
在本申请一种可能的实现形式中,可以对第二应用程序的安装包进行签名,进而通过修改第二应用程序安装包的签名信息,对第二应用程序的渠道安装包进行埋点。
下面结合图2,对本申请实施例提供的应用程序的下载方法进行进一步说明。
图2为本申请实施例所提供的另一种应用程序的下载方法的流程示意图。
如图2所示,该应用程序的下载方法,包括以下步骤:
步骤201,接收客户端的针对第一应用程序的下载请求,其中,下载请求包括第一应用程序的标识。
步骤202,根据第一应用程序的标识,获取第一应用程序对应的安全下载码。
上述步骤201-202的具体实现过程及原理,可以参照上述实施例的详细描述,此处不再赘述。
步骤203,获取第二应用程序的安装包。
在本申请实施例中,第二应用程序的安装包可以是开发人员对第二应用程序开发完成之后,所生成的安装包。
步骤204,对第二应用程序的安装包进行签名,以形成第二应用程序的母包。
在本申请实施例中,为使得第二应用程序的安装包在第二应用程序所适用的***中具有合法性,可以利用该***中的签名机制对第二应用程序的安装包进行签名,以形成第二应用程序的母包。
举例来说,第二应用程序所使用的***为安卓***,第二应用程序的安装包为ZIP压缩包,则可以采用安卓***中的针对APK(Android application package,安卓应用程序包)的签名工具对第二应用程序的安装包进行签名,比如,可以采用V2(Full APKSignature)签名机制对第二应用程序的安装包进行签名,以生成第二应用程序的母包。如图3所示,为一种第二应用程序的安装包的结构示意图,包括数据区、中央目录和中央目录结尾记录三个部分;图4为对第二应用程序的安装包进行V2签名后所生成的母包的结构示意图,包括数据区、APK签名块、中央目录和中央目标结尾记录四个部分。可见,通过V2签名机制对第二应用程序的安装包进行签名之后,在安装包的数据区和中央目录之间增加了APK签名块,从而保证了安装包数据的完整性。
步骤205,根据第二应用程序的母包生成第二应用程序的渠道安装包,并在渠道安装包中添加所述埋点。
在本申请实施例中,生成第二应用程序的母包之后,可以根据第二应用程序的获取渠道数量,对第二应用程序的母包进行复制,以生成与获取渠道数量相同的安装包,并在每个安装包内添加不同的渠道号文件,以生成与渠道数量相同的渠道包,并在每个渠道包中添加埋点。
作为一种可能的实现方式,可以提供用于批量打包渠道包的发布平台,从而在生成第二应用程序的母包之后,可以将第二应用程序的母包上传至发布平台,并在获取到对母包的渠道包打包请求时,根据打包请求中包括的渠道号生成相应的渠道包。
举例来说,图5为一种对第二应用程序的母包进行渠道包批量打包的界面示意图。如图5所示,可以在批量打包界面提供多个渠道号分组,每个渠道号分组中包括多个渠道号(分组后括号内的数字为该分组包括的渠道号数量),开发人员可以根据实际需求选择相应渠道号分组内包括的各渠道号信息,对第二应用程序的母包进行批量打包,以生成相应数量的渠道包。比如,在开发人员选择图5中的分组7时,可以生成第二应用程序对应的565个渠道包。
进一步的,在对第二应用程序的渠道包中添加埋点时,可以在渠道包的签名块中添加埋点。即在本申请实施例一种可能的实现形式中,上述步骤205,可以包括:
获取渠道安装包中的签名信息;
在签名信息中添加埋点;
根据埋点的长度,更新渠道安装包。
其中,签名信息,可以包括渠道安装包中签名块的位置、长度、格式等信息。
在本申请实施例中,由于第二应用程序的渠道安装包通常为ZIP压缩包,而ZIP压缩包的数据区通常包括整个压缩包的信息,因此可以根据第二应用程序的渠道安装包数据区的内容,确定渠道安装包中中央目录结尾记录的起始位置和中央目录的长度,之后根据中央目录结尾记录的起始位置和中央目录的长度,确定渠道安装包中中央目录的起始位置,即渠道安装包中APK签名块的结束位置。进而根据渠道安装包数据区中存储的APK签名块的格式信息,确定APK签名块的长度与APK签名块内部各部分信息,并在APK签名块中添加埋点。
作为一种可能的实现方式,由于APK签名块中拥有标识签名的键值对允许对其修改,并不受签名保护,因此可以在APK签名块的键值对中添加埋点。也就是说,可以获取签名信息中包括的键值对对应的位置,并在键值对末尾添加埋点。
具体的,可以根据渠道安装包中APK签名块的结束位置和APK签名块内部的各部分信息,确定签名块中包括的键值对对应的位置,并在键值对末尾添加埋点。比如,可以埋点可以是在键值对末尾添加1000个“#”字符,占用1000字节的存储空间。
在本申请实施例中,由于在渠道安装包中添加埋点之后,渠道安装包的长度会发生变化,因此,可以根据埋点的长度,在渠道安装包的数据区中对渠道安装包的长度进行更新,以使添加埋点后的渠道安装包合法。比如,埋点的长度为1000字节,则可以将渠道安装包的长度更新为增加1000字节。
步骤206,获取第二应用程序的渠道安装包,其中,渠道安装包中包括埋点。
步骤207,将安全下载码添加至第二应用程序的渠道安装包中的埋点,并将第二应用程序的渠道安装包发送至客户端,以使客户端在安装第二应用程序之后根据安全下载码下载第一应用程序。
上述步骤206-207的具体实现过程及原理,可以参照上述实施例的详细描述,此处不再赘述。
根据本申请实施例的技术方案,通过在接收到客户端的针对第一应用程序的下载请求时,根据下载请求中包括的第一应用程序的标识,获取第一应用程序对应的安全下载码,并获取第二应用程序的安装包,对第二应用程序的安装包进行签名,以形成第二应用程序的母包,之后根据第二应用程序的母包生成第二应用程序的渠道安装包,以及在渠道安装包中添加埋点,进而获取包括埋点的第二应用程序的渠道安装包,将安全下载码添加至第二应用程序的渠道安装包中的埋点,并将第二应用程序的渠道安装包发送至客户端,以使客户端在安装第二应用程序的之后根据安全下载码下载第一应用程序。由此,通过对第二应用程序的安装包进行签名并在签名信息中添加埋点,以生成第二应用程序的渠道安装包,从而无需将第一应用程序信息提前预置在第二应用程序的安装包内,通过对第二应用程序的渠道安装包进行简单改造,以动态生成具有安全下载码的安装包,不仅耗时短、存储成本低、应用覆盖率高,而且进一步提高了第二应用程序的发版效率。
在本申请一种可能的实现形式中,可以通过内容分发网络动态生成发送给客户端的第二应用程序的渠道安装包。
下面结合图6,对本申请实施例提供的应用程序的下载方法进行进一步说明。
图6为本申请实施例所提供的另一种应用程序的下载方法的流程示意图。
如图6所示,该应用程序的下载方法,包括以下步骤:
步骤301,接收客户端的针对第一应用程序的下载请求,其中,下载请求包括第一应用程序的标识。
步骤302,根据第一应用程序的标识,获取第一应用程序对应的安全下载码。
步骤303,获取第二应用程序的渠道安装包,其中,渠道安装包中包括埋点。
上述步骤301-303的具体实现过程及原理,可以参照上述实施例的详细描述,此处不再赘述。
步骤304,获取渠道安装包中埋点的埋点信息。
其中,埋点信息,可以包括埋点在渠道安装包中的起始位置和长度。
在本申请实施例中,服务器在获取到客户端针对第一应用程序的下载请求之后,可以获取与下载请求的来源相对应的第二应用程序的渠道安装包,并从渠道安装包中数据区的内容,获取渠道安装包中埋点的埋点信息。
步骤305,将安全下载码和埋点信息发送至内容分发网络,其中,内容分发网络缓存渠道安装包,并根据埋点信息获取埋点所在的数据包切片,将安全下载码添加在数据包切片中所述埋点的位置,并将第二应用程序的渠道安装包发送至客户端,以使客户端在安装第二应用程序之后根据安全下载码下载第一应用程序。
在本申请实施例中,可以通过内容分发网络动态生成具有第一应用程序对应的安全下载码的第二应用程序的渠道安装包。
作为一种可能的实现方式,服务器在生成第二应用程序的各个渠道安装包之后,可以将各个渠道安装包存储在云端,并在获取到第一应用程序的下载请求之后,可以将与下载请求的来源对应的第二应用程序的渠道安装包发送至内容分发网络,以使内容分发网络对该渠道安装包进行缓存。需要说明的是,内容分发网络在缓存渠道安装包时,可以将渠道安装包划分为多个数据包切片,分别存储在不同的位置。
从而,服务器在获取到第一应用程序对应的安全下载码和渠道安装包的埋点信息之后,可以发送给内容分发网络,以使内容分发网络可以根据获取到的埋点信息确定渠道安装包对应的各数据包切片,即埋点信息对应的埋点所在的数据包切片,进而根据埋点信息确定埋点在每个数据包切片中的位置,并将安全下载码添加至每个数据包切片中埋点的位置,进而将具有安全下载码的数据包切片依次发送给客户端,以实现客户端对渠道安装包的流式下载,提升第二应用程序的下载和安装效率。。
在本申请实施例中,客户端在获取到第二应用程序的渠道安装包对应的各数据包切片后,通过集成的SDK对各数据包切片进行解析以安装第二应用程序,并在第二应用程序的冷启动时,通过集成的SDK读取渠道安装包中的安全下载码并发送给服务器,从而服务器可以在获取到客户端发送的安全下载码之后,根据应用程序信息与安全下载码的映射关系,确定与获取到的安全下载码对应的下载地址,即第一应用程序对应的下载地址,并发送给客户端,以使客户端根据下载地址自动开始下载第一应用程序,并展示下载页。
根据本申请实施例的技术方案,通过在接收到客户端的针对第一应用程序的下载请求时,根据下载请求中包括的第一应用程序的标识,获取第一应用程序对应的安全下载码,并获取包括埋点的第二应用程序的渠道安装包,之后获取渠道安装包中埋点的埋点信息,进而将安全下载码和埋点信息发送至内容分发网络,其中,内容分发网络缓存渠道安装包,并根据埋点信息获取埋点所在的数据包切片,将安全下载码添加在数据包切片中所述埋点的位置,并将第二应用程序的渠道安装包发送至客户端,以使客户端在安装第二应用程序之后根据安全下载码下载第一应用程序。由此,通过内容分发网络动态生成具有安全下载码的第二应用程序的渠道安装包,并依次将渠道安装包对应的各个数据包切片分别发送给客户端,从而不仅无需将第一应用程序信息提前预置在第二应用程序的安装包内,耗时短、存储成本低、应用覆盖率高,而且可以实现客户端对渠道安装包的流式下载,提升了应用程序的下载和安装效率。
为了实现上述实施例,本申请还提出一种应用程序的下载装置。
图7为本申请实施例提供的一种应用程序的下载装置的结构示意图。
如图7所示,该应用程序的下载装置40,包括:
接收模块41,用于接收客户端的针对第一应用程序的下载请求,其中,下载请求包括所述第一应用程序的标识;
第一获取模块42,用于根据第一应用程序的标识,获取第一应用程序对应的安全下载码;
第二获取模块43,获取第二应用程序的渠道安装包,其中,渠道安装包中包括埋点;以及
添加模块44,用于将安全下载码添加至第二应用程序的渠道安装包中的埋点,并将第二应用程序的渠道安装包发送至客户端,以使客户端在安装第二应用程序之后根据安全下载码下载第一应用程序。
在实际使用时,本申请实施例提供的应用程序的下载装置,可以被配置在任意电子设备中,以执行前述应用程序的下载方法。
根据本申请实施例的技术方案,通过在接收到客户端的针对第一应用程序的下载请求时,根据下载请求中包括的第一应用程序的标识,获取第一应用程序对应的安全下载码,并获取包括埋点的第二应用程序的渠道安装包,进而将安全下载码添加至第二应用程序的渠道安装包中的埋点,并将第二应用程序的渠道安装包发送至客户端,以使客户端在安装第二应用程序之后根据安全下载码下载第一应用程序。由此,通过在第二应用程序的渠道包内增加埋点,并根据客户端针对第一应用程序的下载请求,将第一应用程序的安全下载码添加至埋点中,以使客户端可以在安装第二应用程序之后根据安全下载码下载第一应用程序,从而无需将第一应用程序信息提前预置在第二应用程序的安装包内,不仅耗时短、存储成本低,而且应用覆盖率高。
在本申请一种可能的实现形式中,上述应用程序的下载装置40,还包括:
第三获取模块,用于获取第二应用程序的安装包;
签名模块,用于对第二应用程序的安装包进行签名,以形成第二应用程序的母包;
生成模块,用于根据第二应用程序的母包生成第二应用程序的渠道安装包,并在渠道安装包中添加埋点。
进一步的,在本申请另一种可能的实现形式中,上述生成模块,包括:
第一获取单元,用于获取渠道安装包中的签名信息;
添加单元,用于在签名信息中添加埋点;以及
更新单元,用于根据埋点的长度,更新渠道安装包。
进一步的,在本申请再一种可能的实现形式中,上述添加单元,包括:
获取子单元,用于获取签名信息中包括的键值对对应的位置;
添加子单元,用于在键值对末尾添加埋点。
进一步的,在本申请又一种可能的实现形式中,上述添加模块44,包括:
第二获取单元,用于获取渠道安装包中埋点的埋点信息;
发送单元,用于将安全下载码和埋点信息发送至内容分发网络,其中,内容分发网络缓存渠道安装包,并根据埋点信息获取埋点所在的数据包切片,将安全下载码添加在数据包切片中埋点的位置。
需要说明的是,前述对图1、图2、图6所示的应用程序的下载方法实施例的解释说明也适用于该实施例的应用程序的下载装置40,此处不再赘述。
根据本申请实施例的技术方案,通过在接收到客户端的针对第一应用程序的下载请求时,根据下载请求中包括的第一应用程序的标识,获取第一应用程序对应的安全下载码,并获取第二应用程序的安装包,对第二应用程序的安装包进行签名,以形成第二应用程序的母包,之后根据第二应用程序的母包生成第二应用程序的渠道安装包,以及在渠道安装包中添加埋点,进而获取包括埋点的第二应用程序的渠道安装包,将安全下载码添加至第二应用程序的渠道安装包中的埋点,并将第二应用程序的渠道安装包发送至客户端,以使客户端在安装第二应用程序的之后根据安全下载码下载第一应用程序。由此,通过对第二应用程序的安装包进行签名并在签名信息中添加埋点,以生成第二应用程序的渠道安装包,从而无需将第一应用程序信息提前预置在第二应用程序的安装包内,通过对第二应用程序的渠道安装包进行简单改造,以动态生成具有安全下载码的安装包,不仅耗时短、存储成本低、应用覆盖率高,而且进一步提高了第二应用程序的发版效率。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图8所示,是根据本申请实施例的应用程序的下载方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个电子设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图8中以一个处理器501为例。
存储器502即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的应用程序的下载方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的应用程序的下载方法。
存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的应用程序的下载方法对应的程序指令/模块(例如,附图7所示的接收模块41、第一获取模块42、第二获取模块43及添加模块44)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的应用程序的下载方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据应用程序的下载方法的电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至应用程序的下载方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
应用程序的下载方法的电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图8中以通过总线连接为例。
输入装置503可接收输入的数字或字符信息,以及产生与应用程序的下载方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过在接收到客户端的针对第一应用程序的下载请求时,根据下载请求中包括的第一应用程序的标识,获取第一应用程序对应的安全下载码,并获取包括埋点的第二应用程序的渠道安装包,进而将安全下载码添加至第二应用程序的渠道安装包中的埋点,并将第二应用程序的渠道安装包发送至客户端,以使客户端在安装第二应用程序之后根据安全下载码下载第一应用程序。由此,通过在第二应用程序的渠道包内增加埋点,并根据客户端针对第一应用程序的下载请求,将第一应用程序的安全下载码添加至埋点中,以使客户端可以在安装第二应用程序之后根据安全下载码下载第一应用程序,从而无需将第一应用程序信息提前预置在第二应用程序的安装包内,不仅耗时短、存储成本低,而且应用覆盖率高。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (12)

1.一种应用程序的下载方法,其特征在于,包括:
接收客户端的针对第一应用程序的下载请求,其中,所述下载请求包括所述第一应用程序的标识;
根据所述第一应用程序的标识,获取所述第一应用程序对应的安全下载码;
获取第二应用程序的渠道安装包,其中,所述渠道安装包中包括埋点;以及
将所述安全下载码添加至所述第二应用程序的渠道安装包中的埋点,并将所述第二应用程序的渠道安装包发送至所述客户端,以使所述客户端在安装所述第二应用程序之后根据所述安全下载码下载所述第一应用程序。
2.如权利要求1所述的应用程序的下载方法,其特征在于,所述获取第二应用程序的渠道安装包之前,还包括:
获取所述第二应用程序的安装包;
对所述第二应用程序的安装包进行签名,以形成所述第二应用程序的母包;
根据所述第二应用程序的母包生成所述第二应用程序的渠道安装包,并在所述渠道安装包中添加所述埋点。
3.如权利要求2所述的应用程序的下载方法,其特征在于,所述在所述渠道安装包中添加所述埋点,包括:
获取所述渠道安装包中的签名信息;
在所述签名信息中添加所述埋点;以及
根据所述埋点的长度,更新所述渠道安装包。
4.如权利要求3所述的应用程序的下载方法,其特征在于,所述在所述签名信息中添加所述埋点,包括:
获取所述签名信息中包括的键值对对应的位置;
在所述键值对末尾添加所述埋点。
5.如权利要求1-4任一所述的应用程序的下载方法,其特征在于,所述将所述安全下载码添加至所述第二应用程序的渠道安装包中的埋点,包括:
获取所述渠道安装包中埋点的埋点信息;
将所述安全下载码和所述埋点信息发送至内容分发网络,其中,所述内容分发网络缓存所述渠道安装包,并根据所述埋点信息获取所述埋点所在的数据包切片,将所述安全下载码添加在所述数据包切片中所述埋点的位置。
6.一种应用程序的下载装置,其特征在于,包括:
接收模块,用于接收客户端的针对第一应用程序的下载请求,其中,所述下载请求包括所述第一应用程序的标识;
第一获取模块,用于根据所述第一应用程序的标识,获取所述第一应用程序对应的安全下载码;
第二获取模块,获取第二应用程序的渠道安装包,其中,所述渠道安装包中包括埋点;以及
添加模块,用于将所述安全下载码添加至所述第二应用程序的渠道安装包中的埋点,并将所述第二应用程序的渠道安装包发送至所述客户端,以使所述客户端在安装所述第二应用程序之后根据所述安全下载码下载所述第一应用程序。
7.如权利要求6所述的应用程序的下载装置,其特征在于,还包括:
第三获取模块,用于获取所述第二应用程序的安装包;
签名模块,用于对所述第二应用程序的安装包进行签名,以形成所述第二应用程序的母包;
生成模块,用于根据所述第二应用程序的母包生成所述第二应用程序的渠道安装包,并在所述渠道安装包中添加所述埋点。
8.如权利要求7所述的应用程序的下载装置,其特征在于,所述生成模块,包括:
第一获取单元,用于获取所述渠道安装包中的签名信息;
添加单元,用于在所述签名信息中添加所述埋点;以及
更新单元,用于根据所述埋点的长度,更新所述渠道安装包。
9.如权利要求8所述的应用程序的下载装置,其特征在于,所述添加单元,包括:
获取子单元,用于获取所述签名信息中包括的键值对对应的位置;
添加子单元,用于在所述键值对末尾添加所述埋点。
10.如权利要求6-9任一所述的应用程序的下载装置,其特征在于,所述添加模块,包括:
第二获取单元,用于获取所述渠道安装包中埋点的埋点信息;
发送单元,用于将所述安全下载码和所述埋点信息发送至内容分发网络,其中,所述内容分发网络缓存所述渠道安装包,并根据所述埋点信息获取所述埋点所在的数据包切片,将所述安全下载码添加在所述数据包切片中所述埋点的位置。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-5中任一项所述的方法。
CN202010244466.1A 2020-03-31 2020-03-31 应用程序的下载方法、装置及电子设备 Active CN111459511B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010244466.1A CN111459511B (zh) 2020-03-31 2020-03-31 应用程序的下载方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010244466.1A CN111459511B (zh) 2020-03-31 2020-03-31 应用程序的下载方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN111459511A true CN111459511A (zh) 2020-07-28
CN111459511B CN111459511B (zh) 2023-06-16

Family

ID=71678509

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010244466.1A Active CN111459511B (zh) 2020-03-31 2020-03-31 应用程序的下载方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN111459511B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988176A (zh) * 2021-04-15 2021-06-18 腾讯科技(深圳)有限公司 渠道包的生成方法和装置、存储介质及电子设备
CN113204463A (zh) * 2021-04-21 2021-08-03 宝宝巴士股份有限公司 一种apk下载安装率的埋点统计方法及装置
CN113377424A (zh) * 2021-06-23 2021-09-10 支付宝(杭州)信息技术有限公司 一种安装包处理方法、装置以及设备
CN113568626A (zh) * 2021-06-29 2021-10-29 北京百度网讯科技有限公司 动态打包、应用程序包开启方法、装置和电子设备
CN115878138A (zh) * 2023-03-03 2023-03-31 腾讯科技(深圳)有限公司 应用预下载方法、装置、计算机、存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105955775A (zh) * 2016-04-29 2016-09-21 乐视控股(北京)有限公司 一种应用程序安装包推送方法及装置
WO2018094990A1 (zh) * 2016-11-23 2018-05-31 中兴通讯股份有限公司 一种信息处理方法和装置和计算机存储介质
CN108255993A (zh) * 2017-12-29 2018-07-06 北京三快在线科技有限公司 提取业务字段的方法、装置、电子设备及存储介质
US20180203681A1 (en) * 2017-01-17 2018-07-19 Oracle International Corporation Private computer network installations
US20180293059A1 (en) * 2017-04-07 2018-10-11 International Business Machines Corporation Installation of a location-based application
CN109542461A (zh) * 2018-10-16 2019-03-29 深圳壹账通智能科技有限公司 应用安装包的发布方法、终端设备及介质
CN110267232A (zh) * 2019-05-17 2019-09-20 浙江口碑网络技术有限公司 应用程序安装方法和装置
CN110275832A (zh) * 2019-06-19 2019-09-24 北京字节跳动网络技术有限公司 应用程序的启动耗时测试方法、***、设备及介质
CN110401717A (zh) * 2019-07-26 2019-11-01 上海优扬新媒信息技术有限公司 一种应用程序安装包生成方法及装置
CN110544128A (zh) * 2019-09-04 2019-12-06 北京百度网讯科技有限公司 渠道信息的获取方法、装置、电子设备及存储介质
CN110597550A (zh) * 2019-08-14 2019-12-20 平安国际智慧城市科技股份有限公司 应用程序推荐下载方法、装置、电子设备及存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105955775A (zh) * 2016-04-29 2016-09-21 乐视控股(北京)有限公司 一种应用程序安装包推送方法及装置
WO2018094990A1 (zh) * 2016-11-23 2018-05-31 中兴通讯股份有限公司 一种信息处理方法和装置和计算机存储介质
US20180203681A1 (en) * 2017-01-17 2018-07-19 Oracle International Corporation Private computer network installations
US20180293059A1 (en) * 2017-04-07 2018-10-11 International Business Machines Corporation Installation of a location-based application
CN108255993A (zh) * 2017-12-29 2018-07-06 北京三快在线科技有限公司 提取业务字段的方法、装置、电子设备及存储介质
CN109542461A (zh) * 2018-10-16 2019-03-29 深圳壹账通智能科技有限公司 应用安装包的发布方法、终端设备及介质
CN110267232A (zh) * 2019-05-17 2019-09-20 浙江口碑网络技术有限公司 应用程序安装方法和装置
CN110275832A (zh) * 2019-06-19 2019-09-24 北京字节跳动网络技术有限公司 应用程序的启动耗时测试方法、***、设备及介质
CN110401717A (zh) * 2019-07-26 2019-11-01 上海优扬新媒信息技术有限公司 一种应用程序安装包生成方法及装置
CN110597550A (zh) * 2019-08-14 2019-12-20 平安国际智慧城市科技股份有限公司 应用程序推荐下载方法、装置、电子设备及存储介质
CN110544128A (zh) * 2019-09-04 2019-12-06 北京百度网讯科技有限公司 渠道信息的获取方法、装置、电子设备及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
LIU ZHAOQING等: "Design and application of LXI instrument based on script-download and module-to-module communication", 《IEEE 2011 10TH INTERNATIONAL CONFERENCE ON ELECTRONIC MEASUREMENT & INSTRUMENTS》 *
LIU ZHAOQING等: "Design and application of LXI instrument based on script-download and module-to-module communication", 《IEEE 2011 10TH INTERNATIONAL CONFERENCE ON ELECTRONIC MEASUREMENT & INSTRUMENTS》, 19 August 2011 (2011-08-19), pages 326 - 330, XP032057724, DOI: 10.1109/ICEMI.2011.6037827 *
李欣: "基于Android的***推荐***的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
李欣: "基于Android的***推荐***的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 01, 15 January 2015 (2015-01-15), pages 138 - 616 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988176A (zh) * 2021-04-15 2021-06-18 腾讯科技(深圳)有限公司 渠道包的生成方法和装置、存储介质及电子设备
CN113204463A (zh) * 2021-04-21 2021-08-03 宝宝巴士股份有限公司 一种apk下载安装率的埋点统计方法及装置
CN113377424A (zh) * 2021-06-23 2021-09-10 支付宝(杭州)信息技术有限公司 一种安装包处理方法、装置以及设备
CN113568626A (zh) * 2021-06-29 2021-10-29 北京百度网讯科技有限公司 动态打包、应用程序包开启方法、装置和电子设备
CN113568626B (zh) * 2021-06-29 2024-04-09 北京百度网讯科技有限公司 动态打包、应用程序包开启方法、装置和电子设备
CN115878138A (zh) * 2023-03-03 2023-03-31 腾讯科技(深圳)有限公司 应用预下载方法、装置、计算机、存储介质
CN115878138B (zh) * 2023-03-03 2023-08-15 腾讯科技(深圳)有限公司 应用预下载方法、装置、计算机、存储介质

Also Published As

Publication number Publication date
CN111459511B (zh) 2023-06-16

Similar Documents

Publication Publication Date Title
CN111459511A (zh) 应用程序的下载方法、装置及电子设备
US9075693B2 (en) Methods for updating applications
CN105049486A (zh) 静态文件的版本管理、文件拉取控制方法、装置及***
WO2019201039A1 (zh) 一种更新应用程序的方法、***及应用服务器
TWI712956B (zh) 行動終端應用程式的更新方法和裝置
CN108650287B (zh) 物联网中的终端设备的升级方法、设备及计算机可读介质
CN112073994A (zh) 用于空中升级的方法、装置、电子设备及可读存储介质
CN105045631A (zh) 一种升级客户端侧应用程序的方法和装置
CN112395253B (zh) 索引文件生成方法、终端设备、电子设备及介质
CN110688096B (zh) 包含插件的应用程序的构建方法、装置、介质及电子设备
CN112947981A (zh) 应用程序资源更新方法、装置、终端设备及服务器
CN110532016B (zh) 版本管理方法、版本更新方法和版本管理***
CN111767089A (zh) 加载文件的方法、装置、设备以及存储介质
CN111885114B (zh) 网关中的应用程序接口模块的升级方法、设备及存储介质
CN110960855A (zh) 一种通信协议代码更新方法、装置、电子设备及存储介质
CN110765075A (zh) 自动驾驶数据的存储方法和设备
CN110928571A (zh) 业务程序开发方法和装置
CN112149035A (zh) 网站静态资源处理方法及装置
CN113608800A (zh) 项目启动方法、装置、电子设备及存储介质
US20190196794A1 (en) Visual programming method, system and terminal device
CN110505289B (zh) 文件下载方法及装置、计算机可读介质、无线通信设备
CN111858156A (zh) 镜像管理方法、装置及电子设备
CN111796851A (zh) 客户端基础库更新方法、装置、电子设备和存储介质
EP2680135B1 (en) Methods for updating applications
CN106886373B (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