【技术实现步骤摘要】
一种安卓兼容环境中多窗口模式下安卓应用的截屏方法
[0001]本专利技术涉及安卓系统的截屏技术,特别涉及一种安卓兼容环境中多窗口模式下安卓应用的截屏方法。
技术介绍
[0002]现有的安卓系统截屏方法有一般有两种,一种是使用系统自带的截屏服务,一种是通过相关的安卓应用实现。
[0003]对于安卓系统自带的截屏服务,每一个安卓界面都是一个活动实例(Activity),而界面的显示都是通过窗口Window的对象实现的,在活动实例的界面执行按键操作的时候,在将按键的处理操作分发到安卓应用之前,执行相应截图按键的判定逻辑后,执行截屏事件,截屏之后返回的是一个Bitmap对象。截屏操作时候,若截屏失败则直接发送截屏失败的通知。若截屏成功,则先执行截屏的动画,并在动画效果执行完毕之后,发送截屏成功的通知。
[0004]通过相关的安卓应用实现的核心是通过getDrawingCache获取拟截屏的视图的缓存区,然后将其转换为Bitmap,再将Bitmap保存成png等格式的图像文件。
[0005]获取缓存区的基本过程 ...
【技术保护点】
【技术特征摘要】
1.一种安卓兼容环境中多窗口模式下安卓应用的截屏方法,其特征在于,包括:当用户发出截屏指令,获得置在最前的Linux端的窗口对应的安卓应用信息,遍历安卓环境中所有活动实例的堆栈,并将各活动实例的信息与该安卓应用信息进行匹配,如匹配到,则将该匹配到的活动实例的窗口尺寸设置为与该安卓应用的窗口尺寸一致;创建一个用于保存匹配到的活动实例的窗口截屏的图层,当安卓系统收到截屏指令时,将第一图层列表的图层进行渲染,并进行存储;当渲染完成后,进行图层的合成操作,并存储至安卓下的第一缓存区, Linux下的第二缓存区获取该第一缓存区的数据,并在Linux端的窗口进行显示;当安卓系统收到截图指令时,停止界面的刷新,并判断收到停止界面刷新前最后一帧的图层合成请求,是否对应该匹配到的活动实例,如果是,将恢复刷新前最后一帧的图层的相关数据保存,以用于安卓系统恢复刷新后进行显示。2.根据权利要求1所述的截屏方法,其特征在于,还包括:活动实例的窗口截屏的图层中,如存在透明图层且不在最下层时,将该第一缓存区设置为ARGB_8888格式,否则,将该第一缓存区设置为RGB_565格式。3.根据权利要求1所述的截屏方法,其特征在于,还包括:依据活动实例的窗口的尺寸和截图格式计算所需的第一缓存区的空间newSize;如newSize大于第一缓存区当前空间,则判断第一缓存区是否为空,如果不为空,则执行释放操作,并根据newSize重新分配第一缓存区的空间;如果为空则不执行释放操作;如newSize小于等于第一缓存区空间,则不重新分配。4.根据权利要求1所述的截屏方法,其特征在于,该第一缓存区与该第二缓存区共享物理内存,该第二缓存区的共享内存全局标识符id将共享物理内存映射到安卓系统图层合成所在进程,并将映射地址赋值给该第一缓存区,在截屏过程完成后,在进程中内存地址空间释放映射的地址赋值。5.根据权利要求1所述的截屏方法,其特征在于,获得置在最前的Linux端的窗口对应的安卓应用的信息包括:通过xDroidUI响应用户截屏指令,获取当前进程被用户置在最前的xDroidUI的Linux端的窗口对应的安卓应用信息;将该安卓应用信息通过远程过程调...
【专利技术属性】
技术研发人员:温研,
申请(专利权)人:北京麟卓信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。