掌桥专利:专业的专利平台
掌桥专利
首页

一种安卓应用在PC显示器中的显示方法及装置

文献发布时间:2023-06-19 10:08:35


一种安卓应用在PC显示器中的显示方法及装置

技术领域

本发明属于在桌面操作系统上运行移动应用的开发技术领域,具体涉及一种安卓应用在PC显示器中的显示方法及装置。

背景技术

Linux或Windows等桌面操作系统Android兼容环境(下文简称Android兼容环境)是一种在Linux或Windows操作系统上运行Android应用(App)的技术,对丰富操作系统应用生态有着重要的意义。例如,运行于Linux系统上的Android兼容环境一般由Host端和Guest端组成,Host端运行于Linux系统上,主要包括Android容器和用户交互窗口,Android容器的作用是从Linux系统中隔离出部分内核资源来支撑Guest端运行,Guest端主要包括特殊定制的Android应用框架和Android运行时库等,Android应用都运行在Guest端。用户在Linux操作系统使用Android应用时,Android应用的窗口的实现方式为:Linux系统的窗口将句柄发送给运行于Android容器中的Android系统,由Android系统渲染得到的Android应用用户界面,其中,xDroidUI就是Android应用用户界面的一种实现。

用户在Android兼容环境中使用Android应用时,所采用的PC显示器的显示屏的外形通常是横置的长方形,也就是通常所说的横屏,然而大多数的Android应用为了配合手机的显示屏的尺寸一般都采用竖屏显示,因此,当用户需要在PC显示器上显示Android应用的界面时,即在横屏显示器内显示竖置的长方形时,一般会出现无法充分利用PC显示屏幕(即,PC显示屏幕的两侧大量留白)的情况,而且由于竖屏应用的宽度较窄,因此显示的文字、图片等都相对较小,为用户操作带来了不便。现有技术中,如申请号为202011283641.4的发明“一种安卓应用在横屏显示器中的显示方法及装置”公开的技术方案实现了安卓应用在横屏显示器中的显示,但是,该方法未能解决由Android应用自身的刷新要求所导致的Android兼容环境频繁地向桌面操作系统发送Android应用的界面数据的问题,这一问题使Android兼容环境产生了较大的性能开销,降低了Android兼容环境的运行性能。

发明内容

有鉴于此,本发明提供了一种安卓应用在PC显示器中的显示方法及装置,在将Android应用显示在横屏PC显示器中的基础上,有效降低了Android应用显示过程为Android兼容环境带来的性能开销。

本发明提供的一种安卓应用在PC显示器中的显示方法,具体包括以下步骤:

运行于Android兼容环境内的Android系统,将启动的Android应用的界面数据发送至运行于桌面操作系统上的Android应用显示缓冲区,运行于桌面操作系统上的Android应用容器窗口从Android应用显示缓冲区中读取需要显示的数据并将所述Android应用滚动显示在横屏显示器中;所述Android应用容器窗口计算得到未被显示的Android应用的界面数据的未显示坐标范围,并将所述未显示坐标范围发送至所述Android系统,所述Android系统根据所述未显示坐标范围控制所述Android应用的刷新;

其中,所述Android应用容器窗口的输出界面的高度不大于所述横屏显示器的高度,所述Android应用容器窗口的输出界面的宽度不小于所述Android应用的界面的宽度。

进一步地,所述Android应用容器窗口从Android应用显示缓冲区中读取需要显示的数据,包括以下步骤:当所述Android应用的当前界面首次在所述Android应用容器窗口中显示时,所述Android应用容器窗口根据输出界面的尺寸,从所述Android应用显示缓冲区的起始位置读取需要显示的数据。

进一步地,所述Android应用容器窗口从Android应用显示缓冲区中读取需要显示的数据,包括以下步骤:当用户拖动所述Android应用容器窗口中的滚动条时,所述Android应用容器窗口计算得到所述Android应用容器窗口的顶端与Android应用显示缓冲区中存储的Android应用的界面顶端之间的距离,记为偏移量,根据所述偏移量计算待显示数据的范围,再根据得到的范围从所述Android应用显示缓冲区中读取需要显示的数据。

进一步地,所述Android应用容器窗口获取用户点击事件,得到所述用户点击事件的点击位置的点击坐标;所述Android应用容器窗口将所述点击坐标换算为所述Android应用的当前界面的应用界面坐标,所述Android应用容器窗口将所述应用界面坐标发送至所述Android系统。

进一步地,所述Android应用容器窗口将所述应用界面坐标发送至所述Android系统的方式为:所述Android应用容器窗口向所述Android系统发送RPC消息。

