CN113220136B - 基于窗口布局感知的键盘映射方案自动切换方法及装置 - Google Patents

基于窗口布局感知的键盘映射方案自动切换方法及装置 Download PDF

Info

Publication number
CN113220136B
CN113220136B CN202110459884.7A CN202110459884A CN113220136B CN 113220136 B CN113220136 B CN 113220136B CN 202110459884 A CN202110459884 A CN 202110459884A CN 113220136 B CN113220136 B CN 113220136B
Authority
CN
China
Prior art keywords
mapping scheme
current
keyboard
layout tree
keyboard mapping
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.)
Active
Application number
CN202110459884.7A
Other languages
English (en)
Other versions
CN113220136A (zh
Inventor
温研
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Linzhuo Information Technology Co Ltd
Original Assignee
Beijing Linzhuo Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Linzhuo Information Technology Co Ltd filed Critical Beijing Linzhuo Information Technology Co Ltd
Priority to CN202110459884.7A priority Critical patent/CN113220136B/zh
Publication of CN113220136A publication Critical patent/CN113220136A/zh
Application granted granted Critical
Publication of CN113220136B publication Critical patent/CN113220136B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction 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
    • G06F3/0488Interaction 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 using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction 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 using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

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)
  • Input From Keyboards Or The Like (AREA)

Abstract

本发明公开了基于窗口布局感知的键盘映射方案自动切换方法及装置,针对每种显示界面预设键盘按键映射方案,并在键盘按键映射方案中增加了Android应用窗口中显示界面的布局属性,通过实时获取Android应用窗口中显示界面的布局,通过布局的匹配实时切换键盘按键映射方案,有效提高了桌面平台上安卓应用中操作的便利性,显著提升了用户体验。

Description

