CN106886413A - 一种界面元素Activity的处理方法以及终端 - Google Patents

一种界面元素Activity的处理方法以及终端 Download PDF

Info

Publication number
CN106886413A
CN106886413A CN201710092796.1A CN201710092796A CN106886413A CN 106886413 A CN106886413 A CN 106886413A CN 201710092796 A CN201710092796 A CN 201710092796A CN 106886413 A CN106886413 A CN 106886413A
Authority
CN
China
Prior art keywords
activity
terminal
interface
weak reference
state
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
Application number
CN201710092796.1A
Other languages
English (en)
Inventor
鲁可
张金旭
谭力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710092796.1A priority Critical patent/CN106886413A/zh
Publication of CN106886413A publication Critical patent/CN106886413A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)

Abstract

本申请实施例公开了一种界面元素Activity的处理方法以及终端,用于该终端可以实时监控已销毁的Activity的回收状态,并在该Activity未回收的情况下及时提醒该终端对该Activity进行回收,从而减少终端的内存占用,进而减少终端的卡顿。本申请实施例方法包括:终端获取Activity的销毁状态;若所述销毁状态指示所述Activity已销毁,则所述终端为所述Activity建立弱引用;所述终端根据所述弱引用确定所述Activity回收状态;若所述回收状态指示所述Activity未被回收,则所述终端对所述Activity进行回收。

Description