本发明提供的一种安卓应用在横屏显示器中的显示装置,包括:Android兼容环境单元、Android应用显示缓冲区单元及Android应用容器窗口单元;

其中,所述Android兼容环境单元,用于提供Android系统在桌面操作系统中的运行环境;

所述Android应用显示缓冲区单元,运行于桌面操作系统中,用于接收所述Android系统发送的Android应用的界面数据,并将所述界面数据存储在桌面操作系统中;

所述Android应用容器窗口单元,运行于桌面操作系统中,用于从所述Android应用显示缓冲区单元中读取待显示数据,并将所述待显示数据在桌面操作系统中显示,从而实现所述Android应用在横屏显示器中的滚动显示;所述Android应用容器窗口单元计算得到未显示的所述Android应用的界面数据的坐标范围,将所述坐标范围发送至所述Android系统;所述Android应用容器窗口单元所生成的界面的高度不大于横屏显示器的高度、宽度不小于所述Android应用的界面的宽度;

当所述Android应用的当前界面首次在所述Android应用容器窗口单元中显示时,所述Android应用容器窗口单元根据输出界面的尺寸,从所述Android应用显示缓冲区的起始位置读取需要显示的数据。

进一步地,所述Android应用容器窗口单元首次显示所述Android应用的当前界面时,所述Android应用容器窗口根据输出界面的尺寸,从所述Android应用显示缓冲区的起始位置读取需要显示的数据。

进一步地,所述Android应用容器窗口单元在用户拖动所述Android应用容器窗口中的滚动条时,所述Android应用容器窗口单元计算得到所述Android应用容器窗口输出界面的顶端与Android应用显示缓冲区中存储的Android应用的界面顶端之间的距离,记为偏移量,并根据所述偏移量计算待显示数据的范围,再根据得到的范围从所述Android应用显示缓冲区中读取需要显示的数据。

进一步地,所述Android应用容器窗口单元在获取到用户点击事件时,所述Android应用容器窗口单元将得到的所述用户点击事件的点击位置的点击坐标换算为所述Android应用的当前界面的应用界面坐标,所述Android应用容器窗口单元将所述应用界面坐标发送至所述Android系统。

有益效果:

本发明通过运行于桌面操作系统中的容器窗口计算出Android应用界面中无需显示部分的坐标范围,并将该坐标范围发送至Android系统,Android系统根据该坐标范围有选择的刷新Android应用的部分界面,而不必刷新整个Android应用界面,从而有效降低了Android兼容环境刷新Android应用的性能开销。

附图说明

图1为本发明提供的一种安卓应用在PC显示器中的显示方法的流程图。

图2为本发明提供的一种安卓应用在PC显示器中的显示装置的结构图。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

本发明提供的一种安卓应用在PC显示器中的显示方法及装置,为在申请号为202011283641.4的发明“一种安卓应用在横屏显示器中的显示方法及装置”公开的方案的基础上进行的进一步地改进。本发明提供的一种安卓应用在PC显示器中的显示方法的基本思想是:运行于桌面操作系统中的容器窗口计算出Android应用界面中无需显示部分的坐标范围,Android系统根据该坐标范围有选择的刷新Android应用的部分界面,从而降低了Android兼容环境与桌面操作系统之间的数据传输量。

为了便于表达,假设竖屏Android应用显示界面的宽为w、高为h,PC显示器的显示界面的高为h

本发明提供的一种安卓应用在PC显示器中的显示方法,流程如图1所示,包括以下步骤:

步骤1、当用户启动Android兼容环境内的Android应用时,采用桌面操作系统(Linux或Windows)的API创建Android应用显示缓冲区(即,显示缓冲区),例如,该Android应用显示缓冲区内容纳Android应用的显示界面的尺寸为宽w、高h。

步骤2、Android系统将Android应用需要显示的内容发送至Android应用显示缓冲区中。

步骤3、采用桌面操作系统(Linux或Windows)API创建的带有滚动条的Android应用容器窗口从Android应用显示缓冲区中读取数据,将读取到的数据显示在Android应用容器窗口中,同时计算Android应用界面中未在Android应用容器窗口中显示的坐标范围,并将该坐标范围发送至Android系统。在后续Android应用界面的刷新中,Android系统会根据上述坐标范围局部刷新Android应用界面。Android应用容器窗口的尺寸根据PC显示器的尺寸设定。

其中,Android系统中自带的Java类“LaunchingTaskPositioner”的方法“boundsConflict”即可实现刷新范围的控制。

Android应用容器窗口在每次显示Android应用界面时,都会计算计算Android应用界面中未在Android应用容器窗口中显示的坐标范围,具体来说,主要存在以下几种情况:

首次显示,即Android应用首次在桌面操作系统中显示时,Android应用容器窗口按照显示内容为宽w、高h

