CN102508677B - 数据处理装置、应用程序下载方法及装置 - Google Patents

数据处理装置、应用程序下载方法及装置 Download PDF

Info

Publication number
CN102508677B
CN102508677B CN201110297502.1A CN201110297502A CN102508677B CN 102508677 B CN102508677 B CN 102508677B CN 201110297502 A CN201110297502 A CN 201110297502A CN 102508677 B CN102508677 B CN 102508677B
Authority
CN
China
Prior art keywords
packet
wrapper
application program
module
download
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
CN201110297502.1A
Other languages
English (en)
Other versions
CN102508677A (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 Qizhi Business Consulting Co ltd
Beijing Qihoo Technology Co Ltd
360 Digital Security Technology Group Co Ltd
Original Assignee
Qizhi Software Beijing 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 Qizhi Software Beijing Co Ltd filed Critical Qizhi Software Beijing Co Ltd
Priority to CN201110297502.1A priority Critical patent/CN102508677B/zh
Publication of CN102508677A publication Critical patent/CN102508677A/zh
Application granted granted Critical
Publication of CN102508677B publication Critical patent/CN102508677B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请提供了一种数据处理装置,包括:主程序模块,用于控制数据处理的整体过程;至少一个封装包模块,每个封装包模块与实现该数据处理过程各功能的数据包模块相对应;所述封装包模块进一步包括:下载子模块,用于下载与封装包模块对应的数据包模块,并在磁盘存储空间上,将下载完成的数据包模块替换该数据包对应的封装包模块;重定向子模块,用于在维护应用程序执行的当前内存映像中,将所有从主程序模块定向至所述封装包模块的导出函数重新定向至所述下载完成的数据包模块。本申请还提供了一种应用程序下载方法和装置。本申请的数据处理装置、应用程序下载方法及装置,能够解决大型应用程序因为下载耗时长影响安装的问题。

Description

数据处理装置、应用程序下载方法及装置
技术领域
本申请涉及软件下载技术领域,特别是涉及一种数据处理装置、应用程序下载方法及装置。
背景技术
一般来说,在计算机或手机等终端上安装应用程序的方式为从网络上下载应用程序的安装包到本地终端上,在整个安装包下载完成以后,再执行安装包进行应用程序的安装。此种方法对于一些小型的应用程序来说,能够比较方便快捷的实现安装。
但是对于大型的应用程序安装包来说,因为其组织结构一般包括一个主程序,主程序引入多个动态链接程序以及与这些动态链接程序对应的数据文件。为了保证数据的完整性和一致性,在应用程序发布的时候,软件厂商会将前述所有的文件统一打包、发布,这就会使应用程序安装包的体积巨大,例如几百兆,甚至几千兆。因为目前互联网下载速度的限制,这样大体积的安装包通常需要花费较长的时间进行下载,另一方面,因为目前应用程序安装包组织结构的限制,用户必须在整个应用程序安装包下载完成后才能够进行安装,这也从一方面影响到用户的安装与使用。
发明内容
本申请所要解决的技术问题是提供一种数据处理装置、应用程序下载方法及装置,能够解决大型应用程序因为下载耗时长影响安装的问题。
为了解决上述问题,本申请公开了一种数据处理装置,其特征在于,包括:
主程序模块,用于控制数据处理的整体过程;
至少一个封装包模块,每个封装包模块与实现该数据处理过程各功能的数据包模块相对应;所述封装包模块进一步包括:
下载子模块,用于下载与封装包模块对应的数据包模块,并在磁盘存储空间上,将下载完成的数据包模块替换该数据包对应的封装包模块;
重定向子模块,用于在维护应用程序执行的当前内存映像中,将所有从主程序模块定向至所述封装包模块的导出函数重新定向至所述下载完成的数据包模块。
进一步地,所述封装包模块还包括:
判断子模块,用于判断所述封装包模块对应的数据包模块是否已经下载,若否,则触发下载模块下载所述数据包模块。
进一步地,所述每一个封装包模块与其对应的数据包模块在程序调用上具有相同的名称。
进一步地,所述数据包包括动态链接库文件或资源型数据文件等。
为了解决上述问题,本申请还公开了一种应用程序下载方法,包括以下步骤:
下载应用程序的主程序和所有替代实现应用程序各功能的数据包的封装包;
在所述应用程序运行时,某一封装包从主程序获得针对相应功能的第一次使用请求,触发下载实现该功能的数据包;
在磁盘存储空间上,将下载完成的数据包更名、替换该数据包对应的封装包;
在维护应用程序执行的当前内存映像中,将所有定向至所述封装包的导出函数重新定向至所述下载完成的数据包。
进一步地,所述触发下载实现该功能的数据包之前还包括:
判断实现所述封装包对应的数据包是否已经下载到本地,若否,则触发所述封装包下载所述数据包。
进一步地,所述将下载完成的数据包更名、替换该数据包对应的封装包包括:
下载数据包时,将所述数据包名称设置为在封装包名称的基础上添加后缀或前缀;
数据包下载完成后,所述数据包名称更换为封装包的名称,并覆盖所述封装包。
为了解决上述问题,本申请还公开了一种应用程序下载装置,包括:
主程序下载模块,用于下载应用程序的主程序;
数据包下载模块,用于在获取应用程序某一功能的第一次请求时,下载实现该功能的数据包到本地磁盘空间,并在维护应用程序执行的当前内存映像中,将所有从主程序的导出函数重新定向至所述下载完成的数据包。
进一步地,所述数据包下载模块还包括:
判断单元,用于判断数据包是否已经下载到本地磁盘空间,若否,则触发数据包下载模块下载所述数据包。
与现有技术相比,本申请具有以下优点:
本申请通过拆分大型应用程序具体结构,将原本占用大量体积、实现应用程序各功能的数据包用封装包代替,因为封装包只具有简单的逻辑功能,其体积也相对减小,从而使应用程序初次下载时的整体体积大大减少,在下载时可以快速下载完成并实现安装。而因为封装包可以暂时代替数据包,在主程序和封装包下载完成后,应用程序也能够完成安装,当实际需要某一功能时,再通过封装包的逻辑功能触发下载相应的数据包,从而保证应用程序各功能的实际实现。通过此种改变应用程序组织结构的方式,使大型的应用程序能够分次下载、按需下载,且并不会影响应用程序的安装。
进一步地,在一个数据包被下载完成后,原有的封装包在磁盘空间上会被替换掉,等该应用程序下一次启动时,主程序则可以直接定向到实际的数据包,这保证了应用程序各功能的准确性,避免冗余数据对应用程序运行所带来的不好影响。
附图说明
图1是本申请的数据处理装置结构示意图;
图2是本申请的应用程序下载方法实施例一的流程图;
图3是本申请的应用程序下载装置实施例一的结构示意图;
图4是本申请的应用程序结构实例图;
图5是图4的应用程序结构图中用数据包替换封装包的示意图;
图6是图4的应用程序中的数据包全部下载完成并替换所有封装包后的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出本申请的数据处理装置结构示意图,包括主程序模块100和至少一个封装包模块200。其中,主程序模块用于控制数据处理的整体过程,其定向至所述至少一个封装包模块200的导出函数。所述至少一个封装包模块200用于代替实现该数据处理过程各功能的数据包模块。一个封装包模块200与一个数据包模块相对应,每一个封装包模块200包含下载子模块201和重定向子模块203。其中,下载子模块201用于下载与封装包模块对应的数据包模块,并在磁盘存储空间上,将下载完成的数据包模块替换该数据包对应的封装包模块201。重定向子模块203,用于在维护应用程序执行的当前内存映像中,将所有从主程序模块100定向至所述封装包模块200的导出函数重新定向至所述下载完成的数据包模块。
优选地,该封装包200还包括判断子模块205,用于判断封装包模块200对应的数据包模块是否已经下载到本地,若否,则触发下载子模块201下载该数据包模块。
其中,实现数据处理装置(如,应用程序)各功能的数据包模块包括动态链接库文件(dll)、资源型数据文件(dat)等。封装包模块用于代替实现数据处理过程各功能的数据包模块,以便于数据处理装置在主程序模块和封装包模块下载完成后便能够实现安装。当需要实际使用数据处理某一功能时,则封装包模块会生成下载指令给下载子模块从网络上下载对应的数据包模块,并在数据包模块下载完成后,将主程序模块的调用重新定向到该数据包模块的导出函数,从而保证数据包模块的实际功能实现。因为数据处理装置中只包含了主程序模块和各数据包模块对应的封装包模块,而每个封装包模块的逻辑只包含“判断”、“下载”和“重定向(转接)”三部分,没有实际的软件本体功能,因此封装包模块的体积会远远小于数据包模块的体积,数据处理装置的安装包整体体积也就会很小,从而方便用户快速下载和安装。
封装包模块与数据包模块一一对应,二者数量相等,即数据处理装置中有几个数据包模块,则需要包含几个封装包模块。这些封装包模块的逻辑功能相同,都包含判断、下载及重新定向三个逻辑功能,但是名称不同,每一个封装包模块的名称根据其对应的数据包模块的名称来确定。具体的名称规则本申请对此并不限制。
优选地,为了便于数据处理装置识别和匹配封装包模块与数据包模块,本申请中,封装包和数据包采用类似的命名机制。在数据包下载的过程中,数据包的名称为在封装包的名称基础上添加前缀或后缀。如,假设封装包的名称为:*.dll,则数据包名称可以为:core.*.dll或*.core.dll。下载完成后,再将数据包的名称改为封装包的名称并覆盖封装包。
参照图2,示出本申请的应用程序下载方法实施例一,包括以下步骤:
步骤101,下载应用程序的主程序和所有替代实现应用程序各功能的数据包的封装包;
封装包只包含简单的逻辑功能,并不包含数据包的实际功能,只是替代数据包帮助应用程序在没有实际下载数据包的时候就能完成安装。因此,其体积会远远小于数据包,那么下载主程序和封装包的时间则会远远小于下载完主程序和所有数据包的时间。
步骤102,在所述应用程序运行时,某一封装包从主程序获得针对相应功能的第一次使用请求,触发下载实现该功能的数据包;
因为每个封装包包含简单的逻辑功能,并不能实现应用程序的实际功能,当应用程序安装完成,需要实际使用某一功能时,应用程序在获取该功能的第一次使用请求时,封装包能从主程序处获得该使用请求,并触发下载实现该功能的数据包到本地。
优选地,在封装包下载数据包到本地之前,还包括以下步骤:判断实现所述功能的数据包是否已经下载到本地,若否,则触发该功能对应的封装包下载所述数据包。通过预先判断,可以避免数据的重复下载,节省资源和时间。
步骤103,在磁盘存储空间上,将下载完成的数据包更名、替换该数据包对应的封装包。
在磁盘空间上将下载完成的数据包替换该数据包对应的封装包,可以采用直接覆盖或者删除原有封装包的方式实现。
本申请中,具体替换过程采用如下方式实现:
封装包和数据包采用类似的命名机制,如,在数据包的下载过程中,数据包的名称设置为:在封装包的名称基础上添加后缀或前缀,如core,即,假设封装包的名称为:*.dll,则数据包名称可以为:core.*.dll或*.core.dll。
数据包下载完成后,则采用封装包的名称为数据包命名,并将更名后的数据包覆盖与其命名规则相同的封装包。
步骤104,在维护应用程序执行的当前内存映像中,将所有定向至所述封装包的导出函数重新定向至所述下载完成的数据包。
因为已下载的应用程序中,主程序的导出函数原本定向到的是各封装包,以使各封装包代替实际实现应用程序各功能的数据包,从而使仅有主程序和封装包的应用程序能完成安装。而当数据包下载完成后,需要将这些导出函数定向到数据包,从而保证数据包实际实现应用程序的各功能。当所有数据包都下载完成时,则应用程序的所有实际功能都得以实现。
本申请采用包含简单逻辑的封装包来替换实际的数据包,因为逻辑简单的封装包具有较小的体积,这可以保证应用程序初次下载时,仅下载一个很小体积就能实现应用程序的安装。而应用程序中的各实际功能则在需要时,通过封装包判断,下载能够实现实际功能的数据包数据,并将数据包重新定向给导出函数,从而保证实际功能的实现。因为一个应用程序的实际功能会很多,但是并不是一次都得全部用到,采用此种分次、按需下载的方式,每次可以仅下载需要的数据包,单次下载的体积会远远小于整体下载的体积,避免一次性下载大量数据而造成的长时间资源消耗,从而方便了用户的使用。
进一步地,在一个数据包被下载完成后,原有的封装包则会被替换掉,等该应用程序下次启动时,主程序则可以直接定向到实际的数据包,这保证了应用程序各功能的准确性,避免冗余数据对应用程序运行所带来的不好影响。
参照图3,示出本申请的应用程序下载装置实施例,包括主程序下载模块10和数据包下载模块30。
主程序下载模块10,用于下载应用程序的主程序。
数据包下载模块30,用于在获取应用程序某一功能的第一次请求时,下载实现该功能的数据包到本地磁盘空间,并在维护应用程序执行的当前内存映像中,将所有从主程序发起的调用定向至所述下载完成的数据包导出函数处。
优选地,该数据包下载模块还包括判断单元,用于判断数据包是否已经下载到本地磁盘空间,若否,则触发数据包下载模块下载所述数据包。
本申请的数据包下载模块可以通过多种方式实现,例如,以封装包的方式来实现,只要能用体积较小的数据包替换原本实现应用程序各功能具有较大体积的动态链接库、数据文件,并使应用程序可以完成安装,并在安装后能够触发下载动态链接库、数据文件等数据,从而保证应用程序的实际功能的实现即可,本申请对数据包下载模块的具体形式并不限制。
下面结合具体的一个应用程序对本申请的前述实施例进行详细的说明。
假设某一应用程序的主程序main.exe引入了A-Z个动态链接程序(A.DLL-...等)以及数据文件(...-Z.DAT等),那么为了保证数据的完整性和一致性,在软件发布的时候,上述所有的文件应该统一打包、发布,这样应用程序的安装包会体积巨大。
参照图4,示出本申请的一个应用程序结构示意图,包括主程序和用封装版的A.DLL替换掉原有的A.CORE.DLL,和原A.CORE.DLL相比,A.DLL的逻辑十分简单,可描述为:
步骤一,main.exe加载A.DLL时,A.DLL判断A.CORE.DLL是否已经从网络下载到本地;
步骤二,如果没有下载,则下载A.CORE.DLL(参照步骤三,如果已经下载过A.CORE.DLL,实际上就不会再存在A.DLL了--因为步骤三中有更名和替换逻辑,进而也就不存在步骤一的判断了);
步骤三,下载完成后,将A.CORE.DLL更名为A.DLL,并替换掉磁盘上的封装版的A.DLL文件。
其中,步骤三是在磁盘空间上的文件替换,对于当次内存映像里已经加载的A.DLL,在下载、加载完A.CORE.DLL时还需要做一次重定向(或称为“转接”),这个过程参照图5所示。即,A.DLL将所有的导出函数(Export Routine)全部“转接”(重定向)至加载到内存映像中的A.CORE.DLL处,最终A.CORE.DLL实现了应用程序的实际功能。以此类推B.DLL-Z.DAT的下载、更名、替换逻辑。
由于封装包的逻辑只包括了“判断”、“下载”和“重定向(转接)”三部分,没有实际的软件本体功能,所以封装包体积会十分小巧,这时安装包体积也会因此而“瘦身”。值得注意的是,A.DLL、B.DLL、Y.DAT、Z.DAT的逻辑功能是完全一样的,只是它们的名称不一样。
在所有文件均下载、替换完成之后,第二次启动程序时(第一次启动程序时,内存里还有A.DLL,只是磁盘上的A.DLL被替换了。第二次启动程序时,则内存里只有包含实际软件功能的A.DLL了),程序的组织结构又变成了如图6所示。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请所提供的数据处理装置、应用程序下载方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (5)

1.一种应用程序下载方法,其特征在于,包括以下步骤:
下载应用程序的主程序和所有替代实现应用程序各功能的数据包的封装包,其中,所述封装包仅包括判断、下载和重定向三部分逻辑;
在所述应用程序运行时,某一封装包从主程序获得针对相应功能的数据包的第一次使用请求,触发下载实现该功能的数据包到本地磁盘空间;
在维护应用程序执行的当前内存映像中,将所有定向至所述封装包的导出函数重新定向至所述下载完成的数据包;
在磁盘存储空间上,将下载完成的数据包更名、替换该数据包对应的封装包。
2.如权利要求1所述的应用程序下载方法,其特征在于,所述触发下载实现该功能的数据包之前还包括:
判断所述封装包对应的数据包是否已经下载到本地,若否,则触发所述封装包下载所述数据包。
3.如权利要求1所述的应用程序下载方法,其特征在于,所述将下载完成的数据包更名、替换该数据包对应的封装包包括:
下载数据包时,将所述数据包名称设置为在封装包名称的基础上添加后缀或前缀;
数据包下载完成后,所述数据包名称更换为封装包的名称,并覆盖所述封装包。
4.一种应用程序下载装置,其特征在于,包括:
主程序下载模块,用于下载应用程序的主程序和所有替代实现应用程序各功能的数据包的封装包,其中,所述封装包仅包括判断、下载和重定向三部分逻辑;
数据包下载模块,用于在所述应用程序运行时,某一封装包从主程序获得针对相应功能的数据包的第一次使用请求,触发下载实现该功能的数据包到本地磁盘空间,并在维护应用程序执行的当前内存映像中,将所有定向至所述封装包的导出函数重新定向至所述下载完成的数据包;在磁盘存储空间上,将下载完成的数据包更名、替换该数据包对应的封装包。
5.如权利要求4所述的应用程序下载装置,其特征在于,所述数据包下载模块还包括:
判断单元,用于判断数据包是否已经下载到本地磁盘空间,若否,则触发数据包下载模块下载所述数据包。
CN201110297502.1A 2011-09-30 2011-09-30 数据处理装置、应用程序下载方法及装置 Active CN102508677B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110297502.1A CN102508677B (zh) 2011-09-30 2011-09-30 数据处理装置、应用程序下载方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110297502.1A CN102508677B (zh) 2011-09-30 2011-09-30 数据处理装置、应用程序下载方法及装置

Publications (2)

Publication Number Publication Date
CN102508677A CN102508677A (zh) 2012-06-20
CN102508677B true CN102508677B (zh) 2015-07-29

Family

ID=46220769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110297502.1A Active CN102508677B (zh) 2011-09-30 2011-09-30 数据处理装置、应用程序下载方法及装置

Country Status (1)

Country Link
CN (1) CN102508677B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102968321B (zh) * 2012-11-22 2016-05-25 用友优普信息技术有限公司 应用程序安装装置和应用程序安装方法
CN103077061A (zh) * 2013-01-16 2013-05-01 珠海市君天电子科技有限公司 一种应用软件在安卓设备的安装方法和系统
US9128793B2 (en) 2013-05-14 2015-09-08 Tencent Technology (Shenzhen) Company Limited Method, system and server for downloading installation package
CN104156225B (zh) * 2013-05-14 2018-07-06 腾讯科技(深圳)有限公司 一种安装包的下载方法、系统及服务器
CN111221538A (zh) * 2018-11-23 2020-06-02 珠海金山办公软件有限公司 一种程序安装方法、系统、终端和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0753811A1 (en) * 1995-07-14 1997-01-15 Sony Corporation Data processing method and device
CN1849583A (zh) * 2003-07-10 2006-10-18 开放式插件公司 管理集成到嵌入式系统中的软件组件的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0753811A1 (en) * 1995-07-14 1997-01-15 Sony Corporation Data processing method and device
CN1849583A (zh) * 2003-07-10 2006-10-18 开放式插件公司 管理集成到嵌入式系统中的软件组件的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
付承彪等.基于插件的NGN协议分析软件模块研究.《中国科技论文在线,http://www.paper.edu.cn/releasepaper/content/200902-542》.2009, *
基于多文档和动态链接库技术的软件开发方法研究与实现;秦燕峰等;《计算机应用研究》;20020131(第1期);正文第2页第2.2部分、第3页第3,4.1部分及图1 *

Also Published As

Publication number Publication date
CN102508677A (zh) 2012-06-20

Similar Documents

Publication Publication Date Title
CN102508677B (zh) 数据处理装置、应用程序下载方法及装置
CN103530156B (zh) 动态加载和调用程序的方法及装置
CN102411506B (zh) Java系统业务单元插件式管理系统及业务功能动态变更方法
CN105389222B (zh) 一种动态调用原生接口的方法、装置和系统
CN102523268B (zh) 一种客户端升级方法和系统
Oakes et al. Pipsqueak: Lean lambdas with large libraries
CN104375849B (zh) 加载内核的方法及装置
CN103259936B (zh) 移动终端操作系统升级方法及其装置
CN109491695A (zh) 一种集成安卓应用的增量更新方法
CN103491111B (zh) 无线应用发布、实现方法与装置
CN107463432A (zh) 服务器生产环境部署方法、装置、电子设备及存储介质
CN105511889A (zh) 一种通用的游戏版本增量更新系统和方法
CN104156243B (zh) 一种应用分发和快速加载运行的系统及方法
CN104714828A (zh) 应用安装、运行方法及装置
US20130326487A1 (en) Emulating cloud functioning of applications locally
WO2022016848A1 (zh) 一种根据服务角色的进行应用部署的方法及装置
CN104426924A (zh) 一种更新应用软件的方法、装置、客户端、服务器及系统
CN103176769A (zh) 一种可定制软件的部署及安装方法和系统
CN102830959B (zh) 一种嵌入式浏览器接口动态扩展方法及系统
CN103580908A (zh) 服务器的配置方法及系统
CN109614167B (zh) 一种管理插件的方法和系统
CN114077423A (zh) 基于移动跨平台的机场app开发容器架构
CN104750528A (zh) 一种Android程序中的组件管理方法和装置
CN100459500C (zh) 一种客户端软件加载功能扩展文件的方法
CN104765816B (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
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151022

Address after: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee after: Qizhi software (Beijing) Co.,Ltd.

Address before: The 4 layer 100016 unit of Beijing city Chaoyang District Jiuxianqiao Road No. 14 Building C

Patentee before: Qizhi software (Beijing) Co.,Ltd.

CP01 Change in the name or title of a patent holder

Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee after: Beijing Qizhi Business Consulting Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20220318

Address after: 1773, floor 17, floor 15, building 3, No. 10, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: Sanliu0 Digital Security Technology Group Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Beijing Qizhi Business Consulting Co.,Ltd.

TR01 Transfer of patent right