一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用管理方法和电子设备与流程

2022-02-20 05:13:43 来源:中国专利 TAG:


1.本技术涉及终端技术领域,尤其涉及应用管理方法和电子设备。


背景技术:

2.随着智能电子设备的普及以及互联网技术的发展,智能手机、笔记本电脑、平板电脑等电子设备已经成为人们日常生活中不可或缺的产品。用户可以在电子设备上下载安装各种各样的应用,以满足自身的使用需求。
3.然而电子设备的内存是有限的,用户在电子设备上安装的应用越多,越容易出现内存不足的问题:电子设备会经常向用户提示“内存不足”,频繁回收后台的应用,还会出现卡顿、甚至是死机等情况,极大地影响了用户体验。


技术实现要素:

4.本技术实施例提供应用管理方法和电子设备,能够减少内存占用,提升用户体验。
5.第一方面,本技术提供了一种应用管理方法,该方法包括:电子设备显示一个或多个对象;电子设备检测到针对对象的第一操作,显示第一应用的图标和第二应用的图标,电子设备的桌面显示有第一应用的图标;响应于对检测到第一操作后显示的第二应用的图标的第二操作,将第一操作作用的对象分享至第二应用;电子设备检测到针对第一应用的第三操作;电子设备显示一个或多个对象;电子设备检测到针对对象的第四操作,显示一个或多个应用图标,一个或多个应用图标包括第二应用的图标,不包括第一应用的图标,电子设备的桌面显示有第一应用的图标;检测到针对第二应用的图标的第五操作,将第五操作作用的对象分享至第二应用;电子设备显示桌面,电子设备的桌面显示有第一应用的图标。
6.其中,电子设备的桌面显示有第一应用的图标是因为非易失性存储器中存储的所述第一应用的注册信息。在电子设备检测到针对对象的第一操作之前,电子设备将非易失性存储器中包含的第一应用的注册信息,复制到易失性存储器中。
7.在上述实现方式中,上述第三操作可以是指对第一应用进行冷冻的操作,即将第一应用的注册信息从易失性存储器中删除,但是在非易失性存储器中保留该第一应用的注册信息。这样,电子设备在将一个应用的对象分享到其他应用时,其他应用中不包括第一应用的图标。这是由于分享过程中电子设备查询易失性存储器中应用的注册信息,由于易失性存储器中存储有第二应用的注册信息,而没有第一应用的注册信息,因此,不再显示第一应用的图标,只显示第二应用的图标。另外,非易失性存储器中保留该第一应用的注册信息,因此,电子设备的桌面显示有第一应用的图标。这样,可以通过在易失性存储器中删除第一应用的注册信息,减少易失性存储器中的内存占用,能够避免系统因为内存不足而频繁触发进程回收,能够提升用户的使用体验。而非易失性存储器中的第一应有的注册信息保留,方便后续将第一应用恢复使用。另外,由于易失性存储器中的应用注册信息减少,电子设备在易失性存储器中进行数据查询时所需的时间减少,能够提高系统的运行速度。
8.结合第一方面的一些实现方式,在一些实现方式中,电子设备检测到针对第一应
用的第三操作之后,电子设备的桌面上显示的第一应用的图标上,显示有第一标识。
9.结合第一方面的一些实现方式,在一些实现方式中,在电子设备检测到针对所述第一应用的第三操作之后,方法还包括:电子设备显示一个或多个对象;电子设备检测到针对对象的第六操作,显示一个或多个应用图标,一个或多个应用图标包括第二应用的图标,不包括第一应用的图标,电子设备的桌面显示有第二应用的图标;检测到对第二应用的图标的第七操作,将第七操作作用的对象分享至第二应用;检测到针对第一应用的第八操作;电子设备显示一个或多个对象;电子设备检测到针对对象的第九操作,显示第二应用的图标和第一应用的图标,电子设备的桌面显示有第二应用的图标;响应于对检测到第九操作后显示的第一应用的图标的第十操作,将第九操作作用的对象分享至第一应用。
10.在上述实现方式中,上述第八操作可以是指对第一应用进行解冻的操作,即将第一应用的注册信息从非易失性存储器中复制到易失性存储器中。因此,电子设备在将一个应用的对象分享到其他应用时,电子设备查询易失性存储器中应用的注册信息,由于易失性存储器中存储有第二应用的注册信息和第一应用的注册信息,电子设备显示第一应用的图标和显示第二应用的图标。这样,电子设备在对第一应用解冻后,该第一应用可以继承原有注册信息,快速恢复到冷冻之前的状态。
11.结合第一方面的一些实现方式,在一些实现方式中,第三操作包括:在桌面显示的第一应用的图标上的操作。
12.结合第一方面的一些实现方式,在一些实现方式中,电子设备检测到针对第一应用的第三操作之前,方法还包括:第一应用为低频应用的情况下,电子设备显示第一提示信息和第一控件,第一提示信息用于提示第二应用为低频应用;低频应用为使用频次小于预设频次,和/或,使用时长小于预设时长的应用;第三操作包括:作用于第一控件的操作。
13.结合第一方面的一些实现方式,在一些实现方式中,在电子设备检测到针对第一应用的第三操作之后,方法还包括:电子设备重启,电子设检测到针对对象的第十一操作,显示一个或多个应用图标,一个或多个应用图标包括第二应用的图标,不包括第一应用的图标,在电子设备的桌面显示有第一应用的图标;检测到对第二应用的图标的第十二操作,将第十二操作作用的对象分享至第二应用。
14.其中,电子设备检测到针对第一应用的第三操作之后,电子设备在非易失性存储器中记录易失性存储器中的第一应用的注册信息已经被删除。
15.在上述实现方式中,电子设备在重启后,电子设备查询到非易失性存储器中记录有第一应用的注册信息被删除,因此,将第二应用的注册信息从非易失性存储器复制到易失性存储器中,但不复制第一应有的注册信息到易失性存储器中。
16.结合第一方面的一些实现方式,在一些实现方式中,在电子设备检测到针对第一应用的第三操作之前,第一存储区域包含第一应用的注册信息、第二应用的注册信息;第三操作用于触发电子设备删除第一存储区域中第一应用的注册信息。
17.其中,第一存储区域为易失性存储器。
18.结合第一方面的一些实现方式,在一些实现方式中,所述第二存储区域中还包括:所述第一应用的缓存数据、配置信息。
19.在上述实现方式中,电子设备在将第一应用冷冻后,电子设备保留非易失性存储器中的第一应用的缓存数据、配置信息。这样,在将该第一应用解冻后,该第一应用可以继
承原有的缓存数据、配置信息等数据,快速恢复到冷冻之前的状态。
20.结合第一方面的一些实现方式,在一些实现方式中,电子设备检测到针对对象的第一操作,显示第一应用的图标和第二应用的图标,具体包括:电子设备基于针对对象的第一操作,确定第一操作对应的第一应用编程接口;基于第一存储区域存储的第一应用、第二应用的注册信息,确定第一应用和第二应用均包括第一应用编程接口,显示第一应用的图标和第二应用的图标。
21.其中第一存储区域为非易失性存储器。
22.结合第一方面的一些实现方式,在一些实现方式中,在所述电子设备检测到针对所述第一应用的第三操作之后,所述方法还包括:所述电子设备向第一服务器发送反注册请求,所述反注册请求用于请求所述第一服务器停止向所述电子设备发送所述第一应用的消息。
23.在上述实现方式中,通过反注册冷冻应用的push消息,使得电子设备不会接受到冷冻应用的通知消息,减少了电子设备接收的通知数量,可以降低功耗,提升电池的续航时间。而且,通知栏上不会堆积大量应用的通知消息,用户可以轻松查看到其真正感兴趣的、有效的信息。
24.结合第一方面的一些实现方式,在一些实现方式中,在所述电子设备检测到针对所述第一应用的第八操作之后,所述电子设备向所述第一服务器注册请求,所述注册请求用于请求所述第一服务器向所述电子设备发送所述第二应用的消息。
25.第二方面,一种电子设备,包括:存储器,一个或多个处理器,多个应用程序,以及一个或多个程序;其中所述一个或多个程序被存储在所述存储器中;其特征在于,所述一个或多个处理器在执行所述一个或多个程序时,使得所述电子设备实现如第一方面以及第一方面中任一可能的实现方式描述的方法。
26.第三方面,本技术提供一种包含指令的计算机程序产品,当上述计算机程序产品在电子设备上运行时,使得上述电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
27.第四方面,本技术提供一种计算机可读存储介质,包括指令,当上述指令在电子设备上运行时,使得上述电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
28.可以理解地,上述第二方面提供的电子设备、第三方面提供的计算机程序产品和第四方面提供的计算机存储介质均用于执行本技术所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
29.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
30.图1是本技术实施例提供的一种电子设备开机从注册文件中加载应用的注册信息到内存中的应用注册表的示意图;
31.图2是本技术实施例提供的一种内存占用的示意图;
32.图3是本技术实施例提供的一种电子设备冷冻应用前后的用户界面、应用注册表、
冷冻应用记录表的示意图;
33.图4-图5是本技术实施例提供的另一种冷冻应用的示意图;
34.图6是本技术实施例提供的一种电子设备重启前后音乐注册表的对比示意图;
35.图7是本技术实施例提供的另一种内存占用的示意图;
36.图8是本技术实施例提供的一种电子设备解冻应用前后的用户界面、应用注册表、冷冻应用记录表的示意图;
37.图9是本技术实施例提供的另一种解冻应用示意图;
38.图10是本技术实施例提供的一种分享图片的界面示意图以及分享图片访问应用注册表的示意图;
39.图11本技术实施例提供的一种匹配分享意图的代码示意图;
40.图12本技术实施例提供的一种冷冻应用后访问应用注册表的示意图;
41.图13是本技术实施例提供的一种电子设备冷冻应用前后通知栏显示消息的示意图;
42.图14是本技术实施例提供的一种消息推送的示意图;
43.图15是本技术实施例提供的另一种消息推送的示意图;
44.图16是本技术实施例提供的一种电子设备的硬件结构示意图;
45.图17是本技术实施例提供的一种软件架构示意图;
46.图18是本技术实施例提供的一种应用包管理器的架构示意图;
47.图19是本技术实施例提供的一种信息流向示意图;
48.图20是本技术实施例提供的一种确定低频应用的流程示意图;
49.图21是本技术实施例提供的一种对低频应用进行冷冻的流程示意图;
50.图22是本技术实施例提供的一种重启加载注册信息到内存的流程示意图;
51.图23是本技术实施例提供的一种查询冷冻应用的流程示意图;
52.图24是本技术实施例提供的一种对应用进行解冻的流程示意图。
具体实施方式
53.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
54.需要说明的是,在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
55.为了便于理解本技术实施例中的技术方案,下面先对本技术实施例涉及的相关术语及概念进行介绍。
56.1、应用的注册信息:
57.应用的注册信息指的是应用的一些关键信息,包括应用包名称(简称包名)、路径、
应用编程接口(applicationprogramminginterface,api)、权限授权状态、用户身份证明(useridentification,uid)、标签(flags)、版本号等等。
58.2、注册文件:
59.电子设备上安装的所有应用的注册信息,一般记录在一个注册文件中,并将该注册文件持久化存储在非易失性存储器(比如电子设备中的闪存)当中。
60.举例来说,闪存中可以有一个名称为“packages.xml”的xml文件,该xml文件用于记录电子设备上安装的所有应用的注册信息,可以从该xml文件中读取各种应用的注册信息,该xml文件即是该电子设备闪存中存储的注册文件。
61.3、沙盒目录和沙盒数据:
62.在安卓系统的存储机制中,对于设备上安装的每一个应用,系统都会为其创建一个沙盒目录,各应用可以分别在对应的沙盒目录下存储该应用的一些私有数据,将沙盒目录下存储的数据称为该应用的沙盒数据。应用的沙盒目录通常只能由本应用进行访问,其他应用无法访问,采用沙盒目录能够实现应用间的数据隔离。
63.举例来说,电子设备上安装的音乐应用所对应的沙盒目录为“/data/data/com.hihonor.music/”,其中,“com.hihonor.music”为音乐应用的包名。在该沙盒目录下存储着音乐应用的沙盒数据(即音乐应用的私有数据,其他应用一般不能访问),可以包括音乐应用的缓存数据、音乐应用下载的文件(files)、音乐应用的配置信息等等。
64.下面分别以不同场景为例,示例性介绍本技术实施例提供的一种应用管理方法。
65.场景1:在一种应用管理实现方式中,电子设备上安装有多个应用,电子设备的上的非易失性存储器中存储有注册文件,多个应用的注册信息都存储在该注册文件,在电子设备开机时,会将电子设备上注册文件中的所有应用的注册信息全部都加载到内存中,在电子设备开机之后,内存中会一直保留着电子设备上安装的所有应用的注册信息。
66.示例性地,请参见图1,图1是本技术实施例提供的一种电子设备开机从注册文件中加载应用的注册信息到内存中的应用注册表的示意图。如图1中(a)-(b)所示,电子设备上安装有很多应用,包括天气、股票、微信、设置、邮件、图库、短视频、浏览器、音乐、健康、拨号、短信、联系人、相机等应用。如图1中(c)所示,电子设备上所有安装的应用的注册信息都存储在注册文件,而注册文件存储在电子设备的非易失性存储器中,例如闪存、硬盘或者数据库等。如图1中(d)所示在电子设备开机时,电子设备会扫描注册文件中的应用的注册信息,将这些应用的注册信息都加载到内存中的应用注册表。
67.应用注册表的代码实现可示例性地参见图1中的(e),其中,“mpackages”为应用注册表,它里面有多个列表项value[n],n为自然数,每个列表项分别对应一个应用。比如,value[0]是第一个列表项,它对应的是音乐应用;value[1]是第二个列表项,它对应的是相机应用;value[2]是第三个列表项,它对应的是联系人应用等等。
[0068]
各个列表项中分别存储有各个应用的注册信息。比如,将value[0]展开,可以具体看到音乐应用的各种注册信息:包名(package_name)为“com.hihonor.music”、安装路径(code_path)为“/data/app”、uid为1001等等。
[0069]
电子设备在开机启动后,系统进程会占用一部分内存,还剩下一部分剩余内存用于应用进程。当电子设备上安装的应用较多时,电子设备开机时,将大量的应用注册信息加载到应用注册表,而应用注册表占用系统进程内存,这时系统进程占用就占用比较多的内
存,还剩下较少的内存。
[0070]
示例性地,如图2中的(a)所示,假设电子设备上安装了很多应用,在电子设备开机时,安装的所有应用的注册信息都加载到了内存中的应用注册表,由于应用比较多,导致应用注册表的内存占用比较大。而应用注册表是系统进程内存占用的其中一部分,电子设备开机之后光是系统进程就占用了较多的内存,还有一小部分剩余内存。
[0071]
如图2中的(b)所示,假设用户打开了音乐应用和图库应用,于是音乐进程和图库进程各自又会占用一部分内存,这时候电子设备的剩余内存已经不多。
[0072]
如图2中的(c)所示,如果用户选择继续打开游戏应用,就会出现内存不足的问题。为了能够打开游戏应用,电子设备需要将位于后台的图库应用回收,释放图库进程的内存占用,这时候才有足够的内存可以打开游戏应用,然后游戏进程也会占用一部分内存。
[0073]
如图2中的(d)所示,如果用户选择继续下载安装微信应用,微信应用的注册信息也都会加到内存中的应用注册表里面,于是应用注册表会占用更多的内存,进而导致系统进程的内存占用也增大,留给应用进程的内存空间就会受到挤占。这时候为了保障前台的音乐应用,电子设备会回收位于后台的图库应用,释放图库进程的内存占用。当图库应用被回收以后,它便无法切换到前台来继续使用,十分影响用户体验。
[0074]
因此,内存不足会导致电子设备频繁触发进程回收,还会带来性能方面的损耗。
[0075]
在本技术提供的应用管理方法中,电子设备在确定应用a为低频应用时,电子设备可在当前用户界面显示提示框,用于提示用户是否将该应用a选择冷冻。当用于选择冷冻该应用a,电子设备在检测到用户选择冷冻应用a的操作后,响应与该操作,电子设备将应用a冷冻,将冷冻的应用在内存中的注册信息删除,并且在电子设备下次开机时不加载冷冻应用的注册信息到内存,从而减少内存占用。
[0076]
示例性地,如图3中(a)所示,电子设备上安装有包括天气、股票、微信、设置、邮件、图库、短视频、浏览器、音乐、健康、拨号、短信、联系人、相机等,如图3中(d)所示,在电子设备内存中的应用注册表中加载了这些应用的注册信息。当电子设备经过统计,发现健康应用符合低频应用的条件,例如,健康应用在一段时间内的使用频次小于一个阈值,或者,健康应用在一段时间内的使用时长小于一个阈值等。如图3中的(b)所示,电子设备在当前的用户界面12中显示提示框121,提示框121中显示“健康为低频应用,是否进行冷冻?”的提示语。用户可以点击提示框121中的“是”或者“否”控件,以决定是否对健康应用进行冷冻。如果用户选择了“是”,则电子设备对健康应用进行冷冻,如果用户选择了“否”,则不对健康应用进行冷冻。
[0077]
如图3中的(c)所示,当电子设备接收到用户选择冷冻健康应用的操作之后,例如,可以是如图3中的(b)中点击操作,电子设备对健康应用进行冷冻,将用户界面12中的健康应用添加冷冻标记a,或者,在用户界面12中不显示健康应用。如图3中的(e)所示,电子设备将内存中的应用注册表中的健康应用的注册信息删除,内存中的应用注册表中没有健康应用的注册信息。这样可以减少应用注册表所占用的内存,进而可以减少系统进程占用内容空间。
[0078]
其中,电子设备100将健康应用冷冻后,电子设备100删除应用注册表中的健康应用的注册信息例如可以通过删除图1中(e)的健康音乐对应的代码。
[0079]
如图3中的(f)所示,电子设备没有对应用进行冷冻,因此冷冻记录表中没有任何
应用的信息。该冷冻应用记录表可以是在冷冻应用之前生成的,也可以是在冷冻应用时生成的,本技术对此不作限定。
[0080]
如图3中的(g)所示,电子设备将冷冻的健康应用加入冷冻应用记录表,冷冻应用记录表可以存储在存储器102中的非易失性存储器中。冷冻应用记录表里面记录了这冷冻的“健康”应用的名称。冷冻应用注册表里面除了可以记录冷冻应用的名称,还可以记录它们的图标、冷冻时间等等,本技术对冷冻应用记录表不做具体限定。
[0081]
需要说明的是,上述电子设备提示用户的方式仅为示例,在具体实现中,还可以有其他方式,例如,发送语音提示或者短信提示等,本技术对此不做任何限定。
[0082]
在本技术中,上述提示框121可以被称为第一提示信息,上述提示框中的是控件可以称为第一控件。冷冻标记a可以被称为第一标识。
[0083]
在一些实施例中,用户可以主动了冷冻应用。例如,当用户认为应用b使用较少,不希望应用b占用内存时,用户可以通过点击应用b,对其进行冷冻。
[0084]
示例性地,如图4中的(a)所示,电子设备上已经有一个冷冻应用“健康”,在用户界面12上可以看到,被冷冻的健康应用的图标上都添加了冷冻标记a,而音乐应用还不是冷冻应用,音乐应用的图标上没有添加冷冻标记a。此时,如图4中的(d)所示,内存中的应用注册表里面没有健康应用的注册信息,但是有音乐应用的注册信息。如图4中的(f)所示,冷冻记录表中记录有健康应用。
[0085]
如图4中的(b)所示,电子设备接收用户选择冷冻音乐应用的操作,例如,如图4中(a)所示的点击操作或者长按操作,电子设备在用户界面12中显示提示框122,提示框122中包括“分享”、“冷冻”以及“卸载”的控件。用户可以点击提示框122中的“冷冻”控件,以实现对音乐应用的冷冻操作。
[0086]
如图4中的(c)所示,电子设备接收到用户冷冻音乐应用的操作,例如,如图4中(b)所示的点击操作,电子设备对音乐应用进行冷冻,将用户界面12中的音乐应用添加冷冻标记a,或者,在用户界面12中不显示音乐应用。如图4中的(e)所示,电子设备将内存中的应用注册表中的音乐应用的注册信息删除,内存中的应用注册表中没有音乐应用的注册信息。这样可以减少应用注册表所占用的内存,进而可以减少系统进程占用内存空间。如图4中的(g)所示,电子设备将冷冻的音乐应用加入冷冻应用记录表,冷冻应用记录表里面记录了冷冻的健康应用和音乐应用。
[0087]
在一些实施例中,用户还可以通过设置应用冷冻其他应用。如图5中的(a)所示,用户点击用户界面12中的设置应用的图标,然后,如图5中的(b)所示,电子设备会显示设置应用对应的界面13。用户继续点击界面13中的“应用”控件,于是进入了图5中的(c)所示的界面14。如图5中的(c)所示,界面14中包含天气、微信、邮件、图库、短视频、浏览器、音乐、股票、健康等应用的名称,其中,天气、微信、邮件、图库、短视频、浏览器和音乐这些应用名称的右侧,均有“可使用”的字样,表示这些应用不是冷冻应用,用户可以正常使用,它们可以在电子设备上运行,而股票、健康这两个应用名称的右侧是“已冷冻”的字样,表示这两个应用是冷冻应用,这两个应用不能在电子设备上运行。用户通过点击“音乐”右侧的“可使用”字样,如图5中的(d)所示,可以将“音乐”右侧的字样变为“已冷冻”,以实现对音乐应用的冷冻操作。
[0088]
需要说明的是,图4和图5仅作为用户主动选择对某个应用进行冷冻的两种示例,
不构成具体限定,用户还可以采用其他方式主动选择冷冻某应用。
[0089]
在一些可选的实施例中,并不是所有的应用都可以被冷冻,用户可以选择设置哪些应用被冷冻。例如,可以通过设置冷冻应用白名单,在白名单中的应用可以被冷冻,不在白名单中的应用不能被冷冻,例如电话、桌面等应用,避免误触导致重要应用被冷冻。
[0090]
在一些实施例中,当用户选择冷冻应用a时,电子设备将应用a的注册信息从应用注册表中删除。当电子设备在重启后,电子设备从注册文件中加载电子设备上其他应用的注册信息到内存中的应用注册表中,但不加载冷冻应用a的注册信息到内存中。
[0091]
示例性地,如图6中(a)所示,电子设备在重启前将音乐应用和健康应用冷冻,相应地,如图6中(c)所示,电子设备内存中的应用注册表中没有音乐应用和健康应用的注册信息。如图6中(b)所示,电子设备在重启后,音乐应用和健康应用的冷冻标记依然存在,也就是说音乐应用和健康应用依然还处于被冷冻状态。如图6中(d)所示,电子设备在重启后,内存中的应用注册表不加载音乐应用和健康应用的注册信息。
[0092]
需要说明的是,上述电子设备100对应用进行冷冻后,不会删除该应用的沙盒数据,也不会删除注册文件中的该应用的uid、权限授权状态等注册信息,这可以方便后续对该应用进行解冻时,该应用可以继承原有的上述这些数据,快速恢复到冷冻之前的状态。
[0093]
在本技术实施例中,当用户选择将应用进行冷冻,电子设备再次重启后,该应用的注册信息不加载到内存中的应用注册表中,因此应用注册表占用系统进程内存减少,而剩余的内存增加。
[0094]
示例性地,如图7中(a)所示,电子设备在开机启动后,系统进程会占用一部分内存,还剩下一部分剩余内存用于应用进程。当电子设备上安装的应用较多时,电子设备开机时,将大量的应用注册信息加载到应用注册表,而应用注册表占用系统进程内存,这时系统进程占用就占用比较多的内存,还剩下较少的内存。
[0095]
如图7中的(b)所示,假设用户打开了音乐应用和图库应用,于是音乐进程和图库进程各自又会占用一部分内存,这时候电子设备的剩余内存已经不多。
[0096]
如图7中的(c)所示,如果用户将健康应用和浏览器应用冷冻,电子设备将应用注册表中的健康应用的注册信息删除,因此应用注册表所占用的内存减少,进而系统进程内存占用剩余空闲内存变多。
[0097]
如图7中的(d)所示,如果用户现在打开一个游戏应用时,这时剩余内存足够,因此电子设备不需要回收其他应用的进程来释放内存。
[0098]
如图7中的(e)所示,如果用户新安装一个微信应用,这时剩余内存足够,因此电子设备也不需要回收其他应用的进程来释放内存。
[0099]
在一些实施例中,当用户需要使用冷冻应用时,用户可以先对该应用进行解冻。当用户选择解冻后,电子设备从注册文件中重新加载该应用的注册信息,同时将冷冻应用记录表中记录的该应用删除。
[0100]
示例型地,如图8中的(a)所示,音乐应用和健康应用为冷冻应用,在用户界面12中可以看到已被冷冻的这两个应用的图标都添加了冷冻标记a,以便于与其他应用进行区分。如图8中的(d)所示,其内存中的应用注册表中没有这两个应用的注册信息。如图8中的(f)所示,在冷冻记录表中记录有这两个冷冻应用。电子设备可以接收用户解冻音乐应用的操作,例如,如图8中(a)的点击操作或者长按操作。如图8中的(b)所示,电子设备在用户界面
12显示一个提示框123,提示框123中包含“解冻”和“卸载”控件。用户可以点击提示框123中的“解冻”控件,以实现对音乐应用的解冻操作。
[0101]
如图8中的(c)所示,电子设备接收到用户解冻的操作,例如图8中的(a)作用于解冻控件的点击操作,电子设备用户界面12中将音乐应用的冷冻标记a删除。如图8中的(e)所示,电子设备重新将注册文件中音乐应用的注册信息加载到内存中的应用注册表中。电子设备将冷冻应用记录表中的音乐应用的信息删除,如图8中的(g)所示,这时冷冻应用记录表中没有音乐应用的信息。
[0102]
在另一些可选的实施例中,如图9中的(a)所示,用户点击桌面界面12中的设置应用的图标,然后,如图9中的(b)所示,电子设备会显示设置应用对应的界面13。假设用户继续点击界面13中的“应用”控件的控件,于是进入了图9中的(c)的界面14。如图9中的(c)所示,界面14中包含天气、微信、邮件、图库、短视频、浏览器、音乐、股票、健康等应用名称,其中,天气、微信、邮件、图库、短视频、浏览器这些应用的名称右侧,均有“可使用”的控件,表示这些应用不是冷冻应用,它们可以在电子设备上运行,而股票、健康和音乐这三个应用名称的右侧是“已冷冻”的控件,表示这三个应用是冷冻应用,这三个应用不能在电子设备上运行。用户通过点击“音乐”右侧的“已冷冻”控件,如图9中的(d)所示,可以将“音乐”右侧的字样变为“可使用”,以实现对音乐应用的解冻操作。
[0103]
需要说明的是,图8和图9仅是用户选择解冻应用的两种示例性方式,不构成具体限定,用户还可以采用其他方式选择解冻已冷冻的应用。
[0104]
场景2,由于应用的注册信息是电子设备使用过程中需要频繁查询的数据,为了避免引起数据不一致的问题,通常会采用保护锁对内存中的应用注册表进行保护,保护锁限制一次只能有一个进程访问应用注册表,只有获得保护锁的控制权,才能对应用注册表里面的内容进行查询或更改。
[0105]
示例性地,如下,示出了采用保护锁对应用注册表中的内容进行保护的代码:
[0106][0107]
其中,“mlock”是保护锁,“mpackages”是应用注册表,“@guardedby(“mlock”)”则表示mpackages由mlock进行保护。在获得了mlock的控制权(“synchronized(mlock)”)后,才可以将某个应用的注册信息pkg添加到mpackages当中(“mpackages.put(pkg.getpackagename(),pkg”)。
[0108]
需要说明的是,上述代码仅是一种示例,不构成限定。
[0109]
下面以图库分享为例,结合图10-图11,示例性介绍在应用注册表中进行数据查询的过程。
[0110]
请参见图10,如图10中的(a)所示,图库应用对应的用户界面15中显示有一张小猫
的图片,用户想要分享当前图片,于是点击了界面15中的分享控件151。这时候,如图10中的(d)所示,图库进程便会产生“分享图片”的意图(intent),系统进程接收到该意图后,通过调用查询api以及获取保护锁的控制权,尝试在应用注册表中查询符合该意图的应用。如图10中的(d)所示,系统进程确定该分享意图对应的第一应用编程接口,在应用注册表中查询应用的注册信息之后,发现邮件、微信、短视频和浏览器这四个应用中包含该第一应用编程接口,即邮件、微信、短视频和浏览器这四个应用均能匹配“分享图片”的意图,于是将此查询结果返回给图库进程。
[0111]
如图10中的(b)所示,图库进程得到上述查询结果后,在用户界面15中显示出一个提示框152,提示框152中显示有邮件、微信、短视频和浏览器这四个应用的图标,以供用户进行选择。假设用户点击了提示框152中的微信图标,如图10中的(e)所示,图库进程又会产生“拉起微信应用”的意图。同样的,系统进程获取到该意图后,通过调用应用运行调度api以及获取保护锁控制权再次访问应用注册表,在应用注册表中进行数据查询。当查询到微信应用的api之后,系统进程便可以创建微信进程,也就是拉起微信应用。
[0112]
如图10中的(c)所示,微信应用被拉起之后,电子设备100显示微信应用对应的界面16,用户可以在界面16中选择某个好友或者某个微信群,进而完成图片在微信应用中的分享过程。
[0113]
在本技术实施例中,小猫的图片可以称为对象,微信应用可以被称为第一应用,邮件、短视频和浏览器等应用可以被称为第二应用。点击界面15中的分享控件151的操作可以称为第一操作,也可以被称为第九操作。点击提示框152中的微信图标的操作可以被称为第二操作,也可以被称为第十操作。
[0114]
由于电子设备把所有应用的注册信息都加载到了内存中的应用注册表,因此,电子设备上安装的应用越多,应用注册表中的数据也就会越多。如果应用注册表中的数据较多,在上述图库分享实施例中,系统进程在应用注册表里面进行数据查询所需要的时间就会比较长。而且系统进程是通过获取保护锁的控制权来访问应用注册表的,因此,如果系统进程在应用注册表中的查询时间较长,它对保护锁的持有时间也会比较长,假设后台有应用需要安装、升级、更新等,这时需要等待较长时间,可能会造成系统卡顿。这将会成为系统运行过程中的瓶颈,系统运行速度也会因此受限。
[0115]
示例性地,查询api的代码可示例性地参见图11,其中,“mlock”是保护锁,“synchronized(mlock)”则表示获取保护锁的控制权,“filterifnotsystemuser(mcomponentresolver.queryactivities(

))”则是查询api,用于对intent进行解析,并匹配可以响应intent的组件,然后返回查询结果result。需要说明的是,图11中的代码仅是一种示例,不构成限定。
[0116]
在本技术实施例中,用户可以选择将一些不常用的应用进行冷冻,这样电子设备在应用注册表中进行数据查询时,可以减少查询时间。
[0117]
示例性地,如图12中(a)所示,音乐应用和微信应用添加了冷冻标记a,这两个应用已经被冷冻。这时,当用户打开图库应用,想要分享小猫的图片时,如图12中(b)所示,用户点击了界面15中的分享控件151。这时候,如图12中的(d)所示,图库进程便会产生“分享图片”的意图(intent),系统进程接收到该意图后,通过调用查询api以及获取保护锁的控制权,尝试在应用注册表中查询符合该意图的应用。如图12中的(d)所示,系统进程在应用注
册表中查询后,发现邮件、短视频和浏览器这三个应用均能匹配“分享图片”的意图,于是将此查询结果返回给图库进程。如图12中的(c)所示,图库进程得到上述查询结果后,在用户界面15中显示出一个提示框153,提示框153中显示有邮件、短视频和浏览器这三个应用的图标,以供用户进行选择。另外,由于在提示框153中没有显示微信应用的图标,因此,不会产生运行微信应用的意图,也不会拉起微信应用。用户点击短视频应用的图标,可以将小猫的图片分享到短视频应用。
[0118]
在本技术实施例中,上述冷冻标记a可以被称为第一标识。点击界面15中的分享控件151的操作可以被称为第四操作,也可以被称为第六操作,点击短视频应用的图标的操作可以被称为第五操作,也可以被称为第七操作。短视频应用可以被称为第二应用。
[0119]
从上述图10和图12可知,在图10中,系统进程在应用注册表里面查找分享意图匹配的应用时,由于应用注册表中包括8个应用,假设每个应用查询匹配的时间为1秒,那么8个应用查询的时间一共为8秒。而在图12中,由于音乐应用和微信应用被冷冻,应用注册表里面没有这两个应用的注册信息,系统进程在应用注册表中查询时,不需要查询这两个应用的注册信息,因此,系统进程在应用注册表中查询分享匹配的应用时,只需要查找6个应用的注册信息,因此系进程在应用注册表中查询的时间为6秒。这样可以缩短应用注册表的查询时间,避免系统卡顿。
[0120]
在一些实施例中,将微信应用冷冻后,电子设备重启,当用户打开图库应用,想要分享小猫的图片时,用户点击界面15中的分享控件151。这时候,电子设备在用户界面15中显示出一个提示框153,提示框153中显示有邮件、短视频和浏览器这三个应用的图标,以供用户进行选择。用户点击浏览器应用的图标,将小猫的图片分享至浏览器应用。
[0121]
在本技术实施例中,点击界面15中的分享控件151的操作可以被称为第十一操作,点击浏览器应用的图标的操作可以被称为第十二操作。浏览器应用可以被称为第二应用。
[0122]
在一些实施例中,将应用a冷冻后,其他应用无法拉起该应用a。例如,将图库应用冷冻后,用户使用微信应用想要发送图库中的图片给其他用户或者分享图片时,由于图库应用被冷冻,微信应用无法拉起图库应用,无法发送图库中的图片。
[0123]
场景3:当电子设备上安装很多应用时,电子设备会接收许多应用的push消息,并显示在通知栏中。
[0124]
示例性地,如图13中(a)所示,电子设备上安装有音乐、浏览器、健康等应用,这些应用都各自维护一个与应用服务器之间的应用级的长连接,这时电子设备可接收到这些应用对应的应用服务器发送的push消息,如图13中(c)所示,电子设备通知栏显示有音乐、浏览器、健康应用的通知消息。
[0125]
由于内存中的应用注册表里面加载了电子设备上安装的所有应用的注册信息,如果电子设备上有大量的应用在后台运行,这些应用都各自维护一个与应用服务器之间的应用级的长连接,那么电子设备就会频繁接收到服务器发来的各种应用的push消息。当电子设备不断接收各种应用的push消息,一方面会频繁唤醒电子设备,影响电子设备的功耗,减少电池的续航时间;另一方面,如图13中(c)所示,电子设备的通知栏上就会堆积大量的push消息,导致有效信息被淹没,用户难以查看到真正感兴趣的消息。
[0126]
在一些实施例中,当用户认为不需要应用c的通知消息时,用户可以选择将该应用c进行冷冻。用户在冷冻该应用c后,电子设备不再接收应用c的push消息。
[0127]
示例性地,如图13中(b)所示,当用户不想显示浏览器应用和音乐应用的通知消息时,用户可以选择将浏览器应用和音乐应用冷冻。电子设备将浏览器应用和音乐应用冷冻后,浏览器应用和音乐应用上添加冷冻标记a,电子设备后续不再接收浏览器应用和音乐应用的通知消息。如图13中(d)所示,电子设备通知栏中只显示健康应用的通知消息,而不显示浏览器应用和音乐应用的通知消息。
[0128]
在另一些实施例中,在电子设备将音乐应用冷冻后,电子设备依然可以接收音乐应用的push消息,并在电子设备的通知栏显示该音乐应用的通知消息。当用户点击该音乐应用的通知消息时,电子设备可以对音乐应用进行解冻,将音乐应用的注册信息重新加载到内存中的应用注册表,系统进程会在应用注册表里面可以查找音乐应用的api,然后应用框架层的活动管理器就可以根据音乐应用的api创建音乐进程。也就是说,音乐应用解冻之后,音乐应用的push消息就可以将音乐应用拉起。
[0129]
在本技术实施例中,推送服务器可以被称为第一服务器。
[0130]
在一些可选的实施例中,当用户将应用c冷冻后,电子设备依然可以接收推送服务器发送的应用c的通知消息,但是电子设备查询冷冻应用记录表后发现,应用c为冷冻应用,电子设备可以选择不显示应用c的通知消息。由于在应用c的冷冻期间,电子设备依然接收应用c的通知消息,在应用c被解冻后,电子设备可以基于应用c,选择显示应用c冷冻期间的通知消息,或者不显示应用c冷冻期间的通知消息。
[0131]
示例性地,当音乐应用和微信应用被冷冻,电子设备接收到音乐应用和微信应用的通知消息,电子设备查询冷冻应用记录表发现音乐应用和微信应用为冷冻应用,因此不在显示音乐应用和微信应用的通知消息。在音乐应用和微信应用被解冻后,电子设备可显示在冷冻期间接收的微信应用的通知消息,不显示冷冻期间接收的音乐应用的通知消息。
[0132]
下面结合图14和图15,示例性介绍两种push服务的实现方式。
[0133]
第一种:在该push服务的实现方式中,应用自身可以在后台有一个驻留的进程,用于维护该应用与应用服务器之间的长连接(可称为应用级的长连接),以便接收应用服务器推送过来的该应用的消息并且在通知栏显示。
[0134]
示例性地,如图14所示,当电子设备100上的音乐应用运行之后,音乐应用就会与服务器建立一条连接链路(应用级的长连接),并且由音乐应用一直维护着这条连接链路,以便随时接收服务器发送过来的音乐应用的push消息。当电子设备100冷冻音乐应用后,在内存中的应用注册表中删除音乐应用的注册信息,音乐应用的进程被杀死,则音乐应用与音乐应用服务器之间的长连接断开,因此,电子设备100不再接收音乐应用的push消息。
[0135]
第二种:在该push服务实现方式中,push服务依托于系统的常驻进程,独立于应用之外,只要电子设备100开机了,该进程就会建立电子设备100与推送服务器之间的一个系统级的长连接,不会出现该进程被杀死而无法推送的现象,推送服务器通过这个系统级的长连接,可以将各种应用的push消息发送到电子设备100。也就是说,这个系统级别的长连接是全局性的,它可以接管电子设备100上的所有(或者部分)应用的消息推送,不需要每个应用都各自维护一个与推送服务器之间的长连接,电子设备100上只要维护这一个系统级的长连接即可。
[0136]
如图15所示,以音乐应用为例,电子设备100在安装音乐应用之后,向推送服务器请求注册音乐应用的push消息,于是推送服务器会把电子设备100和音乐的对应关系记录
下来。当音乐应用提供商的服务器将音乐应用的push消息发给推送服务器时,推送服务器会判断自身是否记录有电子设备100和音乐应用的对应关系,当推送服务器发现有相应的记录,就会通过电子设备100开机之后与服务器建立的这个系统级的长连接,将音乐应用的push消息转发给电子设备100。电子设备100接收到之后,可以将音乐应用的push消息显示在通知栏上。当电子设备将音乐应用冷冻后,删除了应用注册表中音乐应用的注册信息,并且向推送服务器请求反注册音乐应用的push消息,即向推送服务器请求停止向电子设备100推送push消息,推送服务器接收请求后,删除了之前记录的电子设备100与音乐应用的对应关系。当音乐应用提供商的服务器下一次向推送服务器发送音乐应用的push消息以及电子设备100的标识时,推送服务器在自身的记录中没有找到电子设备100和音乐应用的对应关系,于是,推送服务器不会把音乐应用的push消息发给电子设备100。电子设备100不会收到音乐应用的push消息,通知栏上也就不会出现音乐应用的push消息。
[0137]
在一些实施例中,电子设备100将应用冷冻再解冻后,电子设备100可重新向推送服务器注册应用的push信息,推送服务器可重新记录电子设备100与应用的对应关系。之后应用服务器再发送push信息时,推送服务器中记录有电子设备100与应用的对应关系,推送服务器可以向电子设备100发送有应用的push消息,电子设备100可以再次显示应用的推送消息。
[0138]
在一些可选的实施例中,当电子设备100将音乐应用冷冻后,删除了应用注册表中音乐应用的注册信息,但是电子设备100没有向推送服务器请求取消(即反注册)音乐应用的push消息,可以理解,推送服务器上还保留着之前记录的电子设备100和音乐应用的对应关系。当音乐应用提供商的服务器再次把一条音乐应用的push消息发给推送服务器时,由于推送服务器上还记录有电子设备100和音乐应用的对应关系,通过电子设备100与推送服务器建立的系统级的长连接,推送服务器还是会把音乐应用的push消息转发给电子设备100,电子设备100接收到音乐应用的push消息之后,仍旧会在通知栏显示,用户依旧可以点击这条消息。在用户电子点击这条消息后,电子设备100可以将音乐应用解冻,将音乐应用的注册信息重新加载都内存中的应用注册表,电子设备100可以拉起音乐应用的进程。
[0139]
在本技术提供的应用管理方法中,可以在确定应用为低频应用后将其冷冻,将冷冻的应用在内存中的注册信息删除,并向推送服务器请求反注册该应用的push消息,电子设备100不会再接收到该应用的push消息,这样,可以避免通知栏上堆积大量的push消息,提升用户的使用体验。
[0140]
接下来,结合图16,介绍本技术以下实施例中提供的示例性电子设备100。本技术涉及的电子设备100可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,pda)、增强现实(augmented reality,ar)设备、虚拟现实(virtual reality,vr)设备、人工智能(artificial intelligence,ai)设备,本技术实施例对该电子设备100的具体类型不作特殊限制。电子设备100的示例性实施例包括但不限于搭载linux或者其它操作系统的便携式电子设备100或非便携式设备。
[0141]
参考图16,图16示出了本技术实施例提供的示例性电子设备100的结构示意图。
[0142]
电子设备100可以包括处理器101,存储器102,无线通信模块103,移动通信模块
104,天线103a,天线104a,电源开关105,传感器模块106,音频模块107,摄像头108,显示屏109等。其中,传感器模块106可以包括压力传感器106a、触摸传感106b等。其中,无线通信模块103可以包括wlan通信模块,蓝牙通信模块等。音频拨快107包括扬声器107a、受话器107b、麦克风107c、耳机接口107d。上述多个部分可以通过总线传输数据。
[0143]
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0144]
处理器101可以包括一个或多个处理单元,例如:处理器101可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
[0145]
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
[0146]
处理器101中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器101中的存储器为高速缓冲存储器。该存储器可以保存处理器101刚用过或循环使用的指令或数据。如果处理器101需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器101的等待时间,因而提高了系统的效率。在一些实施例中,处理器101可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
[0147]
电子设备100的无线通信功能可以通过天线104a,天线103a,移动通信模块104,无线通信模块103,调制解调处理器以及基带处理器等实现。
[0148]
天线104a和天线103a用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线104a复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
[0149]
移动通信模块104可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块104可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块104可以由天线104a接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块104还可以对经调制解调处理器调制后的信号放大,经天线104a转为电磁波辐射出去。在一些实施例中,移动通信模块104的至少部分功能模块可以被设置于处理器101中。在一些实施例中,
移动通信模块104的至少部分功能模块可以与处理器101的至少部分模块被设置在同一个器件中。
[0150]
调制解调处理器可以包括调制器和解调器。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器101,与移动通信模块104或其他功能模块设置在同一个器件中。
[0151]
无线通信模块103可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块103可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块103经由天线103a接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器101。无线通信模块103还可以从处理器101接收待发送的信号,对其进行调频,放大,经天线103a转为电磁波辐射出去。
[0152]
在一些实施例中,电子设备100的天线104a和移动通信模块104耦合,天线103a和无线通信模块103耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wideband code division multiple access,wcdma),时分码分多址(time-division code division multiple access,td-scdma),长期演进(long term evolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。所述gnss可以包括全球卫星定位系统(global positioning system,gps),全球导航卫星系统(global navigation satellite system,glonass),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas)。
[0153]
电子设备100通过gpu,显示屏109,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏109和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器101可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
[0154]
显示屏109用于显示图像,视频等。显示屏109包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备100可以包括1个或n个显示屏109,n为大于1的正整数。
[0155]
在本技术的一些实施例中,显示屏109可用于显示后续实施例提供的在电子设备上实现的用户界面。
[0156]
摄像头108用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导
体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,电子设备100可以包括1个或n个摄像头108,n为大于1的正整数。
[0157]
存储器102可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器101通过运行存储在存储器102的指令,从而执行电子设备100的各种功能应用以及数据处理。存储器102可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,存储器102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
[0158]
在一些实施例中,注册文件存储在存储器102中的非易失性存储器里面,电子设备100在开机时,可以将该非易失性存储器中的注册文件里面的数据(即应用的注册信息)读取到存储器102中的随机存取存储器(random access memory,ram)(也可称为内存)当中。
[0159]
压力传感器106a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器106a可以设置于显示屏109。压力传感器106a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器106a,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触控操作作用于显示屏109,电子设备100根据压力传感器106a检测所述触控操作强度。电子设备100也可以根据压力传感器106a的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触控操作强度的触控操作,可以对应不同的操作指令。例如:当有触控操作强度小于第一压力阈值的触控操作作用于短消息应用图标时,执行查看短消息的指令。当有触控操作强度大于或等于第一压力阈值的触控操作作用于短消息应用图标时,执行新建短消息的指令。在本技术的一些实施例中,压力传感器106a可以设置于显示屏109。
[0160]
在本技术的一些实施例中,压力传感器106a可以设置于显示屏109。在本技术一些可选的实施例中,压力传感器106a可用于捕获用户手指部位接触显示屏时生成的压力值,并将该压力值传输给处理器101,以使得处理器101识别用户通过哪个手指部位输入用户操作。
[0161]
在一些实施例中,压力传感器106a可用于获取用户作用于显示屏的压力值,从而检测到用户作用于显示屏的按压操作,电子设备100可以根据用户的按压及拖动操作,冷冻或者解冻应用等。具体可以参见后续内容,这里先不赘述。
[0162]
触摸传感器106b,也称“触控面板”。触摸传感器106b可以设置于显示屏109,由触摸传感器106b与显示屏109组成触摸屏,也称“触控屏”。触摸传感器106b用于检测作用于其上或附近的触控操作。触摸传感器可以将检测到的触控操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏109提供与触控操作相关的视觉输出。在另一些实施例中,触摸传感器106b也可以设置于电子设备100的表面,与显示屏109所处的位置不同。
[0163]
本技术中一些可选的实施例中,显示屏109配置由触控面板,可用于接收用户的触摸触控操作,该触摸触控操作是指用户手部、手肘、触控笔接触显示屏109的操作。
[0164]
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本技术另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
[0165]
电子设备可以是搭载ios、android、microsoft或者其它操作系统的便携式终端设备,例如手机、平板电脑、可穿戴设备等,还可以是具有触敏表面或触控面板的膝上型计算机(laptop)、具有触敏表面或触控面板的台式计算机等非便携式终端设备。电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的android系统为例,示例性说明电子设备100的软件结构。
[0166]
图17是本技术实施例的电子设备100的软件结构框图。
[0167]
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,以及内核层。
[0168]
应用程序层可以包括一系列应用程序包。
[0169]
如图17所示,应用程序包可以包括相机,日历,地图,wlan,音乐,短信息,视频,图库,通话,导航,蓝牙,设置(settings),桌面等应用程序。
[0170]
应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
[0171]
如图17所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器,push服务管理器,应用包管理器(packagemanagerservice,pms)、活动管理器(activitymanagerservice)等。
[0172]
push服务管理器用于管理应用的push服务,可以向推送服务器请求注册或取消(即反注册)应用的push服务。例如,push服务管理器向推送服务器请求注册“音乐”应用的push服务,后续推送服务器会将“音乐”应用的push消息发给电子设备100。再比如,当用户选择冷冻股票应用时,push服务管理器向推送服务器请求取消“股票”应用的push服务,于是推送服务器不会再把“股票”应用的push消息发给电子设备100。
[0173]
应用包管理器负责管理系统上的各种应用程序包(包括application package file,apk),可以对电子设备100上的apk进行安装、卸载、更新和解析,还可以负责权限管理,等等。
[0174]
其中,如图18所示,应用包管理器可以包括扫描模块、读取模块、加载模块、删除模块、标记模块以及判断模块,其中:
[0175]
扫描模块,用于对apk进行扫描,以得到应用的注册信息;
[0176]
读取模块,用于从注册文件中读取应用的注册信息;
[0177]
加载模块,用于将应用的注册信息加载到内存中的应用注册表;
[0178]
删除模块,用于删除内存中的应用的注册信息;
[0179]
标记模块,用于将应用的信息写入冷冻应用记录表,也就是将应用标记为冷冻应用;
[0180]
判断模块,用于判断应用是否为冷冻应用。
[0181]
活动管理器用于管理各个应用程序的生命周期以及通常的导航回退功能,可以负责一新activitythread进程的创建,activity生命周期的维护。
[0182]
在本技术的一些实施例中,电子设备100上安装有多个应用,以安装应用a、应用b为例,电子设备100在新安装一个应用c时,应用包管理器中的扫描模块对应用c的apk进行扫描,得到应用的注册信息,应用包管理器中的加载模块将应用的注册信息加载到内存中的应用注册表。应用包管理器通知push服务管理器,push服务管理器向推送服务器请求注册“应用c”应用的push服务。在活动管理器中统计电子设备100上各个应用的使用情况,在确定应用b为低频应用后,活动管理器通知应用包管理器应用b为低频应用,应用包管理器中的删除模块将应用b的注册信息从内存中的应用注册表中删除,标记模块将应用b的信息写入冷冻应用记录表。在电子设备100重启时,读取模块从硬盘中的注册文件中读取应用a、应用c、应用b的注册信息,判断模块分别判断应用a、应用b、应用c是否为冷冻应用,判断模块得到应用a和应用c为非冷冻应用,则加载模块将应用a和应用c的注册信息加载到内存中的应用注册表,判断模块得到应用b为冷冻应用,则不加载应用b的注册信息到内存中。
[0183]
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
[0184]
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
[0185]
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
[0186]
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
[0187]
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
[0188]
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。也可以用于传达提示操作类型的消息,在获取到用户对消息的操作之前,该消息可以长时间存在。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备100振动,指示灯闪烁等。
[0189]
android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。
[0190]
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
[0191]
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
[0192]
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),2d图形引擎(例如:sgl)等。
[0193]
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。
[0194]
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
[0195]
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
[0196]
2d图形引擎是2d绘图的绘图引擎。
[0197]
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
[0198]
在本技术的一些实施例中,如图10中,当用户需要分享图库应用中的一个图片时,系统进程会产生一个分享图片的意图,应用包管理器获取图库应用发送的该分享意图,并解析该意图,通过查询api以及获取保护锁,在持有保护锁情况下,应用包管理器在应用注册表中查询能够匹配该意图对应的应用,例如,在应用注册表中查询到与该分享意图匹配的应用为微信、邮件、短视频和浏览器等,应用包管理器向应用程序层的图库应用返回匹配结果。图库应用通知应用程序架构层中的窗口管理器,由窗口管理器通知内核层的显示驱动,驱动显示屏显示微信、邮件、短视频和浏览器的应用的图标。
[0199]
下面结合图19所示的信息流向示意图,对本技术实施例中的应用管理方法进行描述,该应用管理方法可以包括如下三个阶段:
[0200]
1、统计电子设备100上的各种应用的使用行为,根据应用的使用行为确定出低频应用;
[0201]
2、对低频应用进行冷冻:将该应用标记为冷冻应用,也就是把该应用的信息写入冷冻应用记录表里面,同时删除该应用在内存中的注册信息,而且,在电子设备100之后的开机过程中,不加载该应用的注册信息到内存,减少内存占用;
[0202]
3、对冷冻应用进行解冻:删除该应用的冷冻应用标记,也就是把该应用的信息从冷冻应用记录表里面移除,并且将该应用的注册信息重新加载到内存中。
[0203]
下面结合图18以及电子设备100的软硬件结构,对本技术实施例中的应用管理方法的每个阶段进行详细描述:
[0204]
阶段1:统计应用使用行为,确定低频应用
[0205]
请参见图20,图20是本技术实施例提供的一种确定低频应用的流程示意图,可以包括如下步骤:
[0206]
s101、开始本次统计周期。
[0207]
其中,统计周期可以是几小时、几天或者几个月,等等,本技术对此不作具体限定。
[0208]
在一种可能的实施例中,在电子设备100开机之后,便自动开始本次统计周期。比如,在电子设备100完成开机后,电子设备100上的某个计时器便开始进行统计周期的倒计时,如果计时器完成了倒计时,电子设备100便可以结束本次统计周期。
[0209]
在另一种可能的实施例中,在出现设定情况时,电子设备100才会开始本次统计周期。
[0210]
举例来说,假设设定情况包括剩余内存低于第一设定值、系统回收的后台应用数量超过第二设定值这两种情况,当出现上述任意一种设定情况时,电子设备100就会开始本次统计周期,开始倒计时。需要说明是,上述两种设定情况仅作为示例,还可以有其他设定情况,本技术对此不作具体限定。
[0211]
s102、检测应用是否满足预设行为,如果否,则执行步骤s101;如果是,则执行步骤
s103。
[0212]
其中,应用的预设行为可以包括用户直接启动应用、被已启动的应用拉起、设置定时启动应用、点击通知等拉起应用、系统前台应用绑定了本应用等,还可以包括用户主动关闭应用、应用被系统回收等,本技术对此不做具体限定。
[0213]
s103、记录应用的使用时间戳。
[0214]
其中,应用的使用时间戳,用于表征应用出现某种使用行为的具体时间。
[0215]
在一些实施例中,可以将应用出现某种使用行为的时间戳记录到应用使用时间戳数据库中,其中,应用使用时间戳数据库位于存储器102的非易失性存储器中,用于存储电子设备100上的各种应用的使用时间戳。也就是说,某应用只要在本次统计周期内出现了某种使用行为,电子设备100就会把该应用出现本次使用行为的时间戳记录到应用使用时间戳数据库里面。
[0216]
例如,假设电子设备100上安装了音乐应用,在本次统计周期内的某个时刻,电子设备100检测到了用户直接启动音乐应用(比如直接点击音乐应用的图标打开应用)的操作,于是将音乐应用出现此次使用行为(用户直接启动应用)的时间戳记录到应用使用时间戳数据库中。在本次统计周期内的另一时刻,电子设备100又检测到了微信应用被已启动的音乐应用给拉起,于是将微信应用出现这次使用行为(被已启动的应用拉起)的时间戳也写入应用使用时间戳数据库。
[0217]
s104、判断本次统计周期是否结束,如果本次统计周期结束,则执行步骤s105,如果本次统计周期未结束,则执行步骤s102。
[0218]
也就是说,只要本次统计周期还没有结束,便一直持续监测各种应用的使用行为,把各种应用的使用时间戳记录到应用使用时间戳数据库。当本次统计周期结束之后,执行步骤s105。
[0219]
s105、读取应用使用时间戳,判断应用是否满足低频应用条件,如果满足低频应用条件,则执行步骤s106,如果不满足低频应用条件,则执行s101。
[0220]
具体的,当本次统计周期结束后,从应用使用时间戳数据库里面读取本次统计周期内记录的各种应用的使用时间戳,根据某应用的使用时间戳可以判断该应用是否满足低频应用条件,如果该应用满足低频应用条件,就可以执行步骤s106,将其确定为低频应用。如果不满足低频应用条件,则重新开始新一轮的统计周期,重新统计。
[0221]
在可能的实施例中,低频应用条件可以是应用的使用时长小于设定时长,也可以是应用的使用次数小于设定次数,还可以是应用的某种特定使用行为的出现次数小于设定值,等等,本技术对低频应用条件不做具体限定。
[0222]
比如,根据本次统计周期内记录的各种应用的使用时间戳,得出某应用在本次统计周期内的使用次数仅为3次,小于设定次数(假设为5次),于是将该应用确定为低频应用。再比如,根据本次统计周期内记录的各种应用的使用时间戳,发现用户直接启动某应用的次数仅为仅为1次,小于直接启动行为的设定值(假设为3次),于是将该应用确定为低频应用。
[0223]
s106、确定为低频应用。
[0224]
在一种可能的实施例中,在确定出本次统计周期内的所有低频应用之后,又可以返回步骤s101,开始新一轮的统计周期,开始继续统计电子设备100上的各种应用的使用行
为,以确定新一轮统计周期的低频应用。
[0225]
阶段2:冷冻低频应用
[0226]
请参见图21,图21是本技术实施例提供的一种冷冻低频应用的流程示意图,可以包括以下步骤:
[0227]
s201、提示用户冷冻低频应用。
[0228]
具体地,在阶段1中确定出低频应用之后,可以先向用户提示冷冻低频应用,再根据用户的选择决定是否对低频应用进行冷冻。提示用户的方式可以是显示提示框、通知栏消息等方式,本技术不做具体限定。
[0229]
例如,假设音乐应用在阶段1中被确定为了低频应用,如图3中的(b)所示,电子设备100在桌面界面12中显示出了一个提示框121,提示框121中给出了“音乐为低频应用,是否进行冷冻”的提示语。用户可以点击提示框121中的“是”或者“否”控件,以决定是否对音乐应用进行冷冻。
[0230]
在本技术实施例中,上述提示框121可以被称为第一提示信息,上述提示框中的是控件可以称为第一控件。
[0231]
再如,音乐应用被确定为低频应用之后,电子设备100在通知栏上显示了一条通知消息,消息内容为:“音乐”使用频度低,是否选择冷冻?在获取到用户对通知消息的操作之前,该消息可以长时间停留在通知栏上。同样的,用户可以点击通知消息中的“是”或者“否”控件,以决定是否对音乐应用进行冷冻。
[0232]
需要说明的是,除了可以按照上述两种方式,对阶段1中确定出的低频应用逐个给出冷冻提示,还可以一次性向用户展示所有的低频应用(比如给出低频应用列表),然后用户可以选择对所有的低频应用进行冷冻,也可以只选择对其中的一个或者多个低频应用进行冷冻。
[0233]
s202、判断是否检测冷冻操作,如果没有检测到冷冻操作,则执行步骤s203,如果检测到冷冻操作,则执行步骤s204。
[0234]
比如,如图3中的(b)所示,如果检测到用户点击了提示框121中的“否”控件,则说明用户选择不冷冻音乐应用,则执行步骤s203;如果检测到用户点击了提示框121中的“是”控件,则说明用户选择冷冻音乐应用,则执行步骤s204。
[0235]
s203、为该应用记录一次使用时间戳,写入应用使用时间戳数据库。
[0236]
s204、对该应用进行冷冻。
[0237]
具体的,步骤s204可以包括以下步骤s2041和s2042:
[0238]
s2041、将应用的注册信息从内存中删除。
[0239]
具体的,应用管理器中的删除模块将应用的注册信息从内存中的应用注册表里面删除,于是应用注册表中的数据减少,内存占用降低。
[0240]
s2042、将应用标记为冷冻应用。
[0241]
具体来说,把该冷冻应用写入冷冻应用记录表,冷冻应用记录表可以存储在存储器102中的非易失性存储器中,例如闪存、硬盘或者数据库等。
[0242]
示例性的,如图4中(f)所示,假设电子设备100目前有一个冷冻应用,为健康应用,冷冻应用记录表里面记录了这个冷冻应用的名称。冷冻应用注册表里面除了可以记录冷冻应用的名称,还可以记录它们的图标、冷冻时间等等,本技术对冷冻应用注册表不做具体限
定。
[0243]
需要说明的是,对需要进行冷冻的应用进行上述步骤s2041和s2042时,不会删除该应用的沙盒数据,也不会删除注册文件中的该应用的uid、权限授权状态等注册信息,这是为了方便后续对该应用进行解冻时,该应用可以继承原有的上述这些数据,快速恢复到冷冻之前的状态。
[0244]
例如,如图4中(g)所示,冷冻应用记录表里面记录有健康应用名称,表明这个应用已经被标记为了冷冻应用,而音乐应用不是冷冻应用,所以冷冻应用记录表里面并没有音乐应用的名称。如图4中的(e)所示,此时内存中的应用注册表里面存储有音乐应用的注册信息,但没有健康应用和股票应用的注册信息。同时,闪存中的注册文件packages.xml里面也还存储有音乐应用的uid、权限授权状态等注册信息,而音乐应用的沙盒数据(即音乐应用的私有数据,其他应用一般不能访问),包括音乐应用的缓存、音乐应用下载的文件、音乐应用的配置信息等,保存在“/data/data/com.hihonor.music”沙盒目录下,其中,“com.hihonor.music”为音乐应用的包名。
[0245]
如图4中的(b)的所示,用户将音乐应用冷冻,应用包管理器中的删除模块会把应用注册表中的音乐应用的注册信息删除,于是应用注册表中的数据量减少,内存占用减少。同时,如图4中的(g)所示,应用包管理器中的标记模块会把将音乐应用的信息(包括音乐应用的名称)写入冷冻应用记录表,也就是把音乐应用标记为冷冻应用。对于音乐应用的沙盒数据、注册文件中的音乐应用的注册信息(包括uid、权限授权状态等信息),均保留在原来的位置,不会删除掉,以便后续如果对音乐应用进行解冻,音乐应用还可以继承原来的这些数据,快速恢复到应用冷冻之前的状态。
[0246]
在一种可能的实施例中,即使应用不是低频应用,用户也可以主动选择对其进行冷冻。
[0247]
比如,如图4中的(a)所示,用户长按了音乐应用的图标。如图4中的(b)所示,桌面应用检测到用户长按音乐应用图标的操作之后,通过调用应用框架层的通知管理器,在桌面界面12中弹出了一个提示框122,用户可以点击提示框12中的“冷冻”字样的控件,以实现对音乐应用的冷冻操作。当桌面应用检测到用户点击了提示框122中的“冷冻”字样时,便会通知应用框架层的应用包管理器,由应用包管理器对音乐应用进行冷冻处理,包括删除音乐应用在内存中的应用注册表中的注册信息,将音乐应用的信息写入冷冻应用记录表。如图4中的(c)所示,音乐应用被冷冻时,还可以在音乐应用的图标上添加冷冻标记a。
[0248]
再比如,如图5中的(a)所示,用户点击桌面界面12中的设置应用的图标,然后,进行设置应用冷冻等,具体可参考上述图5实施例,在此不在赘述。
[0249]
需要说明的是,上述内容仅作为用户主动选择对应用进行冷冻的两种示例,不构成具体限定。
[0250]
s2043、反注册应用的push消息。
[0251]
也就是说,在对应用进行冷冻时,电子设备100还可以向推送服务器请求反注册该应用的push消息,于是推送服务器后续不会再把该应用的push消息发送给电子设备100,电子设备100不会再接收到该应用的push消息,通知栏上不会出现该应用的push消息。
[0252]
例如,如图15所示,当电子设备100冷冻音乐应用时,删除了内存中的音乐应用的注册信息,同时,电子设备100还向推送服务器发送反注册音乐应用的push消息的请求。该
请求可以包括电子设备100的标识、音乐应用的标识、反注册信息,也还可以包括音乐应用的用户账号等等,不做具体限定。推送服务器接收到该请求之后,会把之前记录的电子设备100和音乐应用的对应关系删除。
[0253]
当音乐应用提供商的服务器下一次向推送服务器发送音乐应用的push消息以及电子设备100的标识时,推送服务器会先判断自身是否记录有电子设备100和音乐应用的对应关系,然后没有发现相应的记录,于是不会把音乐应用的push消息发送给电子设备100,电子设备100的通知栏上也就不会出现音乐应用的push消息。
[0254]
可以理解的是,电子设备100向推送服务器反注册冷冻应用的push消息后,就不会接收到冷冻应用的push消息,可以减少电子设备100接收的push消息数量,避免电子设备100被push消息频繁唤醒影响电子设备100功耗,通知栏上的消息数量减少后,还有利于用户查看感兴趣的信息,提升用户体验。
[0255]
s205、重启不加载冷冻应用的注册信息到内存。
[0256]
请参见图22,图22是本技术实施例提供的一种重启加载应用的注册信息到内存的流程示意图,包括以下步骤:
[0257]
s2051、电子设备100重启。
[0258]
s2052、从注册文件中读取应用的注册信息。
[0259]
例如,如图1中的(a)所示,注册文件是持久化存储在电子设备100的非易失性存储器(以闪存为例)当中的,注册文件里面记录有电子设备100上安装的所有应用的注册信息。当电子设备100进行开机时,应用包管理器中的读取模块就会从注册文件里依次读取应用的注册信息。
[0260]
s2053、查询冷冻应用记录表,判断该应用是否为冷冻应用。如果该应用是冷冻应用,则执行步骤s2054;如果该应用不是冷冻应用,则执行步骤s2055。
[0261]
具体的,应用包管理器中的读取模块从注册文件中读取到某个应用的注册信息后,应用包管理器的判断模块会查询冷冻应用记录表,判断该应用是否为冷冻应用,如果从冷冻应用记录表中有该应用的信息,就说明该应用为冷冻应用,于是执行步骤s2054;如果从冷冻应用记录表中没有该应用的信息,就说明该应用不是冷冻应用,于是执行步骤s2055。
[0262]
s2054、不加载该应用的注册信息到内存的应用注册表中。
[0263]
例如,如图4中的(g)所示,冷冻应用记录表里面记录有音乐应用和健康应用这两个冷冻应用的信息,比如应用名称、图标、冷冻时间等。在电子设备100重启时,不加载这两个应用的注册信息。
[0264]
s2055、加载该应用的注册信息到内存的应用注册表中。
[0265]
具体的,加载模块把读取模块从注册文件中读取到的该应用的注册信息,加载到内存中的应用注册表中。
[0266]
s2056、判断注册文件是否读取完毕,如果注册文件已经读取完毕,则执行步骤s2057;如果注册文件还没读取完毕,则执行步骤s2052。
[0267]
举例来说,如图4中的(a)所示,假设应用包管理器中的读取模块从注册文件中读取了相机应用的注册信息,然后,应用包管理器中的判断模块会去查询图4(f)中的冷冻应用记录表,发现没有相机应用的信息,于是可以确定相机应用不是冷冻应用。应用包管理器
中的加载模块就会把相机应用的注册信息加载到内存中的应用注册表。
[0268]
接着,应用包管理器中的读取模块从注册文件里面读取下一个应用,例如,为健康应用的注册信息,然后,如图4中的(f)所示,应用包管理器中的判断模块查询冷冻应用记录表,发现冷冻应用注册表里面有健康应用的注册信息,于是应用包管理器中的加载模块不会把股票应用的注册信息加载到内存的应用注册表。
[0269]
s2057、重启完成。
[0270]
当注册文件读取完毕后,电子设备100就完成了开机加载注册信息的过程。如图6所示,重启完成后,内存中的应用注册表中仅加载了非冷冻应用的注册信息,没有加载冷冻应用的注册信息,可以减少应用注册表的数据量,进而减少应用注册表的查询时间,同时减少内存占用。
[0271]
在可能的实施例中,如图23所示,设置、桌面等系统应用能够查询上述冷冻应用记录表,然后读取里面的冷冻应用名称。
[0272]
举例来说,如图4中(g)所示,电子设备100目前有两个冷冻应用,分别为音乐应用和健康应用,冷冻应用记录表里面有这两个应用的名称。用户可以通过点击设置应用进入应用设置界面,可以具体看到哪些应用是了冷冻应用,具体参考图5实施例,在此不在赘述。
[0273]
在一种可能的实施例中,用户还可以选择对冷冻应用进行彻底卸载。冷冻应用的卸载与常规的应用卸载方式基本相同,主要是将该应用的apk包以及注册文件中的该应用的注册信息删除,同时把该应用的沙盒数据(包括应用缓存、应用下载的文件、应用的配置信息等)等删除。
[0274]
由前述内容可知,应用经过冷冻处理成为冷冻应用之后,在内存中的应用注册表里面已经没有其对应的注册信息。于是,当系统进程访问应用注册表时,不会查到冷冻应用的注册信息,因而不会返回冷冻应用的相关查询结果,所以冷冻应用无法在系统中运行,push消息、广播或者数据查询等请求均无法拉起冷冻应用。
[0275]
例如,如图14所示,假设电子设备100向推送服务器注册过了音乐应用的push消息,推送服务器上也已经记录有了电子设备100和音乐应用的对应关系,于是,当推送服务器收到音乐应用提供商的服务器发送过来的音乐应用的push消息时,可以通过电子设备100在开机之后与服务器建立的系统级的长连接,将音乐应用的push消息转发到电子设备100,然后电子设备100可以显示这条消息。
[0276]
如图15所示,假设电子设备100冷冻了音乐应用,删除了内存中的应用注册表里面的音乐应用的注册信息,但是电子设备100没有向推送服务器请求反注册音乐应用的push消息,推送服务器仍然记录有电子设备100和音乐应用的对应关系。当音乐应用提供商的服务器再次把音乐应用的push消息和电子设备100的标识发送到推送服务器时,推送服务器发现自身仍然有电子设备100和音乐应用的对应关系,于是还会把音乐应用的push消息发送给电子设备100,电子设备100将该消息显示在通知栏上。
[0277]
如果用户点击了通知栏上的这条音乐应用的push消息,系统进程会通过调用应用运行调度api以及持有保护锁,在应用注册表中试图查找音乐应用的api以便拉起音乐应用,但是,现在的应用注册表里面已经没有了音乐应用的注册信息,所以查找不到音乐应用的api,也就无法创建音乐进程。
[0278]
由上述内容可知,即使电子设备100还能通过系统级的长连接,接收到推送服务器
发来的某个冷冻应用的push消息,用户点击了通知栏上显示的冷冻应用的push消息,但由于应用注册表里面没有冷冻应用的注册信息,无法拉起冷冻应用。
[0279]
需要说明的是,系统在运行过程中偶尔会判断内存中的应用注册表中的数据与非易失性存储器(比如闪存)中的数据是否一致,如果发现数据不一致,系统可能会发出删除非易失性存储器中的对应数据的指令。比如,假设内存中的应用注册表中没有音乐应用的注册信息了,而系统在“/data/app/”目录下却发现了音乐应用的apk包。由于数据不一致,系统可能会发出删除“/data/app/”目录下的音乐应用的apk包的指令。
[0280]
由上述内容可知,本技术实施例对应用进行冷冻处理时,仅删除了内存中的该应用的注册信息,而应用的apk包、沙盒数据、注册文件中该应用的注册信息均未删除,都保留非易失性存储器中,这时候就会出现数据不一致的问题。系统发现后可能会发出删除音乐应用的apk包的指令。因此,在可能的实施例中,在执行该删除之前,先把这条指令拦截下来,应用包管理器中的判断模块先判断该应用是否为冷冻应用,具体可以通过查询冷冻应用记录表来实现,如果冷冻应用记录表中有该应用的名称,则说明该应用是冷冻应用,于是取消该删除指令;如果冷冻应用记录表里面没有该应用的名称,则说明该应用不是冷冻应用,有可能是应用卸载不彻底所造成的数据不一致,于是可以继续执行该删除指令。
[0281]
阶段3、对冷冻应用进行解冻处理
[0282]
请参见图24,图24是本技术实施例提供的一种解冻应用的流程示意图,可以包括如下步骤:
[0283]
s301、获取应用解冻请求。
[0284]
在一种可能的实施例中,可以通过桌面或者设置等系统应用检测用户的操作,获取用户输入的应用解冻请求。
[0285]
首先以桌面应用为例,如图8中的(a)所示,音乐应用现在是冷冻应用,它的图标上有冷冻标记a。如图8中的(b)所示,假设用户长按了音乐应用的图标,于是桌面应用会检测到用户的长按操作,然后通过调用通知管理器在桌面界面12中弹出一个提示框123,提示框123中包含“解冻”以及“卸载”的字样。当用户点击了提示框123的“解冻”字样,桌面应用就会获取到解冻音乐应用的请求,然后桌面应用将这个请求发送给应用程序框架层的应用包管理器,应用包管理器接收到请求后开始执行下一个步骤s302。
[0286]
不限于上述用户长按应用图标进行解冻,用户还可以通过设置应用对冷冻应用进行解冻,具体参考图9实施例,在此不在赘述。
[0287]
需要说明的是,上述内容仅仅是获取应用解冻请求的两种示例,不构成限定,还可以有其他获取应用解冻请求的方式。
[0288]
s302、对应用进行解冻处理。
[0289]
具体的,步骤s302包括以下步骤s3021以及s3022:
[0290]
s3021、删除冷冻应用标记。
[0291]
例如,如图8中(c)所示,在音乐应用进行解冻后,音乐应用图标上的冷冻标记删除,如图8中(g)所示,音乐应用在冷冻应用记录表里面的信息删除。
[0292]
s3022、将应用的注册信息加载到内存中。
[0293]
需要说明的是,对某应用执行完步骤s3021以及s3022后,还会恢复该应用的沙盒数据。换句话说,该应用解冻后可以继承原先的沙盒数据,于是该应用能很快恢复到解冻之
前的状态。
[0294]
举例来说,假设音乐应用为冷冻应用,此时,如图8中的(a)所示,用户界面12中的音乐应用的图标上有冷冻应用标记a;如图8中的(d)所示,内存中的应用注册表里面没有音乐应用的注册信息;如图8中的(f)所示,冷冻应用记录表里面有音乐应用的信息(包括音乐应用的名称等);其注册文件里面依旧存储有音乐应用的注册信息(包括uid、权限授权状态等)。而音乐应用的沙盒数据依然保存在“/data/data/com.hihonor.music”沙盒目录下,其中,“com.hihonor.music”为音乐应用的包名。
[0295]
假设现在要对音乐应用进行解冻,应用包管理器中的读取模块先从注册文件里面读取音乐应用的注册信息,然后再由加载模块把音乐应用的注册信息写入内存中的应用注册表。同时,如图8中的(g)所示,应用包管理器中的标记模块将冷冻应用记录表里面的音乐应用的信息给删除。如图8中的(c)所示,音乐应用解冻后,其图标上的冷冻标记a就会消失,音乐应用可以继承原先的沙盒数据,恢复权限,可以很快恢复到冷冻之前的状态。比如,音乐应用在冷冻之前,有访问电子设备100联系人的权限,该权限记录在注册文件中,音乐应用被冷冻后,注册文件里面依旧保留这个权限信息,不会删除。当音乐应用解冻后,可以直接继承注册文件中保留的这个权限信息,解冻后的音乐应用仍然有访问电子设备100联系人的权限。
[0296]
s3023、注册应用的push消息。
[0297]
也就是说,在对应用进行解冻时,电子设备100还可以向推送服务器请求注册该应用的push消息。
[0298]
例如,如图15所示,电子设备100开机之后,就与推送服务器之间建立了一个系统级的长连接,推送服务器可以通过这个长连接,将各种应用的push消息发送给电子设备100。假设电子设备100上的音乐应用是冷冻应用,电子设备100之前已经向推送服务器反注册了音乐应用的push消息,此时推送服务器上没有记录电子设备100和音乐应用的对应关系。
[0299]
如图15所示,当电子设备100解冻音乐应用时,电子设备100将音乐应用的注册信息重新加载到内存中,并且向推送服务器请求注册音乐应用的push消息,于是推送服务器会重新记录下电子设备100和音乐应用的对应关系。
[0300]
在此之后,当音乐应用提供商的服务器将音乐应用的push消息以及电子设备100的标识发送给推送服务器时,推送服务器查询自身的记录,发现有电子设备100和音乐应用的对应关系,于是会把音乐应用的push消息发送给电子设备100。
[0301]
在电子设备100在解冻音乐应用之后,又可以继续接收到音乐应用的push消息,然后显示在通知栏上。
[0302]
由于内存中已经又有音乐应用的注册信息了,当用户点击了通知栏上的音乐应用的push消息时,系统进程会在应用注册表里面可以查找音乐应用的api,然后应用框架层的活动管理器就可以根据音乐应用的api创建音乐进程。也就是说,音乐应用解冻之后,音乐应用的push消息就可以将音乐应用拉起。
[0303]
在可能的实施例中,对应用进行解冻之后,还可以为该应用记录一次使用时间戳,写入应用使用时间戳数据库,记录的使用时间戳可用于在执行阶段1中确定低频应用。
[0304]
值得说明的是,上述步骤s3023是可选的,电子设备100在将应用冷冻时,只是删除
内存中应用注册表中的应用的注册信息,没有向推送服务器发送反注册信息,则在电子设备100将该应用解冻时,无需执行步骤步骤s3023。
[0305]
综上所述,本技术实施例所提供的应用管理方法,通过识别低频应用,然后对低频应用进行冷冻处理,可以减少应用注册表的内存占用,进而减少系统进程的内存占用,于是留给应用进程的内存空间变多,系统中能够保活的应用进程数量也因此变多,可以避免系统因为内存不足而频繁触发进程回收,能够提升用户的使用体验。
[0306]
而且,由于内存中的应用注册表的数据量减少,系统进程在应用注册表中进行数据查询时所需的时间减少,于是对保护锁的持有时间缩短,能够提高系统的运行速度。
[0307]
进一步地,该方法通过反注册冷冻应用的push消息,使得电子设备100不会接受到冷冻应用的push消息,减少了电子设备100接收的push数量,可以降低功耗,提升电池的续航时间。而且,通知栏上不会堆积大量的push消息,用户可以轻松查看到其真正感兴趣的、有效的信息,而不是淹没在一大堆的无效信息当中。
[0308]
需要说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
[0309]
本技术的各实施方式可以任意进行组合,以实现不同的技术效果。
[0310]
本技术实施例还提供了一种计算机可读存储介质。上述方法实施例中的全部或者部分流程可以由计算机程序来指令相关的硬件完成,该程序可存储于上述计算机存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。该计算机可读存储介质包括:只读存储器(read-only memory,rom)或随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的介质。
[0311]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0312]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:rom或随机存储记忆体ram、磁碟或者光盘等各种可存储程序代码的介质。
[0313]
总之,以上所述仅为本发明技术方案的实施例而已,并非用于限定本发明的保护
范围。凡根据本发明的揭露,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献