基于窗口布局感知的键盘映射方案自动切换方法及装置
技术领域
本发明属于在桌面操作系统上运行移动应用的开发技术领域,具体涉及基于窗口布局感知的键盘映射方案自动切换方法及装置。
背景技术
Linux或Windows等桌面操作系统Android运行环境是一种在Linux或Windows操作系统上运行Android应用(App)的技术,该技术对丰富操作系统应用生态具有非常重要的意义。
使用Android运行环境在桌面操作系统上运行Android应用时,由于PC计算机的显示器往往不支持触摸,通常使用鼠标点击模拟触摸事件。但是,对于复杂的Android应用窗口操作,例如游戏应用中的多点快速触摸,就需要用键盘的不同的按键对应到应用窗口的不同位置,即按下某一键,就相当于点击了应用窗口的某个位置。
现有的键盘映射是采用预先定义映射规则的方式实现,即通过预先定义键盘按键与屏幕位置的对应关系实现映射。但是,当用户在应用窗口中切换使用界面时,例如用户使用“微信”应用时在聊天界面和朋友圈界面之间切换,界面的布局会发生变化,再采用之前设定的映射关系将键盘映射到屏幕将会导致映射的错位,从而导致用户操作错位,现有的方式需要用户手动切换映射方式,这为用户操作带来了不便,降低了用户体验。
发明内容
有鉴于此,本发明提供了基于窗口布局感知的键盘映射方案自动切换方法及装置,实时获取应用窗口显示界面的布局,根据布局匹配对应的键盘按键映射方案实现键盘按键映射方案的自动切换。
本发明提供的基于窗口布局感知的键盘映射方案自动切换方法,具体包括以下步骤:
建立桌面系统的键盘按键与安卓应用窗口之间的键盘映射方案,所述键盘映射方案包括所述安卓应用窗口对应的包名、活动名称、按键键码、对应的映射位置,及所述安卓应用窗口的布局树;当监测到所述安卓应用窗口的显示界面发生变化时,获取当前显示界面的当前布局树;选择所述键盘映射方案中具有与所述当前布局树相同布局树的键盘映射方案,作为当前键盘映射方案;将桌面系统的键盘映射方案替换为所述当前键盘映射方案。
进一步地,所述布局树是以应用界面的ViewRootImpl为根节点、以嵌套的视图为叶子节点的递归树,所述叶子节点的属性包括所述叶子节点对应的视图的类名及父类名。
进一步地,所述监测到所述安卓应用窗口的显示界面发生变化的方式为修改Android系统的Window类和View类,在创建窗口、销毁窗口、创建视图或销毁视图时获取当前应用界面的当前布局树,再将所述当前布局树发送至所述桌面系统。
进一步地,所述选择所述键盘映射方案中具有与所述当前布局树相同布局树的键盘映射方案作为当前键盘映射方案的过程为:采用树搜索算法对所述键盘映射方案中的布局树与所述当前布局树进行匹配,匹配成功的键盘映射方案即为当前键盘映射方案。
本发明提供的基于窗口布局感知的键盘映射方案自动切换装置,包括键盘映射方案配置单元、应用窗口布局树获取单元、应用窗口监听单元及映射方案切换单元;
所述键盘映射方案配置单元,用于配置桌面系统的键盘按键与安卓应用窗口之间的键盘映射方案,所述键盘映射方案包括所述安卓应用窗口对应的包名、活动名称、按键键码、对应的映射位置,及应用窗口的布局树;
所述应用窗口布局树获取单元,位于安卓系统中,用于获取当前应用窗口的布局树;
所述应用窗口监听单元,位于安卓系统中,用于监测当前安卓应用窗口显示界面,当所述显示界面产生创建窗口、销毁窗口、创建视图或销毁视图事件时,则调用所述应用窗口布局树获取单元获取当前显示界面的当前布局树,并将所述当前布局树发送至所述映射方案切换单元;
所述映射方案切换单元,用于根据获取到的所述当前布局树选择所述键盘映射方案中具有与所述当前布局树相同布局树的键盘映射方案,作为当前键盘映射方案;将桌面系统的键盘映射方案替换为所述当前键盘映射方案。
进一步地,所述应用窗口监听单元与所述映射方案切换单元之间采用RPC通信方式传输数据。
进一步地,所述映射方案切换单元根据获取到的所述当前布局树选择所述键盘映射方案中具有与所述当前布局树相同布局树的键盘映射方案的方式为:采用树搜索算法对所述键盘映射方案中的布局树与所述当前布局树进行匹配。
有益效果:
本发明针对每种显示界面预设键盘按键映射方案,并在键盘按键映射方案中增加了Android应用窗口中显示界面的布局属性,通过实时获取Android应用窗口中显示界面的布局,通过布局的匹配实时切换键盘按键映射方案,效提高了桌面平台上安卓应用中操作的便利性,显著提升了用户体验。
附图说明
图1为本发明提供的基于窗口布局感知的键盘映射方案自动切换方法的流程图。
图2为本发明提供的基于窗口布局感知的键盘映射方案自动切换装置的结构图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供的基于窗口布局感知的键盘映射方案自动切换方法及装置,其核心思想是:针对每种显示界面预设键盘按键映射方案,并在键盘按键映射方案中增加了Android应用窗口中显示界面的布局属性,通过实时获取Android应用窗口中显示界面的布局树,通过布局树的匹配实时切换适合的键盘按键映射方案。根据本发明的实现机制,本发明更适合非游戏(基于OpenGL ES)类的Android应用,因为此类应用支持提取当前Android应用窗口的Window/View的对象布局及坐标。
本发明提供的基于窗口布局感知的键盘映射方案自动切换方法,流程如图1所示,包括以下步骤:
步骤1、配置键盘按键映射方案。键盘按键映射方案用于说明当前键盘上的按键与Android应用窗口之间的对应关系,具体包括:当前应用的包名、活动名称(ActivityName)、键盘按键的键码(KeyCode)、按键映射位置及应用窗口的布局树。通常来说,不同的应用界面的布局树也不尽相同,因此,布局树可以作为应用窗口显示界面的身份标识。布局树是指以应用界面中的ViewRootImpl为根节点、以各级嵌套的视图(View)为叶子节点的递归树,叶子节点的属性包括类名(当前View的类名)和父类名(当前View所继承的父类的名称)。布局树既可以采用XML格式的文件来描述,也可以采用Json格式的文件来描述。应用窗口的布局树(View树)可采用现有方法获取。
现有技术中,任意品牌的键盘上的按键都具有唯一的扫描码(ScanCode),该扫描码由操作系统转换后,与系统内确定的键码(KeyCode)相对应,因此,在操作系统层处理键盘相关的任务时,仅需关注键盘按键的键码(KeyCode)即可。按键映射位置可采用该位置在应用显示界面中对应的位置坐标进行描述,记为:(x,y)。
本发明中,键盘映射方案的配置可采用可视化方式进行配置。
步骤2、启动键盘映射后,当Android运行环境监测到Android应用窗口显示界面发生变化时,例如,创建窗口、销毁窗口、创建View或销毁View等,Android系统获取Android应用窗口显示界面的布局树,并将布局树发送至桌面系统。
具体来说,监测Android应用窗口显示界面的变化的方式包括:修改Android系统现有的Window类和View类的构造函数和析构函数,增加在创建窗口、销毁窗口、创建View或销毁View时获取新生成的应用界面的布局树,并将该布局树发送至桌面系统的功能。
骤3、桌面系统采用树搜索算法,将从步骤2中获取到的当前显示界面的当前布局树与各键盘按键映射方案中所记录的布局树进行对比,选择具有与当前布局树相同布局树的键盘按键映射方案,将该方案作为新的键盘按键映射方案重新启动键盘映射。
根据本发明提供的基于窗口布局感知的键盘映射方案自动切换方法,本发明设计了基于窗口布局感知的键盘映射方案自动切换装置,装置的结构如图2所示,包括键盘映射方案配置单元、应用窗口布局树获取单元、应用窗口监听单元及映射方案切换单元。
其中,键盘映射方案配置单元,用于配置键盘按键与Android应用窗口界面位置之间的对应关系,具体包括:当前Android应用的包名、活动名称(Activity Name)、键盘按键的键码(KeyCode)、按键映射位置及应用窗口的布局树。布局树为应用窗口布局树获取单元获取得到。
应用窗口布局树获取单元,部署在Android系统中,用于获取当前应用窗口的布局树。
应用窗口监听单元,部署于Android系统中,用于监测当前显示的Android应用窗口显示界面的变化情况,当监测到显示界面发生变化时,即,当产生创建窗口、销毁窗口、创建View或销毁View等事件时,则调用应用窗口布局树获取单元获取当前所显示的应用窗口的布局树,并将该布局树发送至映射方案切换单元。
映射方案切换单元,部署于桌面系统中,用于根据获取到的当前应用窗口显示界面的布局树,利用树搜索算法与键盘映射方案配置单元生成的键盘按键映射方案中的布局树进行匹配,选出具有相同布局树的键盘按键映射方案,将该方案作为新的键盘按键映射方案重新。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.基于窗口布局感知的键盘映射方案自动切换方法,其特征在于,具体包括以下步骤:
建立桌面系统的键盘按键与安卓应用窗口之间的键盘映射方案,所述键盘映射方案包括所述安卓应用窗口对应的包名、活动名称、按键键码、对应的映射位置,及所述安卓应用窗口的布局树;当安卓运行环境监测到所述安卓应用窗口的显示界面发生变化时,获取当前显示界面的当前布局树,并将所述当前布局树发送至桌面系统;桌面系统选择所述键盘映射方案中具有与所述当前布局树相同布局树的键盘映射方案,作为当前键盘映射方案;将桌面系统的键盘映射方案替换为所述当前键盘映射方案;所述布局树为递归树;
所述监测到所述安卓应用窗口的显示界面发生变化的方式为修改Android系统的Window类和View类,在创建窗口、销毁窗口、创建视图或销毁视图时获取当前应用界面的当前布局树,再将所述当前布局树发送至所述桌面系统。
2.根据权利要求1所述的方法,其特征在于,所述布局树是以应用界面的ViewRootImpl为根节点、以嵌套的视图为叶子节点的递归树,所述叶子节点的属性包括所述叶子节点对应的视图的类名及父类名。
3.根据权利要求1所述的方法,其特征在于,所述选择所述键盘映射方案中具有与所述当前布局树相同布局树的键盘映射方案作为当前键盘映射方案的过程为:采用树搜索算法对所述键盘映射方案中的布局树与所述当前布局树进行匹配,匹配成功的键盘映射方案即为当前键盘映射方案。
4.基于窗口布局感知的键盘映射方案自动切换装置,其特征在于,包括键盘映射方案配置单元、应用窗口布局树获取单元、应用窗口监听单元及映射方案切换单元;
所述键盘映射方案配置单元,用于配置桌面系统的键盘按键与安卓应用窗口之间的键盘映射方案,所述键盘映射方案包括所述安卓应用窗口对应的包名、活动名称、按键键码、对应的映射位置,及应用窗口的布局树;
所述应用窗口布局树获取单元,位于安卓系统中,用于获取当前应用窗口的布局树;
所述应用窗口监听单元,位于安卓系统中,用于监测当前安卓应用窗口显示界面,当所述显示界面产生创建窗口、销毁窗口、创建视图或销毁视图事件时,则调用所述应用窗口布局树获取单元获取当前显示界面的当前布局树,并将所述当前布局树发送至所述映射方案切换单元;
所述映射方案切换单元,用于根据获取到的所述当前布局树选择所述键盘映射方案中具有与所述当前布局树相同布局树的键盘映射方案,作为当前键盘映射方案;将桌面系统的键盘映射方案替换为所述当前键盘映射方案。
5.根据权利要求4所述的装置,其特征在于,所述应用窗口监听单元与所述映射方案切换单元之间采用RPC通信方式传输数据。
6.根据权利要求4所述的装置,其特征在于,所述映射方案切换单元根据获取到的所述当前布局树选择所述键盘映射方案中具有与所述当前布局树相同布局树的键盘映射方案的方式为:采用树搜索算法对所述键盘映射方案中的布局树与所述当前布局树进行匹配。
CN202110459884.7A 2021-04-27 2021-04-27 基于窗口布局感知的键盘映射方案自动切换方法及装置 Active CN113220136B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110459884.7A CN113220136B (zh) 2021-04-27 2021-04-27 基于窗口布局感知的键盘映射方案自动切换方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110459884.7A CN113220136B (zh) 2021-04-27 2021-04-27 基于窗口布局感知的键盘映射方案自动切换方法及装置