一种界面元素Activity的处理方法以及终端
技术领域
本申请涉及系统测试领域,尤其涉及一种界面元素Activity的处理方法以及终端。
背景技术
随着互联网技术的发展,目前智能终端越来越普及,同时应用于该智能终端的各种软件的功能也越来越强大。伴随着软件功能的强大,构成软件的界面元素Activity也越来越多。而目前当软件运行时,各Activity会随着运行过程进行启动或销毁。
而目前的智能终端中当Activity销毁后,该智能终端采用的回收机制并不能及时对该Activity进行回收。
在这种情况下,常常会导致该已销毁的Activity一直占用智能终端的内存,而在智能终端中被占用的内存过多,就会导致智能终端在使用过程中出现卡顿。
发明内容
本申请实施例提供了一种界面元素Activity的处理方法以及终端,用于该终端可以实时监控已销毁的Activity的回收状态,并在该Activity未回收的情况下及时提醒该终端对该Activity进行回收,从而减少终端的内存占用,进而减少终端的卡顿。
第一方面,本申请实施例提供一种Activity的处理方法,包括:
终端获取Activity的销毁状态;若所述销毁状态指示所述Activity已销毁,则所述终端为所述Activity建立弱引用;所述终端根据所述弱引用确定所述Activity回收状态;若所述回收状态指示所述Activity未被回收,则所述终端对所述Activity进行回收。
本申请实施例提供的技术方案中,该终端在确定该Activity已被销毁之后,利用弱引用检查该Activity的回收状态,并在该Activity未回收的情况下及时提醒该终端对该Activity进行回收,从而减少终端的内存占用,进而减少终端的卡顿。
第二方面,本申请实施例提供一种终端,该终端具有实现上述方法中终端的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
一种可能实现方式中,该终端包括:
获取模块,用于获取Activity的销毁状态;
建立模块,用于若所述销毁状态指示所述Activity已销毁,为所述Activity建立弱引用;
确定模块,用于根据建立模块建立的所述弱引用确定所述Activity回收状态;
处理模块,用于若所述回收状态指示所述Activity未被回收,则对所述Activity进行回收。
另一种可能实现方式中,该终端包括:
收发器,处理器,总线;
所述收发器与所述处理器通过所述总线相连;
所述处理器,执行如下步骤:
获取Activity的销毁状态;若所述销毁状态指示所述Activity已销毁,为所述Activity建立弱引用;根据所述弱引用确定所述Activity回收状态;若所述回收状态指示所述Activity未被回收,则对所述Activity进行回收。
第三方面,本申请实施例提供一种计算机存储介质,该计算机存储介质中存储有程序代码,该程序代码用于指示执行上述第一方面的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:该终端在确定该Activity已被销毁之后,利用弱引用检查该Activity的回收状态,并在该Activity未回收的情况下及时提醒该终端对该Activity进行回收,从而减少终端的内存占用,进而减少终端的卡顿。
附图说明
图1为本申请实施例中的Activity处理方法的一个实施例示意图;
图2为本申请实施例中的Activity处理方法的另一个实施例示意图;
图3为本申请实施例中的Activity处理方法的另一个实施例示意图;
图4为本申请实施例中的Activity处理方法的流程示意图;
图5为本申请实施例中的终端的一个实施例示意图;
图6为本申请实施例中的终端的另一个实施例示意图;
图7为本申请实施例中的终端的另一个实施例示意图;
图8为本申请实施例中的终端的另一个实施例示意图;
图9为本申请实施例中的终端的另一个实施例示意图;
图10为本申请实施例中的终端的另一个实施例示意图;
图11为本申请实施例中的终端的另一个实施例示意图。
具体实施方式
本申请实施例提供了一种界面元素Activity的处理方法以及终端,用于该终端可以实时监控已销毁的Activity的回收状态,并在该Activity未回收的情况下及时提醒该终端的操作系统对该Activity进行回收,从而减少终端的内存占用,进而减少终端的卡顿。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
随着互联网技术的发展,目前智能终端越来越普及,同时应用于该智能终端的各种软件的功能也越来越强大。伴随着软件功能的强大,构成软件的界面元素Activity也越来越多。而目前当软件运行时,各Activity会随着运行过程进行启动或销毁。而目前的智能终端中当Activity销毁后,该智能终端采用的回收机制并不能及时对该Activity进行回收。在这种情况下,常常会导致该已销毁的Activity一直占用智能终端的内存,而在智能终端中被占用的内存过多,就会导致智能终端在使用过程中出现卡顿。
为了解决这一问题,本申请实施例提供了如下技术方案:终端获取Activity的销毁状态;若所述销毁状态指示所述Activity已销毁,则所述终端为所述Activity建立弱引用;所述终端根据所述弱引用确定所述Activity回收状态;若所述回收状态指示所述Activity未被回收,则所述终端对所述Activity进行回收。
具体情况请参阅图1所示,本申请实施例中的Activity的处理方法的一个实施例,包括:
101、终端获取Activity的销毁状态。
终端获取安装在该终端操作系统中的各软件运行时的Activity的生命周期,根据该Activity的生命周期中的各状态确定该Activity的销毁状态。
本实施例中,该Activity的生命周期通常会经历如下几个过程:首先启动Activity,这时该操作系统会先调用on Create方法,然后调用on Start方法,最后调用onResume,以使得该Activity进入运行状态;在运行过程中,若该Activity被其他Activity覆盖或被锁屏,这时操作系统会调用on Pause方法,以使得该Activity暂停执行;若该Activity由被覆盖状态回到前台或解锁屏,这时操作系统会调用on Resume方法,使得该Activity再次进入运行状态;若该Activity转到新的Activity或终端界面回到到主屏,即该Activity自身退居后台,则操作系统会先调用on Pause方法,然后调用on Stop方法,以使得该Activity进入停滞状态;若用户后退回到该Activity,操作系统会先调用onRestart方法,然后调用on Start方法,最后调用on Resume方法,以使得该Activity再次进入运行状态;若该Activity处于被覆盖状态或者后台不可见状态且操作系统内存不足,该操作系统结束该Activity,即该Activity被销毁;若用户退出该Activity,该操作系统先调用on Pause方法,然后调用on Stop方法,最后调用on Destory方法,结束该Activity,即该Activity被销毁。
102、若所述销毁状态指示所述Activity已销毁,则所述终端为所述Activity建立弱引用。
若该终端在监控该Activity的生命周期确定该Activity已被销毁,则该终端为该Activity建立弱引用。
本实施例中的弱引用为该Activity的一个检查机制,用于实时检查该Activity的回收状态。
103、所述终端根据所述弱引用确定所述Activity回收状态。
该终端根据该弱引用检查该Activity,从而确定该Activity的回收状态。若该弱引用指示该Activity为空,则该终端确定该Activity已回收;若该弱引用指示该Activity不未空,则该终端确定该Activity未回收。
104、若所述回收状态指示所述Activity未被回收,则所述终端对所述Activity进行回收。
若该终端确定该Activity的回收状态为未被回收,则该终端立即对该Activity进行回收。
本实施例中,若该终端确定该Activity的回收状态为未被回收时,该终端还可以获取该终端根据该弱引用对于该Activity的检查次数;若该检查次数超过了预设阈值,则该终端需要导出该Activity的内存快照文件;并将该内存快照文件发送到分析后台,以使得该分析后台对该内存快照文件进行分析并上报分析结果;同时该终端也可以将该检查次数增加一次进行计数。
本实施例中,该终端在确定该Activity已被销毁之后,利用弱引用检查该Activity的回收状态,并在该Activity未回收的情况下及时提醒该终端对该Activity进行回收,从而减少终端的内存占用,进而减少终端的卡顿。
下面根据该终端的操作系统的版本号的不同,该终端获取该Activity的销毁状态的方式不同,具体情况如下:
一、该终端的操作系统提供界面生命周期回调函数时,具体情况请参阅图2所示:
201、终端在目标应用程序的上下文环境中注册界面生命周期的回调。
终端在目标应用程序的上下文环境中注册界面生命周期的回调。
202、终端根据该界面生命周期的回调获取Activity的销毁状态。
该终端在注册了界面生命周期的回调之后,该界面生命周期回调将会监控该Activity的生命周期,当监控到该Activity的生命周期结束时,确定该Activity的销毁状态为已销毁。
本实施例中,假如该安卓手机的操作系统提供界面生命周期回调函数,则该安卓手机在该手机QQ运行时在其上下文环境中注册该界面生命周期的回调register ActivityLife cycle Call backs,即该终端实现了register Activity Life cycle Call backs的接口,然后在接口的方法on Activity Destroyed()里添加了监控方法after On Destroy(activity)。该终端就可以使用after On Destroy(activity)对该QQ的Activity进行监控,比如该安卓手机上午8:30时进入了与好友A进行聊天的界面,而在上午9:00时结束了该好友A的聊天,而安卓手机界面进入了通信录界面,即该通信录界面覆盖了该手机QQ聊天界面。这时该终端在手机QQ的聊天界面为不可见状态,这时该操作系统会根据该操作系统的内存确定是否销毁该手机QQ的聊天界面。若该操作系统在确定内存不足时,销毁了该手机QQ的聊天界面,这时该after On Destroy(activity)可以监控到该终端在手机QQ的聊天界面已销毁。同时,若该用户直接退出了手机QQ,这时该手机QQ的聊天界面将会直接被销毁,这时该after On Destroy(activity)也可以监控到该终端在手机QQ的聊天界面已销毁。
203、若所述销毁状态指示所述Activity已销毁,则所述终端为所述Activity建立弱引用。
若终端在监控该Activity的生命周期确定该Activity已被销毁,则该终端为该Activity建立弱引用。
204、所述终端根据所述弱引用确定所述Activity回收状态。
该终端根据该弱引用检查该Activity,从而确定该Activity的回收状态。若该弱引用指示该Activity为空,则该终端确定该Activity已回收;若该弱引用指示该Activity不未空,则该终端确定该Activity未回收。
205、若所述回收状态指示所述Activity未被回收,则所述终端对所述Activity进行回收。
若该终端确定该Activity的回收状态为未被回收,则该终端立即对该Activity进行回收。
本实施例中,若该终端确定该Activity的回收状为未被回收时,该终端还可以获取该终端根据该弱引用对于该Activity的检查次数;若该检查次数超过了预设阈值,则该终端需要导出该Activity的内存快照文件;并将该内存快照文件发送到分析后台,以使得该分析后台对该内存快照文件进行分析并上报分析结果;同时该终端也可以将该检查次数增加一次进行计数。
本实施例中,该终端在确定该Activity已被销毁之后,利用弱引用检查该Activity的回收状态,并在该Activity未回收的情况下及时提醒该终端对该Activity进行回收,从而减少终端的内存占用,进而减少终端的卡顿。
二、该终端的操作系统未提供界面生命周期回调函数时,具体情况请参阅图3所示:
301、终端获取界面生命周期变量。
该终端根据反射系统类变量获取界面生命周期变量。
302、终端将该界面生命周期变量替换为预设界面生命周期变量。
该终端在获取到该界面生命周期变量之后将其替换为预设界面生命周期变量。该预设界面生命周期用于监控该Activity的生命周期。
若该安卓手机的操作系统版未提供界面生命周期回调函数,则该安卓手机在手机QQ运行的过程中反射系统类变量从而获取该手机QQ的界面生命周期变量,然后将该手机QQ的界面生命周期变量用预设界面生命周期变量替换,从而生成监控方法after On Destroy(activity),该终端就可以使用after On Destroy(activity)对该QQ的Activity进行监控,比如该安卓手机上午8:30时进入了与好友A进行聊天的界面,而在上午9:00时结束了该好友A的聊天,而安卓手机界面进入了通信录界面,即该通信录界面覆盖了该手机QQ聊天界面。这时该终端在手机QQ的聊天界面已为不可见状态,这时该操作系统会根据该操作系统的内存确定是否销毁该手机QQ的聊天界面。若该操作系统在确定内存不足时,销毁了该手机QQ的聊天界面,这时该after On Destroy(activity)可以监控到该终端在手机QQ的聊天界面已销毁。同时,若该用户直接退出了手机QQ,这时该手机QQ的聊天界面将会直接被销毁,这时该after On Destroy(activity)也可以监控到该终端在手机QQ的聊天界面已销毁。
303、终端根据该预设界面生命周期变量获取Activity的销毁状态。
当该终端确定该预设界面生命周期变量监控到该Activity的生命周期已结束时,则确定该Activity的销毁状态为已销毁。
304、若所述销毁状态指示所述Activity已销毁,则所述终端为所述Activity建立弱引用。
若该终端在监控该Activity的生命周期确定该Activity已销毁,则该终端为该Activity建立弱引用。
305、所述终端根据所述弱引用确定所述Activity回收状态。
该终端根据该弱引用检查该Activity,从而确定该Activity的回收状态。若该弱引用指示该Activity为空,则该终端确定该Activity已回收;若该弱引用指示该Activity不未空,则该终端确定该Activity未回收。
306、若所述回收状态指示所述Activity未被回收,则所述终端对所述Activity进行回收。
若该终端确定该Activity的回收状态为未被回收,则该终端立即对该Activity进行回收。
本实施例中,若该终端确定该Activity的回收状为未被回收时,该终端还可以获取该终端根据该弱引用对于该Activity的检查次数;若该检查次数超过了预设阈值,则该终端需要导出该Activity的内存快照文件;并将该内存快照文件发送到分析后台,以使得该分析后台对该内存快照文件进行分析并上报分析结果;同时该终端也可以将该检查次数增加一次进行计数。
本实施例中,该终端在确定该Activity已被销毁之后,利用弱引用检查该Activity的回收状态,并在该Activity未回收的情况下及时提醒该终端对该Activity进行回收,从而减少终端的内存占用,进而减少终端的卡顿。
为了便于理解,本申请实施例中以一个实际场景进行描述,本申请实施例中以安卓手机为例,同时该安卓手机正在运行手机QQ。
假如该安卓手机的操作系统提供界面生命周期回调函数,则该安卓手机在该手机QQ运行时在其上下文环境中注册该界面生命周期的回调register Activity Life cycleCall backs,即该终端实现了register Activity Life cycle Call backs的接口,然后在接口的方法on Activity Destroyed()里添加了监控方法after On Destroy(activity)。该终端就可以使用after On Destroy(activity)对该QQ的Activity进行监控,比如该安卓手机上午8:30时进入了与好友A进行聊天的界面,而在上午9:00时结束了该好友A的聊天,而安卓手机界面进入了通信录界面,即该手机QQ的聊天界面此时处于不可见状态。这时该手机的操作系统会根据该操作系统的内存确定是否销毁该手机QQ的聊天界面。若该操作系统在确定内存不足时,销毁了该手机QQ的聊天界面,这时该after On Destroy(activity)可以监控到该终端在手机QQ的聊天界面已销毁。同时,若该用户直接退出了手机QQ,这时该手机QQ的聊天界面将会直接被销毁,这时该after On Destroy(activity)也可以监控到该终端在手机QQ的聊天界面已销毁。若该安卓手机的操作系统未提供界面生命周期回调函数,则该安卓手机在手机QQ运行的过程中反射系统类变量从而获取该手机QQ的界面生命周期变量,然后将该手机QQ的界面生命周期变量用预设界面生命周期变量替换,从而生成监控方法after On Destroy(activity),该终端就可以使用after On Destroy(activity)对该QQ的Activity进行监控,比如该安卓手机上午8:30时进入了与好友A进行聊天的界面,而在上午9:00时结束了该好友A的聊天,而安卓手机界面进入了通信录界面,即该通信录界面覆盖了该手机QQ聊天界面。这时该终端在手机QQ的聊天界面已为不可见状态,这时该操作系统会根据该操作系统的内存确定是否销毁该手机QQ的聊天界面。若该操作系统在确定内存不足时,销毁了该手机QQ的聊天界面,这时该after On Destroy(activity)可以监控到该终端在手机QQ的聊天界面已销毁。同时,若该用户直接退出了手机QQ,这时该手机QQ的聊天界面将会直接被销毁,这时该after On Destroy(activity)也可以监控到该终端在手机QQ的聊天界面已销毁。该手机在获取到手机QQ的聊天界面的销毁状态之后,若该手机确定该手机QQ的聊天界面的销毁状态为已销毁,则该手机为该手机QQ的聊天界面建立弱引用,并根据该弱引用检查该手机QQ的聊天界面的回收状态,若该弱引用指示该手机QQ的聊天界面为空,即不存在了,则该安卓手机确定该手机QQ的聊天界面已被回收,这时该安卓手机结束该弱引用;若该弱引用指示该手机QQ的聊天界面不为空,即还存在,则该安卓手机确定该手机QQ的聊天界面未被回收。这时安卓手机将会获取该弱引用检查该手机QQ的聊天界面是否已回收的次数,若该次数超过了预设阈值,比如5次,则该安卓手机导出该手机QQ的聊天界面的内存快照文件,并将该内存快照文件发送至分析后台,然后该分析后台分析该内存快照文件并上报分析结果。若该次数未超过该预设阈值,比如检查次数为4没超过5次,则该安卓手机主动回收该手机QQ的聊天界面并将该弱引用检查该手机QQ的聊天界面的次数增加一次。
下面对本申请实施例中技术方案的流程进行描述,具体如图4所示,
该终端启动软件,然后判断该终端的操作系统提供界面生命周期回调函数,在实际应用中,也可以直接判断操作系统的版本号。若终端的操作系统提供界面生命周期回调函数,则该终端在该软件运行时在其上下文环境中注册该界面生命周期的回调registerActivity Life cycle Call backs,即该终端实现了register Activity Life cycleCall backs的接口,然后在接口的方法on Activity Destroyed()里添加了监控方法after On Destroy(activity)。该终端就可以使用after On Destroy(activity)对该软件的Activity进行监控。若该终端的操作系统未提供界面生命周期回调函数,则该终端在软件运行的过程中反射系统类变量从而获取该软件的界面生命周期变量,然后将该软件的界面生命周期变量用预设界面生命周期变量替换,从而生成监控方法after On Destroy(activity),该终端就可以使用after On Destroy(activity)对该软件的Activity进行监控。该终端在获取到软件的聊天界面的销毁状态之后,在该销毁状态指示该Activity已销毁时,该终端为该软件的聊天界面建立弱引用,并根据该弱引用检查该软件的Activity的回收状态,若该弱引用指示该Activity为空,即不存在了,则该终端确定该Activity已被回收,这时该终端结束该弱引用;若该弱引用指示该Activity不为空,即还存在,则该终端确定该Activity未被回收。这时终端将会获取该弱引用检查该Activity是否已回收的次数,若该次数超过了预设阈值,比如5次,则该终端导出该Activity的内存快照文件,并将该内存快照文件发送至分析后台,然后该分析后台分析该内存快照文件并上报分析结果。若该次数未超过该预设阈值,比如检查次数为4没超过5次,则该终端主动回收该Activity并将该弱引用检查该Activity的次数增加一次。
上面对本申请实施例中的Activity的处理方法进行了描述,下面对本申请实施例中的终端进行描述。
具体情况请参阅图5所示,本申请实施例中终端的一个实施例,包括:
获取模块501,用于获取Activity的销毁状态;
建立模块502,用于若所述销毁状态指示所述Activity已销毁,为所述Activity建立弱引用;
确定模块503,用于根据建立模块建立的所述弱引用确定所述Activity回收状态;
处理模块504,用于若所述回收状态指示所述Activity未被回收,则对所述Activity进行回收。
基于图5所示的终端,具体如图6所示,本申请实施例中的终端的另一个实施例,包括:
所述获取模块501包括:
监控单元5011,用于若所述终端上安装的操作系统提供界面生命周期回调函数,则通过注册界面生命周期的回调的方法监控所述Activity的销毁状态;
获取单元5012,用于若所述终端上安装的操作系统未提供界面生命周期回调函数,则通过用预设的界面生命周期的变量替换所述操作系统的界面生命周期的变量获取所述Activity的销毁状态。
基于图5所示的终端,具体如图7所示,本申请实施例中的终端的另一个实施例,包括:
所述确定模块502包括:
第一确定单元5021,用于若所述弱引用指示所述Activity为空,则确定所述Activity已被回收;
第二确定单元5023,用于若所述弱引用指示所述Activity不为空,则确定所述Activity未被回收。
基于图5所示的终端,具体如图8所示,本申请实施例中的终端的另一个实施例,包括:
所述终端还包括:
结束模块505,用于若确定所述Activity已被回收,则结束所述弱引用。
基于图5所示的终端,具体如图9所示,本申请实施例中的终端的另一个实施例,包括:
所述获取模块501,还用于若所述回收状态指示所述Activity未被回收,则获取根据所述弱引用确定所述Activity回收状态的检查次数;
判断模块506,用于判断所述检查次数是否超过预设阈值,若是,则所述终端导出所述Activity的内存快照文件;
发送模块507,用于将所述内存快照文件发送至分析后台,以使得所述分析后台对所述内存快照文件进行分析后上报分析结果。
基于图9所示的终端,具体如图10所示,本申请实施例中的终端的另一个实施例,包括:
所述终端还包括:
计数模块508,用于若所述检查次数未超过所述预设阈值,则将所述检查次数增加1。
本实施例中,该终端在确定该Activity已被销毁之后,利用弱引用检查该Activity的回收状态,并在该Activity未回收的情况下及时提醒该终端对该Activity进行回收,从而减少终端的内存占用,进而减少终端的卡顿。
本申请实施例还提供了一种移动终端,该移动终端可以是手机。如图11所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。
图11示出的是与本发明实施例提供的移动终端1100的部分结构的框图。参考图11,移动终端包括:摄像头1110、存储器1120、输入单元1130、显示单元1140、传感器1150、音频电路1160、Wi-Fi模块1170、处理器1180、以及电源1190等部件。本领域技术人员可以理解,图11中示出的移动终端结构并不构成对移动终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图11对移动终端的各个构成部件进行具体的介绍:
摄像头1110可用于拍摄;
存储器1120可用于存储软件程序以及模块,处理器1180通过运行存储在存储器1120的软件程序以及模块,从而执行移动终端的各种功能应用以及数据处理。存储器1120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据移动终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1120可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,简称RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,简称HDD)或固态硬盘(solid-state drive,简称SSD);存储器1004还可以包括上述种类的存储器的组合。输入单元1130可用于接收用户的操作指令,如:输入点击操作位置,以及产生与移动终端1100的用户设置以及功能控制有关的键信号输入。具体地,输入单元1130可包括触控面板1131以及其他输入设备1132。触控面板1131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1131上或在触控面板1131附近的操作),并根据预先设定的程式驱动相应的连接移动终端。可选的,触控面板1131可包括触摸检测移动终端和触摸控制器两个部分。其中,触摸检测移动终端检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测移动终端上接收触摸信息,并将它转换成触点坐标,再送给处理器1180,并能接收处理器1180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1131。除了触控面板1131,输入单元1130还可以包括其他输入设备1132。具体地,其他输入设备1132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1140可用于显示视频内容。显示单元1140可包括指示灯1141,可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置指示灯1141。进一步的,触控面板1131可覆盖指示灯1141,当触控面板1131检测到在其上或附近的触摸操作后,传送给处理器1180以确定触摸事件的类型,随后处理器1180根据触摸事件的类型在指示灯1141上提供相应的视觉输出。虽然在图11中,触控面板1131与指示灯1141是作为两个独立的部件来实现移动终端的输入和输入功能,但是在某些实施例中,可以将触控面板1131与指示灯1141集成而实现移动终端的输入和输出功能。
移动终端1100还可包括至少一种传感器1150。音频电路1160、扬声器1161,传声器1162可提供用户与移动终端之间的音频接口。音频电路1160可将接收到的音频数据转换后的电信号,传输到扬声器1161,由扬声器1161转换为声音信号输出;另一方面,传声器1162将收集的声音信号转换为电信号,由音频电路1160接收后转换为音频数据,再将音频数据输出处理器1180处理后,经摄像头1110以发送给比如另一移动终端,或者将音频数据输出至存储器1120以便进一步处理。
WiFi模块1170可以用于无线通信。
处理器1180是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器1120内的软件程序和/或模块,以及调用存储在存储器1120内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。可选的,处理器1180可包括一个或多个处理单元;优选的,处理器1180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1180中。处理器1180可以是中央处理器(central processing unit,简称CPU),网络处理器(network processor,简称NP)或者CPU和NP的组合。处理器1180还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,简称ASIC),可编程逻辑器件(programmable logic device,简称PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,简称CPLD),现场可编程逻辑门阵列(field-programmable gate array,简称FPGA),通用阵列逻辑(generic arraylogic,简称GAL)或其任意组合。
移动终端1100还包括给各个部件供电的电源1190(比如电池),优选的,电源可以通过电源管理系统与处理器1180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,移动终端1100还可以包括射频(Radio Frequency,RF)电路、蓝牙模块等,在此不再赘述。
本实施例中,该处理器1180,执行如下步骤:
获取Activity的销毁状态;若所述销毁状态指示所述Activity已销毁,为所述Activity建立弱引用;根据所述弱引用确定所述Activity回收状态;若所述回收状态指示所述Activity未被回收,则对所述Activity进行回收。
可选的,该处理器1180,具体执行如下步骤:若所述终端上安装的操作系统提供界面生命周期回调函数,则通过注册界面生命周期的回调的方法监控所述Activity的销毁状态;若所述终端上安装的操作系统未提供界面生命周期回调函数,则通过用预设的界面生命周期的变量替换所述操作系统的界面生命周期的变量获取所述Activity的销毁状态。
可选的,该处理器1180,具体执行如下步骤:若所述弱引用指示所述Activity为空,则确定所述Activity已被回收;若所述弱引用指示所述Activity不为空,则确定所述Activity未被回收。
可选的,该处理器1180,具体执行如下步骤:若确定所述Activity已被回收,则结束所述弱引用。
可选的,该处理器1180,具体执行如下步骤:若所述回收状态指示所述Activity未被回收,则获取根据所述弱引用确定所述Activity回收状态的检查次数;判断所述检查次数是否超过预设阈值,若是,则所述终端导出所述Activity的内存快照文件;
输入设备1132,具体执行如下步骤:将所述内存快照文件发送至分析后台,以使得所述分析后台对所述内存快照文件进行分析后上报分析结果。
可选的,该处理器1180,具体执行如下步骤:若所述检查次数未超过所述预设阈值,则将所述检查次数增加1。
可选的,所述终端为安卓终端。
本实施例中,该处理器1180在确定该Activity已被销毁之后,利用弱引用检查该Activity的回收状态,并在该Activity未回收的情况下及时提醒该终端对该Activity进行回收,从而减少终端的内存占用,进而减少终端的卡顿。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (15)