例如,Android应用容器窗口从Android应用显示缓冲区中读取坐标范围由(0,0)到(w,h

滚动显示,即当用户拖动Android应用容器窗口中的滚动条时,Android应用容器窗口计算出其输出窗口的顶端与缓冲区内存储的页面顶端之间的距离,将该距离记为偏移量offset,并根据该偏移量offset重新计算待显示数据的范围,由此从Android应用显示缓冲区读取数据,再将读取到的待显示数据显示在Android应用容器窗口中;同时,Android应用容器窗口计算出未读取的Android应用显示缓冲区中的坐标范围,并将该坐标范围发送至Android应用。例如,Android应用容器窗口从Android应用显示缓冲区中读取坐标范围由(0,offset)到(w,h

用户点击屏幕,即当用户使用触摸或鼠标点击桌面操作系统中显示的Android应用界面时,Android应用容器窗口得到当前触摸或鼠标点击位置的点击坐标,例如:点击坐标为(x,y),该点击坐标可以为显示器的绝对坐标,也可以为Android应用容器窗口所显示界面的绝对坐标,然后,根据该点击坐标经过相应的换算得到该点击坐标所对应的Android应用整个界面的坐标,从而得到Android应用显示缓冲区中相应的坐标,将Android应用显示缓冲区中的坐标命名为响应坐标;同时,Android应用容器窗口计算出未读取的Android应用显示缓冲区中的坐标范围,即不显示坐标范围;然后,将响应坐标范围及不显示坐标范围同时发送至Android应用。

例如,对于点击坐标为Android应用容器窗口所显示界面的绝对坐标的情况,换算后的响应坐标为(x,y+offset);此时,计算出的未读取数据的坐标范围包括2个,即从(0,0)到(w,offset)和从(0,h

Android应用容器窗口可采用发送RPC消息的方式将响应坐标发送至Android系统,由Android系统根据该响应坐标生成新的页面以响应用户的操作。

基于本发明提供的一种安卓应用在PC显示器中的显示方法,本发明提供了一种安卓应用在PC显示器中的显示装置,结构如图2所示,具体包括:Android兼容环境单元、Android应用显示缓冲区单元及Android应用容器窗口单元。

其中,Android兼容环境单元,用于提供Android系统在桌面操作系统中的运行环境,Android系统运行于Android兼容环境中。

Android应用显示缓冲区单元,运行于桌面操作系统中,用于Android应用界面的数据在桌面操作系统中的存储,Android系统将Android应用界面的数据发送至Android应用显示缓冲区单元中进行存储。

Android应用容器窗口单元,运行于桌面操作系统中,用于实现Android应用界面在桌面操作系统中的滚动显示,Android应用容器窗口单元根据PC显示器的显示屏的尺寸及Android应用界面的尺寸确定桌面操作系统中的容器窗口的窗口尺寸,根据确定窗口尺寸从Android应用显示缓冲区单元中读取相应的数据进行显示,Android应用首次在Android应用容器窗口单元显示时,Android应用容器窗口单元从Android应用显示缓冲区单元的起始位置开始读取数据;计算未在Android应用容器窗口单元中显示的数据在Android应用显示缓冲区单元中的坐标范围,将该坐标范围发送至Android系统;Android应用容器窗口单元中的滚动条用于控制Android应用窗口的显示范围。

Android应用容器窗口单元,需要响应以下两类事件,一是滚动条事件,即当用户拖动Android应用容器窗口单元中的滚动条时,Android应用容器窗口单元计算出其输出窗口的顶端与缓冲区内存储的页面顶端之间的距离,将该距离记为偏移量,并根据该偏移量offset重新计算待显示数据的范围,按照计算得到的范围从Android应用显示缓冲区读取数据并显示,再计算出未显示数据的坐标范围发送至Android系统;二是屏幕点击事件,即当用户使用触摸或鼠标点击桌面操作系统中显示的Android应用界面时,Android应用容器窗口单元得到当前触摸或鼠标点击位置的点击坐标,该点击坐标可以为显示器的绝对坐标,也可以为Android应用容器窗口单元所显示界面的绝对坐标,由此换算得到该点击坐标所对应的Android应用整个界面的坐标,从而得到Android应用显示缓冲区中相应的坐标,即响应坐标,再计算出未显示数据的坐标范围,Android应用容器窗口单元将响应坐标及未显示数据坐标范围一并发送至Android系统,由Android系统根据该响应坐标生成新的页面以响应用户的操作。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的护范围之内。

相关技术
  • 一种安卓应用在PC显示器中的显示方法及装置
  • 一种安卓应用在横屏显示器中的显示方法及装置
技术分类

06120112437849