Publications (2)

Publication Number Publication Date
CN113220136A CN113220136A (zh) 2021-08-06
CN113220136B true CN113220136B (zh) 2022-02-18

Family

ID=77089377

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110459884.7A Active CN113220136B (zh) 2021-04-27 2021-04-27 基于窗口布局感知的键盘映射方案自动切换方法及装置

Country Status (1)

Country Link
CN (1) CN113220136B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115079887B (zh) * 2022-08-18 2022-10-25 北京麟卓信息科技有限公司 一种桌面系统上安卓应用键盘映射辅助提示的显示方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110064629A (ko) * 2009-12-08 2011-06-15 삼성전자주식회사 휴대 단말기의 보조키맵 운용 방법 및 장치
CN104820551A (zh) * 2015-04-24 2015-08-05 青岛海信移动通信技术股份有限公司 一种在终端中的触控操作方法和装置
CN106227458A (zh) * 2016-08-05 2016-12-14 深圳市金立通信设备有限公司 一种键盘处理的方法以及终端
CN106383652A (zh) * 2016-08-31 2017-02-08 北京极维客科技有限公司 一种虚拟输入方法及系统装置
CN109960456B (zh) * 2019-03-12 2021-06-15 维沃移动通信有限公司 一种虚拟按键布局的生成方法及终端设备

