CN114443156B - 一种应用程序的处理方法及电子设备 - Google Patents
一种应用程序的处理方法及电子设备 Download PDFInfo
- Publication number
- CN114443156B CN114443156B CN202111605382.7A CN202111605382A CN114443156B CN 114443156 B CN114443156 B CN 114443156B CN 202111605382 A CN202111605382 A CN 202111605382A CN 114443156 B CN114443156 B CN 114443156B
- Authority
- CN
- China
- Prior art keywords
- application
- interface
- application program
- snapshot
- electronic equipment
- 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
Images
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
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
Abstract
一种应用程序的处理方法及电子设备,涉及终端技术领域,实现了动态、及时的确定应用程序是否存在界面兼容性问题。该方法包括:在电子设备响应于用户对应用程序的第一启动操作后,若电子设备确定应用程序为非第一类型应用和非第二类型应用,则获取应用程序显示的界面的快照;响应于用户对应用程序的第一退出操作后,电子设备获取应用程序的第一界面的快照;若电子设备确定查杀应用程序,则电子设备存储应用程序退出之前的界面对应的任务栈资源;电子设备响应于用户对应用程序的第二启动操作,电子设备显示第二界面,电子设备获取应用程序的第二界面的快照;根据第一界面的快照和第二界面的快照,确定应用程序为第一类型应用或第二类型应用。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种应用程序的处理方法及电子设备。
背景技术
随着电子设备的发展,各类应用(application,APP)层出不穷,使得用户可以在电子设备上通过APP处理很多事情,为用户提供了方便。由于电子设备的总内存是有限的,APP退出到后台可能因为各种原因(比如,电子色板的系统内存不足或APP在后台消耗功耗较大等原因)被查杀。当APP再次启动后,会从APP的主界面启动,从而影响了用户体验的连续性。
相关技术中,APP再次启动时,电子设备可以通过对APP进行任务栈恢复,以使得APP即使被查杀,再次启动时也可以恢复到上次查杀前的界面。但是,在APP退出到后台再次启动的过程中,APP显示的界面可能存在各种各样的兼容性问题(比如,白屏、黑屏或局部界面无内容等),从而导致用户体验较差。
发明内容
本申请实施例提供一种应用程序的处理方法及电子设备,在电子设备中的应用启动时,电子设备首先判断该应用是否存储在黑名单或白名单中,以确定是否对该应用进行任务栈恢复,若电子设备确定应用均不存在黑名单和白名单中,则判断该应用是否存在界面兼容性问题,以确定将该应用存储至黑名单或白名单中,从而确定是否对该应用进行任务栈恢复。由此,通过对该应用的界面兼容性问题进行判断后,若电子设备确定该应用存在界面兼容性问题,则将该应用加入黑名单,并且在该应用再次启动时,电子设备不会对该应用进行任务栈恢复,从而使得应用再次启动的过程中不会再出现界面兼容性问题,提高了用户的使用体验。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请实施例提供一种应用程序的处理方法,包括:
在电子设备响应于用户对应用程序的第一启动操作后,若电子设备确定应用程序为非第一类型应用和非第二类型应用,则获取应用程序显示的界面的快照;第一类型应用为从后台切换至前台之后存在界面兼容性问题的应用程序;第二类型应用为从后台切换至前台之后不存在界面兼容性问题的应用程序;电子设备响应于用户对应用程序的第一退出操作后,电子设备获取应用程序的第一界面的快照;第一界面为应用程序退出之前显示的界面;若电子设备确定查杀应用程序,则电子设备存储应用程序退出之前的界面对应的任务栈资源;电子设备响应于用户对应用程序的第二启动操作,电子设备显示第二界面,电子设备获取应用程序的第二界面的快照;第二界面为电子设备根据应用程序退出之前的界面对应的任务栈资源生成的界面;电子设备根据第一界面的快照和第二界面的快照,确定应用程序为第一类型应用或第二类型应用。
其中,第一类型应用为存储在黑名单中的应用,第二类型应用为存储在白名单中的应用。第一启动操作为应用程序安装后的首次启动操作,或应用程序更新后的首次启动操作,或应用程序重新安装后的首次启动操作;第一退出操作为应用程序切换至后台的操作。第二启动操作为应用程序从后台切换至前台的操作。
由此,电子设备根据应用程序退出之前显示的界面的快照,与重启后显示的界面的快照,确定该应用程序是否存在界面兼容性问题,实现了动态、及时的确定应用是否存在界面兼容性问题的目的。
在一种可能的实现方式中,确定应用程序为第一类型应用或第二类型应用之后,该应用程序的处理方法还包括:
电子设备响应于用户对应用程序的第三启动操作后,若电子设备确定应用程序为第二类型应用,则电子设备显示第三界面;第三界面为应用程序退出之前显示的界面。
第三启动操作为应用程序从后台切换至前台的操作。
也就是说,电子设备确定应用程序并未存在界面兼容性问题,该应用程序从后台切换至前台时,电子设备显示应用程序退出之前显示的界面,使得应用程序的界面显示保持了连续性,提高了用户的使用体验。
在另一种可能的实现方式中,电子设备响应于用户对应用程序的第三启动操作后,方法还包括:
若电子设备确定应用程序为第一类型应用,则电子设备显示第四界面;第四界面为应用程序的主界面。
也就是说,电子设备确定应用程序存在界面兼容性问题,该应用程序从后台切换至前台时,电子设备不对该应用程序进行任务栈恢复,电子设备显示该应用程序的主界面,从而避免了应用程序启动后存在界面兼容性问题。
在另一种可能的实现方式中,确定应用程序为第一类型应用或第二类型应用之后,方法还包括:
电子设备接收到用户对应用程序的第二退出操作后,电子设备确定查杀应用程序;第二退出操作为应用程序切换至后台的操作;若电子设备确定应用程序为第一类型应用,则电子设备删除应用程序的任务栈资源;若电子设备确定应用程序为第二类型应用,则电子设备存储应用程序的任务栈资源。
也就是说,电子设备响应于用户的操作将应用程序切换至后台后,若电子设备确定查杀该应用程序,电子设备可以判断该应用程序为第一类型应用或第二类型应用,以确定是否对该应用程序的任务栈资源进行删除。
在另一种可能的实现方式中,获取应用程序的显示的界面的快照,包括:
获取应用程序显示的第五界面的快照;电子设备响应于用户对应用程序显示的界面的切换操作后,电子设备显示第六界面;电子设备获取应用程序的第六界面的快照,并删除第五界面的快照;第六界面为应用程序的界面切换后显示的界面。
也就是说,应用程序显示界面的过程中,电子设备获取应用程序显示的界面的快照,应用程序显示的界面切换后,电子设备获取切换后的界面的快照,并删除切换之前的界面的快照。电子设备仅保留应用程序最后显示的界面的快照,从而节省了电子设备的内存资源。
在另一种可能的实现方式中,电子设备根据第一界面的快照和第二界面的快照,确定应用程序为第一类型应用或第二类型应用,包括:
若电子设备确定第一图片与第二图片之间的相似度小于相似度阈值,则电子设备确定应用程序为第一类型应用;第一图片为第一界面的快照对应的图片,第二图片为第二界面的快照对应的图片;若电子设备确定第一图片与第二图片之间的相似度大于或等于相似度阈值,则电子设备确定应用程序为第二类型应用。
由此,通过快照对应的图片之间的相似度,更加准确的判断应用程序是否存在兼容性问题,提高了应用程序的界面兼容性问题判断的准确度。
在另一种可能的实现方式中,电子设备确定查杀应用程序之前,方法还包括:
电子设备确定系统内存小于内存阈值,且应用程序的优先级低于优先级阈值。
由此,在电子设备的内存不足时,对应用程序进行查杀,提高了电子设备的运行速率。
第二方面,本申请提供一种电子设备,包括:触摸屏,触摸屏包括触摸传感器和显示屏;一个或多个处理器;存储器;其中,存储器中存储有一个或多个计算机程序,一个或多个计算机程序包括指令,当指令被电子设备执行时,使得电子设备执行如上述第一方面中任一项所述的应用程序的处理方法。
第三方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在电子设备上运行时,使得电子设备执行如第一方面中任一项所述的应用程序的处理方法。
第四方面,本申请提供一种计算机程序产品,计算机程序产品包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面中任一项所述的应用程序的处理方法。
可以理解地,上述提供的第二方面、第三方面所述的计算机存储介质,以及第四方面所述的计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为Activity的生命周期的过程示意图;
图2为一种应用程序重新启动的场景示意图一;
图3为本申请实施例提供的电子设备的一种结构示意图一;
图4为本申请实施例提供的电子设备的一种软件结构图;
图5为本申请实施例提供的一种应用程序的处理方法的流程示意图;
图6为本申请实施例提供的另一种应用程序的处理方法的流程示意图;
图7为本申请实施例提供的一种应用程序启动的场景示意图二;
图8为本申请实施例提供的一种应用程序启动的场景示意图三;
图9为本申请实施例提供的电子设备的一种结构示意图二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在描述本申请实施例之前,先对本申请涉及到的名词进行解释。
任务栈:是一种以栈的形式放置Activity实例的容器,遵循先进后出原则,包含压栈和出栈两个基本操作。其中,Activity是Android的四大组件之一,是用户操作的可视化界面,为用户提供了一个完成操作指令的窗口。一个Activity可能包括一个界面,也可能包括多个界面,此处不做限定。
任务栈恢复:是指应用在非用户主动查杀的情况下被查杀,下次该应用被启动后能恢复到上次被查杀前的界面。由于界面用Activity来表示,Activity存在于TaskStack中,因此叫做任务栈恢复。
进程:是一个活跃着的程序,即:已经被放入了系统调度队列当中占有一定的系统资源的程序。
任务栈恢复机制:是指在查杀应用时,在非用户主动查杀的情况下,仅查杀应用的进程,不释放应用的界面相关的资源。当应用在下次启动时就可以找到原来的界面,并显示原来的界面。
冷启动:是指应用被后台杀死后,在这个状态打开应用,这种启动方式叫做冷启动。
可以理解为,在非用户主动查杀时,系统确实销毁了应用的Activity,应用重新启动时系统会尝试恢复应用销毁前的界面。比如,假设有一个应用A,因为整个系统内存较低,而应用A不得不被杀掉,以释放系统内存。应用A启动时,若电子设备系统后台不存在应用A的进程,则系统需要为应用A创建新的进程,将这种启动过程记为冷启动。应用A启动时,若电子设备系统后台存在应用A的进程,则系统不再需要为应用A创建进程,将这种启动过程记为热启动。
需要解释是,一个Activity实质上有四种状态:运行中状态、暂停状态、停止状态以及销毁状态。其中,Activity处于运行中状态时,Activity位于栈顶,是可见的,并且可以与用户交互。Activity处于暂停状态时,Activity不能与用户交互,但依然可见。当一个新的非全屏的Activity或者一个透明的Activity放置在栈顶,Activity就处于暂停状态;这个时候Activity的各种数据还被保持着;只有在系统内存极低的状态下,系统才会自动的去销毁Activity。当一个Activity被另一个Activity完全覆盖,或者,电子设备响应于用户的操作(比如,点击home键),应用程序退入了后台,这时候Activity处于停止状态。当系统在内存不足或Activity的功耗消耗过大时会将Activity从栈里移除销毁,被系统回收,这时候Activity处于销毁状态。
图1为Activity的生命周期的过程示意图。如图1所示,电子设备的桌面中的应用响应于用户的操作(比如,点击或触摸等操作)时,系统可以调用函数(比如,onCreat()函数)创建Activity1。此时Activity的一个生命周期开始,Activity1处于启动状态。系统依次调用onStart()函数和onResume()函数,以完成应用的界面的加载,使得Activity1的界面可以与用户进行正常交互。当该应用响应于用户的操作启动其它界面(比如启动Activity2)后,系统可以调用onPause()函数,上述Activity1处于暂停状态。当电子设备检测到用户点击home建时,系统可以调用onStop()函数,上述Activity处于停止状态。
当电子设备响应于用户的操作,重新启动Activity1时,系统可以依次回调onRestart()函数、onStart()函数和onResume()函数。
假设电子设备检测到用户点击了返回键,系统可以依次回调onPause()函数、onStop()函数以及onDestroy()函数。此时该Activity1被系统销毁,Activity1对应的界面处于关闭状态。当Activity1被系统回收后,再次被打开时,会跟第一次启动的时回调生命周期方法一样。
在本申请实施例中,当电子设备的系统内存不足时(比如,电子设备的系统内存小于内存阈值),系统会根据各Activity的优先级销毁Activity,以释放系统的内存。在系统销毁Activity时,会对Activity进行数据保存,例如,应用可以实现onSaveInstanceState()函数以及onRestoreInstanceState()函数。系统可以调用onSaveInstanceState()函数保存Activity的数据。当系统要重新创建这个Activity时,系统可以调用onRestoreInstanceState()函数对数据进行加载,以将Activity对应的界面恢复到被销毁之前。
其中,Activity的优先级可以被划分为多个等级,比如Activity的优先级可以被划分为最高优先级、优先级次之以及优先级最低这三个等级。其中,在前台显示并且跟用户交互的Activity的优先级最高;暂停状态的Activity优先级次之;处于后台的Activity优先级最低。
相关技术中,当电子设备中的应用启动时,系统可以判断该应用是否存储于预设的白名单中,以确定是否对该应用进行任务栈恢复。其中,白名单中存储有任务栈恢复正常的应用的标识(比如,应用的安装包包名)。即系统对白名单中存储的应用的标识对应的应用进行任务栈恢复,白名单以外的应用不进行任务栈恢复。
也就是说,应用在出厂前,生产厂家可以提前验证各应用是否存在兼容性问题,以确定是否将该应用存入白名单。若应用在重复启动时,应用启动后的界面可以完全恢复到上次关闭时的界面,则生产厂家确定该应用的任务栈恢复正常,将该应用的标识存储至白名单。
示例性的,假设电子设备中的应用B响应于用户的操作启动,若系统确定该应用B的标识存储在白名单中,则在该应用B启动的过程中,系统对该应用B进行任务栈恢复。即该应用B可以恢复到上次关闭时的界面。
但是,假设某一应用并未经过生产厂家提前验证任务栈恢复是否正常,即该应用的标识并未存储在白名单中。若该应用在启动时任务栈恢复正常,而系统仅对白名单中的应用进行任务栈恢复,该应用启动时不进行任务栈恢复,从而导致该应用启动时无法恢复到关闭之前的界面,影响了用户体验。此外,由于各应用的版本在不断更新,白名单的更新可能存在滞后性,从而导致白名单中存储的应用的标识对应的应用可能存在任务栈恢复异常的问题。
示例性的,图2为一种应用程序重新启动的场景示意图一。应用A从前台进入后台运行后,用户可以点击桌面上应用A的图标(参见图2中的(a)图)将应用A切换到前台运行。如图2中(a)图所示,电子设备显示系统桌面,用户点击电子设备的系统桌面上的应用A的图标(例如,视频图标)。示例性的,在电子设备显示图2中的(a)图显示的系统桌面时,系统并未对应用A进行任务栈恢复。在用户点击应用A的图标后,经过一段时间,电子设备显示应用A的界面,参见图2中的(b)图。由图2可知,在应用A启动时未进行任务栈恢复,导致该应用的部分内容未显示,出现了部分白屏的问题。
当电子设备中的应用启动时,系统还可以判断该应用是否存储于预设的黑名单中,以确定是否对该应用进行任务栈恢复。其中,黑名单中存储有任务栈恢复异常的应用的标识(比如,应用的安装包包名)。
也就是说,应用在出厂前,生产厂家可以提前验证各应用是否存在界面兼容性问题,以确定是否将该应用存入黑名单。若应用在重复启动时,应用启动后的界面未完全恢复到上次关闭时的界面,比如该应用启动后出现了黑屏、白屏、界面显示异常等问题,则生产厂家确定该应用的任务栈恢复异常,将该应用的标识存储至黑名单。
示例性的,假设电子设备中的应用C响应于用户的操作启动,若系统确定该应用C的标识存储在黑名单中,则在该应用C启动的过程中,系统不对该应用C进行任务栈恢复。
但是,假设某一应用存在任务栈恢复异常风险,但是该应用的标识并未存储在黑名单中,该应用启动时,系统对该应用进行任务栈恢复后,应用无法恢复到上次关闭时的界面。
此外,电子设备对应用进行提前验证,确定将该应用加入白名单或黑名单,需要提前做大量的验证工作,存在工作量大等问题。
为此,本申请实施例提供一种界面兼容性问题检测方法,该方法在电子设备中的应用启动时,电子设备首先判断该应用是否存储在黑名单或白名单中,以确定是否对该应用进行任务栈恢复。若电子设备确定应用均不存在黑名单和白名单中,则判断该应用是否存在界面兼容性问题,以确定将该应用存储至黑名单或白名单中,从而实现了动态、及时的更新黑名单和/或白名单的目的。由此,通过对该应用的界面兼容性问题进行判断后,若电子设备确定该应用存在界面兼容性问题,则在该再次启动时,任务栈服务模块不会对该应用进行任务栈恢复,从而使得应用启动的过程中不会再出现界面兼容性问题。与现有方案中通过人工识别存在兼容性问题的应用,本申请中提高了确定应用是否存在界面兼容性问题的效率和准确度。
示例性的,本申请实施例提供的应用程序的处理方法可应用于手机、平板电脑、个人计算机(personal computer,PC)、个人数字助理(personal digital assistant,PDA)、智能手表、上网本、可穿戴电子设备、增强现实技术(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、车载设备、智能汽车、智能音响等具有显示屏的电子设备,本申请实施例对此不做任何限制。
如图3所示,图3为本申请实施例提供的电子设备的一种结构示意图。
电子设备300可以包括处理器310,外部存储器接口320,内部存储器321,通用串行总线(universal serial bus,USB)接口330,充电管理模块340,电源管理模块341,电池342,天线1,天线2,移动通信模块350,无线通信模块360,音频模块370,扬声器370A,受话器370B,麦克风370C,耳机接口370D,传感器模块380,按键390,马达391,指示器392,摄像头393,显示屏394,以及用户标识模块(subscriber identification module,SIM)卡接口395等。其中传感器模块380可以包括压力传感器380A,陀螺仪传感器380B,气压传感器380C,磁传感器380D,加速度传感器380E,距离传感器380F,接近光传感器380G,指纹传感器380H,温度传感器380J,触摸传感器380K,环境光传感器380L,骨传导传感器380M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备300的具体限定。在本申请另一些实施例中,电子设备300可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器310可以包括一个或多个处理单元,例如:处理器310可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备300的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器310中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器310中的存储器为高速缓冲存储器。该存储器可以保存处理器310刚用过或循环使用的指令或数据。如果处理器310需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器310的等待时间,因而提高了系统的效率。
在一些实施例中,处理器310可以包括一个或多个接口。接口可以包括集成电路(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)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器310可以包含多组I2C总线。处理器310可以通过不同的I2C总线接口分别耦合触摸传感器380K,充电器,闪光灯,摄像头393等。例如:处理器310可以通过I2C接口耦合触摸传感器380K,使处理器310与触摸传感器380K通过I2C总线接口通信,实现电子设备300的触摸功能。
I2S接口可以用于音频通信。PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。
MIPI接口可以被用于连接处理器310与显示屏394,摄像头393等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。
USB接口330是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备300的结构限定。在本申请另一些实施例中,电子设备300也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块340用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。电源管理模块341用于连接电池342,充电管理模块340与处理器310。电源管理模块341接收电池342和/或充电管理模块340的输入,为处理器310,内部存储器321,外部存储器,显示屏394,摄像头393,和无线通信模块360等供电。电源管理模块341还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。电子设备300的无线通信功能可以通过天线1,天线2,移动通信模块350,无线通信模块360,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。移动通信模块350可以提供应用在电子设备300上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块350可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。调制解调处理器可以包括调制器和解调器。无线通信模块360可以提供应用在电子设备300上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellitesystem,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near fieldcommunication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块360可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块360经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器310。无线通信模块360还可以从处理器310接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备300的天线1和移动通信模块350耦合,天线2和无线通信模块360耦合,使得电子设备300可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,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),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备300通过GPU,显示屏394,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏394和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器310可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏394用于显示图像,视频等。显示屏394包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备300可以包括1个或N个显示屏394,N为大于1的正整数。
电子设备300可以通过ISP,摄像头393,视频编解码器,GPU,显示屏394以及应用处理器等实现拍摄功能。
ISP用于处理摄像头393反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头393中。
摄像头393用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备300可以包括1个或N个摄像头393,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备300在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备300可以支持一种或多种视频编解码器。这样,电子设备300可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备300的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口320可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备300的存储能力。外部存储卡通过外部存储器接口320与处理器310通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器321可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器310通过运行存储在内部存储器321的指令,从而执行电子设备300的各种功能应用以及数据处理。内部存储器321可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备300使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器321可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
在本申请实施例中,内部存储器321可以存储黑名单和/或白名单。
电子设备300可以通过音频模块370,扬声器370A,受话器370B,麦克风370C,耳机接口370D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
压力传感器380A用于感受压力信号,可以将压力信号转换成电信号。陀螺仪传感器380B可以用于确定电子设备300的运动姿态。气压传感器380C用于测量气压。磁传感器380D包括霍尔传感器。电子设备300可以利用磁传感器380D检测翻盖皮套的开合。
加速度传感器380E可检测电子设备300在各个方向上(一般为三轴)加速度的大小。当电子设备300静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器380F,用于测量距离。电子设备300可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备300可以利用距离传感器380F测距以实现快速对焦。
接近光传感器380G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。环境光传感器380L用于感知环境光亮度。电子设备300可以根据感知的环境光亮度自适应调节显示屏394亮度。环境光传感器380L也可用于拍照时自动调节白平衡。环境光传感器380L还可以与接近光传感器380G配合,检测电子设备300是否在口袋里,以防误触。
指纹传感器380H用于采集指纹。电子设备300可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器380J用于检测温度。
触摸传感器380K,也称“触控面板”。触摸传感器380K可以设置于显示屏394,由触摸传感器380K与显示屏394组成触摸屏,也称“触控屏”。触摸传感器380K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏394提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器380K也可以设置于电子设备300的表面,与显示屏394所处的位置不同。
骨传导传感器380M可以获取振动信号。按键390包括开机键,音量键等。按键390可以是机械按键。也可以是触摸式按键。电子设备300可以接收按键输入,产生与电子设备300的用户设置以及功能控制有关的键信号输入。
马达391可以产生振动提示。指示器392可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口395用于连接SIM卡。
电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备的软件结构。
图4为本申请实施例提供的电子设备的一种软件结构图。
可以理解的是,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,Android系统可以包括应用程序层(简称为应用层)和应用程序框架层(简称为框架层)。
如图4所示,上述应用程序层可以包括一系列应用。比如,应用1、应用2以及应用3等。
其中,应用1、应用2以及应用3可以包括系统应用,还可以包括第三方应用,此处不做限定。其中,系统应用是指电子设备在出厂之前设置在电子设备内的应用。示例性的,系统应用可以包括设置、电子设备管家、相机、图库、日历、音乐、短信息以及通话等程序。第三方应用是指用户从应用商店(或者应用市场)下载安装包后安装的应用。例如,地图类应用(例如百度地图、高德地图等)、外卖类应用(例如美团、饿了么等)、阅读类应用(例如电子书)、社交类应用(例如微信)以及出行类应用(例如滴滴打车)等。
上述应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图4所示,应用程序框架层可以包括窗口管理服务模块,名单管理模块,快照获取模块,清理决策模块,系统清理模块,图像识别模块以及任务栈服务模块。
其中,窗口管理服务模块用于对应用的界面进行布局和显示。
快照获取模块用于获取应用显示的界面的快照,并将界面的快照转换为对应的图片。
清理决策模块用于根据电子设备的系统内存或各应用的优先级,确定待查杀的应用。
系统清理模块用于对清理决策模块确定的待查杀的应用的进程和/或资源进行清理。
图像识别模块用于识别应用启动时显示的Activity界面的快照对应的图片,与该应用切换至后台前显示的Activity界面的快照对应的图片之间的相似度,进而,根据相似度判断应用的显示界面是否存在界面兼容性问题。
名单管理模块用于根据应用的显示界面是否存在界面兼容性问题,以将应用的标识存储在黑名单或白名单中。
任务栈服务模块用于对应用进行任务栈恢复。
以下实施例中所涉及到的技术方案均可以在具有上述硬件结构和软件架构的电子设备300中实现。以下仍以电子设备300为手机为例,对本方案进行示例性说明。
在本申请实施例中,手机中的某一应用响应于用户的操作(比如,点击或触摸等操作)启动时,手机可以根据该应用是否存储在黑名单或白名单里,以确定在应用启动的过程中是否对该应用进行任务栈恢复。
在一种可能的场景下,若手机中的应用的启动为首次启动,则该应用并未存储在黑名单和白名单中。这种情况下,手机需要判断该应用是否存在界面兼容性问题,以确定将该应用的标识存储至白名单或黑名单中。具体的实现过程可以示例性的参见如下图5和图6的实现过程。
需要解释的是,此处首次启动的应用,可以为手机中首次下载的应用,还可以为手机删除该应用后重新下载的应用,还可以为更新后首次启动的应用,等等,此处不做限定。黑名单中存储有存在界面兼容性问题的应用的标识(比如,应用的安装包包名);白名单中存储有不存在界面兼容性问题的应用的标识。
下面结合图5对上述应用程序的启动过程进行详细解释。如图5所示,该应用程序的处理方法可以包括以下步骤:
步骤501,应用1调用窗口管理服务模块显示主界面。
在本申请实施例中,手机开机后,假设手机中的应用1响应于用户的操作首次启动,在应用1启动的过程中,应用1调用窗口管理服务模块为应用1创建Activity界面。在应用1的Activity界面创建完成后,应用1显示对应的主界面。
步骤502,窗口管理服务模块获取黑名单和白名单。
其中,黑名单中存储有从后台切换至前台之后存在界面兼容性问题的应用,该应用可以称为第一类型应用。白名单中存储有从后台切换至前台之后不存在界面兼容性问题的应用,该应用可以称为第二类型应用。
在本申请实施例中,应用1显示对应的主界面后,窗口管理模块可以从存储器中获取到名单管理模块预先存储的黑名单和白名单,以判断应用1的标识是否存储在黑名单或白名单中。
需要解释的是,名单管理模块确定黑名单和白名单后,可以将黑名单和白名单存储在内部存储器中,也可以存储在外部存储器(比如,硬盘等)中,此处不做限定。也就是说,窗口管理模块可以从内部存储器或外部存储器获取到黑名单和白名单。
步骤503,窗口管理服务模块确定应用1的标识并未存储在黑名单和白名单中。
其中,应用1的标识可以唯一标识该应用,比如,应用1的标识可以为应用1的包名。
在本申请实施例中,窗口管理服务模块获取到黑名单和白名单后,窗口管理服务模块从黑名单和白名单中均未查询到应用1的标识,窗口管理服务模块确定该应用1的标识并未存储在黑名单和白名单中。
可以理解为,应用1为首次启动,系统并未判断过该应用1的任务栈恢复是否正常,因此该应用1的标识并未存储在黑名单中,也未存储在白名单中。
步骤504,窗口管理服务模块向快照获取模块发送快照获取指令。
步骤505,快照获取模块获取应用1的主界面的快照并存储。
在本申请实施例中,窗口管理服务模块确定应用1的标识并未存储在黑名单和白名单中,窗口管理服务模块向快照获取模块发送快照获取指令。快照获取模块接收到窗口管理服务模块发送的快照获取指令后,获取应用1的主界面的快照并存储。快照获取模块获取到应用1的主界面快照后,将应用1的主界面的快照发送至窗口管理服务模块,以使得窗口管理服务模块获取到应用1的主界面的快照。
在一些实施例中,快照获取模块可以通过调用接口的方式获取到应用1的主界面的快照。比如,快照获取模块可以通过调用snapshotTask获取到应用1的主界面的快照。
可以理解为,快照获取模块可以通过调用接口的方式获取到手机的显示屏中当前显示的任意界面的快照。此处仅以快照获取模块获取应用1的主界面的快照作为示例。
在本申请实施例中,窗口管理服务模块获取到应用1的主界面的快照后,建立应用1、主界面Acvitity以及主界面的快照之间的映射关系。
步骤506,窗口管理服务模块将应用1的界面从主界面切换至界面A。
在本申请实施例中,当手机中的应用1响应于用户的操作切换至其它Acvitity界面,比如,窗口管理服务模块将应用1的界面从主界面切换至界面A。
步骤507,窗口管理服务模块向快照获取模块发送快照获取指令。
步骤508,快照获取模块获取应用1的界面A的快照,并删除主界面的快照。
在本申请实施例中,窗口管理服务模块将应用1的界面从主界面切换至界面A后,窗口管理服务模块向快照获取模块发送快照获取指令。快照获取模块获取到窗口管理服务模块发送的快照获取指令后,快照获取模块可以通过调用接口的方式获取到应用1的界面A的快照。快照获取模块建立应用1、界面A以及界面A的快照之间的映射关系。同时,快照获取模块删除上一次建立的应用1、主界面Acvitity以及主界面的快照之间的映射关系。
示例性的,假设手机中的应用1响应于用户的操作从主界面切换至Acvitity界面1,窗口管理服务模块向快照获取模块发送快照获取指令。快照获取模块获取到窗口管理服务模块发送的快照获取指令后,快照获取模块可以通过调用接口的方式获取到Acvitity界面1的快照。快照获取模块建立应用1、Acvitity界面1以及Acvitity界面1的快照之间的映射关系。同时,快照获取模块删除上一次建立的应用1、主界面Acvitity以及主界面的快照之间的映射关系。假设手机中的应用1响应于用户的操作从Acvitity界面1面切换至Acvitity界面2,窗口管理服务模块向快照获取模块发送快照获取指令。快照获取模块获取到窗口管理服务模块发送的快照获取指令后,快照获取模块可以通过调用接口的方式获取到Acvitity界面2的快照。快照获取模块建立应用1、Acvitity界面2以及Acvitity界面2的快照之间的映射关系。同时,快照获取模块删除上一次建立的应用1、Acvitity界面1以及Acvitity界面1的快照之间的映射关系。
也就是说,快照获取模块只保留应用1切换至后台之前显示的最后的Acvitity界面的快照。在本申请实施例中,快照获取模块获取到应用1的不同的Acvitity界面的快照后,可以对各Acvitity界面的快照进行标定。比如,快照获取模块可以采用获取各Acvitity界面的快照的时间对快照进行标定。快照获取模块只保留在最近一次标定的应用1的Acvitity界面的快照。
在本申请实施例中,当用户与应用1的Activity界面交互时,Activity界面可以响应于用户的操作(比如,上滑、下滑、点击Activity界面中的控件等操作)切换显示的内容。这种情况下,快照获取模块可以获取用户与应用1的Activity界面交互之前的Activity界面的快照。
步骤509,应用1从前台切换至后台。
步骤510,清理决策模块确定查杀掉应用1。
在本申请实施例中,当手机中的应用1响应于用户的操作从前台切换至后台,手机中其他应用(比如,应用2或应用3等应用)响应于用户的操作启动后,清理决策模块确定手机的系统内存过低(比如,系统内存小于阈值1)且应用1的优先级低于优先级阈值,或者确定应用1切换至后台后功耗消耗较大。这种情况下,清理决策模块确定查杀掉应用1。由此,提高了手机的系统内存或者降低了功耗。
示例性的,假设手机的系统内存为8G,当手机中的应用1切换至后台后,清理决策模块确定系统的可用内存还有2G。这种情况下,若清理决策模块确定应用1的优先级低于优先级阈值,则清理决策模块确定查杀掉应用1,以释放手机的系统内存。
步骤511,清理决策模块向系统清理模块发送查杀指令。
步骤512,系统清理模块对应用1的进程进行清理。
在本申请实施例中,清理决策模块确定对应用1进行查杀后,清理决策模块向系统清理模块发送查杀指令。其中,查杀指令用于指示对应用1的进程进行查杀。系统清理模块获取到查杀指令后,对应用1的进程进行清理。
可以理解的是,由于应用1的标识并未存储在黑名单或白名单中,系统清理模块对应用1进程清理时,仅清理应用1的进程,不清理应用1的资源。即系统清理模块不清理应用1的任务栈信息(比如,应用1在查杀前Acvitity界面的快照A),任务栈服务模块对应用1的任务栈信息进行存储。其中,任务栈信息包括应用1未被清理的资源。由此,在该应用1再次启动时,窗口管理服务模块可以根据应用1的任务栈信息对该应用进行任务栈恢复。
在另一种可能的场景下,手机中的应用1响应于用户的操作从后台切换至前台,比如,应用1响应于用户的操作从后台切换至手机的显示屏中显示界面,或者,应用1的图标接收到用户的控制指令。此次应用1的启动为应用1在非用户主动查杀情况下被查收后的启动。即此次应用1的启动为冷启动。
快照获取模块获取应用1再次启动后的Acvitity界面的快照后,图像识别模块确定应用1退出之前的Acvitity界面的快照以及应用1再次启动后的Acvitity界面的快照分别对应的图片之间的相似度。名单管理模块根据图片之间的相似度确定将该应用1的标识存储至黑名单或白名单中,从而使得该应用1再次启动时,手机确定该应用1的标识存储在黑名单或白名单,以确定是否对该应用1进行任务栈恢复。
下面结合图6对上述过程进行详细解释,图6为本申请实施例提供的另一种应用程序的处理方法的流程示意图,如图6所示,该方法可以包括以下步骤:
步骤601,窗口管理服务模块向任务栈服务模块发送应用1的任务栈获取指令。
步骤602,任务栈服务模块向窗口管理服务模块发送应用1的任务栈信息。
在本申请实施例中,手机中的应用1响应于用户的操作再次启动时,窗口管理服务模块向任务栈服务模块发送获取应用1的任务栈的任务栈获取指令。任务栈服务模块获取到窗口管理服务模块发送的任务栈获取指令后,向窗口管理服务模块发送应用1的任务栈信息。
也就是说,手机中的应用1再次启动时,窗口管理服务模块从任务栈服务模块中获取到应用1未被释放的Acvitity界面的资源。
步骤603,窗口管理服务模块根据应用1的任务栈信息显示界面。
在本申请实施例中,窗口管理服务模块从任务栈服务模块获取到应用1的任务栈信息后,根据应用1的任务栈信息对Acvitity界面进行布局并显示。
步骤604,窗口管理服务模块向快照获取模块发送快照获取指令。
步骤605,快照获取模块获取应用1当前显示的界面的快照B。
在本申请实施例中,窗口管理服务模块根据应用1的任务栈信息显示Acvitity界面后,窗口管理服务模块向快照获取模块发送快照获取指令。快照获取模块接收到窗口管理服务模块发送的快照获取指令后,获取应用1显示的Acvitity界面的快照B。
此处快照获取模块获取应用1再次启动后显示的Acvitity界面的快照B的方法,可以参见上述步骤505中的快照获取过程,此处不再赘述。
可以理解的是,快照获取模块获取应用1查杀之前的快照时,只需要获取应用1最后一次显示的Activity界面切换到后台时的快照即可。但是,用户对应用界面通常会进行放大,缩小,上划,下滑等操作。如果按照此时的界面进行快照获取,很难与应用1再启动后的快照进行相似度匹配。因此,需要选择对的时机才能够进行较好的匹配。对于Activity界面而言,其首次打开显示时,无论其缩放大小,或者其所在位置都是默认的配置。对于此时的界面而言才能与下次启动(缩放大小,位置也都是默认的配置)后的相同Activity进行匹配。因此在应用1再次启动时,快照获取模块获取快照B的第一个选择时机应该在Activity界面首次显示时。
步骤606,快照获取模块将快照A和快照B发送至图像识别模块。
步骤607,图像识别模块确定快照A和快照B对应的图片之间的相似度。
在本申请实施例中,图像识别模块获取到应用1从后台切换至前台后显示的Acvitity界面的快照B后,图像识别模块对快照A和快照B对应的图片进行识别,以确定快照A和快照B对应的图片之间的相似度。
在一种可能的情况下,快照获取模块在分别获取到快照A和快照B后,可以通过调用接口的方式分别将快照A和快照B转换为对应的图片A和图片B。比如,快照获取模块可以通过调用接口snap.getSnapshot将获取到的快照转换为对应的图片。
在另一种可能的情况下,快照获取模块在获取到快照A和快照B后,还可以在确定快照A和快照B对应的图像之间的相似度时,通过调用接口的方式分别将快照A和快照B转换为对应的图片A和图片B。
也就是说,快照获取模块获取到Acvitity界面的快照后,快照获取模块对快照转换为对应的图片的时机不做限定。
在一些实施例中,图像识别模块获取到快照A和快照B对应的图片A和图片B后,可以将图片A和图片B输入相似度识别模型,根据相似度模型的输出确定图片A和图片B之间的相似度。
在另一些实施例中,图像识别模块获取到快照A和快照B对应的图片A和图片B后,可以首先对图片A和图片B进行坐标标定,进而,对图片A和图片B进行切割分块,比如,将图片A和图片B进行8行4列的切割分块。图像识别模块对图片A和图片B的每一个分割块进行特征提取,然后,图像识别模块计算坐标相同的图片A和图片B的对应分割块的相似度,最后将各分割块对应的相似度的平均值作为图片A和图片B之间的相似度。
在又一些实施例中,图像识别模块获取到快照A和快照B对应的图片A和图片B后,可以把图片A和图片B分别表示为向量,通过计算两向量之间的余弦距离来表征图片A和图片B之间的相似度。
需要解释的是,上述图片识别模块确定图片A和图片B之间的相似度仅作为示例性描述,任何可以确定图片A和图片B之间的相似度的方法均适用于本申请实施例中,此处不做限定。
步骤608,图像识别模块根据相似度判断应用1是否存在界面兼容性问题。
其中,界面兼容性问题是指应用1从后台切换至前台后,手机的显示屏中显示的应用1启动后的Acvitity界面时出现白屏、黑屏、内容空白或界面布局错乱等问题。
在本申请实施例中,图像识别模块确定快照A和快照B对应的图片A和图片B之间的相似度后,图像识别模块根据预设设定的相似度阈值判断应用1是否存在界面兼容性问题。其中,相似度阈值是指两帧图片之间被确定为相同图片时的相似度最小值。
在一种可能的情况下,若图像识别模块将图片A和图片B的相似度值与相似度阈值进行比较,确定图片A和图片B的相似度值大于或等于相似度阈值,则图像识别模块确定图片A和图片B为相同图片。即图像识别模块可以确定应用1并未存在界面兼容性问题。由此,相较于现有技术中需要人工肉眼识别应用的界面兼容性问题,提高了应用的界面兼容性问题识别的准确度和效率。
示例性的,假设相似度阈值为0.8,图像识别模块确定的图片A和图片B之间的相似度值为0.85,则图像识别模块确定图片A和图片B为相同图片。
也就是说,图像识别模块确定图片A和图片B的相似度值大于或等于相似度阈值,即根据应用1再次启动后显示的Acvitity界面的快照B对应的图片B,与应用1被查杀前显示的Acvitity界面的快照A对应的图片A相同。应用1响应于用户的操作再次启动时显示的Acvitity界面为应用1上次启动时切换至后台前显示的界面。
在另一种可能的情况下,若图像识别模块将图片A和图片B的相似度值与相似度阈值进行比较,确定图片A和图片B的相似度值小于相似度阈值,则图像识别模块确定图片A和图片B并不相同。即图像识别模块可以确定应用1存在兼容性问题。
示例性的,假设相似度阈值为0.8,图像识别模块确定的图片A和图片B之间的相似度值为0.7,则图像识别模块确定图片A和图片B并不相同或不相似。
也就是说,图像识别模块确定图片A和图片B的相似度值小于相似度阈值,即根据应用1再次启动后显示的Acvitity界面的快照B对应的图片B,与应用1被查杀前显示的Acvitity界面的快照A对应的图片A不相同。比如,应用1响应于用户的操作再次启动时显示的Acvitity界面中出现了白屏。
步骤609,名单管理模块确定将应用1的标识存储至黑名单。
步骤610,名单管理模块确定将应用1的标识存储至白名单。
在本申请实施例中,图像识别模块根据图片A和图片B之间的相似度确定应用1是否存在界面兼容性问题后,名单识别模块确定将应用1加入黑名单或白名单。
在一种可能的情况下,若图像识别模块确定应用1并未存在界面兼容性问题,则名单管理模块将应用1对应的标识存储至白名单中。
在另一种可能的情况下,若图像识别模块确定应用1存在界面兼容性问题,则名单管理模块将应用1对应的标识存储至黑名单中。
需要解释的是,上述步骤609和步骤610并不是顺序执行过程,本申请实施例中根据步骤608中名单管理模块确定应用1是否存在界面兼容性问题,确定执行步骤609,或步骤610。
步骤611,应用1从前台切换至后台。
步骤612,应用1从后台切换至前台。
步骤613,窗口管理服务模块从名单管理模块获取黑名单。
步骤614,窗口管理服务模块判断应用1的标识是否存储在黑名单中。
步骤615,窗口管理服务模块确定不对应用1进行任务栈恢复。
在本申请实施例中,当应用1响应于用户的操作再次从后台切换至前台时,窗口管理服务模块从存储器中获取黑名单,以判断应用1的标识存储在黑名单中。在一种可能的情况下,若窗口管理服务模块确定应用1的标识存储在黑名单中,则任务栈服务模块不对应用1进行任务栈恢复。即应用1启动后可能显示主界面或任意界面。
示例性的,图7为本申请实施例提供的一种应用程序启动的场景示意图二,如图7所示,假设应用1为视频应用,若窗口管理服务模块确定该视频应用的标识存储在黑名单中,则在该视频应用启动时,任务栈服务模块不对该视频应用进行任务栈恢复。如图7中(a)图为该视频应用切换至后台前显示的界面,应用1响应于用户的操作(比如,触摸、双击或点击等操作)从后台切换至前台,参见图7中(b)图。应用1从后台切换至前台显示的界面参见图7中(c)图。
步骤616,窗口管理服务模块确定对应用1进行任务栈恢复。
在另一种可能的情况下,若窗口管理服务模块确定应用1的标识并未存储在黑名单中,即应用1的标识存储在白名单中,则任务栈服务模块确定对应用1进行任务栈恢复。即应用1启动后显示的Activity界面为上次切换至后台显示的Activity界面。
示例性的,图8为本申请实施例提供的一种应用程序启动的场景示意图三,如图8所示,假设应用1仍为视频应用,若窗口管理服务模块确定该视频应用的标识存储在白名单中,则在该视频应用启动时,任务栈服务模块对该视频应用进行任务栈恢复。如图8中(a)图为该视频应用切换至后台前显示的界面,应用1响应于用户的操作(比如,触摸、双击或点击等操作)从后台切换至前台,参见图8中(b)图。应用1从后台切换至前台显示的界面参见图8中(c)图。即该视频应用再次切换至前台后显示的界面为该应用切换至后台时显示的界面。
需要解释的是,上述步骤613至步骤615中窗口管理服务模块获取黑名单,判断应用1的标识是否存储在黑名单中,以确定是否对应用1进行任务栈恢复的方法仅作为一种示例。在本申请实施例中,应用1再次从后台切换至前台后,窗口管理服务模块还可以获取白名单,以根据应用1的标识是否存储在白名单中,确定是否对应用1进行任务栈恢复。
综上所述,在本申请实施例中,应用首次启动时,窗口管理服务模块确定该应用的标识均不存在黑名单和白名单中,快照获取模块获取该应用切换至后台前最后显示的界面的快照。在该应用再次启动后,快照获取模块获取该应用启动后显示的界面的快照。图像识别模块确定两次快照对应的图片之间进行相似度,并根据相似度判断该应用是否存在兼容性问题,以确定将该应用的标识存储至黑名单或白名单中。由此,通过对该应用的兼容性问题进行判断后,实现了动态、及时的对黑名单和白名单中的应用进行更新。若电子设备确定该应用存在兼容性问题,则在该再次启动时,任务栈服务模块不会对该应用进行任务栈恢复,从而使得应用启动的过程中不会再出现兼容性问题。
在该应用再次启动时,窗口管理服务模块首先判断该应用的标识是否存储在黑名单或白名单中,若窗口管理服务模块确定该应用的标识存储在黑名单中,则任务栈服务模块不对该应用进行任务栈恢复。若窗口管理服务模块确定该应用的标识存储在白名单中,则任务栈服务模块对该应用进行任务栈恢复,从而使得应用启动后显示的界面与上次切换至后台时显示的界面相同,提高了用户的使用体验。
在本申请实施例中,若某一应用的标识存储在黑名单或白名单中,在该应用启动时,窗口管理服务模块可以根据该应用的标识存储在黑名单或白名单中,确定是否对该应用进行任务栈恢复。若电子设备对该应用的安装包进行了升级或者电子设备重新安装了该应用,则电子设备需要重新判断该应用的标识存储在黑名单或白名单中。由此,相较于现有技术中需要人工肉眼识别应用的兼容性问题,本申请实施例中通过动态检测应用是否存在兼容性问题,不仅提高了应用的兼容性问题识别的准确度和效率,还扩大了应用的兼容性问题的识别范围。
图9为本申请实施例提供的电子设备的一种结构示意图二;如图9所示,本申请实施例公开了一种电子设备,该电子设备可以为上述手机。该电子设备具体可以包括:触摸屏901,所述触摸屏901包括触摸传感器906和显示屏907;一个或多个处理器902;存储器903;一个或多个应用程序(未示出);以及一个或多个计算机程序904,上述各器件可以通过一个或多个通信总线905连接。其中,上述一个或多个计算机程序904被存储在上述存储器903中并被配置为被该一个或多个处理器902执行,该一个或多个计算机程序904包括指令,该指令可以用于执行上述实施例中的相关步骤。
可以理解的是,上述电子设备等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
本申请实施例可以根据上述方法示例对上述电子设备等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,上述实施例中涉及的电子设备的一种可能的组成示意图,该电子设备可以包括:显示单元、传输单元和处理单元等。需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本申请实施例还提供一种电子设备,包括一个或多个处理器以及一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行上述相关方法步骤实现上述实施例中的应用程序的处理方法。
本申请的实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的应用程序的处理方法。
本申请的实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的应用程序的处理方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使装置执行上述各方法实施例中电子设备执行的应用程序的处理方法。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或装置均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种应用程序的处理方法,应用于电子设备,其特征在于,包括:
在所述电子设备响应于用户对应用程序的第一启动操作后,若所述电子设备确定所述应用程序为非第一类型应用和非第二类型应用,则获取所述应用程序显示的界面的快照;所述第一类型应用为从后台切换至前台之后存在界面兼容性问题的应用程序;所述第二类型应用为从后台切换至前台之后不存在界面兼容性问题的应用程序;
所述电子设备响应于所述用户对所述应用程序的第一退出操作后,所述电子设备获取所述应用程序的第一界面的快照;所述第一界面为所述应用程序退出之前显示的界面;
若所述电子设备确定查杀所述应用程序,则所述电子设备存储所述应用程序退出之前的界面对应的任务栈资源;
所述电子设备响应于所述用户对所述应用程序的第二启动操作,所述电子设备显示第二界面,所述电子设备获取所述应用程序的第二界面的快照;所述第二界面为所述电子设备根据所述应用程序退出之前的界面对应的任务栈资源生成的界面;
所述电子设备根据所述第一界面的快照和所述第二界面的快照,确定所述应用程序为所述第一类型应用或所述第二类型应用;
所述电子设备响应于所述用户对所述应用程序的第三启动操作后,若所述电子设备确定所述应用程序为所述第二类型应用,则所述电子设备显示第三界面;所述第三界面为所述应用程序退出之前显示的界面。
2.根据权利要求1所述的方法,其特征在于,所述电子设备响应于所述用户对所述应用程序的第三启动操作后,所述方法还包括:
若所述电子设备确定所述应用程序为所述第一类型应用,则所述电子设备显示第四界面;所述第四界面为所述应用程序的主界面。
3.根据权利要求1或2所述的方法,其特征在于,所述确定所述应用程序为所述第一类型应用或所述第二类型应用之后,所述方法还包括:
所述电子设备接收到所述用户对所述应用程序的第二退出操作后,所述电子设备确定查杀所述应用程序;所述第二退出操作为所述应用程序切换至后台的操作;
若所述电子设备确定所述应用程序为所述第一类型应用,则所述电子设备删除所述应用程序的任务栈资源;
若所述电子设备确定所述应用程序为所述第二类型应用,则所述电子设备存储所述应用程序的任务栈资源。
4.根据权利要求1或2所述的方法,其特征在于,所述获取所述应用程序的显示的界面的快照,包括:
获取所述应用程序显示的第五界面的快照;
所述电子设备响应于所述用户对所述应用程序显示的界面的切换操作后,所述电子设备显示第六界面;
所述电子设备获取所述应用程序的第六界面的快照,并删除所述第五界面的快照;所述第六界面为所述应用程序的界面切换后显示的界面。
5.根据权利要求1或2所述的方法,其特征在于,所述电子设备根据所述第一界面的快照和所述第二界面的快照,确定所述应用程序为所述第一类型应用或所述第二类型应用,包括:
若所述电子设备确定第一图片与第二图片之间的相似度小于相似度阈值,则所述电子设备确定所述应用程序为所述第一类型应用;所述第一图片为所述第一界面的快照对应的图片,所述第二图片为所述第二界面的快照对应的图片;
若所述电子设备确定所述第一图片与所述第二图片之间的相似度大于或等于所述相似度阈值,则所述电子设备确定所述应用程序为所述第二类型应用。
6.根据权利要求1或2所述的方法,其特征在于,所述电子设备确定查杀所述应用程序之前,所述方法还包括:
所述电子设备确定系统内存小于内存阈值,且所述应用程序的优先级低于优先级阈值。
7.根据权利要求1所述的方法,其特征在于,所述第一启动操作为所述应用程序安装后的首次启动操作,或所述应用程序更新后的首次启动操作,或所述应用程序重新安装后的首次启动操作;所述第一退出操作为所述应用程序切换至后台的操作。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
其中,所述存储器中存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行如权利要求1-7中任一项所述的应用程序的处理方法。
9.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1-7中任一项所述的应用程序的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111605382.7A CN114443156B (zh) | 2021-12-24 | 2021-12-24 | 一种应用程序的处理方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111605382.7A CN114443156B (zh) | 2021-12-24 | 2021-12-24 | 一种应用程序的处理方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114443156A CN114443156A (zh) | 2022-05-06 |
CN114443156B true CN114443156B (zh) | 2023-01-17 |
Family
ID=81363950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111605382.7A Active CN114443156B (zh) | 2021-12-24 | 2021-12-24 | 一种应用程序的处理方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114443156B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114896097B (zh) * | 2022-07-13 | 2023-06-13 | 荣耀终端有限公司 | 一种应用程序无响应处理方法及电子设备 |
CN116719569B (zh) * | 2022-09-02 | 2024-05-24 | 荣耀终端有限公司 | 启动应用的方法及装置 |
CN117687707A (zh) * | 2022-09-02 | 2024-03-12 | 华为技术有限公司 | 一种应用热启动方法及电子设备 |
CN116701134B (zh) * | 2022-10-14 | 2024-05-17 | 荣耀终端有限公司 | 一种数据处理方法和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648796A (zh) * | 2016-12-29 | 2017-05-10 | 宇龙计算机通信科技(深圳)有限公司 | 一种应用处理方法及装置 |
CN109725977A (zh) * | 2019-01-02 | 2019-05-07 | 京东方科技集团股份有限公司 | 一种基于Android系统的多应用显示方法及终端设备 |
CN110737476A (zh) * | 2018-07-18 | 2020-01-31 | 华为技术有限公司 | 一种终端重启方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108228294A (zh) * | 2017-12-29 | 2018-06-29 | 北京安云世纪科技有限公司 | 一种应用的界面显示方法及装置 |
-
2021
- 2021-12-24 CN CN202111605382.7A patent/CN114443156B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648796A (zh) * | 2016-12-29 | 2017-05-10 | 宇龙计算机通信科技(深圳)有限公司 | 一种应用处理方法及装置 |
CN110737476A (zh) * | 2018-07-18 | 2020-01-31 | 华为技术有限公司 | 一种终端重启方法及装置 |
CN109725977A (zh) * | 2019-01-02 | 2019-05-07 | 京东方科技集团股份有限公司 | 一种基于Android系统的多应用显示方法及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114443156A (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114443156B (zh) | 一种应用程序的处理方法及电子设备 | |
WO2020259452A1 (zh) | 一种移动终端的全屏显示方法及设备 | |
CN115866121B (zh) | 应用界面交互方法、电子设备和计算机可读存储介质 | |
CN113254409B (zh) | 文件共享方法、系统及相关设备 | |
CN113704205B (zh) | 日志存储的方法、芯片、电子设备和可读存储介质 | |
CN114556294A (zh) | 一种主题切换方法以及主题切换装置 | |
CN114257670B (zh) | 一种具有折叠屏的电子设备的显示方法 | |
WO2021218429A1 (zh) | 应用窗口的管理方法、终端设备及计算机可读存储介质 | |
CN114257671B (zh) | 一种图像显示方法及电子设备 | |
CN115589051B (zh) | 充电方法和终端设备 | |
WO2022247446A1 (zh) | 一种性能优化方法以及相关设备 | |
CN111104295A (zh) | 一种页面加载过程的测试方法及设备 | |
CN112684969A (zh) | 始终显示方法及移动设备 | |
CN114812381B (zh) | 电子设备的定位方法及电子设备 | |
CN117009005A (zh) | 一种显示方法、汽车和电子设备 | |
CN111339513B (zh) | 数据分享的方法和装置 | |
CN113672454B (zh) | 冻屏监控方法、电子设备及计算机可读存储介质 | |
CN116208705B (zh) | 设备异常恢复方法和电子设备 | |
CN115941836B (zh) | 一种界面显示方法、电子设备及存储介质 | |
CN114449094B (zh) | 管控方法及电子设备、芯片、存储介质 | |
CN116541188B (zh) | 通知显示方法、终端设备及存储介质 | |
CN115175164B (zh) | 通信控制方法及相关装置 | |
CN116932277A (zh) | 后台应用恢复方法、装置、电子设备及可读存储介质 | |
CN116339569A (zh) | 分屏显示的方法、折叠屏设备和计算机可读存储介质 | |
CN117687814A (zh) | 异常处理方法、系统以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |