著录项信息
专利名称 | 用于移动终端的应用屏幕截图方法和装置 |
申请号 | CN201410195210.0 | 申请日期 | 2011-10-26 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2014-08-06 | 公开/公告号 | CN103970598A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/46 | IPC分类号 | G;0;6;F;9;/;4;6查看分类表>
|
申请人 | 华为终端有限公司 | 申请人地址 | 广东省深圳市福田区香蜜湖街道东海社区红荔西路8089号深业中城6号楼A单元3401
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为终端(深圳)有限公司,荣耀终端有限公司 | 当前权利人 | 华为终端(深圳)有限公司,荣耀终端有限公司 |
发明人 | 吴维彬 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明公开了一种用于移动终端的应用屏幕截图方法和装置,属于移动终端领域。该方法包括:接收切换指令,所述切换指令用于将所述移动终端的指定应用切换到后台运行;截取所述指定应用的应用屏幕的指定区域,得到指定区域截图;保存所述指定区域截图,将所述指定应用切换到后台运行。本发明实施例通过在关闭应用屏幕Activity之前,Activity窗口还可见时,对应用屏幕进行截图,获取Activity的最后一次的真实屏幕,避免了在关闭应用屏幕之后进行截图造成的高内存占用,提高了截屏效率,降低了内存占用和调用次数。
1.一种用于移动终端的应用屏幕截图方法,其特征在于,包括:
接收切换指令,所述切换指令用于将所述移动终端的指定应用切换到后台运行;
在所述指定应用在屏幕中可见时,根据所述移动终端的本地显示屏尺寸和预设缩放比例,将所述指定应用的应用屏幕的指定区域进行缩放,并自动截取所述缩放后的缩略图,得到指定区域截图并保存,所述指定区域截图中包括状态栏;
将所述指定应用切换到后台运行;
当接收到查看后台运行应用的指令时,显示所述保存的所述指定应用的指定区域截图;
接收操作指令,并根据所述操作指令将所述指定应用从后台切换到前台运行。
2.一种用于移动终端的应用屏幕截图装置,其特征在于,包括:
接收模块,用于切换指令,所述切换指令用于将所述移动终端的指定应用切换到后台运行;
截图模块,用于在所述指定应用在屏幕中可见时自动截取所述指定应用的应用屏幕的指定区域,得到指定区域截图,所述指定区域截图中包括状态栏;
保存模块,用于保存所述指定区域截图;
切换模块,用于将所述指定应用切换到后台运行;
显示模块,用于当接收到查看后台运行应用的指令时,显示所述保存的所述指定应用的指定区域截图;
所述接收模块还用于接收操作指令,所述切换模块还用于根据所述操作指令将所述指定应用从后台切换到前台运行;
所述截图模块具体包括:
缩放单元,用于根据所述移动终端的本地显示屏尺寸和预设缩放比例,将所述指定应用的应用屏幕的指定区域进行缩放;
截图单元,用于截取所述缩放后的缩略图,得到指定区域截图。
用于移动终端的应用屏幕截图方法和装置\n技术领域\n[0001] 本发明涉及移动终端领域,特别涉及一种用于移动终端的应用屏幕截图方法和装置。\n背景技术\n[0002] 随着移动终端的发展,作为移动终端的一个例子智能手机上多装有Android系统,Android是google开源的一个用于开发移动程序的软件平台,它包括了操作系统、中间件及一些关键应用。移动终端用户切换活动(Activity)是Android平台的一种标准组件。实际上一个Activity就是应用中的一个单一的屏幕,它继承自Activity类,它将显示由Views组成的UI(User Interface,用户界面)以及响应事件。\n[0003] 但是,现有技术在Android平台下对任务管理器和Home桌面应用程序等应用场景等进行管理时,只能获取后台运行的应用屏幕,无法读取所有历史应用的屏幕,用户不容易找到自己想切换的应用,使得在应用切换时,UI发挥的余地少,显示不直观,用户体验差。\n发明内容\n[0004] 本发明实施例提供了一种用于移动终端的应用屏幕截图方法和装置。所述技术方案如下:\n[0005] 一种用于移动终端的应用屏幕截图方法,包括:\n[0006] 接收切换指令,所述切换指令用于将所述移动终端的指定应用切换到后台运行;\n[0007] 截取所述指定应用的应用屏幕的指定区域,得到指定区域截图;\n[0008] 保存所述指定区域截图;\n[0009] 将所述指定应用切换到后台运行。\n[0010] 一种用于移动终端的应用屏幕截图装置,包括:\n[0011] 接收模块,用于切换指令,所述切换指令用于将所述移动终端的指定应用切换到后台运行;\n[0012] 截图模块,用于截取所述指定应用的应用屏幕的指定区域,得到指定区域截图;\n[0013] 保存模块,用于保存所述指定区域截图;\n[0014] 切换模块,用于将所述指定应用切换到后台运行。\n[0015] 本发明实施例提供的技术方案的有益效果是:\n[0016] 通过在关闭应用屏幕Activity之前,Activity窗口还可见时,对应用屏幕进行截图,获取Activity的最后一次的真实屏幕,避免了在关闭应用屏幕之后进行截图造成的高内存占用,提高了截屏效率,降低了内存占用和调用次数。\n附图说明\n[0017] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。\n[0018] 图1是本发明实施例提供的一种用于移动终端的应用屏幕截图方法的流程图;\n[0019] 图2是本发明实施例提供的一种用于移动终端的应用屏幕截图方法的流程图;\n[0020] 图3是本发明实施例提供的一种用于移动终端的应用屏幕截图方法的在JAVA环境中示例的流程图;\n[0021] 图4是本发明实施例提供的一种用于移动终端的应用屏幕截图装置的结构示意图。\n具体实施方式\n[0022] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。\n[0023] 在介绍本发明提供的应用屏幕截图方法之前,首先对本发明的基础知识进行简要的介绍:\n[0024] Activity是Android平台的一种标准组件。实际上一个Activity就是应用中的一个单一的屏幕,它继承自Activity类,它将显示由Views组成的UI以及响应事件。\n[0025] History Activity为历史Activity,是指用户曾经打开过的Activity,包含正在后台运行任务中的Activity。\n[0026] SurfaceView是Android平台的一种特殊View视图类。它是GLSurfaceView和RSSurfaceView这两种3D视图类的父类。这两种3D视图类都运行在自己独立的绘制线程。故不同于其他普通View视图类。\n[0027] Live Wappaper是指Android平台的动态墙纸,通常是由RSSurfaceView视图类实现的。\n[0028] ActivityManagerService是指Activity管理服务,是Android平台中的一个关键系统服务。\n[0029] WindowManagerService是指Window管理服务,是Android平台中的一个关键系统服务。\n[0030] TaskManager:是指任务管理器,是一个具有任务显示,切换和杀死等功能的Android应用程序。\n[0031] 图1是本发明实施例提供的一种用于移动终端的应用屏幕截图方法的流程图。该实施例的执行主体是移动终端,参见图1,该实施例具体包括:\n[0032] 101、接收用于关闭指定应用屏幕的指令;\n[0033] 在本实施例中,移动终端上运行至少一个应用,该应用当前可处于全屏状态。该用于关闭指定应用屏幕的指令为将指定应用切换至后台运行的切换指令,或将另一应用切换至前台运行的切换指令,或关闭指定应用的关闭指令。其中,当指令为将指定应用切换至后台运行的切换指令时,该指令可以由移动终端用户手动触发,如,将指定应用最小化等,该指令还可以根据预设条件触发,如,指定程序在20分钟内处于空闲状态,则触发用于将指定应用切换至后台运行的切换指令。\n[0034] 本领域技术人员可以获知,一个应用Acitvity的生命周期包括:启动一个Activity时,Activity()的构造函数执行完毕后,系统调用onCreate()方法,在这里设置Activity的全局状态和资源,然后调用onStart()方法,在这个方法执行完毕,Activity在屏幕中可见。执行onResume()方法,这个时候Acitvity在一个loop循环中的等待窗口事件。当窗口部分可见时,也就是说Acitvity不是在最前端时,Activity的onFreeze()方法被调用,这个方法保存Activity一些内部状态。然后窗口暂停,直到Activity又出现在最前端,activity的onResume()方法被调用。如果Activity窗口不可见,则说明Activity的onStop()方法被调用,直到覆盖Activity的窗口关闭时,activity的onRestart()方法开始调用,然后重复onStart()方法。当系统回收资源或者Activity被调用finish()方法时,Activity停止,调用onDestroy()释放Activity拥有的资源。\n[0035] 102、截取所述指定应用屏幕的指定区域,得到指定区域截图;\n[0036] 在本实施例中,该指定区域可以是整个应用屏幕,也可以是由移动终端预设的区域,本发明实施例不做具体限定。通过对指定区域的截屏,可以获取状态栏的视图,还可以根据需要是否含状态栏部分。\n[0037] 需要说明的是,本实施例的步骤102是在接收到关闭指定应用屏幕的指令之后,并在关闭指定应用屏幕之前进行的,与步骤101中对现有技术中Acitvity的生命周期的描述相对比,现有技术中的截屏发生在调用onStop()方法之后,而本发明的截屏是在调用onPause()方法之后,调用onStop()方法之前。\n[0038] 103、保存所述指定区域截图,关闭所述指定应用屏幕。\n[0039] 在本实施例中,移动终端保存对指定应用屏幕的截图后,关闭该指定应用屏幕,根据接收到的指令,关闭该指定应用或将指定应用切换到后台运行。\n[0040] 步骤103之后,还包括:\n[0041] 当接收到查看所述指定应用的指令时,获取所述指定区域截图,并显示所述指定区域截图。\n[0042] 本实施例提供的方法,通过在关闭应用屏幕Activity之前,窗口还可见时,对应用屏幕进行截图,获取Activity的最后一次的真实屏幕,避免了在关闭应用屏幕之后进行截图造成的高内存占用,提高了截屏效率,降低了内存占用和调用次数。\n[0043] 图2是本发明实施例提供的一种用于移动终端的应用屏幕截图方法的流程图。该实施例的执行主体是移动终端,移动终端上当前运行一指定应用,参见图2,该实施例具体包括:\n[0044] 201、移动终端接收到关闭指定应用屏幕的指令;\n[0045] 该步骤201与步骤101原理相同,在此不再赘述。\n[0046] 202、移动终端根据本地显示屏尺寸和预设缩放比例,将所述指定应用屏幕的指定区域进行缩放,并截取所述缩放后的缩略图,得到指定区域截图;\n[0047] 在本实施例中,本地显示屏尺寸是指移动终端的显示屏尺寸,一般地,应用屏幕的尺寸与本地显示屏的尺寸相同,也即是截图的原始尺寸为本地显示屏的尺寸;指定应用屏幕的指定区域可由移动终端用户根据浏览习惯设置,该指定区域可以为指定应用屏幕的全屏区域,也可以为指定应用屏幕的某个区域;预设缩放比例由移动终端用户根据浏览习惯等设置,本发明实施例不做具体限定。则该步骤202具体包括:移动终端获取本地显示屏尺寸和预设缩放比例,并以本地显示屏尺寸为指定应用屏幕的初始尺寸,按照预设缩放比例,将该指定应用屏幕的指定区域进行缩放,获取缩放后的缩略图,并截取缩放后的缩略图,得到指定区域截图。\n[0048] 该截图的具体方法可以通过调用drawFB()完成,本领域技术人员可以获知,drawFB()是一种画图方法,该画图方法通过调用一预设显示设备获取显示屏当前的图像,并读取该预设显示设备的缓冲区像素,使用该缓冲区像素生成Bitmap图像,由于drawFB()是通过预设显示设备进行画图,其范围也包括该显示屏的状态栏,扩大了截屏的范围。\n[0049] 例如,该drawFB()函数具体可以有如下表示:\n[0050]\n[0051]\n[0052]\n[0053] 203、保存指定区域截图,关闭指定应用屏幕;\n[0054] 在本实施例中,截取所述指定应用屏幕的指定区域,得到指定区域截图,保存该指定区域截图后,关闭指定应用屏幕,该关闭指定应用屏幕的步骤在截图之后,保证了截图的完整性和有效性,避免了在关闭之后进行截图而导致截图黑屏,使得由GLSurfaceView类视图元素、RSSurfaceView类视图元素构成的Activity或背景是LiveWallpaper类墙纸的Activity能够准确截屏。\n[0055] 204、当接收到查看所述指定应用的指令时,获取所述指定区域截图,并显示所述指定区域截图。\n[0056] 在本实施例中,该查看指定应用的指令可以为查看历史应用的指令或查看后台运行应用的指令。该指令可以由移动终端的任务管理器启动触发,例如,当移动终端的任务管理器启动时,显示保存后台运行的应用的指定区域截图,使得移动终端用户能够直观的查看后台运行的应用,并获知后台运行的应用的最后运行状态。该指令可以是针对所有历史应用或后台运行应用,也可以是针对某一个历史应用或后台运行应用,本发明实施例不做具体限定。在该实施例中,移动终端可根据接收到的操作指令,对指定应用进行浏览、切换和释放等操作。其中,浏览是指对指定应用的最后运行状态进行查看,切换是指将指定应用从前台运行切换到后台运行,或将指定应用从后台运行切换到前台运行,释放是指删除指定程序的指定区域截图。\n[0057] 上述实施例可用于采用android平台的嵌入式产品中,如平板电脑,机顶盒和固定台等。\n[0058] 举例说明,现有技术中,一个新的Activity进入前台运行时,老的Activity进入了onPause()生命状态,此时老的Activity仍然可见。当老Activity窗口不可见时,老的Activity就进入了onStop()生命状态。android平台的截屏算法是在onStop()生命状态进行截取,因为窗口不可见,所以需重新绘制老Activity而得到屏幕缩略图。这样不但效率低下,还难以获取老Activity的最后一次的真实屏幕。因此,本发明实施例采用在onPause()生命状态中进行截图,参见图3,图3是本发明实施例提供的一种用于移动终端的应用屏幕截图方法的在JAVA环境中示例的流程图。其中,在本发明中所说的onCreate()、onStart()、onRestart()、onResume()、drawFB()、onPause()、onStop()、onDestory()均为抽象函数,没有具体实现,需要具体应用重载实现。对于一个Activity的生命周期来说,有以下过程:Activity开始时,依次调用onCreate()、onStart()和onResume(),使Activity正常运行,而当Activity屏幕切换时,调用drawFB()进行截屏,再调用onStop(),此时Activity已不可见,后续可以有以下三种情况的任意一种:调用onDestory(),该Activity结束;或,当另一Activity需要内存时,杀死进程,另一Activity调用onCreate();或,当该Activity再次进入前台,调用onRestart();\n[0059] 本实施例提供的方法,通过在关闭应用屏幕Activity之前,窗口还可见时,对应用屏幕进行截图,获取Activity的最后一次的真实屏幕,避免了在关闭应用屏幕之后进行截图造成的高内存占用,提高了截屏效率,降低了内存占用和调用次数。\n[0060] 图4是本发明实施例提供的一种用于移动终端的应用屏幕截图装置的结构示意图。参见图4,该实施例具体包括:\n[0061] 接收模块401,用于接收用于关闭指定应用屏幕的指令;\n[0062] 截图模块402,用于截取所述指定应用屏幕的指定区域,得到指定区域截图;\n[0063] 保存模块403,用于保存所述指定区域截图,关闭所述指定应用屏幕。\n[0064] 其中,所述截图模块402包括:\n[0065] 缩放单元,用于根据本地显示屏尺寸和预设缩放比例,将所述指定应用屏幕的指定区域进行缩放;\n[0066] 截图单元,用于截取所述缩放后的缩略图,得到指定区域截图。\n[0067] 所述装置还包括:\n[0068] 显示模块,用于当接收到查看所述指定应用的指令时,获取所述指定区域截图,并显示所述指定区域截图。\n[0069] 所述用于关闭指定应用屏幕的指令为将所述指定应用切换至后台运行的切换指令,或将另一应用切换至前台运行的切换指令,或关闭所述指定应用的关闭指令。\n[0070] 本实施例提供的装置,具体可以移动终端,与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。\n[0071] 本发明实施例提供的上述技术方案的全部或部分可以通过程序指令相关的硬件来完成,所述程序可以存储在可读取的存储介质中,该存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。\n[0072] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2021-04-30
专利权的转移
登记生效日: 2021.04.20
专利权人由华为终端有限公司变更为荣耀终端有限公司
地址由523808 广东省东莞市松山湖高新技术产业开发区新城大道2号南方工厂厂房(一期)项目B2区生产厂房-5变更为518040 广东省深圳市福田区香蜜湖街道东海社区红荔西路8089号深业中城6号楼A单元3401
- 2019-01-11
专利权的转移
登记生效日: 2018.12.24
专利权人由华为终端(深圳)有限公司变更为华为终端有限公司
地址由518129 广东省深圳市龙岗区坂田华为基地B区2号楼变更为523808 广东省东莞市松山湖高新技术产业开发区新城大道2号南方工厂厂房(一期)项目B2区生产厂房-5
- 2019-01-11
专利权人的姓名或者名称、地址的变更
专利权人由华为终端有限公司变更为华为终端(深圳)有限公司
地址由518129 广东省深圳市龙岗区坂田华为基地B区2号楼变更为518129 广东省深圳市龙岗区坂田华为基地B区2号楼
- 2018-06-26
- 2014-09-03
实质审查的生效
IPC(主分类): G06F 9/46
专利申请号: 201410195210.0
申请日: 2011.10.26
- 2014-08-06
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-02-13
|
2007-09-24
| | |
2
| |
2010-02-24
|
2009-09-07
| | |
3
| |
2009-07-08
|
2009-01-15
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |