CN117311840A - 应用启动方法、电子设备以及存储介质 - Google Patents
应用启动方法、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN117311840A CN117311840A CN202311148781.4A CN202311148781A CN117311840A CN 117311840 A CN117311840 A CN 117311840A CN 202311148781 A CN202311148781 A CN 202311148781A CN 117311840 A CN117311840 A CN 117311840A
- Authority
- CN
- China
- Prior art keywords
- application
- electronic device
- service
- broadcast
- update
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000003860 storage Methods 0.000 title claims abstract description 19
- 230000008569 process Effects 0.000 claims abstract description 28
- 238000005192 partition Methods 0.000 claims description 54
- 238000009434 installation Methods 0.000 claims description 17
- 230000009471 action Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 6
- 230000002194 synthesizing effect Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 31
- 230000006854 communication Effects 0.000 description 31
- 238000007726 management method Methods 0.000 description 26
- 230000003068 static effect Effects 0.000 description 23
- 239000010410 layer Substances 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000010295 mobile communication Methods 0.000 description 10
- 230000005236 sound signal Effects 0.000 description 9
- 230000015572 biosynthetic process Effects 0.000 description 6
- 238000003786 synthesis reaction Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了应用启动方法、电子设备以及计算机可读存储介质,涉及电子设备技术领域。电子设备包括第一应用,第一服务和第二服务;应用启动方法包括:电子设备响应于接收到第一应用的更新包,关机并重新开机;在开机过程中,第一服务基于更新包对第一应用进行更新;第二服务基于开机过程完成,发送开机广播;第一服务接收到开机广播,并确定第一应用更新完成,向更新后的第一应用发送第一广播,第一广播用于指示更新后的第一应用启动。本申请可以避免出现更新后的应用无法自启动的情况。
Description
技术领域
本申请涉及电子设备技术领域,尤其涉及一种应用启动方法、电子设备以及计算机可读存储介质。
背景技术
如今,手机、平板电脑等电子设备已经被广泛应用。为了满足日益增加的用户需求,需要对电子设备中的一些应用进行更新。
在对电子设备中的某些应用(例如,软件更新应用)进行更新后,通常会要求更新后的应用自启动,以在启动后执行后续任务。例如,显示应用更新完成信息等。但是,在一些场景下,更新后的应用会出现无法自启动的情况。
发明内容
本申请的一些实施方式提供了一种应用启动方法、电子设备以及计算机可读存储介质,以下从多个方面介绍本申请,以下多个方面的实施方式和有益效果可互相参考。
第一方面,本申请提供了一种应用启动方法,电子设备包括第一应用,第一服务和第二服务;该方法包括:电子设备响应于接收到第一应用的更新包,关机并重新开机;电子设备开机,在开机过程中,第一服务基于更新包对第一应用进行更新;第二服务基于开机过程完成,发送开机广播;第一服务接收到开机广播,并确定第一应用更新完成,向更新后的第一应用发送第一广播,第一广播用于指示更新后的第一应用启动。
根据本申请实施方式,作为第一应用基于接收到第一服务发送的第一广播而启动。其中,第一服务是接收到第二服务发送的开机广播,并确定第一应用更新完成之后,才向第一应用发送第一广播。可以理解,第一广播是电子设备开机完成,并且第一应用更新完成之后发送的。因此,更新后的第一应用必然可以接收到该第一广播,从而可以避免出现更新后无法自动的情况。
在一些实施方式中,第一应用为系统应用;方法还包括:第一应用响应于接收到第一广播,启动;第一应用基于启动完成,执行以下至少一项动作:对第一应用的更新包数据进行分区同步;刷新电子设备的系统版本号;设置第一应用的保活时钟;向服务器发送打点数据;显示第一应用更新成功的通知信息。
在一些实施方式中,第一应用对第一应用的更新包数据进行分区同步,包括:第一应用基于确定电子设备的操作系统支持虚拟AB分区,并确定第一应用在更新完成后,电子设备未经重启,对第一应用的更新包数据进行分区同步。
在一些实施方式中,开机过程至少包括:显示锁屏界面;接收到针对锁屏界面的解锁操作;第二服务确定开机过程完成,包括:第二服务基于电子设备接收到解锁操作,确定开机过程完成。
在一些实施方式中,解锁操作包括输入解锁密码。
在一些实施方式中,电子设备还包括第三服务;第一服务基于更新包对第一应用进行更新,包括:第一服务向第三服务发送合成第一应用的新版本安装包的第一请求;第三服务响应于接收到第一请求,基于更新包合成第一应用的新版本安装包;第一服务基于新版本安装包对第一应用进行更新。
在一些实施方式中,电子设备还包括第四服务;第一服务基于新版本安装包对第一应用进行更新,包括:第一服务向第四服务发送对第一应用进行安装的第二请求;第三服务响应于接收到第二请求,基于新版本安装包对第一应用进行安装;第三服务基于第一应用安装完成,向第一服务发送第一应用更新完成的通知;第一服务确定第一应用更新完成,包括:第一服务基于接收到第一应用更新完成的通知,确定第一应用完成更新。
在一些实施方式中,第一应用为软件更新应用。
第二方面,本申请实施方式提供了一种电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令;处理器,当处理器执行存储器中的指令时,可使得电子设备执行本申请第一方面任一实施方式所述的方法。第二方面能达到的有益效果可参考第一方面任一实施方式所提供的方法的有益效果,此处不再赘述。
第三方面,本申请实施方式提供了一种计算机可读存储介质,计算机可读存储介质上存储有指令,该指令在计算机上执行时可使计算机执行第一方面任一实施方式所述的方法。第三方面能达到的有益效果可参考第一方面任一实施方式所提供的方法的有益效果,此处不再赘述。
附图说明
图1A~1B示出了本申请实施例提供的用户对应用更新的示例性方法一;
图1C示出了本申请实施例提供的用户对应用更新的示例性方法二;
图2为本申请实施例提供的应用更新原理示例图一;
图3为一些实施例提供的开机广播发送的流程示例图一;
图4为一些实施例提供的开机广播发送的流程示例图二;
图5为本申请实施例提供的应用启动方法的流程示意图一;
图6为本申请实施例提供的应用更新界面示例图一;
图7为本申请实施例提供的应用启动方法的流程示意图二;
图8为本申请实施例提供的应用更新原理示例图二;
图9为一些实施例提供的开机广播发送的流程示例图三;
图10A和图10B为本申请实施例提供的虚拟VAB分区构架示例图;
图11为本申请实施例提供的系统版本号刷新示例图一(刷新前);
图12为本申请实施例提供的系统版本号刷新示例图二(刷新后);
图13为本申请实施例提供的应用更新完成的通知示例图;
图14示出了本申请实施例提供的电子设备的构造示意图;
图15示出了本申请实施例提供的电子设备的软件架构图;
图16示出了本申请实施例提供的电子设备的框图;
图17示出了本申请实施例提供的片上系统(SoC,System on Chip)的结构示意图。
具体实施方式
本申请实施方式用于提供一种应用启动方法。通过本申请提供的方法,应用在更新可以顺利自启动。
图1A和图1B示出本申请实施例的示例性应用场景。参考图1A,电子设备100包括软件更新应用(或称“OUC”,作为第一应用的示例)。OUC包括软件更新界面10。当用户点击软件更新界面10上检查更新按钮11时,电子设备100可以检查系统软件是否存在新版本。
当系统软件存在新版本时,电子设备100可以跳转至图1B所示的新版本界面15。新版本界面15包括更新日志、系统软件的新版本号等信息。参考图1B,本次更新合入了软件更新应用的补丁。当用户点下载并安装按钮16时,电子设备100可以更新OUC。
可以理解,在其他实施例中,电子设备100也可以通过其他方式启动对应用的更新。例如,当检测到新版本的应用时,电子设备100可以在后台自动启动对该应用的更新。又例如,当检测到新版本的应用时,电子设备100弹出应用更新通知,用户可以基于该应用更新通知启动对该应用的更新。
具体地,如图1C所示,当检测到新版本的OUC时,电子设备100可以在桌面上显示通知栏20,以通知用户更新OUC。通知栏20中包括OUC的更新按钮——确定按钮21。一些情况下,当用户点击通知栏20中的确定按钮21后,电子设备100更新OUC。
本申请对电子设备100的具体形式不作限定,电子设备100可以是手机、笔记本电脑、平板、大屏设备、可穿戴设备(例如,手表,智能眼镜,头盔),台式电脑、增强现实(Augmented Reality,AR)/虚拟现实(Virtual Reality,VR)设备、个人数字助理(PersonalDigital Assistant,PDA)等。下文将手机作为电子设备100的示例。
参考图2,当更新OUC时,电子设备100可以从服务器200中下载OUC的冷补丁包(作为更新包的示例),并对该冷补丁包进行鉴权、解压。其中,冷补丁包是电子设备100重启后才能生效的补丁包。该冷补丁包进行鉴权、解压完成之后,电子设备100需要重启。
电子设备100重启时,在开机阶段拉起补丁服务(PatchService)(作为第一服务),并对PatchService进行初始化。PatchService初始化完成后,调用更新驱动(UpdateEngine)(作为第三服务)将该冷补丁包,与OUC当前版本的安卓应用程序包(Android Application Package,APK)合成为新版本的APK。随后,PatchService调用程序包管理服务(Package Manager Service,PMS)(作为第四服务)安装该新版本的APK,以更新OUC。
OUC更新完成之后,需要自启动,以执行后续任务。例如,调用UpdateEngine执行分区同步(merge)操作、发出补丁升级成功通知等任务。为了叙述的连贯性,OUC自启动后执行的任务将在后文中进行说明。
在一些情况中,OUC更新完成之后,无法自启动。
下面介绍OUC更新后无法自启的情况。
(1)情况一:电子设备100被用户设置了锁屏密码,并且,电子设备100在OUC更新完成之前被解锁。
示例性地,锁屏密码可以加密电子设备100的凭证加密(Credential Encrypted,CE)存储空间。凭证加密存储空间用于存储电子设备100的加密级文件。
为了保证用户的数据安全,只有在凭证加密存储空间被解密后,电子设备100的活动管理服务(ActivityManagerService,AMS)(作为第二服务)才会发送开机广播(BOOT_COMPLETED),以避免电子设备100中的应用在解锁前被启动。
可以理解,电子设备100中的某些应用(例如,软件更新应用,语音助手应用等系统应用)接收到开机广播可以自启动。
参考图3,OUC的更新过程包括以下两个阶段:
阶段一:PatchService调用UpdateEngine合成新版本的APK(例如,阶段一的时长为15秒左右)。
阶段二:PatchService调用PMS安装新版本的APK(例如,阶段二的时长为3秒左右)。
当用户在OUC更新完成之前(例如,在阶段一期间)解锁电子设备100时,电子设备100调用sendBroadcast方法请求活动管理服务(ActivityManagerService,AMS)发送开机广播。
AMS接收到该请求后,查询系统中的广播接收者(BroadcastReceiver),并根据查询结果建立广播记录(BroadcastRecord)。可以理解,OUC在更新之前已经设置了广播接收者,因此广播记录中包括OUC的广播接收者。
广播记录建立完成之后,AMS会建立广播队列,然后将广播记录中的广播接收者加入到广播队列,按照广播队列发送(分发)开机广播。通常地,从广播记录建立完成到AMS开始发送开机广播之间有一定时长,例如,17秒左右。
一些情况下,如图3所示,在AMS发送开机广播之前,PMS会安装新版本的APK。PMS在安装新版本APK的过程中,会移除OUC的广播接收者。当OUC更新完成后,导致更新后的OUC(本文将“更新后的OUC”称为“HnOUC”)的广播接收者并不在AMS建立的广播队列中,因此,HnOUC接收不到开机广播。
(2)情况二:电子设备100未被用户设置锁屏密码,并且,在OUC更新完成之前,电子设备100开机完成。
由于电子设备100未被用户设置锁屏密码,电子设备100的凭证加密存储空间未被加密。在此情况下,电子设备100开机完成时,即可调用sendBroadcast方法请求AMS发送开机广播。
参考图4,当电子设备100在OUC更新完成之前(例如,在阶段一期间)开机完成时,电子设备100调用sendBroadcast方法请求AMS发送开机广播。AMS接收到该请求后,建立广播记录。
与情况一相同,一些情况下,在AMS发送开机广播之前,PMS会安装新版本的APK,并在此过程中移除OUC的广播接收者,导致HnOUC的广播接收者不在AMS建立的广播队列中,从而导致HnOUC接收不到开机广播。
在上述情况一和情况二中,OUC更新之后均无法自启动。为了解决上述技术问题,本申请提供了一种应用启动方法。本实施例提供的方法中,更新后的OUC(作为第一应用的示例)基于接收到PatchService(作为第一服务)发送的自定义广播(或称为“第一广播”)而启动。其中,PatchService是接收到AMS(作为第二服务)发送的开机广播,并确定OUC更新完成之后,即向OUC发送自定义广播。可以理解,自定义广播是电子设备100开机完成,并且OUC更新完成之后发送的。因此,更新后的OUC必然可以接收到该自定义广播,从而可以避免出现更新后无法自启动的情况。
以下介绍本申请实施例提供的应用启动方法的具体步骤。
参考图5,本申请提供的应用启动方法包括以下步骤:
S101:PatchService调用UpdateEngine(作为第三服务)合成新版本的APK。
本实施例中,OUC作为第一应用的示例。在其他实施例中,第一应用可以为相机应用、设置应用、时钟应用、屏幕录制应用、智慧助手应用等系统应用,或者为其他第三方应用。
当更新OUC时,电子设备100可以接收服务器发送的冷补丁包(作为更新包的示例),并对该冷补丁包进行鉴权、解压。该冷补丁包鉴权、解压完成之后,电子设备100进入重启状态,此时用户可以通过执行重启操作,重启电子设备100。
例如,参考图6,电子设备100进入重启状态时,可以弹出窗口40。当用户点击弹窗40中的立即安装按钮41后,电子设备100重启。或者,用户也可以通过长按电源键42重启电子设备100。例如,当用户长按电源键42超过3秒时,电子设备100重启。在其他实施例中,电子设备在对冷补丁包鉴权、解压完成后,也可以自动重启。
可以理解,电子设备100的重启阶段包括关机过程和重新开机过程。在电子设备100重启阶段的开机过程中,PatchService可以向UpdateEngine发送合成OUC应用的新版本APK的请求(作为第一请求),以调用UpdateEngine将冷补丁包与OUC当前版本的APK合成OUC的新版本APK。
S102:UpdateEngine向PatchService发送新版本APK的合成完成通知。
在一些实施例中,当新版本的APK合成完成后,UpdateEngine可以通过广播、Bundle等方式向PatchService发送新版本的APK合成完成的通知。其中,Bundle为Android系统提供的一种组件间通信方式。
S103:PatchService调用PMS(作为第四服务)安装新版本的APK,以更新OUC。
PatchService接收到新版本APK的合成完成通知后,向PMS发送安装OUC的请求(作为第二请求),以调用PMS安装该新版本的APK,以更新OUC。
S104:AMS向PatchService发送开机广播。
当电子设备100的开机过程完成后,AMS向PatchService发送开机广播。
在一些实施例中,如果电子设备100未被设置锁屏密码,则当电子设备100的桌面(Launch)应用被启动时,电子设备100的开机过程完成。
在另一些实施例中,如果电子设备100被设置了锁屏密码,则电子设备100在开机过程中会显示锁屏界面。当电子设备100接收到用户在锁屏界面上的解锁操作时,电子设备100解锁并完成开机过程。
具体地,在电子设备100显示锁屏界面时,用户可以通过在锁屏界面上输入锁屏密码(或称为“解锁密码”),解锁电子设备100。锁屏密码的形式可以为指纹密码、数字密码、手势密码、人脸密码等,本申请不作限定。
S105:PatchService接收到开机广播,判断是否已经接收到OUC更新完成的通知。若是,则执行S108,若否,则不发送自定义广播。
在一些实施例中,电子设备100中存储有用于标记是否接收到开机广播的参数BOOT_COMPLETED。在电子设备100每次开机后,可以将参数BOOT_COMPLETED的值设置为false。当PatchService接收到开机广播后,将参数BOOT_COMPLETED的值修改为true。
另外,电子设备100中还存储有用于标记OUC更新状态的参数OUC_INSTALL_COMPLETED。在电子设备100每次开机后,可以将参数OUC_INSTALL_COMPLETED的值设置为false。当PatchService接收到OUC更新完成的通知后,可以将参数OUC_INSTALL_COMPLETED的值修改为ture。
在图5所示的示例中,当PatchService接收到开机广播时,说明电子设备100的开机过程已经完成。此时,PatchService将参数BOOT_COMPLETED的值修改为true,并继续判断是否已经接收到OUC更新完成的通知。并且,PatchService根据参数OUC_INSTALL_COMPLETED的值判断是否已接收到OUC更新完成的通知。可以理解,在步骤S105中,参数OUC_INSTALL_COMPLETED的值为false,因此,PatchService判断其尚未接收到OUC更新完成的通知。因此,PatchService不发送自定义广播。
S106,PMS向PatchService发送OUC更新完成的通知。
在一些实施例中,PMS对OUC的新版本APK安装完成后,PMS可以通过广播、Bundle等方式向PatchService发送OUC更新完成的通知。
S107:PatchService接收到OUC更新完成的通知,判断是否已经接收到开机广播。若是,则执行S108,若否,则不发送自定义广播。
当PatchService接收到OUC更新完成的通知时,说明OUC已经更新完成。此时PatchService将参数OUC_INSTALL_COMPLETED的值修改为ture。并且,PatchService根据参数BOOT_COMPLETED的值判断是否已接收到开机广播。可以理解,在步骤S105中,参数BOOT_COMPLETED的值被修改为ture,因此,PatchService判断其已经接收到了开机广播,执行S108。
S108:PatchService向HnOUC发送自定义广播(或称“第一广播”)。
本实施例对自定义广播的内容不做限定,例如,自定义广播的内容可以为“launchapplication”。另外,PatchService可以将自定义广播的接收者的包名指定为OUC的包名,或者指定为HnOUC的广播接收者的组件名(HnOUC可以在其Manifest文件中定义其广播接收者的组件名)。从而,当PatchService发送自定义广播后,HnOUC可以接收到该自定义广播。
当PatchService确定已接收到开机广播,并确定OUC已更新完成时,可以调用sendBroadcast方法向HnOUC发送自定义广播。
S109:HnOUC响应于接收到自定义广播,自启动。
在PatchService发送自定义广播后,HnOUC可以接收到该自定义广播。
S110:HnOUC执行更新后的后续动作。
HnOUC启动后,可以执行更新后的后续动作,例如,对HnOUC的更新包数据进行分区同步;刷新电子设备100的系统版本号;设置HnOUC的保活时钟;向服务器发送打点数据,和/或,显示HnOUC更新成功的通知信息。为叙述的连贯性,上述动作的具体细节在下文中详细叙述。
本实施例提供的方法中,HnOUC接收到PatchService发送的自定义广播后启动。而自定义广播是在电子设备100开机完成,并且OUC更新完成之后发送的。因此,HnOUC必然可以接收到该自定义广播,从而可以避免出现更新后无法自动的情况。
在图5所示的示例中,PatchService首先接收到开机广播,再接收到OUC更新完成的通知。因此。在另一个实施例中,也可以先接收到OUC更新完成的通知,再接收到开机广播。
参考图7,该实施例提供的应用启动方法包括以下步骤:
S201,PatchService调用UpdateEngine合成新版本的APK。
S202:UpdateEngine向PatchService发送新版本APK的合成完成通知。
S203:PatchService调用PMS安装新版本的APK,以更新OUC。
步骤S201~S203与上述步骤S101~S103实质相同,此处不再赘述。
S204:PMS向PatchService发送OUC更新完成的通知。
步骤S204与上述步骤S106实质相同,此处不再赘述。
S205:PatchService接收到开机广播,判断是否已经接收到OUC更新完成的通知。若是,则执行S208,若否,则不发送自定义广播。
在图7所示的示例中,当PatchService接收到OUC更新完成的通知时,说明OUC已经更新完成。此时,PatchService将参数OUC_INSTALL_COMPLETED的值修改为true,并继续判断是否已经接收到开机广播。并且,PatchService根据参数BOOT_COMPLETED的值判断是否已接收到开机广播。可以理解,在步骤S205中,参数BOOT_COMPLETED的值为false。因此,PatchService判断其尚未接收到开机广播。因此,PatchService不发送自定义广播。
S206,AMS向PatchService发送开机广播。
步骤S206与上述步骤S104实质相同,此处不再赘述。
S207:PatchService接收到开机广播,判断是否已经接收到OUC更新完成的通知。若是,则执行S208,若否,则不发送自定义广播。
当PatchService接收到开机广播时,说明电子设备100已经开机完成。此时PatchService将参数BOOT_COMPLETED的值修改为ture。并且,PatchService根据参数OUC_INSTALL_COMPLETED的值判断是否已接收到OUC更新完成的通知。可以理解,在步骤S205中,参数OUC_INSTALL_COMPLETED的值被修改为ture,因此,PatchService判断其已经接收到了OUC更新完成的通知,执行S208。
S208:PatchService向HnOUC发送自定义广播。
S209:HnOUC响应于接收到自定义广播,自启动。
S210:HnOUC执行更新后的后续动作。
步骤S208~S210与上述步骤S108~S110实质相同,此处不再赘述。
也就是说,参考图8,上述实施例的方法中,PatchService发送自定义广播的时机判断,存在以下两种情况:
(1)情况A:当PatchService接收到OUC更新完成通知时,判断电子设备100的开机过程是否完成。
(2)情况B:当PatchService接收到开机广播时,判断OUC是否更新完成。
由上述情况可知,仅当PatchService接收到开机广播(记作“条件一”)并且接收到OUC更新完成的通知时(记作“条件二”),PatchService才会向HnOUC发送自定义广播。在条件一和条件二的任一条件不满足时,PatchService均不会向HnOUC发送自定义广播。因此,本申请实施例可以保证HnOUC接收到自定义广播,并顺利自启动。
一些情况下,电子设备100的管控模块(例如,Iaware模块)可能对应用的启动行为进行管控,限制自定义广播拉起应用。为了使得HnOUC可以自启动,以执行后续任务,本实施例中,可以预先设置管控模块允许自定义广播拉起HnOUC,例如,将OUC应用加入管控模块的白名单中。
在一些实施例中,上文中的冷补丁包是一种差分更新包。差分更新包是新版本的安装包与旧版本的安装包之间的差分包。
以下介绍电子设备100在重启的开机阶段,可能发生的另一种情况(不同于上文情况一和情况二的另一种情况,记作“情况三”)。
情况三:参考图9,当电子设备100被设置了锁屏密码,并且用户在OUC更新完成之后解锁电子设备100时,更新后的OUC可以接收到开机广播。
具体地,如图9所示,用户在阶段二(PatchService调用PMS安装新版本的APK)之后解锁电子设备100,例如,在PatchService调用UpdateEngine之后的第20秒解锁电子设备100。此时,电子设备100会调用sendBroadcast方法请求AMS发送开机广播。AMS接收到该请求后,查询系统中的广播接收者,并根据查询结果建立广播记录。
可以理解,在AMS建立广播记录之前,OUC就已经更新完成,因此广播记录中包括OUC的广播接收者。并且,在广播记录建立完成之后,不会再出现因重新安装OUC,而导致OUC的广播记录者被移除的情况。因此,在此情况下,当AMS向HnOUC发送开机广播后,HnOUC可以正常接收到开机广播。HnOUC接收到开机广播后,可以自启动。
在一些实施例中,HnOUC可能会接收到两次广播。例如,当HnOUC在接收到开机广播(第一次广播)自启动之后,如果PatchService判断OUC更新完成并且接收到开机广播时,还是会向HnOUC发送自定义广播,此时,HnOUC接收到自定义广播(第二次广播)。也就是说,HnOUC会接收到两次广播。可以理解,在另一些实施例中,HnOUC也可能先接收到自定义广播,再接收到开机广播。
当HnOUC在接收到第一次广播时,可以自启动,并在启动后执行更新后的相关操作(例如,步骤S110所述的分区同步操作,刷新系统版本号操作等)。当HnOUC第二次接收到广播(自定义广播)时,仍可能再次自启动,并再执行一次更新后的相关操作。
在另一些实施例中,可以在电子设备100中增加标记位(Flag)。HnOUC基于Flag的值,确定是否执行更新后的相关操作。
示例性地,在电子设备100每次下载到OUC的冷补丁包,并完成对该冷不丁包解压、鉴权后,将Flag的值置为0。之后,电子设备100重启,并基于该冷补丁包对OUC进行更新。当更新后的OUC(即,HnOUC)接收到广播时,会查询Flag的值,如果Flag的值为0,则执行更新后的相关动作,并将Flag的值置为1;否则,HnOUC不执行更新后的相关动作。
可以理解,当OUC更新完成后并接收到第一次广播(例如,开机广播)时,Flag值为0,此时,HnOUC执行更新后的相关动作并将Flag的值修改为1。之后,当HnOUC接收到第二次广播(例如,自定义广播)时,Flag的值已被修改为1。此时,HnOUC不会执行更新后的相关动作。通过该设置,可以避免HnOUC重复执行更新后的动作(例如,分区同步操作)。
以下介绍OUC更新完成后执行的相关动作(即,步骤S110中涉及的动作)。
1.对冷补丁包(作为更新包的示例)进行分区同步。
本实施例中,电子设备100的系统分区可以采用虚拟AB(或称为“VAB”)动态分区架构(即,电子设备100的操作系统支持虚拟AB分区)。在其他实施例中,电子设备100的系统分区还可以采用其他分区架构,例如,ounly A分区架构、AB分区架构、AB动态分区架构、VAB分区架构等。
参考图10A和图10B,电子设备100包括两个静态分区(分别为静态分区A和静态分区B),动态分区和用户数据分区,其中,静态分区A和静态分区B为独立的物理存储空间,动态分区为共享的空间。
参考图10A,在电子设备100在工作时,系统挂载于其中一个静态分区,例如,静态分区A。当电子设备100中的软件(例如,OUC)需要进行升级时,升级数据可以不写入静态分区A,而写入静态分区B。因此,在软件的升级过程中,可以不影响系统的正常运行。另外,还有一部分升级数据(升级数据中对应动态分区的部分,记作“升级数据R”)可以写入用户数据分区。
当完成升级数据在静态分区B的写入后,电子设备100重启。电子设备100重启后,系统切换至静态分区B运行。即,参考图10B,系统挂载于静态分区B和动态分区。此时,可以将数据R写入动态分区中。
另外,在OUC更新完成后,由于静态分区B中OUC的数据为OUC更新后的数据,而静态分区A中OUC的数据为OUC更新前的数据。在OUC更新完成后,HnOUC还可以将静态分区B中OUC的更新包数据同步至静态分区A中,以使得静态分区A和静态分区B中OUC的更新包数据是一致的。下次OUC进行更新时,无论是在静态分区A中进行更新,还是在静态分B中进行更新,均可以基于最近的OUC版本进行更新,而非基于早前的OUC版本进行更新。
在一些实施例中,当HnOUC接收到广播(自定义广播或开机广播)后,可以判断当前系统分区是否支持分区同步操作,以及判断HnOUC安装之后是否启动过。
如果当前系统分区支持分区同步操作,并且HnOUC安装之后尚未启动过(例如,ifHnOucUtility.isSupportVAB()&&!OucUtility.isNeedReboot()),则HnOUC自启动后执行分区同步操作。否则,HnOUC自启动后不执行分区同步操作。通过该设置,可以避免电子设备100每次重启后,HnOUC均执行分区同步操作。
(2)刷新电子设备100的系统版本号。
HnOUC可以将电子设备100系统的当前版本号(更新之前的版本号)刷新为本次更新后的版本号。
例如,参考图11和图12,电子设备100可以在设置应用的关于手机界面显示电子设备100的系统版本号。参考图11,电子设备100的当前版本号为“7.0.0.123(C00E190R6P2)”。本次更新后,参考图12,HnOUC可以将该版本号刷新为“7.0.0.123(C00E190R6P2Patch01)”。
通过刷新电子设备100的系统版本号,便于用户观察到电子设备100的系统版本已被更新,提升用户感知。
(3)设置OUC的保活时钟(Alarm)。
保活时钟用于触发应用的自动启动。HnOUC通过设置保活时钟,可以使HnOUC定期自动启动,以定期执行检查更新任务。例如,HnOUC可以将保活时钟的时钟周期设置为4小时,这样,HnOUC可以每隔4小时自动启动一次,以每隔4小时执行检查更新任务(搜包)。在每次搜包完成后,OUC可以自动关闭。
当OUC执行检查更新任务时,可以检查是否存在电子设备100是否存在新版本的系统软件。当检查到电子设备100存在新版本的系统软件时,提醒用户更新系统软件,或者,自动更新系统软件。
HnOUC启动之后,通过设置自身的保活时钟,可以激活定时检查更新的任务。从而在厂商推出新版本的系统软件时,能够及时更新到最新版本。
(4)向服务器发送打点数据。
HnOUC启动之后,向服务器发送打点数据,以通知服务器OUC在电子设备100上更新成功(即,电子设备100已成功完成冷补丁包的安装)。服务器通过搜集各电子设备的打点数据,可以获取到冷补丁包的安装数量。示例性地,打点数据可以包括冷补丁包的版本号,电子设备100的设备标识等。
(5)显示OUC更新成功的通知信息。
HnOUC启动之后,可以执行发出软件更新应用升级通知的任务。例如,参考图13,在电子设备100的显示区域内显示通知栏50。通知栏50包括OUC更新成功的通知信息,例如“软件更新应用已更新完成,当前为最新版本”。
具体地,HnOUC可以调用系统服务(SystemService)创建用于通知栏30的notification对象,以通过该notification对象显示通知栏50。
HnOUC启动后,显示更新成功的通知信息,可以提升用户感知。
图14示出了电子设备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,以及用户标识模块(subscriberidentification 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)接口。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现电子设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(display serial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现电子设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
USB接头130是一种符合USB标准规范的连接器,可以用来连接电子设备100和外围设备,具体可以是标准USB接头(例如Type C接头),Mini USB接头,Micro USB接头等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接头130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。耳机接口170D用于连接有线耳机。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的AndroidTM系统为例,示例性说明电子设备100的软件结构。
图15是本发明实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图15所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,软件更新等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图15所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android Runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
现在参考图16,所示为根据本申请的一个实施例的电子设备400的框图。电子设备400可以包括耦合到控制器中枢403的一个或多个处理器401。对于至少一个实施例,控制器中枢403经由诸如前端总线(Front Side Bus,FSB)之类的多分支总线、诸如快速通道连(QuickPath Interconnect,QPI)之类的点对点接口、或者类似的连接406与处理器401进行通信。处理器401执行控制一般类型的数据处理操作的指令。在一实施例中,控制器中枢403包括,但不局限于,图形存储器控制器中枢(Graphics&Memory Controller Hub,GMCH)(未示出)和输入/输出中枢(Input Output Hub,IOH)(其可以在分开的芯片上)(未示出),其中GMCH包括存储器和图形控制器并与IOH耦合。
电子设备400还可包括耦合到控制器中枢403的协处理器402和存储器404。或者,存储器和GMCH中的一个或两者可以被集成在处理器内(如本申请中所描述的),存储器404和协处理器402直接耦合到处理器401以及控制器中枢403,控制器中枢403与IOH处于单个芯片中。
存储器404可以是例如动态随机存取存储器(Dynamic Random Access Memory,DRAM)、相变存储器(Phase Change Memory,PCM)或这两者的组合。存储器404中可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性计算机可读介质。计算机可读存储介质中存储有指令,具体而言,存储有该指令的暂时和永久副本。该指令可以包括:由处理器中的至少一个执行时导致电子设备400实施如图5、图7、图8所示方法的指令。当指令在计算机上运行时,使得计算机执行本申请实施例公开的应用启动方法。
在一个实施例中,协处理器402是专用处理器,诸如例如高吞吐量集成众核(ManyIntegrated Core,MIC)处理器、网络或通信处理器、压缩引擎、图形处理器、图形处理单元上的通用计算(General-purpose computing on graphics processing units,GPGPU)、或嵌入式处理器等等。协处理器402的任选性质用虚线表示在图16中。
在一个实施例中,电子设备400可以进一步包括网络接口(Network InterfaceController,NIC)406。网络接口406可以包括收发器,用于为电子设备400提供无线电接口,进而与任何其他合适的设备(如前端模块,天线等)进行通信。在各种实施例中,网络接口406可以与电子设备400的其他组件集成。网络接口406可以实现上述实施例中的通信单元的功能。
电子设备400可以进一步包括输入/输出(Input/Output,I/O)设备405。I/O405可以包括:用户界面,该设计使得用户能够与电子设备400进行交互;外围组件接口的设计使得外围组件也能够与电子设备400交互;和/或传感器设计用于确定与电子设备400相关的环境条件和/或位置信息。
值得注意的是,图16仅是示例性的。即虽然图16中示出了电子设备400包括处理器401、控制器中枢403、存储器404等多个器件,但是,在实际的应用中,使用本申请各方法的设备,可以仅包括电子设备400各器件中的一部分器件,例如,可以仅包含处理器401和网络接口406。图16中可选器件的性质用虚线示出。
现在参考图17,所示为根据本申请的一实施例的片上系统(System on Chip,SoC)500的框图。在图17中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图17中,SoC500包括:互连单元550,其被耦合至处理器510;系统代理单元580;总线控制器单元590;集成存储器控制器单元540;一组或一个或多个协处理器520,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(StaticRandom-Access Memory,SRAM)单元530;直接存储器存取(Direct Memory Access,DMA)单元560。在一个实施例中,协处理器520包括专用处理器,诸如例如网络或通信处理器、压缩引擎、图形处理单元上的通用计算(General-purpose computing on graphicsprocessing units,GPGPU)、高吞吐量MIC处理器、或嵌入式处理器等。
静态随机存取存储器(SRAM)单元530可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性计算机可读介质。计算机可读存储介质中存储有指令,具体而言,存储有该指令的暂时和永久副本。该指令可以包括:由处理器中的至少一个执行时导致SoC实施如图5、图7、图8所示方法的指令。当指令在计算机上运行时,使得计算机执行本申请实施例公开的应用启动方法。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本实施例中,各数据范围的值包括端值。例如,A=10~50,表示A可以为10或50。
本申请的各方法实施方式均可以以软件、磁件、固件等方式实现。
可将程序代码应用于输入指令,以执行本文描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本文中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
至少一个实施例的一个或多个方面可以由存储在计算机可读存储介质上的表示性指令来实现,指令表示处理器中的各种逻辑,指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“知识产权(Intellectual Property,IP)核”的这些表示可以被存储在有形的计算机可读存储介质上,并被提供给多个客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
在一些情况下,指令转换器可用来将指令从源指令集转换至目标指令集。例如,指令转换器可以变换(例如使用静态二进制变换、包括动态编译的动态二进制变换)、变形、仿真或以其它方式将指令转换成将由核来处理的一个或多个其它指令。指令转换器可以用软件、硬件、固件、或其组合实现。指令转换器可以在处理器上、在处理器外、或者部分在处理器上且部分在处理器外。
Claims (13)
1.一种应用启动方法,应用于电子设备,其特征在于,所述电子设备包括第一应用;所述方法包括:
响应于接收到所述第一应用的更新包,关机并重新开机,所述第一应用为系统应用;
基于所述更新包对所述第一应用进行更新;
在所述电子设备的开机过程完成且所述第一应用更新完成的情况下,向所述第一应用发送第一广播,所述第一广播与开机广播不同;
所述第一应用响应于接收到所述第一广播,启动。
2.根据权利要求1所述的方法,其特征在于,所述电子设备包括第一服务和第二服务;
所述基于所述更新包对所述第一应用进行更新,包括:所述第一服务基于所述更新包对所述第一应用进行更新;
所述在所述电子设备的开机过程完成且所述第一应用更新完成的情况下,向所述第一应用发送第一广播,包括:
在所述电子设备开机过程完成的情况下,所述第二服务发送开机广播;
所述第一服务基于接收到所述开机广播,并确定所述第一应用更新完成,向所述第一应用发送所述第一广播。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一应用基于启动完成,执行以下至少一项动作:对所述第一应用的更新包数据进行分区同步;刷新所述电子设备的系统版本号;设置所述第一应用的保活时钟;向服务器发送打点数据;显示所述第一应用更新成功的通知信息。
4.根据权利要求3所述的方法,其特征在于,所述第一应用对所述第一应用的更新包数据进行分区同步,包括:
所述第一应用基于确定所述电子设备的操作系统支持虚拟AB分区,并确定所述第一应用在更新完成后,所述电子设备未经重启,对所述第一应用的更新包数据进行分区同步。
5.根据权利要求2所述的方法,其特征在于,所述开机过程至少包括:
显示锁屏界面;
接收到针对所述锁屏界面的解锁操作;
所述电子设备开机过程完成,包括:
所述电子设备接收到所述解锁操作,确定所述开机过程完成。
6.根据权利要求5所述的方法,其特征在于,所述解锁操作包括输入解锁密码。
7.根据权利要求2所述的方法,其特征在于,所述电子设备还包括第三服务;所述第一服务基于所述更新包对所述第一应用进行更新,包括:
所述第一服务向所述第三服务发送合成所述第一应用的新版本安装包的第一请求;
所述第三服务响应于接收到所述第一请求,基于所述更新包合成所述第一应用的新版本安装包;
所述第一服务基于所述新版本安装包对所述第一应用进行更新。
8.根据权利要求7所述的方法,其特征在于,所述电子设备还包括第四服务;所述第一服务基于所述新版本安装包对所述第一应用进行更新,包括:
所述第一服务向所述第四服务发送对所述第一应用进行安装的第二请求;
所述第三服务响应于接收到所述第二请求,基于所述新版本安装包对所述第一应用进行安装;
所述第三服务基于所述第一应用安装完成,向所述第一服务发送所述第一应用更新完成的通知;
所述第一服务确定所述第一应用更新完成,包括:
所述第一服务基于接收到所述第一应用更新完成的通知,确定所述第一应用完成更新。
9.根据权利要求1所述的方法,其特征在于,所述第一应用为软件更新应用。
10.根据权利要求1所述的方法,其特征在于,所述开机广播包括BOOT_COMPLETED。
11.根据权利要求2所述的方法,其特征在于,所述第一服务是PatchService,所述第二服务是ActivityManagerService。
12.一种电子设备,包括:
存储器,用于存储由所述电子设备的一个或多个处理器执行的指令;
处理器,当所述处理器执行所述存储器中的所述指令时,可使得所述电子设备执行权利要求1~11任一项所述的应用启动方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,该指令在计算机上执行时使得计算机执行权利要求1~11任一项所述的应用启动方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311148781.4A CN117311840A (zh) | 2023-05-10 | 2023-05-10 | 应用启动方法、电子设备以及存储介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311148781.4A CN117311840A (zh) | 2023-05-10 | 2023-05-10 | 应用启动方法、电子设备以及存储介质 |
CN202310520805.8A CN116244008B (zh) | 2023-05-10 | 2023-05-10 | 应用启动方法、电子设备以及存储介质 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310520805.8A Division CN116244008B (zh) | 2023-05-10 | 2023-05-10 | 应用启动方法、电子设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117311840A true CN117311840A (zh) | 2023-12-29 |
Family
ID=86635994
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311148781.4A Pending CN117311840A (zh) | 2023-05-10 | 2023-05-10 | 应用启动方法、电子设备以及存储介质 |
CN202310520805.8A Active CN116244008B (zh) | 2023-05-10 | 2023-05-10 | 应用启动方法、电子设备以及存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310520805.8A Active CN116244008B (zh) | 2023-05-10 | 2023-05-10 | 应用启动方法、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN117311840A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701318B (zh) * | 2023-08-09 | 2023-12-15 | 荣耀终端有限公司 | 系统升级信息获取方法、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030055926A1 (en) * | 2001-09-05 | 2003-03-20 | Kwok Raymond Wai-Man | Method and apparatus for performing a software upgrade of a router while the router is online |
CN101853173A (zh) * | 2010-05-27 | 2010-10-06 | 杭州华三通信技术有限公司 | 一种分布式系统的可编程逻辑器件的软件升级方法和设备 |
US20140156805A1 (en) * | 2012-05-10 | 2014-06-05 | Hulu, LLC | Remote Automated Updates for an Application |
CN104346187A (zh) * | 2013-08-07 | 2015-02-11 | 西安诺瓦电子科技有限公司 | 显示屏用视频控制卡的软件升级方法 |
CN106874048A (zh) * | 2017-01-25 | 2017-06-20 | 北京奇虎科技有限公司 | 一种应用程序自启动的处理方法、装置及移动终端 |
CN115686679A (zh) * | 2022-11-14 | 2023-02-03 | 桂林海威科技股份有限公司 | 一种基于安卓设备的应用自启动方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2660998A3 (en) * | 2012-05-04 | 2014-10-15 | Samsung Electronics Co., Ltd. | Broadcast receiving apparatus and method for controlling application, and device |
CN103345408A (zh) * | 2013-06-26 | 2013-10-09 | 深圳市金立通信设备有限公司 | 一种终端开机加速的方法及终端 |
CN106484473A (zh) * | 2016-09-29 | 2017-03-08 | Tcl集团股份有限公司 | 一种应用启动方法和装置 |
CN107423064B (zh) * | 2017-07-26 | 2020-12-08 | Oppo广东移动通信有限公司 | 消息处理方法、装置、终端设备及存储介质 |
CN108038010A (zh) * | 2017-12-25 | 2018-05-15 | 青岛海信电器股份有限公司 | 安卓系统启动阶段广播发送方法、装置和终端 |
CN112445530B (zh) * | 2019-08-29 | 2023-03-14 | 成都鼎桥通信技术有限公司 | 第三方应用程序保活方法及设备 |
CN113973044A (zh) * | 2020-07-10 | 2022-01-25 | 深圳Tcl数字技术有限公司 | 一种升级方法、升级系统和计算机设备 |
CN112135180B (zh) * | 2020-09-18 | 2023-04-14 | 青岛海信传媒网络技术有限公司 | 一种内容显示方法和显示设备 |
US11115269B1 (en) * | 2020-10-20 | 2021-09-07 | Metactix Llc | System and method for updating an application for a population of computers |
CN112988213B (zh) * | 2021-04-13 | 2023-11-14 | 荣耀终端有限公司 | 一种程序数据更新方法、电子设备及计算机存储介质 |
CN113127084A (zh) * | 2021-04-28 | 2021-07-16 | 雄狮汽车科技(南京)有限公司 | 一种应用服务自启动方法、电子设备及汽车 |
CN113934519B (zh) * | 2021-08-10 | 2022-08-02 | 荣耀终端有限公司 | 应用的调度方法及电子设备 |
CN114398048A (zh) * | 2022-03-25 | 2022-04-26 | 深圳市星卡科技有限公司 | 一种app自动升级的方法、装置和计算机设备 |
CN116048628B (zh) * | 2022-07-21 | 2023-09-29 | 荣耀终端有限公司 | 设备启动方法及电子设备 |
CN115643338B (zh) * | 2022-12-01 | 2023-08-22 | 荣耀终端有限公司 | 一种参数更新方法及设备 |
-
2023
- 2023-05-10 CN CN202311148781.4A patent/CN117311840A/zh active Pending
- 2023-05-10 CN CN202310520805.8A patent/CN116244008B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030055926A1 (en) * | 2001-09-05 | 2003-03-20 | Kwok Raymond Wai-Man | Method and apparatus for performing a software upgrade of a router while the router is online |
CN101853173A (zh) * | 2010-05-27 | 2010-10-06 | 杭州华三通信技术有限公司 | 一种分布式系统的可编程逻辑器件的软件升级方法和设备 |
US20140156805A1 (en) * | 2012-05-10 | 2014-06-05 | Hulu, LLC | Remote Automated Updates for an Application |
CN104346187A (zh) * | 2013-08-07 | 2015-02-11 | 西安诺瓦电子科技有限公司 | 显示屏用视频控制卡的软件升级方法 |
CN106874048A (zh) * | 2017-01-25 | 2017-06-20 | 北京奇虎科技有限公司 | 一种应用程序自启动的处理方法、装置及移动终端 |
CN115686679A (zh) * | 2022-11-14 | 2023-02-03 | 桂林海威科技股份有限公司 | 一种基于安卓设备的应用自启动方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116244008B (zh) | 2023-09-15 |
CN116244008A (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3822835B1 (en) | Method for deleting secure service, and electronic apparatus | |
CN114553814B (zh) | 处理推送消息的方法和装置 | |
CN113408016B (zh) | 保存密文的方法和装置 | |
CN116244008B (zh) | 应用启动方法、电子设备以及存储介质 | |
CN112860445B (zh) | 一种快应用与原生应用间数据共享的方法及终端 | |
CN113608753A (zh) | 应用卸载方法、应用恢复方法、电子设备以及存储介质 | |
WO2022174718A1 (zh) | 一种数据备份方法和电子设备 | |
CN116302291B (zh) | 应用显示方法、电子设备以及存储介质 | |
CN116795435A (zh) | 兼容性管控方法及相关设备 | |
CN115203716A (zh) | 权限同步方法、相关装置及系统 | |
CN114579181A (zh) | 打补丁的方法、相关设备及系统 | |
CN113467821A (zh) | 应用程序的修复方法、装置、设备及可读存储介质 | |
CN117009023B (zh) | 显示通知信息的方法及相关装置 | |
CN116048685B (zh) | 杂志锁屏的显示方法、图形界面及电子设备 | |
CN116048544B (zh) | 一种弹窗广告的处理方法、电子设备及可读存储介质 | |
CN116048594B (zh) | 软件升级方法及相关装置 | |
CN116048545B (zh) | 一种弹窗广告的处理方法、电子设备及可读存储介质 | |
CN115495716B (zh) | 一种本地鉴权方法和电子设备 | |
WO2023051036A1 (zh) | 加载着色器的方法和装置 | |
WO2022068605A1 (zh) | 一种补丁复用方法、系统及电子设备 | |
CN117786260A (zh) | 一种卡片的更新方法及相关装置 | |
CN116560535A (zh) | 应用组件管理方法及相关设备 | |
CN117687708A (zh) | 开机方法及电子设备 | |
CN114860293A (zh) | 电子设备及其系统升级方法和介质 | |
CN116737193A (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 |