CN113641437A - 一种Linux兼容Android的应用界面旋转方法及装置 - Google Patents
一种Linux兼容Android的应用界面旋转方法及装置 Download PDFInfo
- Publication number
- CN113641437A CN113641437A CN202110934552.XA CN202110934552A CN113641437A CN 113641437 A CN113641437 A CN 113641437A CN 202110934552 A CN202110934552 A CN 202110934552A CN 113641437 A CN113641437 A CN 113641437A
- Authority
- CN
- China
- Prior art keywords
- android
- window
- linux
- application
- screen
- 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.)
- Granted
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/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种Linux兼容Android的应用界面旋转方法及装置,创建一个加速度传感器实例;发起对Android应用的窗口进行旋转的动作;Android应用窗口接收对窗口旋转的消息;Android应用窗口旋转;旋转时Android应用的界面重新布局和绘制。通过模拟加速度传感器的方式,实现应用窗口旋转的功能。另外,各个应用窗口可以独立旋转,不会相互影响。
Description
技术领域
本发明涉及计算机操作系统领域,尤其涉及一种Linux兼容Android的应用界面旋转方法及装置。
背景技术
用户在正常使用手机或者平板时,在某些应用的界面,可以通过旋转手机,从而实现应用在横屏、竖屏之间切换显示,其实现原理是:手机或者平板内置了加速度传感器,当用户旋转手机时,加速度传感器会检测到手机角度的信息,将此信息传送到Android系统,Android系统根据这些信息,计算出Android系统即将显示的方向(横屏或者竖屏),如果角度变化比较小,可能不会触发显示方向的改变,如果角度变化比较大,则会触发显示方向的改变,Android系统旋转应用所在的窗口,从而实现了应用的窗口在横屏竖屏两个方向之间切换显示。
现有的基于传感器变化使得应用显示方向发生变化的方案大致如下:
当底层有传感器数据来时,传感器服务会将得到的传感器数据发到系统传感器管理,由于系统传感器管理保存着那些期望监听传感器变化的应用列表,所以系统传感器管理将得到的传感器数据发送这些监听者。由于安卓系统的窗口管理服务中的窗口方向监听器也期望监听传感器变化,因此也在系统传感器管理中的应用列表中,所以也会接收到传感器上报的数值,窗口方向监听器根据这些数值判断当前屏幕是否需要旋转。如果需要,窗口管理服务通知安卓系统的其他模块,进一步触发应用的界面重新布局和重新绘制。
而在Linux兼容Android环境中,由于不存在物理的加速度传感器器件,Android系统和应用无法监听加速度传感器信息的变化,也就不会收到手机角度的信息;其次,在Linux兼容Android环境中没有人为转动屏幕的行为,也不存在传感器数据变化的上报。所以,在Linux兼容Android环境下,无法通过检测传感器数值的变化来实现应用在横屏竖屏之间切换。
到目前为止,在Linux兼容Android环境中,现有技术均没有实现该功能。
发明内容
为了解决在Linux兼容Android的环境中,如何模拟物理传感器促使Android应用窗口实现旋转的问题,本发明提供了一种Linux兼容Android的应用界面旋转方法及装置。
一方面,本发明提供一种Linux兼容Android的应用界面旋转方法,所述方法应用在Linux上兼容运行Android系统的运行环境下,所述方法包括如下步骤:
步骤S1:在Linux上创建容器,在Linux上启动容器,在容器内启动Android系统;
步骤S2:Android系统的窗口管理服务中的窗口方向监听器注册加速度传感器时,创建一个加速度传感器实例;
步骤S3:在Android系统的文件目录下,新建第一文本与第二文本,所述第一文本、第二文本分别记录了Android应用从横屏到竖屏时、从竖屏到横屏时加速度传感器上报的数据;
步骤S4:发起对Android应用的窗口进行旋转的动作;Android应用窗口接收对窗口旋转的消息;Linux侧负责与Android进行通信的组件通过socket将包含窗口编号、旋转窗口指令的消息发送到Android侧负责与Linux交互的组件;Android侧负责与Linux交互的组件接收到消息后,将待旋转成的屏幕方向通知给Android系统的窗口管理服务中的窗口方向监听器,窗口方向监听器根据屏幕方向变换信息读取所述步骤S3中创建的文本中记录的传感器数据,判断当前屏幕是否需要旋转,如果需要旋转,窗口管理服务通知Android系统的图层合成和显示模块进行Android应用的界面重新布局和绘制;
步骤S5:如果当前屏幕需要旋转,Android侧旋转完成后,Android系统的图层合成和显示模块将合成的图层信息通过socket发送给Linux侧图层处理和显示的组件;Linux侧图层处理和显示的组件接收到合成的图层信息后,分析图层信息的屏幕方向和应用编号,并与应用编号的前次屏幕方向进行比较,判断Android侧是否旋转成功,若Android侧已经旋转成功,则通知Android应用显示窗口完成窗口的旋转。
在步骤S4之前,所述方法还包括:
启动Android应用时,Android侧负责与Linux交互的组件通过socket发送包含应用名和应用编号的启动应用消息给Linux侧负责与Android进行通信的组件,Linux侧负责与Android进行通信的组件接收到消息后,启动一个Android应用显示窗口,用来显示Android应用的界面,同时Android应用显示窗口记录当前应用的应用名和应用编号;
Android应用在启动过程中,Android系统的图层合成和显示模块将Android应用的界面进行图层的合成和显示,将合成的图层信息通过socket发送给Linux侧图层处理和显示的组件,Linux侧图层处理和显示的组件记录当前应用前次图层的屏幕方向,所述合成的图层信息包含图层对应的应用编号、图层的宽度高度值以及图层的屏幕方向。
进一步地,所述步骤S4中发起对Android应用的窗口进行旋转的动作,具体为:
在Android应用显示窗口上点击鼠标右键,弹出一个右键操作菜单,所述右键操作菜单中包含旋转窗口的菜单项,点击右键操作菜单中的旋转窗口菜单项,触发对Android应用的窗口进行旋转。
进一步地,所述步骤S4中窗口方向监听器根据屏幕方向变换信息读取所述步骤S3中创建的文本中记录的传感器数据,判断当前屏幕是否需要旋转,具体为:
窗口方向监听器,根据:当前窗口若从横屏转向竖屏,则读取第一文本中的加速度传感器数据;当前窗口若从竖屏转向横屏,则读取第二文本中的加速度传感器数据;判断当前屏幕是否需要旋转。
另一方面,本发明提供一种Linux兼容Android的应用界面旋转装置,所述装置应用在Linux上兼容运行Android系统的运行环境下,所述装置包括:
容器创建启动单元,用于:在Linux上创建容器,在Linux上启动容器,在容器内启动Android系统;
传感器实例创建单元,用于:Android系统的窗口管理服务中的窗口方向监听器注册加速度传感器时,创建一个加速度传感器实例;
传感器数据文本创建单元,用于:在Android系统的文件目录下,新建第一文本与第二文本,所述第一文本、第二文本分别记录了Android应用从横屏到竖屏时、从竖屏到横屏时加速度传感器上报的数据;
窗口旋转单元,用于:发起对Android应用的窗口进行旋转的动作;Android应用窗口接收对窗口旋转的消息;Linux侧负责与Android进行通信的组件通过socket将包含窗口编号、旋转窗口指令的消息发送到Android侧负责与Linux交互的组件;Android侧负责与Linux交互的组件接收到消息后,将待旋转成的屏幕方向通知给Android系统的窗口管理服务中的窗口方向监听器,窗口方向监听器根据屏幕方向变换信息读取所述步骤S3中创建的文本中记录的传感器数据,判断当前屏幕是否需要旋转,如果需要旋转,窗口管理服务通知Android系统的图层合成和显示模块进行Android应用的界面重新布局和绘制;
如果当前屏幕需要旋转,Android侧旋转完成后,Android系统的图层合成和显示模块将合成的图层信息通过socket发送给Linux侧图层处理和显示的组件;Linux侧图层处理和显示的组件接收到合成的图层信息后,分析图层信息的屏幕方向和应用编号,并与应用编号的前次屏幕方向进行比较,判断Android侧是否旋转成功,若Android侧已经旋转成功,则通知Android应用显示窗口完成窗口的旋转。
所述装置还包括:
Android应用启动子单元,用于:
启动Android应用时,Android侧负责与Linux交互的组件通过socket发送包含应用名和应用编号的启动应用消息给Linux侧负责与Android进行通信的组件,Linux侧负责与Android进行通信的组件接收到消息后,启动一个Android应用显示窗口,用来显示Android应用的界面,同时Android应用显示窗口记录当前应用的应用名和应用编号;
Android应用在启动过程中,Android系统的图层合成和显示模块将Android应用的界面进行图层的合成和显示,将合成的图层信息通过socket发送给Linux侧图层处理和显示的组件,Linux侧图层处理和显示的组件记录当前应用前次图层的屏幕方向,所述合成的图层信息包含图层对应的应用编号、图层的宽度高度值以及图层的屏幕方向。
进一步地,所述窗口旋转单元包括:
触发旋转子单元,用于:
在Android应用显示窗口上点击鼠标右键,弹出一个右键操作菜单,所述右键操作菜单中包含旋转窗口的菜单项,点击右键操作菜单中的旋转窗口菜单项,触发对Android应用的窗口进行旋转。
进一步地,所述窗口旋转单元包括:
屏幕变换判断子单元,用于:
窗口方向监听器,根据:当前窗口若从横屏转向竖屏,则读取第一文本中的加速度传感器数据;当前窗口若从竖屏转向横屏,则读取第二文本中的加速度传感器数据;判断当前屏幕是否需要旋转。
本发明与现有技术相比,具有以下优点:
在Linux兼容Android的环境,可以在没有加速度传感器固件的环境中,通过模拟加速度传感器的方式,实现应用窗口旋转的功能,可以使应用保持在旋转后的屏幕方向下运行。另外,各个应用窗口可以独立旋转,各个应用窗口之间互相独立,不会相互影响。
附图说明
图1是本发明实施例提供的一种Linux兼容Android的应用界面旋转方法示意图;
图2是本发明实施例提供的一种Linux兼容Android的应用界面旋转装置组成示意图;
图3a是本发明实施例提供的一种Linux兼容Android的应用微信旋转前的界面示意图;
图3b是本发明实施例提供的一种Linux兼容Android的应用微信旋转后的界面示意图;
图3c是本发明实施例提供的一种Linux兼容Android的应用钉钉旋转前的界面示意图;
图3d是本发明实施例提供的一种Linux兼容Android的应用钉钉旋转后的界面示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
对于在Linux操作系统上兼容运行Android的运行环境来说,Android运行环境是运行在容器中的。
容器是近些年由Linux内核支持的一种轻量级虚拟技术。通过容器技术可以在Linux系统运行一个新的Linux系统(包括其他基于Linux系统定制的系统,如Android),容器使得客户机系统和主机系统相互隔离。与传统的基于虚拟机技术的方案不同,在容器技术中,客户系统与主机系统共享CPU、内存、存储等资源,资源开销很低。此外,通过适当的配置,还能使客户系统直接访问主机的硬件资源,进一步提升客户系统的性能。
图1是本发明实施例提供的一种Linux兼容Android的应用界面旋转方法,所述方法应用在Linux上兼容运行Android系统的运行环境下,所述方法包括如下步骤:
步骤S1:在Linux上创建容器,在Linux上启动容器,在容器内启动Android系统;
步骤S2:Android系统的窗口管理服务中的窗口方向监听器注册加速度传感器时,创建一个加速度传感器实例;
具体地,在Linux兼容Android环境中,安卓系统启动时,安卓系统的窗口管理服务中的窗口方向监听器在注册加速度传感器时,应用在获取某个类型的传感器时,不去查询Android系统中存在的物理传感器,而是创建一个该类型的传感器实例,这样窗口方向监听器就可以针对该类型的传感器实施监听变化,应用就可以针对该类型的传感器实施监听变化;
步骤S3:在Android系统的文件目录下,新建第一文本与第二文本,所述第一文本、第二文本分别记录了Android应用从横屏到竖屏时、从竖屏到横屏时加速度传感器上报的数据;
具体地,提前通过获取真实手机或者平板旋转时底层传感器上报的数据并保存在手机或者平板某个目录下,当手持手机模拟手机旋转的动作时,获取到传感器上报的数据,将这些数据保存在第一文本、第二文本中,并且将这些数据发送到系统传感器管理,这样系统传感器管理就可以把这些数据发送到那些期望监听传感器数据的应用;
步骤S4:发起对Android应用的窗口进行旋转的动作;Android应用窗口接收对窗口旋转的消息;Linux侧负责与Android进行通信的组件通过socket将包含窗口编号、旋转窗口指令的消息发送到Android侧负责与Linux交互的组件;Android侧负责与Linux交互的组件接收到消息后,将待旋转成的屏幕方向通知给Android系统的窗口管理服务中的窗口方向监听器,窗口方向监听器根据屏幕方向变换信息读取所述步骤S3中创建的文本中记录的传感器数据,判断当前屏幕是否需要旋转,如果需要旋转,窗口管理服务通知Android系统的图层合成和显示模块进行Android应用的界面重新布局和绘制;
步骤S5:如果当前屏幕需要旋转,Android侧旋转完成后,Android系统的图层合成和显示模块将合成的图层信息通过socket发送给Linux侧图层处理和显示的组件;Linux侧图层处理和显示的组件接收到合成的图层信息后,分析图层信息的屏幕方向和应用编号,并与应用编号的前次屏幕方向进行比较,判断Android侧是否旋转成功,若Android侧已经旋转成功,则通知Android应用显示窗口完成窗口的旋转。
在步骤S4之前,所述方法还包括:
启动Android应用时,Android侧负责与Linux交互的组件通过socket发送包含应用名和应用编号的启动应用消息给Linux侧负责与Android进行通信的组件,Linux侧负责与Android进行通信的组件接收到消息后,启动一个Android应用显示窗口,用来显示Android应用的界面,同时Android应用显示窗口记录当前应用的应用名和应用编号;
Android应用在启动过程中,Android系统的图层合成和显示模块将Android应用的界面进行图层的合成和显示,将合成的图层信息通过socket发送给Linux侧图层处理和显示的组件,Linux侧图层处理和显示的组件记录当前应用前次图层的屏幕方向,所述合成的图层信息包含图层对应的应用编号、图层的宽度高度值以及图层的屏幕方向。
进一步地,所述步骤S4中发起对Android应用的窗口进行旋转的动作,具体为:
在Android应用显示窗口上点击鼠标右键,弹出一个右键操作菜单,所述右键操作菜单中包含旋转窗口的菜单项,点击右键操作菜单中的旋转窗口菜单项,触发对Android应用的窗口进行旋转。
进一步地,所述步骤S4中窗口方向监听器根据屏幕方向变换信息读取所述步骤S3中创建的文本中记录的传感器数据,判断当前屏幕是否需要旋转,具体为:
窗口方向监听器,根据:当前窗口若从横屏转向竖屏,则读取第一文本中的加速度传感器数据;当前窗口若从竖屏转向横屏,则读取第二文本中的加速度传感器数据;判断当前屏幕是否需要旋转。
图2是本发明实施例提供的一种Linux兼容Android的应用界面旋转装置,所述装置应用在Linux上兼容运行Android系统的运行环境下,所述装置包括:
容器创建启动单元,用于:在Linux上创建容器,在Linux上启动容器,在容器内启动Android系统;
传感器实例创建单元,用于:Android系统的窗口管理服务中的窗口方向监听器注册加速度传感器时,创建一个加速度传感器实例;
传感器数据文本创建单元,用于:在Android系统的文件目录下,新建第一文本与第二文本,所述第一文本、第二文本分别记录了Android应用从横屏到竖屏时、从竖屏到横屏时加速度传感器上报的数据;
窗口旋转单元,用于:发起对Android应用的窗口进行旋转的动作;Android应用窗口接收对窗口旋转的消息;Linux侧负责与Android进行通信的组件通过socket将包含窗口编号、旋转窗口指令的消息发送到Android侧负责与Linux交互的组件;Android侧负责与Linux交互的组件接收到消息后,将待旋转成的屏幕方向通知给Android系统的窗口管理服务中的窗口方向监听器,窗口方向监听器根据屏幕方向变换信息读取所述步骤S3中创建的文本中记录的传感器数据,判断当前屏幕是否需要旋转,如果需要旋转,窗口管理服务通知Android系统的图层合成和显示模块进行Android应用的界面重新布局和绘制;
如果当前屏幕需要旋转,Android侧旋转完成后,Android系统的图层合成和显示模块将合成的图层信息通过socket发送给Linux侧图层处理和显示的组件;Linux侧图层处理和显示的组件接收到合成的图层信息后,分析图层信息的屏幕方向和应用编号,并与应用编号的前次屏幕方向进行比较,判断Android侧是否旋转成功,若Android侧已经旋转成功,则通知Android应用显示窗口完成窗口的旋转。
所述装置还包括:
Android应用启动子单元,用于:
启动Android应用时,Android侧负责与Linux交互的组件通过socket发送包含应用名和应用编号的启动应用消息给Linux侧负责与Android进行通信的组件,Linux侧负责与Android进行通信的组件接收到消息后,启动一个Android应用显示窗口,用来显示Android应用的界面,同时Android应用显示窗口记录当前应用的应用名和应用编号;
Android应用在启动过程中,Android系统的图层合成和显示模块将Android应用的界面进行图层的合成和显示,将合成的图层信息通过socket发送给Linux侧图层处理和显示的组件,Linux侧图层处理和显示的组件记录当前应用前次图层的屏幕方向,所述合成的图层信息包含图层对应的应用编号、图层的宽度高度值以及图层的屏幕方向。
进一步地,所述窗口旋转单元包括:
触发旋转子单元,用于:
在Android应用显示窗口上点击鼠标右键,弹出一个右键操作菜单,所述右键操作菜单中包含旋转窗口的菜单项,点击右键操作菜单中的旋转窗口菜单项,触发对Android应用的窗口进行旋转。
进一步地,所述窗口旋转单元包括:
屏幕变换判断子单元,用于:
窗口方向监听器,根据:当前窗口若从横屏转向竖屏,则读取第一文本中的加速度传感器数据;当前窗口若从竖屏转向横屏,则读取第二文本中的加速度传感器数据;判断当前屏幕是否需要旋转。
图3a是本发明实施例提供的一种Linux兼容Android的应用微信旋转前的界面示意图;初始状态,界面上微信、钉钉均为竖屏显示,在微信竖屏界面右键点击弹出“旋转窗口”。
图3b是本发明实施例提供的一种Linux兼容Android的应用微信旋转后的界面示意图;界面上,微信从竖屏旋转为横屏后,钉钉仍为竖屏显示。
图3c是本发明实施例提供的一种Linux兼容Android的应用钉钉旋转前的界面示意图;界面上,微信为旋转后的横屏显示,钉钉在竖屏界面右键点击弹出“旋转窗口”。
图3d是本发明实施例提供的一种Linux兼容Android的应用钉钉旋转后的界面示意图,界面上,微信为横屏显示,钉钉从竖屏旋转为横屏后的显示。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种Linux兼容Android的应用界面旋转方法,其特征在于,所述方法应用在Linux上兼容运行Android系统的运行环境下,所述方法包括如下步骤:
步骤S1:在Linux上创建容器,在Linux上启动容器,在容器内启动Android系统;
步骤S2:Android系统的窗口管理服务中的窗口方向监听器注册加速度传感器时,创建一个加速度传感器实例;
步骤S3:在Android系统的文件目录下,新建第一文本与第二文本,所述第一文本、第二文本分别记录了Android应用从横屏到竖屏时、从竖屏到横屏时加速度传感器上报的数据;
步骤S4:发起对Android应用的窗口进行旋转的动作;Android应用窗口接收对窗口旋转的消息;Linux侧负责与Android进行通信的组件通过socket将包含窗口编号、旋转窗口指令的消息发送到Android侧负责与Linux交互的组件;Android侧负责与Linux交互的组件接收到消息后,将待旋转成的屏幕方向通知给Android系统的窗口管理服务中的窗口方向监听器,窗口方向监听器根据屏幕方向变换信息读取所述步骤S3中创建的文本中记录的传感器数据,判断当前屏幕是否需要旋转,如果需要旋转,窗口管理服务通知Android系统的图层合成和显示模块进行Android应用的界面重新布局和绘制;
步骤S5:如果当前屏幕需要旋转,Android侧旋转完成后,Android系统的图层合成和显示模块将合成的图层信息通过socket发送给Linux侧图层处理和显示的组件;Linux侧图层处理和显示的组件接收到合成的图层信息后,分析图层信息的屏幕方向和应用编号,并与应用编号的前次屏幕方向进行比较,判断Android侧是否旋转成功,若Android侧已经旋转成功,则通知Android应用显示窗口完成窗口的旋转。
2.如权利要求1所述的Linux兼容Android的应用界面旋转方法,其特征在于,在步骤S4之前,所述方法还包括:
启动Android应用时,Android侧负责与Linux交互的组件通过socket发送包含应用名和应用编号的启动应用消息给Linux侧负责与Android进行通信的组件,Linux侧负责与Android进行通信的组件接收到消息后,启动一个Android应用显示窗口,用来显示Android应用的界面,同时Android应用显示窗口记录当前应用的应用名和应用编号;
Android应用在启动过程中,Android系统的图层合成和显示模块将Android应用的界面进行图层的合成和显示,将合成的图层信息通过socket发送给Linux侧图层处理和显示的组件,Linux侧图层处理和显示的组件记录当前应用前次图层的屏幕方向,所述合成的图层信息包含图层对应的应用编号、图层的宽度高度值以及图层的屏幕方向。
3.如权利要求1所述的Linux兼容Android的应用界面旋转方法,其特征在于,所述步骤S4中发起对Android应用的窗口进行旋转的动作,具体为:
在Android应用显示窗口上点击鼠标右键,弹出一个右键操作菜单,所述右键操作菜单中包含旋转窗口的菜单项,点击右键操作菜单中的旋转窗口菜单项,触发对Android应用的窗口进行旋转。
4.如权利要求1所述的Linux兼容Android的应用界面旋转方法,其特征在于,所述步骤S4中窗口方向监听器根据屏幕方向变换信息读取所述步骤S3中创建的文本中记录的传感器数据,判断当前屏幕是否需要旋转,具体为:
窗口方向监听器,根据:当前窗口若从横屏转向竖屏,则读取第一文本中的加速度传感器数据;当前窗口若从竖屏转向横屏,则读取第二文本中的加速度传感器数据;判断当前屏幕是否需要旋转。
5.一种Linux兼容Android的应用界面旋转装置,其特征在于,所述装置应用在Linux上兼容运行Android系统的运行环境下,所述装置包括:
容器创建启动单元,用于:在Linux上创建容器,在Linux上启动容器,在容器内启动Android系统;
传感器实例创建单元,用于:Android系统的窗口管理服务中的窗口方向监听器注册加速度传感器时,创建一个加速度传感器实例;
传感器数据文本创建单元,用于:在Android系统的文件目录下,新建第一文本与第二文本,所述第一文本、第二文本分别记录了Android应用从横屏到竖屏时、从竖屏到横屏时加速度传感器上报的数据;
窗口旋转单元,用于:发起对Android应用的窗口进行旋转的动作;Android应用窗口接收对窗口旋转的消息;Linux侧负责与Android进行通信的组件通过socket将包含窗口编号、旋转窗口指令的消息发送到Android侧负责与Linux交互的组件;Android侧负责与Linux交互的组件接收到消息后,将待旋转成的屏幕方向通知给Android系统的窗口管理服务中的窗口方向监听器,窗口方向监听器根据屏幕方向变换信息读取所述步骤S3中创建的文本中记录的传感器数据,判断当前屏幕是否需要旋转,如果需要旋转,窗口管理服务通知Android系统的图层合成和显示模块进行Android应用的界面重新布局和绘制;
如果当前屏幕需要旋转,Android侧旋转完成后,Android系统的图层合成和显示模块将合成的图层信息通过socket发送给Linux侧图层处理和显示的组件;Linux侧图层处理和显示的组件接收到合成的图层信息后,分析图层信息的屏幕方向和应用编号,并与应用编号的前次屏幕方向进行比较,判断Android侧是否旋转成功,若Android侧已经旋转成功,则通知Android应用显示窗口完成窗口的旋转。
6.如权利要求5所述的Linux兼容Android的应用界面旋转装置,其特征在于,所述装置还包括:
Android应用启动子单元,用于:
启动Android应用时,Android侧负责与Linux交互的组件通过socket发送包含应用名和应用编号的启动应用消息给Linux侧负责与Android进行通信的组件,Linux侧负责与Android进行通信的组件接收到消息后,启动一个Android应用显示窗口,用来显示Android应用的界面,同时Android应用显示窗口记录当前应用的应用名和应用编号;
Android应用在启动过程中,Android系统的图层合成和显示模块将Android应用的界面进行图层的合成和显示,将合成的图层信息通过socket发送给Linux侧图层处理和显示的组件,Linux侧图层处理和显示的组件记录当前应用前次图层的屏幕方向,所述合成的图层信息包含图层对应的应用编号、图层的宽度高度值以及图层的屏幕方向。
7.如权利要求5所述的Linux兼容Android的应用界面旋转装置,其特征在于,所述窗口旋转单元包括:
触发旋转子单元,用于:
在Android应用显示窗口上点击鼠标右键,弹出一个右键操作菜单,所述右键操作菜单中包含旋转窗口的菜单项,点击右键操作菜单中的旋转窗口菜单项,触发对Android应用的窗口进行旋转。
8.如权利要求5所述的Linux兼容Android的应用界面旋转装置,其特征在于,所述窗口旋转单元包括:
屏幕变换判断子单元,用于:
窗口方向监听器,根据:当前窗口若从横屏转向竖屏,则读取第一文本中的加速度传感器数据;当前窗口若从竖屏转向横屏,则读取第二文本中的加速度传感器数据;判断当前屏幕是否需要旋转。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110934552.XA CN113641437B (zh) | 2021-08-16 | 2021-08-16 | 一种Linux兼容Android的应用界面旋转方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110934552.XA CN113641437B (zh) | 2021-08-16 | 2021-08-16 | 一种Linux兼容Android的应用界面旋转方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113641437A true CN113641437A (zh) | 2021-11-12 |
CN113641437B CN113641437B (zh) | 2023-06-16 |
Family
ID=78421877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110934552.XA Active CN113641437B (zh) | 2021-08-16 | 2021-08-16 | 一种Linux兼容Android的应用界面旋转方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113641437B (zh) |
Citations (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693111A (zh) * | 2011-07-06 | 2012-09-26 | 合肥华恒电子科技有限责任公司 | 一种Android移动终端支持不同分辨率的方法 |
US20130106703A1 (en) * | 2011-10-31 | 2013-05-02 | Ahmed Mia | Functionally interchangeable data processing device having a rotatable display unit |
EP2728435A2 (en) * | 2012-10-31 | 2014-05-07 | Ahmed Mia | Functionally interchangeable data processing device having a rotatable display unit |
CN103970526A (zh) * | 2013-11-21 | 2014-08-06 | 成都力淼科技有限公司 | 一种基于Android单Activity的视图切换技术 |
CN104461242A (zh) * | 2014-12-08 | 2015-03-25 | 深圳市嘉乐派科技有限公司 | 一种基于Android操作系统的多窗口界面实现方法 |
US20150116310A1 (en) * | 2013-10-28 | 2015-04-30 | Vmware, Inc. | Method and system to virtualize graphic processing services |
CN105208457A (zh) * | 2015-09-25 | 2015-12-30 | 福建捷联电子有限公司 | 一种Android电视应用程序旋转方法 |
US20160000210A1 (en) * | 2014-07-02 | 2016-01-07 | Rory Robenalt | Tablet Sling |
CN105260004A (zh) * | 2015-09-22 | 2016-01-20 | 广东欧珀移动通信有限公司 | android系统终端的屏幕旋转方法和系统 |
CN105338186A (zh) * | 2015-11-11 | 2016-02-17 | 华南理工大学 | 基于情景感知的Android移动终端电源管理方法 |
US20160170846A1 (en) * | 2014-12-12 | 2016-06-16 | Intel Corporation | Accelerated data recovery in a storage system |
CN105892892A (zh) * | 2014-12-19 | 2016-08-24 | 上海涌杰信息科技有限公司 | 一种基于安卓系统的移动终端中键位设置的控制方法 |
CN106095530A (zh) * | 2016-06-08 | 2016-11-09 | 电子科技大学 | 一种多Android系统的容器自动创建及其启动方法 |
CN106843796A (zh) * | 2017-03-01 | 2017-06-13 | 北京海杭通讯科技有限公司 | 一种单屏幕显示双系统画面的显示方法 |
US20170244879A1 (en) * | 2016-02-18 | 2017-08-24 | Richard Dikran Bezjian | Automatic Switching Multi-Video |
CN107145269A (zh) * | 2017-04-19 | 2017-09-08 | 腾讯科技(深圳)有限公司 | 一种数据旋转方法以及装置 |
CN107213643A (zh) * | 2017-03-27 | 2017-09-29 | 网易(杭州)网络有限公司 | 游戏画面的显示控制方法及装置、存储介质、电子设备 |
CN107229467A (zh) * | 2017-05-10 | 2017-10-03 | 北京海杭通讯科技有限公司 | 一种基于android容器的device mapper隔离方法 |
US20170337753A1 (en) * | 2016-05-17 | 2017-11-23 | International Business Machines Corporation | Vehicle accident reporting system |
CN107562361A (zh) * | 2017-09-06 | 2018-01-09 | 广东欧珀移动通信有限公司 | 消息处理方法、装置及终端 |
CN107766038A (zh) * | 2017-10-24 | 2018-03-06 | 四川长虹电器股份有限公司 | 一种基于Android系统对UI控件进行轮廓剪裁及美化的方法 |
CN107967102A (zh) * | 2017-12-29 | 2018-04-27 | 北京酷我科技有限公司 | 一种Android系统中的视图控件 |
CN108062237A (zh) * | 2017-11-23 | 2018-05-22 | 上海博泰悦臻电子设备制造有限公司 | Linux系统和Android系统的兼容方法及系统、存储介质及车载终端 |
CN108279963A (zh) * | 2018-01-05 | 2018-07-13 | 郑州信大捷安信息技术股份有限公司 | 一种单Linux内核多Android系统的智能终端显示虚拟化方法 |
CN108390810A (zh) * | 2018-01-05 | 2018-08-10 | 郑州信大捷安信息技术股份有限公司 | 一种基于单Linux内核多Android系统网络虚拟化方法 |
CN108647057A (zh) * | 2018-05-10 | 2018-10-12 | Oppo广东移动通信有限公司 | 屏幕方向设置方法、装置、存储介质及终端 |
CN108762815A (zh) * | 2018-05-16 | 2018-11-06 | 北京麟卓信息科技有限公司 | 一种基于非虚拟化体系架构的Android运行环境实现方法 |
CN108803988A (zh) * | 2018-05-30 | 2018-11-13 | Oppo广东移动通信有限公司 | 电子设备控制方法、装置、存储介质及电子设备 |
CN109298913A (zh) * | 2018-09-26 | 2019-02-01 | 武芮 | 一种多容器系统间调度系统资源的方法及装置 |
CN109358914A (zh) * | 2018-10-16 | 2019-02-19 | 栗宏刚 | 基于传感器芯片输出数据的应用程序app启动关闭方法 |
CN109587118A (zh) * | 2018-11-11 | 2019-04-05 | 徐琳 | Android网游的分布式支持多终端和多网络的系统 |
CN109857495A (zh) * | 2018-12-25 | 2019-06-07 | 维沃移动通信有限公司 | 一种显示控制方法及终端设备 |
US20190299999A1 (en) * | 2018-03-27 | 2019-10-03 | Hong Kong Productivity Council (HKPC) | Drowsiness Detection and Intervention System and Method |
CN110515667A (zh) * | 2019-08-26 | 2019-11-29 | 武汉蓝星科技股份有限公司 | 一种基于linux内核的终端双系统显示切换方法及终端双系统 |
CN110618876A (zh) * | 2019-03-21 | 2019-12-27 | 天津麒麟信息技术有限公司 | 一种基于飞腾平台与共享内核的Linux与Android并存和交互方法 |
US20200185952A1 (en) * | 2018-12-10 | 2020-06-11 | Xentris Wireless Llc | Exchangeable interface charging dock |
CN111309445A (zh) * | 2020-03-09 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 程序运行方法和装置及存储介质 |
CN111866275A (zh) * | 2020-07-13 | 2020-10-30 | 珠海格力电器股份有限公司 | 屏幕调整方法、装置、存储介质及处理器 |
CN111885400A (zh) * | 2020-07-31 | 2020-11-03 | 聚好看科技股份有限公司 | 媒体数据展示方法、服务器及显示设备 |
CN112114916A (zh) * | 2020-08-31 | 2020-12-22 | 北京技德系统技术有限公司 | 一种在Linux操作系统上兼容运行Android应用的方法和装置 |
CN112269604A (zh) * | 2020-11-11 | 2021-01-26 | 北京技德系统技术有限公司 | 在Linux上兼容运行Android应用的窗口交互方法及装置 |
CN112379955A (zh) * | 2020-11-17 | 2021-02-19 | 北京麟卓信息科技有限公司 | 一种安卓应用在横屏显示器中的显示方法及装置 |
CN112860363A (zh) * | 2021-02-07 | 2021-05-28 | 麒麟软件有限公司 | 一种基于Linux系统的Android应用窗口状态动态更新方法 |
CN113082721A (zh) * | 2021-05-11 | 2021-07-09 | 腾讯音乐娱乐科技(深圳)有限公司 | 集成游戏模块的应用程序的资源管理方法、装置、电子设备及存储介质 |
CN113157362A (zh) * | 2021-04-27 | 2021-07-23 | 麒麟软件有限公司 | 一种应用于Linux上Android多窗口显示方法 |
CN113204307A (zh) * | 2021-05-06 | 2021-08-03 | 技德技术研究所(武汉)有限公司 | 一种在Linux上兼容运行Android系统的文件发送方法及装置 |
CN113254154A (zh) * | 2021-05-21 | 2021-08-13 | 技德技术研究所(武汉)有限公司 | 一种在Linux上兼容运行Android系统的应用启动方法及装置 |
-
2021
- 2021-08-16 CN CN202110934552.XA patent/CN113641437B/zh active Active
Patent Citations (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693111A (zh) * | 2011-07-06 | 2012-09-26 | 合肥华恒电子科技有限责任公司 | 一种Android移动终端支持不同分辨率的方法 |
US20130106703A1 (en) * | 2011-10-31 | 2013-05-02 | Ahmed Mia | Functionally interchangeable data processing device having a rotatable display unit |
EP2728435A2 (en) * | 2012-10-31 | 2014-05-07 | Ahmed Mia | Functionally interchangeable data processing device having a rotatable display unit |
US20150116310A1 (en) * | 2013-10-28 | 2015-04-30 | Vmware, Inc. | Method and system to virtualize graphic processing services |
CN103970526A (zh) * | 2013-11-21 | 2014-08-06 | 成都力淼科技有限公司 | 一种基于Android单Activity的视图切换技术 |
US20160000210A1 (en) * | 2014-07-02 | 2016-01-07 | Rory Robenalt | Tablet Sling |
CN104461242A (zh) * | 2014-12-08 | 2015-03-25 | 深圳市嘉乐派科技有限公司 | 一种基于Android操作系统的多窗口界面实现方法 |
US20160170846A1 (en) * | 2014-12-12 | 2016-06-16 | Intel Corporation | Accelerated data recovery in a storage system |
CN105892892A (zh) * | 2014-12-19 | 2016-08-24 | 上海涌杰信息科技有限公司 | 一种基于安卓系统的移动终端中键位设置的控制方法 |
CN105260004A (zh) * | 2015-09-22 | 2016-01-20 | 广东欧珀移动通信有限公司 | android系统终端的屏幕旋转方法和系统 |
CN105208457A (zh) * | 2015-09-25 | 2015-12-30 | 福建捷联电子有限公司 | 一种Android电视应用程序旋转方法 |
CN105338186A (zh) * | 2015-11-11 | 2016-02-17 | 华南理工大学 | 基于情景感知的Android移动终端电源管理方法 |
US20170244879A1 (en) * | 2016-02-18 | 2017-08-24 | Richard Dikran Bezjian | Automatic Switching Multi-Video |
US20170337753A1 (en) * | 2016-05-17 | 2017-11-23 | International Business Machines Corporation | Vehicle accident reporting system |
CN106095530A (zh) * | 2016-06-08 | 2016-11-09 | 电子科技大学 | 一种多Android系统的容器自动创建及其启动方法 |
CN106843796A (zh) * | 2017-03-01 | 2017-06-13 | 北京海杭通讯科技有限公司 | 一种单屏幕显示双系统画面的显示方法 |
CN107213643A (zh) * | 2017-03-27 | 2017-09-29 | 网易(杭州)网络有限公司 | 游戏画面的显示控制方法及装置、存储介质、电子设备 |
CN107145269A (zh) * | 2017-04-19 | 2017-09-08 | 腾讯科技(深圳)有限公司 | 一种数据旋转方法以及装置 |
CN107229467A (zh) * | 2017-05-10 | 2017-10-03 | 北京海杭通讯科技有限公司 | 一种基于android容器的device mapper隔离方法 |
CN107562361A (zh) * | 2017-09-06 | 2018-01-09 | 广东欧珀移动通信有限公司 | 消息处理方法、装置及终端 |
CN107766038A (zh) * | 2017-10-24 | 2018-03-06 | 四川长虹电器股份有限公司 | 一种基于Android系统对UI控件进行轮廓剪裁及美化的方法 |
CN108062237A (zh) * | 2017-11-23 | 2018-05-22 | 上海博泰悦臻电子设备制造有限公司 | Linux系统和Android系统的兼容方法及系统、存储介质及车载终端 |
CN107967102A (zh) * | 2017-12-29 | 2018-04-27 | 北京酷我科技有限公司 | 一种Android系统中的视图控件 |
CN108279963A (zh) * | 2018-01-05 | 2018-07-13 | 郑州信大捷安信息技术股份有限公司 | 一种单Linux内核多Android系统的智能终端显示虚拟化方法 |
CN108390810A (zh) * | 2018-01-05 | 2018-08-10 | 郑州信大捷安信息技术股份有限公司 | 一种基于单Linux内核多Android系统网络虚拟化方法 |
US20190299999A1 (en) * | 2018-03-27 | 2019-10-03 | Hong Kong Productivity Council (HKPC) | Drowsiness Detection and Intervention System and Method |
CN108647057A (zh) * | 2018-05-10 | 2018-10-12 | Oppo广东移动通信有限公司 | 屏幕方向设置方法、装置、存储介质及终端 |
CN108762815A (zh) * | 2018-05-16 | 2018-11-06 | 北京麟卓信息科技有限公司 | 一种基于非虚拟化体系架构的Android运行环境实现方法 |
CN108803988A (zh) * | 2018-05-30 | 2018-11-13 | Oppo广东移动通信有限公司 | 电子设备控制方法、装置、存储介质及电子设备 |
CN109298913A (zh) * | 2018-09-26 | 2019-02-01 | 武芮 | 一种多容器系统间调度系统资源的方法及装置 |
CN109358914A (zh) * | 2018-10-16 | 2019-02-19 | 栗宏刚 | 基于传感器芯片输出数据的应用程序app启动关闭方法 |
CN109587118A (zh) * | 2018-11-11 | 2019-04-05 | 徐琳 | Android网游的分布式支持多终端和多网络的系统 |
US20200185952A1 (en) * | 2018-12-10 | 2020-06-11 | Xentris Wireless Llc | Exchangeable interface charging dock |
CN109857495A (zh) * | 2018-12-25 | 2019-06-07 | 维沃移动通信有限公司 | 一种显示控制方法及终端设备 |
CN110618876A (zh) * | 2019-03-21 | 2019-12-27 | 天津麒麟信息技术有限公司 | 一种基于飞腾平台与共享内核的Linux与Android并存和交互方法 |
CN110515667A (zh) * | 2019-08-26 | 2019-11-29 | 武汉蓝星科技股份有限公司 | 一种基于linux内核的终端双系统显示切换方法及终端双系统 |
CN111309445A (zh) * | 2020-03-09 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 程序运行方法和装置及存储介质 |
CN111866275A (zh) * | 2020-07-13 | 2020-10-30 | 珠海格力电器股份有限公司 | 屏幕调整方法、装置、存储介质及处理器 |
CN111885400A (zh) * | 2020-07-31 | 2020-11-03 | 聚好看科技股份有限公司 | 媒体数据展示方法、服务器及显示设备 |
CN112114916A (zh) * | 2020-08-31 | 2020-12-22 | 北京技德系统技术有限公司 | 一种在Linux操作系统上兼容运行Android应用的方法和装置 |
CN112269604A (zh) * | 2020-11-11 | 2021-01-26 | 北京技德系统技术有限公司 | 在Linux上兼容运行Android应用的窗口交互方法及装置 |
CN112379955A (zh) * | 2020-11-17 | 2021-02-19 | 北京麟卓信息科技有限公司 | 一种安卓应用在横屏显示器中的显示方法及装置 |
CN112860363A (zh) * | 2021-02-07 | 2021-05-28 | 麒麟软件有限公司 | 一种基于Linux系统的Android应用窗口状态动态更新方法 |
CN113157362A (zh) * | 2021-04-27 | 2021-07-23 | 麒麟软件有限公司 | 一种应用于Linux上Android多窗口显示方法 |
CN113204307A (zh) * | 2021-05-06 | 2021-08-03 | 技德技术研究所(武汉)有限公司 | 一种在Linux上兼容运行Android系统的文件发送方法及装置 |
CN113082721A (zh) * | 2021-05-11 | 2021-07-09 | 腾讯音乐娱乐科技(深圳)有限公司 | 集成游戏模块的应用程序的资源管理方法、装置、电子设备及存储介质 |
CN113254154A (zh) * | 2021-05-21 | 2021-08-13 | 技德技术研究所(武汉)有限公司 | 一种在Linux上兼容运行Android系统的应用启动方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113641437B (zh) | 2023-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11494010B2 (en) | Touch support for remoted applications | |
US20200348810A1 (en) | Display Management for Native User Experiences | |
CN107276789B (zh) | 日志上传方法、装置及计算机可读存储介质 | |
CN104536802B (zh) | 一种实现应用调用的方法及虚拟机 | |
CN102918490B (zh) | 与在平板计算装置的虚拟桌面内显示的远程应用交互 | |
US20220075518A1 (en) | Fast Data Copying Method and Electronic Device | |
EP3617889B1 (en) | Stutter detection method and device | |
US11455075B2 (en) | Display method when application is exited and terminal | |
US20130024777A1 (en) | Method and apparatus for triggering a remote data entry interface | |
US20120185799A1 (en) | Managing windows in virtual environment | |
WO2013011198A2 (en) | Method and apparatus for providing data entry content to a remote environment | |
CN107885635B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN107704133B (zh) | 冻屏监测与解决方法、移动终端及计算机可读存储介质 | |
JP2013541724A (ja) | 複数の物理的なディスプレイの間のディスプレイ移動を適合させるための方法および装置 | |
CN111602381A (zh) | 一种图标切换方法、显示gui的方法及电子设备 | |
US11954787B2 (en) | Image rendering method in panoramic application and terminal device | |
CN108780400B (zh) | 数据处理方法及电子设备 | |
EP3039556B1 (en) | Method, apparatus, and recording medium for interworking with external terminal | |
CN111557097B (zh) | 一种虚拟遥控器中电源键的控制方法及终端 | |
US11249771B2 (en) | Terminal input invocation | |
CN108255547B (zh) | 一种应用程序控制方法及装置 | |
CN107832191B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN107861827B (zh) | 卡屏检测方法、移动终端及计算机可读存储介质 | |
CN113641437A (zh) | 一种Linux兼容Android的应用界面旋转方法及装置 | |
EP3327605B1 (en) | Electronic device and method of controlling same |
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 |