CN116088888B - 应用程序更新方法及相关装置 - Google Patents
应用程序更新方法及相关装置 Download PDFInfo
- Publication number
- CN116088888B CN116088888B CN202210866532.8A CN202210866532A CN116088888B CN 116088888 B CN116088888 B CN 116088888B CN 202210866532 A CN202210866532 A CN 202210866532A CN 116088888 B CN116088888 B CN 116088888B
- Authority
- CN
- China
- Prior art keywords
- application program
- function set
- installation package
- hot spot
- target application
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000009434 installation Methods 0.000 claims abstract description 185
- 230000006870 function Effects 0.000 claims description 301
- 230000008569 process Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 description 38
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000005457 optimization Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000004140 cleaning Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 239000000835 fiber Substances 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供应用程序更新方法及相关装置,涉及终端技术领域。方法包括:在通过第三方应用程序接收到对目标应用程序的更新指令的情况下,从第三方应用程序对应的服务器中获取目标应用程序的第一安装包,其中,已安装的目标应用程序是采用第一编译方式,基于第一热点函数集对第二安装包编译后安装的,第一安装包的第一版本号大于第二安装包的第二版本号;在第一安装包未提供热点函数集情况下,获取第二热点函数集;根据第二安装包、第一安装包和第二热点函数集,生成第三热点函数集;采用第一编译方式,基于第三热点函数集对第一安装包进行编译,得到更新完成的目标应用程序。能够提高通过第三方应用程序更新完成的目标应用程序的性能。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种应用程序更新方法及相关装置。
背景技术
终端设备中通常安装各种应用程序,其中,应用程序的开发商会对该应用程序存在的漏洞进行修复、优化等操作,生成新版本的应用程序安装包,供终端设备下载更新该应用程序。
目前,终端设备可以通过多种渠道下载应用程序安装包进行应用程序的更新安装,如应用市场、第三方应用程序等。其中,采用第三方应用程序下载的应用程序安装包,更新安装的应用程序的性能较低。
发明内容
本申请实施例提供一种应用程序更新方法及相关装置,终端设备可以实现在通过第三方应用程序接受到对目标应用程序的更新指令时,使更新后的目标应用程序的性能较好。
第一方面,本申请实施例提供一种应用程序更新方法,应用于终端设备,方法包括:在通过第三方应用程序接收到对目标应用程序的更新指令的情况下,从第三方应用程序对应的服务器中获取目标应用程序的第一安装包,其中,已安装的目标应用程序是采用第一编译方式,基于第一热点函数集对第二安装包编译后安装的,第一安装包的第一版本号大于第二安装包的第二版本号;在第一安装包未提供热点函数集情况下,获取第二热点函数集,第二热点函数集是已安装的目标应用程序在历史使用过程中生成的,第二热点函数集存储在终端设备的存储器中,第二热点函数集用于表示第二安装包中函数的使用频率;根据第二安装包、第一安装包和第二热点函数集,生成第三热点函数集,第三热点函数集用于表示第一安装包中函数的预测使用频率;采用第一编译方式,基于第三热点函数集对第一安装包进行编译,得到更新完成的目标应用程序。
这样,在已安装的目标应用程序是采用第一编译方式,基于第一热点函数集对第二安装包编译后安装的时,为保证在通过第三方应用程序接受到对目标应用程序的更新指令时,所更新的目标应用程序的性能不会降低,则通过生成的第三热点函数集,采用第一编译方式对下载的第一安装包进行编译,进而提高更新完成的目标应用程序的性能。
一种可能的实现方式中,获取第二热点函数集,包括:若第一版本号与第二版本号的差值小于差值阈值,则获取第二热点函数集。
这样,当第一安装包的第一版本号和第二安装包的第二版本号的差值小于差值阈值时,可以确定第一安装包中的函数和第二安装包中的函数的差别较小,这样基于第二热点函数集可以较准确的确定第三热点函数集,进而可以对第一安装包进行更精准的编译。
一种可能的实现方式中,获取第二热点函数集,包括:获取终端设备的设备温度;若设备温度小于温度阈值,则获取第二热点函数集。
这样,在设备温度小于温度阈值的情况下,获取第二热点函数集,可以使目标应用程序的更新不会影响终端设备的正常使用。
一种可能的实现方式中,获取第二热点函数集,包括:获取目标应用程序的使用频率;若使用频率大于使用频率阈值,则获取第二热点函数集。
这样,能够使使用频率大于使用频率阈值的目标应用程序在更新后的性能更好。
一种可能的实现方式中,获取第二热点函数集,包括:显示第一安装控件和第二安装控件,第一安装控件用于提示目标应用程序的更新速率小于速率阈值,更新后的目标应用程序性能高于性能阈值,第二安装控件用于提示目标应用程序的更新速率大于速率阈值,更新后的目标应用程序性能低于性能阈值;若接收到针对第一安装控件的选择操作,则获取第二热点函数集。
这样,能够使用户自定义的选择是更新目标应用程序的方式,若用户选择第一安装控件,则更新后的目标应用程序性能较好,但是更新速率较慢。若用户选择第二安装控件,则更新后的目标应用程序性能较差,但是更新速率较快。
一种可能的实现方式中,采用第一编译方式,基于第三热点函数集对第一安装包进行编译,得到更新完成的目标应用程序之后,还包括:启动更新完成的目标应用程序,并删除第二热点函数集和第三热点函数集。
这样,在下一次更新目标应用程序时,第二热点函数集和第三热点函数集不会对下一次更新目标应用程序造成影响。
一种可能的实现方式中,根据第二安装包、第一安装包和第二热点函数集,生成第三热点函数集,包括:根据第二安装包和第二热点函数集生成中间数据集,中间数据集包括:第二热点函数集中的每个函数,以及每个函数在第二安装包中的第二校验码;根据中间数据集和第一安装包生成第三热点函数集,第三热点函数集包括:第二热点函数集与第一安装包的重合函数,以及重合函数在第一安装包中的第一校验码,第一校验码用于替换中间数据集中对应函数的第二校验码。
这样,可以较准确的获得用于编译第一安装包的第三热点函数集。
一种可能的实现方式中,在未获取到第二热点函数集的情况下,方法还包括:采用第二编译方式编译第一安装包,得到更新完成的目标应用程序,第二编译方式为未采用热点函数集编译的方式。
这样,可以在没有对第二热点函数集的处理时,可以采用第二编译方式编译第一安装包,实现目标应用程序的更新。
第二方面,本申请实施例提供一种应用程序更新装置,该应用程序更新装置可以是终端设备,也可以是终端设备内的芯片或者芯片系统。该应用程序更新装置可以包括显示单元、处理单元和集成电路IC。当该应用程序更新装置是终端设备时,该处显示单元可以是显示屏。该显示单元用于执行显示的步骤,以使该终端设备实现第一方面或第一方面的任意一种可能的实现方式中描述的显示相关的方法,处理单元用于实现第一方面或第一方面的任意一种可能的实现方式中与处理相关的任意方法。当该应用程序更新装置是终端设备时,该处理单元可以是处理器。该应用程序更新装置还可以包括存储单元,该存储单元可以是存储器。该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使该终端设备实现第一方面或第一方面的任意一种可能的实现方式中描述的一种方法。当该应用程序更新装置是终端设备内的芯片或者芯片系统时,该处理单元可以是处理器。该处理单元执行存储单元所存储的指令,以使该终端设备实现第一方面或第一方面的任意一种可能的实现方式中描述的一种方法。该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该终端设备内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
示例性的,处理单元用于在通过第三方应用程序接收到对目标应用程序的更新指令的情况下,从第三方应用程序对应的服务器中获取目标应用程序的第一安装包,其中,已安装的目标应用程序是采用第一编译方式,基于第一热点函数集对第二安装包编译后安装的,第一安装包的第一版本号大于第二安装包的第二版本号;在第一安装包未提供热点函数集情况下,获取第二热点函数集,第二热点函数集是已安装的目标应用程序在历史使用过程中生成的,第二热点函数集存储在终端设备的存储器中,第二热点函数集用于表示第二安装包中函数的使用频率;根据第二安装包、第一安装包和第二热点函数集,生成第三热点函数集,第三热点函数集用于表示第一安装包中函数的预测使用频率;采用第一编译方式,基于第三热点函数集对第一安装包进行编译,得到更新完成的目标应用程序。
一种可能的实现方式中,处理单元具体用于:若第一版本号与第二版本号的差值小于差值阈值,则获取第二热点函数集。
一种可能的实现方式中,处理单元具体用于:获取终端设备的设备温度;若设备温度小于温度阈值,则获取第二热点函数集。
一种可能的实现方式中,处理单元具体用于:获取目标应用程序的使用频率;若使用频率大于使用频率阈值,则获取第二热点函数集。
一种可能的实现方式中,处理单元具体用于:显示第一安装控件和第二安装控件,第一安装控件用于提示目标应用程序的更新速率小于速率阈值,更新后的目标应用程序性能高于性能阈值,第二安装控件用于提示目标应用程序的更新速率大于速率阈值,更新后的目标应用程序性能低于性能阈值;若接收到针对第一安装控件的选择操作,则获取第二热点函数集。
一种可能的实现方式中,处理单元还用于:启动更新完成的目标应用程序,并删除第二热点函数集和第三热点函数集。
一种可能的实现方式中,处理单元具体用于:根据第二安装包和第二热点函数集生成中间数据集,中间数据集包括:第二热点函数集中的每个函数,以及每个函数在第二安装包中的第二校验码;根据中间数据集和第一安装包生成第三热点函数集,第三热点函数集包括:第二热点函数集与第一安装包的重合函数,以及重合函数在第一安装包中的第一校验码,第一校验码用于替换中间数据集中对应函数的第二校验码。
一种可能的实现方式中,在未获取到第二热点函数集的情况下,处理单元还用于:采用第二编译方式编译第一安装包,得到更新完成的目标应用程序,第二编译方式为未采用热点函数集编译的方式。
第三方面,本申请实施例提供一种电子设备,括处理器和存储器,存储器用于存储代码指令,处理器用于运行代码指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种可能的实现方式中描述的应用程序更新方法。
第五方面,本申请实施例提供一种包括计算机程序的计算机程序产品,当计算机程序在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种可能的实现方式中描述的应用程序更新方法。
第六方面,本申请提供一种芯片或者芯片系统,该芯片或者芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的应用程序更新方法。其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
在一种可能的实现中,本申请中上述描述的芯片或者芯片系统还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
应当理解的是,本申请的第二方面至第六方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1为本申请实施例所适用场景示意图;
图2为本申请实施例所提供的一种实现应用程序更新安装的示意图;
图3为本申请实施例提供的一种电子设备的结构示意图;
图4为本申请实施例提供的一种应用程序更新方法的步骤流程图;
图5为本申请实施例提供的一种选择应用程序更新方式的步骤流程图;
图6为本申请实施例提供的一种界面示意图;
图7为本申请实施例提供的一种生成第三热点函数集的示意图;
图8为本申请实施例提供的一种Dex2oat触发场景图;
图9为本申请实施例提供的一种清理热点函数集的示意图;
图10为本申请实施例提供的一种清理热点函数集的示意图;
图11为本申请实施例提供的一种芯片的结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,以下,对本申请实施例中所涉及的部分术语和技术进行简单介绍:
1、热点函数集:为profile文件,是热点函数的集合,携带对应的应用程序的标识,以及对应应用程序的版本号。
2、Dex2oat:一种编译函数,可以对安装包中的dex文件(可执行文件)进行编译优化操作,生成编译优化文件。
3、安装包:是指APK(Android application package,安卓应用程序包),用于分发和安装应用程序及中间件,一个应用程序的安装包想要在安卓系统上运行,必须先进行编译。
4、speed-profile:一种可以基于profile文件或者不基于profile文件,对安装包进行编译的编译方式,其中,采用speed-profile编译方式,基于profile文件对安装包进行编译,可以使目标应用程序的安装速度较慢,但是安装后的目标应用程序的性能较好。采用speed-profile编译方式,不基于profile文件对安装包进行编译,可以使目标应用程序的安装速度较快,但是安装后的目标应用程序的性能较差。
5、verify:一种不需要采用profile文件的编译方式,可以使目标应用程序的安装速度较快,但是安装后的目标应用程序的性能较差。
6、dex文件:是指安卓系统内的虚拟机的可执行文件。
7、其他术语
在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一芯片和第二芯片仅仅是为了区分不同的芯片,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a--c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
随着终端设备技术的发展,终端设备中应用程序(application,APP)的种类越来越丰富,数量也越来越多。随着应用程序的使用,应用程序的开发者会不断对应用程序存在的漏洞进行修复和优化,这使得用户需要对终端设备上的应用程序进行更新。目前,更新应用程序的渠道非常多,如通过应用市场更新,或者通过三方应用程序更新。
示例性的,图1示出了更新目标应用程序的界面示意图。例如,终端设备的桌面11上有多个应用程序的图标,如应用程序A1至应用程序A9的图标。其中,应用程序A1为应用市场,当用户触发应用市场对于的图标后,进入应用市场的首页12,应用市场的首页12中可以对聊天应用程序A8进行更新,打开天气应用程序A5,对视频应用程序A10进行下载。再例如,若用户触发桌面11上的第三方应用程序A2对应的图标时,进入第三方应用程序的首页13,其中,在首页13中的搜索框中可以搜索用户需要更新的聊天应用程序,首页13中还显示有第三方应用程序A2的对应内容,其中对应内容为第三方应用程序A2推荐的内容。当用户在搜索框中输入聊天应用程序,进入页面14,页面14提供聊天应用程序A8的介绍内容,以及“更新”控件,用户触发“更新”控件后,即可对聊天应用程序A8进行更新。
综上,用户可以通过多种渠道对已安装的应用程序进行更新,例如,通过应用市场或者第三方应用程序进行更新,其中,应用市场如华为应用市场或者谷歌应用市场等,第三方应用程序如应用宝、直播、搜索等可以下载更新应用程序的应用程序。
一种实现中,如图2所示,终端设备包括:通信模块、PMS模块(package managerservice,包管理服务)、installd(一种服务进程)和compilerDriver(虚拟机内的编译驱动模块)。其中,通信模块可以无线通信模块,如无线局域网(wirelesslocal area networks,WLAN),PMS模块负责管理系统中的所有安装包信息及应用程序的安装与卸载。终端设备具体更新应用程序的步骤为,通信模块从服务器下载新版本的目标应用程序的安装包;然后将新版本的目标应用程序的安装包传递给PMS;PMS对新版本的目标应用程序的安装包进行扫描;提取安装包内的dex文件;然后PMS调用performDexop函数访问installd服务进程;installd服务进程调用dex2oat函数,compilerDriver采用dex2oat函数对dex文件执行编译优化操作,生成编译优化文件。
其中,dex2oat函数对应的编译方式包括三种,第一种是基于profile文件的speed-profile编译方式,生成的编译优化文件包括:dex文件对应的odex文件和art文件,profile文件对应的AOT文件。第二种是未基于profile文件的speed-profile编译方式,生成的编译优化文件包括:dex文件对应的odex文件和art文件。第三种是verify编译方式。上述编译方式中采用第一种编译方式更新后的目标应用程序的性能高于采用第二种编译方式更新后的目标应用程序的性能,采用第二种编译方式更新后的目标应用程序的性能高于采用第三种编译方式更新后的目标应用程序的性能。此外,采用第一种编译方式的编译时长大于采用第二种编译方式的编译时长,采用第二种编译方式的编译时长大于采用第三种编译方式的编译时长。
其中,由于目前通过应用市场进行目标应用程序的更新,应用市场会提供dm文件,其中dm文件中包含profile文件,可以采用第一种编译方式,因此更新得到的目标应用程序具有很好的性能。而通过第三方应用程序进行目标应用程序的更新,由于第三方应用程序无法提供profile文件,采用的是第二种编译方式,因此更新得到的目标应用程序的性能较差,这导致在用户当前安装的目标应用程序通过第一种编译方式编译的情况下,通过第三方应用程序对目标应用程序进行安装时,会出现性能较差的问题。
有鉴于此,本申请实施例提供应用程序更新方法,在应用程序更新方法过程,在已安装的目标应用程序是采用第一编译方式,基于第一热点函数集对第二安装包编译后安装的时,为保证在通过第三方应用程序接受到对目标应用程序的更新指令时,所更新的目标应用程序的性能不会降低,则通过生成的第三热点函数集,采用第一编译方式对下载的第一安装包进行编译,进而提高更新完成的目标应用程序的性能。
本申请实施例的终端设备也可以为任意形式的电子设备,例如,电子设备可以包括具有图像处理功能的手持式设备、车载设备等。例如,一些电子设备为:手机(mobilephone)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、蜂窝电话、无绳电话、会话启动协议(session initiation protocol,SIP)电话、无线本地环路(wireless local loop,WLL)站、个人数字助理(personal digital assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,5G网络中的终端设备或者未来演进的公用陆地移动通信网络(public land mobile network,PLMN)中的终端设备等,本申请实施例对此并不限定。
作为示例而非限定,在本申请实施例中,该电子设备还可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
此外,在本申请实施例中,电子设备还可以是物联网(internet of things,IoT)系统中的终端设备,IoT是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。
本申请实施例中的电子设备也可以称为:终端设备、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置等。
在本申请实施例中,电子设备或各个网络设备包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。该硬件层包括中央处理器(centralprocessing unit,CPU)、内存管理单元(memory management unit,MMU)和内存(也称为主存)等硬件。该操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用。
示例性的,图3示出了电子设备100的结构示意图。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dotlightemitting diodes,QLED),低温多晶氧化物(low temperature polycrystallineoxide,LTPO)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。电子设备还可以包括IC芯片(图中未示出),IC芯片用于驱动显示屏的显示。
下面通过具体的实施例对本申请实施例的应用程序更新方法进行详细说明。下面的实施例可以相互结合或独立实施,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
参照图4,S401-S404示例性说明本申请实施例一种应用程序更新方法。方法包括:
S401:在通过第三方应用程序接收到对目标应用程序的更新指令的情况下,从第三方应用程序对应的服务器中获取目标应用程序的第一安装包。
其中,已安装的目标应用程序是采用第一编译方式,基于第一热点函数集对第二安装包编译后安装的,第一安装包的第一版本号大于第二安装包的第二版本号。
在本申请实施例中,第一编译方式是speed-profile的编译方式,第一热点函数集是安装已安装的目标应用程序时应用到的profile文件。其中,第一安装包是第二安装包更新后的安装包。
示例性地,已安装的目标应用程序在安装时,可以是通过应用市场更新的,也可以是通过采用S401至S404的方式更新的,已安装的目标应用程序具有较好的性能,这里所指的性能包括:使用目标应用程序时的流畅性。
进一步地,更新指令是用户进入第三方应用程序的页面上针对目标应用程序触发后生成的,生成的更新指令包括目标应用程序的应用标识,终端设备将该应用标识发送给服务器,服务器根据应用标识将目标应用程序的第一安装包发送给终端设备,终端获取到第一安装包后,根据第一安装包进行目标应用程序的更新。
S402:在第一安装包未提供热点函数集情况下,获取第二热点函数集。
其中,第二热点函数集是已安装的目标应用程序在历史使用过程中生成的,第二热点函数集存储在终端设备的存储器中,第二热点函数集用于表示第二安装包中函数的使用频率。
在本申请实施例中,第一安装包未提供热点函数集的情况包括:第一安装包中没有热点函数集。此外,第二热点函数集可以存储在存储器的指定路径下,如data/misc/profiles/ref/应用包名目录里,其中,第二热点函数集是通过调用谷歌原生mergeProfile流程,将存储在data/misc/profiles/cur/用户id/应用包名目录内的各用户id(标识)下的profile文件进行整合后,保存至data/misc/profiles/ref/应用包名目录里。则在目标应用程序的更新过程中,可以通过读取存储器获取到profile文件,profile文件中具有第二热点函数集。进一步地,若profile文件为空,则不执行后续步骤,无法进行后续的第一编译方式的编译优化,可以进行第二编译方式的编译优化。
可选地,获取第二热点函数集,包括:若第一版本号与第二版本号的差值小于差值阈值,则获取第二热点函数集。其中,当第一安装包的第一版本号和第二安装包的第二版本号的差值小于差值阈值时,可以确定第一安装包中的函数和第二安装包中的函数的差别较小,这样基于第二热点函数集可以较准确的确定第三热点函数集,进而可以对第一安装包进行更精准的编译。
可选地,获取第二热点函数集,包括:获取终端设备的设备温度;若设备温度小于温度阈值,则获取第二热点函数集。其中,在设备温度小于温度阈值的情况下,获取第二热点函数集,可以使目标应用程序的更新不会影响终端设备的正常使用。
可选地,获取第二热点函数集,包括:获取目标应用程序的使用频率;若使用频率大于使用频率阈值,则获取第二热点函数集。在本申请实施例中,目标应用程序的使用频率大于使用频率阈值,可以表示目标应用程序为用户常用的应用程序,因此对目标应用程序的性能要求更高,对该目标应用程序进行本申请实施例的更新,能够使目标应用程序在更新后的性能更好,进而给用户提供更佳的体验感。
可选地,获取第二热点函数集,包括:显示第一安装控件和第二安装控件,第一安装控件用于提示目标应用程序的更新速率小于速率阈值,更新后的目标应用程序性能高于性能阈值,第二安装控件用于提示目标应用程序的更新速率大于速率阈值,更新后的目标应用程序性能低于性能阈值;若接收到针对第一安装控件的选择操作,则获取第二热点函数集。其中,能够使用户自定义的选择是更新目标应用程序的方式,若用户选择第一安装控件,则更新后的目标应用程序性能较好,但是更新速率较慢。若用户选择第二安装控件,则更新后的目标应用程序性能较差,但是更新速率较快。
在本申请实施例中,在未获取到第二热点函数集的情况下,方法还包括:采用第二编译方式编译第一安装包,得到更新完成的目标应用程序,第二编译方式为未采用热点函数集编译的方式。其中,可以在没有对第二热点函数集的处理时,可以采用第二编译方式编译第一安装包,实现目标应用程序的更新。
进一步地,在终端设备原有的PMS模块中增加调控单元,用于执行S402。当用户需要更新目标应用程序时,采用调控单元根据S402的逻辑,决定是否获取第二热点函数集,进而进行后续对第二热点函数集的处理。当调控单元确定满足条件,则可以使用profile处理单元执行后续S403,得到第三热点函数集。
具体地,上述几种获取第二热点函数集的条件可以选择其中一个或者多个进行组合。例如,参照图5,包括以下步骤。S501,在第一安装包未提供热点函数集情况下,判断第一版本号与第二版本号的差值是否小于差值阈值。若是,则执行S502,获取终端设备的设备温度,判断设备温度是否小于温度阈值。若是,则执行S503,获取目标应用程序的使用频率,判断使用频率是否大于使用频率阈值。若是,则执行S504,显示第一安装控件和第二安装控件,判断是否接收到针对第一安装控件的选择操作。若是,则执行S505,获取第二热点函数集。以上S501至S504中任一判断结果为“否”,则执行S506,采用第二编译方式编译第一安装包,得到更新完成的目标应用程序。
其中,在更新过程中可以给用户提供选择,是选择更新速度较快但是更新得到的目标应用程序性能较差的更新方式,还是更新速度较慢但是更新得到的目标应用程序的性能更好的更新方式,进而提高用户的体验。
示例性地,参照图6,若用户触发第一安装控件,则采用S402至S404的安装方式,若用户触发第二安装控件,则采用第二编译方式编译第一安装包,得到更新完成的目标应用程序。其中,第二编译方式是不采用profile文件的speed-profile编译方式,或者是verify编译方式。
S403,根据第二安装包、第一安装包和第二热点函数集,生成第三热点函数集。
其中,第三热点函数集用于表示第一安装包中函数的预测使用频率。
在本申请实施例中,可以通过多种方式根据第二安装包、第一安装包和第二热点函数集,生成第三热点函数集。其中,第二安装包中包括多个函数,如类函数和方法函数。第二热点函数集中包括多个热点函数,该热点函数是第二安装包中的函数,第二热点函数集中的热点函数包括第二安装包中dex文件的第二校验码,第一安装包中包括dex文件的第一校验码,采用第一校验码替换第二校验码,生成的第三热点函数集才能用于对第一安装包的编译优化。
一种可选实施例中,可以利用Profman工具(一种谷歌原生工具),将第二热点函数集和第二安装包输入Profman工具中,输出中间数据集,然后将中间数据集和第一安装包输入Profman工具,输出第三热点函数集。
具体地,根据第二安装包、第一安装包和第二热点函数集,生成第三热点函数集,包括:根据第二安装包和第二热点函数集生成中间数据集,中间数据集包括:第二热点函数集中的每个函数,以及每个函数在第二安装包中的第二校验码;根据中间数据集和第一安装包生成第三热点函数集,第三热点函数集包括:第二热点函数集与第一安装包的重合函数,以及重合函数在第一安装包中的第一校验码,第一校验码用于替换中间数据集中对应函数的第二校验码。
其中,生成第三热点函数集的作用是预测第一安装包中的函数中存在的热点函数。具体地,第二安装包中包括:多个函数h,每个函数都具有第二校验码,第二热点函数集中包括:多个函数h中的部分函数,这部分函数为第二安装包中函数对应的热点函数。在第二安装包升级为第一安装包后,是对函数的升级,但是升级后的函数的功能并未改变,则升级后的函数是否是热点函数可以采用第二安装包中对应函数是否为热点进行预测。因此,将第二热点函数集中的热点函数与第一安装包中的函数重合的重合函数作为第三热点函数集中的热点函数,然后采用第一安装包的函数的第一校验码替换第二校验码,作为第三热点函数集中的热点函数的校验码。这样第三热点函数集中包括:热点函数(第一安装包中的类函数或者方法函数)和第一校验码,进而可以进行后续对第一安装包进行编译优化。
示例性地,参照图7,第二热点函数集包括多个热点函数,如函数h1、函数h3、函数h4和函数h5,这些热点函数均是第二安装包中被运行频率较高的函数。第二安装包包括:函数h1至函数h6,以及每个函数对应的第二校验码。根据第二热点函数集和第二安装包确定的中间数据集,包括第二热点函数集中的多个热点函数(函数h1、函数h3、函数h4和函数h5),以及每个热点函数在第二安装包中对应的第二校验码。此外,第一安装包中对第二安装包中的函数h1、函数h2、函数h4和函数h5进行了升级,删除了函数h3和函数h5,新增了函数h7,此外,第一安装包中的每个函数具有对应的第一校验码,则根据中间数据集和第一安装包确定第三热点函数集时,将第一安装包中与中间数据集中的重合函数(如升级后的函数h1、升级后的函数h4和升级后的函数h5)作为第三热点函数集中的热点函数,将第一校验码替换对应函数的第二校验码,如,采用第一校验码k1替换第二校验码j1,采用第一校验码k4替换第二校验码j4,采用第一校验码k5替换第二校验码j5。
在本申请实施例中,得到的第三热点函数集可以存储在data/misc/profiles/ref/应用包名/目录下。此外,由于第二热点函数集中没有第一安装包的校验码,因此不能采用第二热点函数集对第一安装包的dex文件进行编译优化,本申请通过上述方式生成与第一安装包校验码一致的第三热点函数集,能够对第一安装包进行编译优化,进而提高了更新后的目标应用程序的性能。
S404,采用第一编译方式,基于第三热点函数集对第一安装包进行编译,得到更新完成的目标应用程序。
其中,采用dex2oat编译环境,采用第一编译方式(speed-profile)进行编译。dex2oat编译环境指的是终端设备内的虚拟机在对第一安装包内的dex文件进行编译优化生成编译优化文件的过程中所依赖的软件编译环境,即终端设备运行时的软件运行环境。
示例性地,参照图8,可以在多种场景下触发dex2oat编译环境。本申请中的目标应用程序的更新只是其中的一种场景。还包括:终端设备的首次开机、OTA升级、应用程序的安装和克隆以及终端设备处于空闲状态时均可触发dex2oat编译环境。
具体地,dex2oat是一种编译生成优化文件的函数,可以将第一安装包中的dex文件编译为编译优化文件,实现对目标应用程序的优化。编译优化文件包括odex文件、art文件和AOT文件,其中,odex文件值的是从dex文件中提取部分函数并进行优化生成的一个新的可执行的二进制码文件。Art文件可以看做是一个内存镜像,用来缓存常用的ArtField、ArtMethod、DesCache等内容,加载后可直接使用,避免解析耗时。其中,ArtField在虚拟机底层中用来表示类的成员变量,ArtMethod在虚拟机底层中用来表示类的成员方法,DesCache与dex文件有关,用来缓存dex文件的信息。AOT文件可以是更新后的目标应用程序拥有更快的启动速度、更低的内存占有和更小的程序体积。
需要说明的是,目标应用程序大多采用Java语言编写,在目标应用程序的编译阶段,通过编译指令javac将java文件编译成class文件,也就是字节码文件。然后,将class文件通过dx工具转换成dex文件;最后,通过安卓资源打包工具对dex文件和资源文件进行打包,生成第一安装包,可知,第一安装包中包括dex文件。
在本申请实施例中,在目标应用程序在运行前,对第一安装包进行编译优化,可以使得dex文件的字节码提取转化为虚拟机可以运行的机器码,后续可以直接采用效率更高的机器码运行更新后的目标应用程序,使目标应用程序的运行更加流畅,提高用户体验。
其中,基于第三热点函数集对第一安装包进行编译,得到更新完成的目标应用程序之后,还包括:启动更新完成的目标应用程序,并删除第二热点函数集和第三热点函数集。
在本申请实施例中,启动更新完成的目标应用程序,并删除第二热点函数集和第三热点函数集,可以在下一次更新目标应用程序时,第二热点函数集和第三热点函数集不会对下一次更新目标应用程序造成影响。
参照图9,在更新完成目标应用程序后,第一次启动更新完成的目标应用程序,终端设备执行的步骤包括:采用终端设备的AMS(application management system,应用管理系统)执行S901,接收更新完成的目标应用程序的第一次启动指令;AMS执行S902,在接收到启动指令向PMS发送清理指令;PMS执行S903,清理第二热点函数集和第三热点函数集;AMS执行S904.启动目标应用程序。
其中,更新完成的目标应用程序在启动后,终端设备会收集更新完成的目标应用程序在后续使用过程中生成的profile文件,将其存储在data/misc/profiles/cur/0/应用包名/目录下,供下次更新目标应用程序使用。
此外,清理第二热点函数集和第三热点函数集不会影响新的profile文件的收集过程。
在本申请实施例中,目标应用程序在更新后清理第二热点函数集和第三热点函数集是防止随着目标应用程序的不断更新,热点函数集的量会不断增加,进而采用堆积的热点函数集预测下一次目标应用程序更新时的安装包的热点函数集会存在较大的偏差,而偏差不断增加会导致下一次更新的目标应用程序的性能较差。
示例性地,参照图10,目标应用程序b1在使用过程中,生成第二热点函数集c1,对第二热点函数集c1处理后得到第三热点函数集d1,第三热点函数集d1用于对目标应用程序b1更新得到目标应用程序b2,目标应用程序b2在使用过程中,生成第二热点函数集c2,对第二热点函数集c2处理后得到第三热点函数集d2,第三热点函数集d2用于对目标应用程序b2更新得到目标应用程序b3。可见,本申请每次更新目标应用程序应用到的都是当前目标应用程序生成的第二热点函数集,而不是目标应用程序多次更新后生成的第二热点函数集的并集。因此可以使用于编译的第三热点函数集更加准确。例如,若采用第二热点函数集c1、第三热点函数集d1和第二热点函数集c2合并后生成第三热点函数集d2进行目标应用程序b3的更新,并不准确,并且会消耗存储器的存储空间。
进一步地,通过第三方应用程序更新目标应用程序后,抓取更新过程中的日志,然后通过dex2oat编译命令确定第三方应用程序没有提供profile文件,但对第一安装包编译时采用了profile文件,然后在目标应用程序更新后首次启动时,采用systrace(一种性能分析工具),确认更新后的目标应用程序加载了art,进而可以间接确认目标应用程序在更新时采用了基于profile文件的speed-profile编译优化。此外,由于安卓原生逻辑对profman处理时间超过5毫秒的处理过程会打印日志,可构造出一个profman处理时间长的目标应用程序,在目标应用程序更新时,抓取更新过程的日志,查看该日志确定有profman处理日志,直接确认目标应用程序在更新时采用了基于profile文件的speed-profile编译优化。
在本申请实施例中,在目标应用程序更新过程中,在已安装的目标应用程序是采用第一编译方式,基于第一热点函数集对第二安装包编译后安装的时,为保证在通过第三方应用程序接受到对目标应用程序的更新指令时,所更新的目标应用程序的性能不会降低,则通过生成的第三热点函数集,采用第一编译方式对下载的第一安装包进行编译,进而提高更新完成的目标应用程序的性能。本申请能够解决通过第三方应用程序更新目标应用程序后,目标应用程序性能下降问题
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的方法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对实现应用程序更新方法的装置进行功能模块的划分,例如可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图11示为本申请实施例提供的一种芯片的结构示意图。芯片1100包括一个或两个以上(包括两个)处理器1101、通信线路1102、通信接口1103和存储器1104。
在一些实施方式中,存储器1104存储了如下的元素:可执行模块或者数据结构,或者他们的子集,或者他们的扩展集。
上述本申请实施例描述的方法可以应用于处理器1101中,或者由处理器1101实现。处理器1101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1201可以是通用处理器(例如,微处理器或常规处理器)、数字信号处理器(digitalsignal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门、晶体管逻辑器件或分立硬件组件,处理器1101可以实现或者执行本申请实施例中的公开的各处理相关的方法、步骤及逻辑框图。
结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。其中,软件模块可以位于随机存储器、只读存储器、可编程只读存储器或带电可擦写可编程存储器(electricallyerasable programmable read only memory,EEPROM)等本领域成熟的存储介质中。该存储介质位于存储器1104,处理器1101读取存储器1104中的信息,结合其硬件完成上述方法的步骤。
处理器1101、存储器1104以及通信接口1103之间可以通过通信线路1102进行通信。
在上述实施例中,存储器存储的供处理器执行的指令可以以计算机程序产品的形式实现。其中,计算机程序产品可以是事先写入在存储器中,也可以是以软件形式下载并安装在存储器中。
本申请实施例还提供一种计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。例如,可用介质可以包括磁性介质(例如,软盘、硬盘或磁带)、光介质(例如,数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本申请实施例还提供一种计算机可读存储介质。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
作为一种可能的设计,计算机可读介质可以包括紧凑型光盘只读储存器(compactdisc read-only memory,CD-ROM)、RAM、ROM、EEPROM或其它光盘存储器;计算机可读介质可以包括磁盘存储器或其它磁盘存储设备。而且,任何连接线也可以被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,DSL或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘(CD),激光盘,光盘,数字通用光盘(digital versatile disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
Claims (9)
1.一种应用程序更新方法,其特征在于,应用于终端设备,所述方法包括:
在通过第三方应用程序接收到对目标应用程序的更新指令的情况下,从所述第三方应用程序对应的服务器中获取所述目标应用程序的第一安装包,其中,已安装的所述目标应用程序是采用第一编译方式,基于第一热点函数集对第二安装包编译后安装的,所述第一安装包的第一版本号大于所述第二安装包的第二版本号,其中,所述第一编译方式是speed-profile的编译方式;热点函数集为profile文件,是热点函数的集合,携带对应的应用程序的标识,以及对应应用程序的版本号;
在所述第一安装包未提供热点函数集情况下,获取第二热点函数集,所述第二热点函数集是已安装的所述目标应用程序在历史使用过程中生成的,所述第二热点函数集存储在所述终端设备的存储器中,所述第二热点函数集用于表示所述第二安装包中函数的使用频率;
根据所述第二安装包、所述第一安装包和所述第二热点函数集,生成第三热点函数集,所述第三热点函数集用于表示所述第一安装包中函数的预测使用频率;
采用所述第一编译方式,基于所述第三热点函数集对所述第一安装包进行编译,得到更新完成的目标应用程序;
所述根据所述第二安装包、所述第一安装包和所述第二热点函数集,生成第三热点函数集,包括:
根据所述第二安装包和第二热点函数集生成中间数据集,所述中间数据集包括:所述第二热点函数集中的每个函数,以及每个所述函数在所述第二安装包中的第二校验码;
根据所述中间数据集和所述第一安装包生成所述第三热点函数集,所述第三热点函数集包括:所述第二热点函数集与所述第一安装包的重合函数,以及所述重合函数在所述第一安装包中的第一校验码,所述第一校验码用于替换中间数据集中对应函数的第二校验码。
2.根据权利要求1所述的方法,其特征在于,所述获取第二热点函数集,包括:
若所述第一版本号与所述第二版本号的差值小于差值阈值,则获取所述第二热点函数集。
3.根据权利要求1所述的方法,其特征在于,所述获取第二热点函数集,包括:
获取所述终端设备的设备温度;
若所述设备温度小于温度阈值,则获取所述第二热点函数集。
4.根据权利要求1所述的方法,其特征在于,所述获取第二热点函数集,包括:
获取目标应用程序的使用频率;
若所述使用频率大于使用频率阈值,则获取所述第二热点函数集。
5.根据权利要求1所述的方法,其特征在于,所述获取第二热点函数集,包括:
显示第一安装控件和第二安装控件,所述第一安装控件用于提示所述目标应用程序的更新速率小于速率阈值,更新后的目标应用程序性能高于性能阈值,所述第二安装控件用于提示所述目标应用程序的更新速率大于所述速率阈值,更新后的目标应用程序性能低于所述性能阈值;
若接收到针对所述第一安装控件的选择操作,则获取所述第二热点函数集。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述采用所述第一编译方式,基于所述第三热点函数集对所述第一安装包进行编译,得到更新完成的目标应用程序之后,还包括:
启动更新完成的目标应用程序,并删除所述第二热点函数集和所述第三热点函数集。
7.根据权利要求1-5中任一项所述的方法,其特征在于,在未获取到所述第二热点函数集的情况下,所述方法还包括:
采用第二编译方式编译所述第一安装包,得到更新完成的目标应用程序,所述第二编译方式为未采用热点函数集编译的方式。
8.一种终端设备,其特征在于,包括:存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序,以执行如权利要求1-7任一项所述的应用程序更新方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令被执行时,使得计算机执行如权利要求1-7任一项所述的应用程序更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210866532.8A CN116088888B (zh) | 2022-07-22 | 2022-07-22 | 应用程序更新方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210866532.8A CN116088888B (zh) | 2022-07-22 | 2022-07-22 | 应用程序更新方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116088888A CN116088888A (zh) | 2023-05-09 |
CN116088888B true CN116088888B (zh) | 2023-10-31 |
Family
ID=86210837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210866532.8A Active CN116088888B (zh) | 2022-07-22 | 2022-07-22 | 应用程序更新方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116088888B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761476A (zh) * | 2013-12-30 | 2014-04-30 | 北京奇虎科技有限公司 | 特征提取的方法及装置 |
CN106371940A (zh) * | 2015-07-21 | 2017-02-01 | 腾讯科技(深圳)有限公司 | 一种程序崩溃解决方法及装置 |
WO2018209843A1 (zh) * | 2017-05-17 | 2018-11-22 | 华为技术有限公司 | 一种执行热补丁的方法、装置及终端 |
CN109597032A (zh) * | 2019-01-31 | 2019-04-09 | 中国科学院深海科学与工程研究所 | 一种水下声学定位通信方法 |
CN111164538A (zh) * | 2017-12-15 | 2020-05-15 | 英特尔公司 | 处理单元的功率管理 |
CN112540769A (zh) * | 2020-12-29 | 2021-03-23 | Oppo广东移动通信有限公司 | 编译处理方法、装置、电子设备以及存储介质 |
CN112631622A (zh) * | 2020-12-29 | 2021-04-09 | Oppo广东移动通信有限公司 | 应用安装方法、装置、服务器及计算机可读介质 |
WO2021075905A1 (en) * | 2019-10-18 | 2021-04-22 | Samsung Electronics Co., Ltd. | Application optimization method and electronic device supporting the same |
CN112783500A (zh) * | 2019-11-08 | 2021-05-11 | Oppo广东移动通信有限公司 | 编译优化信息生成方法、装置及电子设备 |
CN113126994A (zh) * | 2019-12-31 | 2021-07-16 | Oppo广东移动通信有限公司 | 热点代码处理方法、装置、电子设备及存储介质 |
CN113568634A (zh) * | 2021-06-28 | 2021-10-29 | 荣耀终端有限公司 | 应用优化的处理方法及处理装置 |
CN113741993A (zh) * | 2021-06-15 | 2021-12-03 | 荣耀终端有限公司 | 编译插件dex文件的方法及装置 |
CN113885870A (zh) * | 2021-08-27 | 2022-01-04 | 荣耀终端有限公司 | 应用程序更新方法、电子设备、终端设备及系统 |
KR20220016704A (ko) * | 2020-08-03 | 2022-02-10 | 삼성전자주식회사 | 어플리케이션 설치 방법 및 이를 지원하는 전자 장치 |
-
2022
- 2022-07-22 CN CN202210866532.8A patent/CN116088888B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761476A (zh) * | 2013-12-30 | 2014-04-30 | 北京奇虎科技有限公司 | 特征提取的方法及装置 |
CN106371940A (zh) * | 2015-07-21 | 2017-02-01 | 腾讯科技(深圳)有限公司 | 一种程序崩溃解决方法及装置 |
WO2018209843A1 (zh) * | 2017-05-17 | 2018-11-22 | 华为技术有限公司 | 一种执行热补丁的方法、装置及终端 |
CN111164538A (zh) * | 2017-12-15 | 2020-05-15 | 英特尔公司 | 处理单元的功率管理 |
CN109597032A (zh) * | 2019-01-31 | 2019-04-09 | 中国科学院深海科学与工程研究所 | 一种水下声学定位通信方法 |
CN114450662A (zh) * | 2019-10-18 | 2022-05-06 | 三星电子株式会社 | 应用优化方法及支持该应用优化方法的电子装置 |
WO2021075905A1 (en) * | 2019-10-18 | 2021-04-22 | Samsung Electronics Co., Ltd. | Application optimization method and electronic device supporting the same |
CN112783500A (zh) * | 2019-11-08 | 2021-05-11 | Oppo广东移动通信有限公司 | 编译优化信息生成方法、装置及电子设备 |
CN113126994A (zh) * | 2019-12-31 | 2021-07-16 | Oppo广东移动通信有限公司 | 热点代码处理方法、装置、电子设备及存储介质 |
KR20220016704A (ko) * | 2020-08-03 | 2022-02-10 | 삼성전자주식회사 | 어플리케이션 설치 방법 및 이를 지원하는 전자 장치 |
CN112631622A (zh) * | 2020-12-29 | 2021-04-09 | Oppo广东移动通信有限公司 | 应用安装方法、装置、服务器及计算机可读介质 |
CN112540769A (zh) * | 2020-12-29 | 2021-03-23 | Oppo广东移动通信有限公司 | 编译处理方法、装置、电子设备以及存储介质 |
CN113741993A (zh) * | 2021-06-15 | 2021-12-03 | 荣耀终端有限公司 | 编译插件dex文件的方法及装置 |
CN113568634A (zh) * | 2021-06-28 | 2021-10-29 | 荣耀终端有限公司 | 应用优化的处理方法及处理装置 |
CN113885870A (zh) * | 2021-08-27 | 2022-01-04 | 荣耀终端有限公司 | 应用程序更新方法、电子设备、终端设备及系统 |
Non-Patent Citations (2)
Title |
---|
一种Android APP预装方式的设计及实现;李勇军;李宁远;;中原工学院学报(第03期);全文 * |
一种动态监测安卓应用程序的方法;蒋煦;张慧翔;慕德俊;;西北工业大学学报(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116088888A (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302587B (zh) | 数据更新方法及装置 | |
US20170011010A1 (en) | Method for displaying web content and electronic device supporting the same | |
CN112817634B (zh) | Cota包下载方法及装置 | |
US10671366B2 (en) | App program running method and apparatus | |
CN109558553B (zh) | 样式确定方法及装置 | |
CN116088888B (zh) | 应用程序更新方法及相关装置 | |
CN116700768B (zh) | 一种应用的处理方法及相关装置 | |
CN117707439A (zh) | 日志打印方法及相关装置 | |
CN114096946A (zh) | 用于管理应用的方法和装置 | |
KR102188685B1 (ko) | 애플리케이션 패키지를 생성하는 장치 및 방법 | |
CN111736839A (zh) | 一种编译链接方法及装置 | |
US11494050B2 (en) | Electronic device and method for controlling the electronic device | |
CN115237458A (zh) | 一种调用推理硬件执行ai应用的方法及相关产品 | |
CN117834649B (zh) | 数据传输方法及相关装置 | |
CN115202902B (zh) | 控制进程交互的方法及相关装置 | |
CN117176850B (zh) | 界面显示方法及相关装置 | |
CN116088970B (zh) | 控制应用调用的方法及相关装置 | |
CN116737258B (zh) | 卸载应用的方法及相关装置 | |
US20160314006A1 (en) | Method for processing dynamic language and electronic device using the same | |
CN116700740B (zh) | 软件修复方法和相关装置 | |
US11709663B2 (en) | Link-time driver polymorphism for embedded systems | |
US10592081B2 (en) | Multi-language input method and multi-language input apparatus using the same | |
WO2021249118A1 (zh) | 生成、注册ui服务包、以及加载ui服务的方法及装置 | |
CN116737037B (zh) | 界面显示中的栈管理方法及相关装置 | |
CN117858279A (zh) | 一种sim卡业务处理的方法及相关装置 |
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 |