1.一种界面元素Activity的处理方法,其特征在于,包括:
终端获取Activity的销毁状态;
若所述销毁状态指示所述Activity已销毁,则所述终端为所述Activity建立弱引用;
所述终端根据所述弱引用确定所述Activity回收状态;
若所述回收状态指示所述Activity未被回收,则所述终端对所述Activity进行回收。
2.根据权利要求1所述的方法,其特征在于,终端获取Activity的销毁状态包括:
若所述终端上安装的操作系统提供界面生命周期回调函数,则所述终端通过注册界面生命周期的回调的方法监控所述Activity的销毁状态;
若所述终端上安装的操作系统未提供界面生命周期回调函数,则所述终端通过用预设的界面生命周期的变量替换所述操作系统的界面生命周期的变量获取所述Activity的销毁状态。
3.根据权利要求1所述的方法,其特征在于,所述终端根据所述弱引用确定所述Activity回收状态包括:
若所述弱引用指示所述Activity为空,则所述终端确定所述Activity已被回收;
若所述弱引用指示所述Activity不为空,则所述终端确定所述Activity未被回收。
4.根据权利要求1所述的方法,其特征在于,所述终端根据所述弱引用确定所述Activity回收状态之后,所述方法还包括:
若所述终端确定所述Activity已被回收,则所述终端结束所述弱引用。
5.根据权利要求1所述的方法,其特征在于,所述终端根据所述弱引用确定所述Activity回收状态之后,所述方法还包括:
若所述回收状态指示所述Activity未被回收,则所述终端获取根据所述弱引用确定所述Activity回收状态的检查次数;
所述终端判断所述检查次数是否超过预设阈值,若是,则所述终端导出所述Activity的内存快照文件;
所述终端将所述内存快照文件发送至分析后台,以使得所述分析后台对所述内存快照文件进行分析后上报分析结果。
6.根据权利要求5所述的方法,其特征在于,所述终端判断所述检查次数是否超过预设阈值之后,所述方法还包括:
若所述检查次数未超过所述预设阈值,则所述终端将所述检查次数增加1。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述终端为安卓终端。
8.一种终端,其特征在于,包括:
获取模块,用于获取Activity的销毁状态;
建立模块,用于若所述销毁状态指示所述Activity已销毁,为所述Activity建立弱引用;
确定模块,用于根据建立模块建立的所述弱引用确定所述Activity回收状态;
处理模块,用于若所述回收状态指示所述Activity未被回收,则对所述Activity进行回收。
9.根据权利要求8所述的终端,其特征在于,所述获取模块包括:
监控单元,用于若所述终端上安装的操作系统提供界面生命周期回调函数,则通过注册界面生命周期的回调的方法监控所述Activity的销毁状态;
获取单元,用于若所述终端上安装的操作系统未提供界面生命周期回调函数,则通过用预设的界面生命周期的变量替换所述操作系统的界面生命周期的变量获取所述Activity的销毁状态。
10.根据权利要求8所述的终端,其特征在于,所述确定模块包括:
第一确定单元,用于若所述弱引用指示所述Activity为空,则确定所述Activity已被回收;
第二确定单元,用于若所述弱引用指示所述Activity不为空,则确定所述Activity未被回收。
11.根据权利要求8所述的终端,其特征在于,所述终端还包括:
结束模块,用于若确定所述Activity已被回收,则结束所述弱引用。
12.根据权利要求8所述的终端,其特征在于,所述获取模块,还用于若所述回收状态指示所述Activity未被回收,则获取根据所述弱引用确定所述Activity回收状态的检查次数;
判断模块,用于判断所述检查次数是否超过预设阈值,若是,则所述终端导出所述Activity的内存快照文件;
发送模块,用于将所述内存快照文件发送至分析后台,以使得所述分析后台对所述内存快照文件进行分析后上报分析结果。
13.根据权利要求12所述的终端,其特征在于,所述终端还包括:
计数模块,用于若所述检查次数未超过所述预设阈值,则将所述检查次数增加1。
14.根据权利要求8至13中任一项所述的终端,其特征在于,所述终端为安卓终端。
15.一种终端,其特征在于,包括:
收发器,处理器,总线;
所述收发器与所述处理器通过所述总线相连;
所述处理器,执行如下步骤:
获取Activity的销毁状态;若所述销毁状态指示所述Activity已销毁,为所述Activity建立弱引用;根据所述弱引用确定所述Activity回收状态;若所述回收状态指示所述Activity未被回收,则对所述Activity进行回收。
CN201710092796.1A 2017-02-21 2017-02-21 一种界面元素Activity的处理方法以及终端 Pending CN106886413A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710092796.1A CN106886413A (zh) 2017-02-21 2017-02-21 一种界面元素Activity的处理方法以及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710092796.1A CN106886413A (zh) 2017-02-21 2017-02-21 一种界面元素Activity的处理方法以及终端