Also Published As

Publication number Publication date
CN113220136A (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
CN101523386B (zh) 用于针对远程设备渲染内容的平台
US20030202012A1 (en) Method, system and program product for determining differences between an existing graphical user interface (GUI) mapping file and a current GUI
JPH10240602A (ja) ダウンロード方法およびコンピュータ
CN110727557A (zh) 日志采集器的管控方法、平台、电子设备及存储介质
CN111126781A (zh) Rpa业务流程的创建方法及系统
CN1922572A (zh) 为组件应用程序建立混合模式执行环境的系统和方法
CN113220136B (zh) 基于窗口布局感知的键盘映射方案自动切换方法及装置
CN104951301A (zh) 家庭媒体播放设备的用户界面处理方法、装置及系统
CN110413161B (zh) 组件配置方法、装置以及电子设备
CN116088882B (zh) 一种基于智能穿戴设备的功能配置方法、系统及介质
CN112233211A (zh) 动画制作的方法、装置、存储介质及计算机设备
CN106371869B (zh) 一种智能变电站间隔层设备的iec61850配置软件实现方法
CN112988752A (zh) 资源管理方法、装置、存储介质及电子设备
CN110865834A (zh) 应用程序界面更新方法、装置、可读存储介质及终端设备
CN114615220A (zh) 一种消息发送控制的方法和装置
CA2490900A1 (en) Heterogeneous disk storage management technique
CN109117127A (zh) 程序代码生成方法、装置及计算机可读存储介质
CN111881385A (zh) 推送内容生成方法、装置、设备和可读存储介质
CN112817582B (zh) 代码处理方法、装置、计算机设备和存储介质
CN113220135B (zh) 一种基于触摸事件的自适应键盘映射方法及装置
CN111949719A (zh) 一种电力系统的组态工具实现方法、装置及相关组件
Pereira et al. A JSON/HTTP communication protocol to support the development of distributed cyber-physical systems
CN113238663A (zh) 一种基于视图匹配的自适应键盘映射方法及装置
CN114780330A (zh) 代码监控方法和装置
CN113742716B (zh) 代码运行方法、装置、电子设备、存储介质和程序产品

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