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系统的窗口管理服务中的窗口方向监听器,窗口方向监听器根据屏幕方向变换信息读取所述传感器数据文本创建单元中创建的文本中记录的传感器数据,判断当前屏幕是否需要旋转,如果需要旋转,窗口管理服务通知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的应用界面旋转装置,其特征在于,所述窗口旋转单元包括:
屏幕变换判断子单元,用于:
窗口方向监听器,根据:当前窗口若从横屏转向竖屏,则读取第一文本中的加速度传感器数据;当前窗口若从竖屏转向横屏,则读取第二文本中的加速度传感器数据;判断当前屏幕是否需要旋转。