Publications (1)

Publication Number Publication Date
CN106886413A true CN106886413A (zh) 2017-06-23

Family

ID=59180122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710092796.1A Pending CN106886413A (zh) 2017-02-21 2017-02-21 一种界面元素Activity的处理方法以及终端

Country Status (1)

Country Link
CN (1) CN106886413A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108182131A (zh) * 2017-12-13 2018-06-19 东软集团股份有限公司 监控应用运行状态的方法、装置、存储介质及电子设备
CN108595281A (zh) * 2018-04-26 2018-09-28 Oppo广东移动通信有限公司 活动对象处理方法、装置、存储介质及终端
CN110221896A (zh) * 2019-06-11 2019-09-10 北京金山安全软件有限公司 一种界面显示方法和装置
CN111124822A (zh) * 2019-12-16 2020-05-08 网易(杭州)网络有限公司 游戏中的信息监测方法、装置及电子设备
CN113407419A (zh) * 2021-07-15 2021-09-17 腾讯数码(深圳)有限公司 内存泄漏检测方法、装置、计算机设备和存储介质
US11567623B2 (en) 2018-11-26 2023-01-31 Huawei Technologies Co., Ltd. Displaying interfaces in different display areas based on activities

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050204341A1 (en) * 2004-03-11 2005-09-15 International Business Machines Corp. Method, system and article for detecting critical memory leaks causing out-of-memory errors in Java software
CN101727355A (zh) * 2008-10-31 2010-06-09 国际商业机器公司 用于内存访问事件的处理方法和系统
CN105607900A (zh) * 2015-11-26 2016-05-25 小米科技有限责任公司 显示对象的处理方法及装置
CN106095689A (zh) * 2016-06-24 2016-11-09 北京奇虎科技有限公司 一种应用内存泄露的检测方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050204341A1 (en) * 2004-03-11 2005-09-15 International Business Machines Corp. Method, system and article for detecting critical memory leaks causing out-of-memory errors in Java software
CN101727355A (zh) * 2008-10-31 2010-06-09 国际商业机器公司 用于内存访问事件的处理方法和系统
CN105607900A (zh) * 2015-11-26 2016-05-25 小米科技有限责任公司 显示对象的处理方法及装置
CN106095689A (zh) * 2016-06-24 2016-11-09 北京奇虎科技有限公司 一种应用内存泄露的检测方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
佚名: "LeakCanary 原理分析", 《HTTP://COOLPERS.GITHUB.IO/LEAKCANARY%7CMAT/2015/06/04/LEAKCANARY-BRIEF.HTML》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108182131A (zh) * 2017-12-13 2018-06-19 东软集团股份有限公司 监控应用运行状态的方法、装置、存储介质及电子设备
CN108182131B (zh) * 2017-12-13 2021-11-26 东软集团股份有限公司 监控应用运行状态的方法、装置、存储介质及电子设备
CN108595281A (zh) * 2018-04-26 2018-09-28 Oppo广东移动通信有限公司 活动对象处理方法、装置、存储介质及终端
US11567623B2 (en) 2018-11-26 2023-01-31 Huawei Technologies Co., Ltd. Displaying interfaces in different display areas based on activities
CN110221896A (zh) * 2019-06-11 2019-09-10 北京金山安全软件有限公司 一种界面显示方法和装置
CN111124822A (zh) * 2019-12-16 2020-05-08 网易(杭州)网络有限公司 游戏中的信息监测方法、装置及电子设备
CN111124822B (zh) * 2019-12-16 2024-01-19 网易(杭州)网络有限公司 游戏中的信息监测方法、装置及电子设备
CN113407419A (zh) * 2021-07-15 2021-09-17 腾讯数码(深圳)有限公司 内存泄漏检测方法、装置、计算机设备和存储介质
CN113407419B (zh) * 2021-07-15 2022-09-16 腾讯数码(深圳)有限公司 内存泄漏检测方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN106886413A (zh) 一种界面元素Activity的处理方法以及终端
CN106055962B (zh) 一种解锁控制方法及移动终端
CN103400108B (zh) 人脸识别方法、装置和移动终端
CN106886766B (zh) 一种指纹识别方法、指纹识别电路及移动终端
CN105022955B (zh) 一种应用程序的锁定方法及移动终端
CN107092520A (zh) 应用程序的推荐方法、装置、存储介质及移动终端
CN105893130B (zh) 一种移动终端应用程序的处理方法和移动终端
CN104156050B (zh) 任务监控的方法和电子设备
CN106101529B (zh) 一种拍照控制方法及移动终端
CN105120181B (zh) 移动终端的摄像方法及装置
CN107003907A (zh) 一种数据处理方法以及数据处理设备
CN105045386A (zh) 睡眠状态监控方法及终端、空调器系统
CN106022061B (zh) 一种解锁控制方法及移动终端
CN107087053A (zh) 一种屏幕背光控制方法及移动终端
CN105912916A (zh) 一种指纹解锁方法及终端
CN107172304B (zh) 一种移动终端功耗检测方法及移动终端
CN103559081A (zh) 移动终端工作模式的推荐方法、装置和移动终端
CN107402783A (zh) 一种后台应用程序的管理控制方法及用户终端
CN106066685A (zh) 一种解锁控制方法及终端设备
CN106055947A (zh) 通过指纹解锁移动终端的方法、装置及移动终端
CN107483745A (zh) 一种移动终端信息处理方法、移动终端及服务器
CN106055455B (zh) 一种按键的防干扰方法及装置
CN107623899A (zh) 信息处理方法、装置、存储介质以及电子设备
CN106658753A (zh) 一种数据迁移方法及终端设备
CN103473145B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170623