应用程序的控制方法、装置、电子设备及存储介质与流程

文档序号:26838842发布日期:2021-10-08 19:45阅读:109来源:国知局
应用程序的控制方法、装置、电子设备及存储介质与流程

1.本技术实施例涉及电子信息技术领域,特别涉及一种应用程序的控制方法、装置、电子设备及存储介质。


背景技术:

2.在诸如车辆等应用场景中,由于受到显示屏幕大小、显示屏幕位置以及显示屏幕操作方式等的限制,因此用户通过点击屏幕以操作显示屏幕所显示应用程序(application,app)的方式可以较为困难。例如,在驾驶员开车的过程中,若通过点击位于车辆中央设置的中控屏幕以操作其所显示的应用程序,则存在驾驶风险。基于此,如何通过点击与显示屏幕连接的物理按键,实现操作应用程序成为人们关注的问题。
3.目前,应用程序开发者通常通过修改应用程序代码,以使得应用程序代码支持运行该应用程序的电子设备在接收到针对物理按键的触发操作后,响应于该触发操作,执行修改后的应用程序代码中写入的该物理按键对应的响应程序,实现通过点击物理按键控制应用程序的目的。
4.但是,由于针对每个应用程序均需要通过人为修改该应用程序代码,才可以使得应用程序支持采用物理按键操作,因此,目前实现采用物理按键控制应用程序的方法的通用性能较差。


技术实现要素:

5.本技术实施例提供了一种应用程序的控制方法、装置、电子设备及存储介质,可以在一定程度上解决目前实现采用物理按键控制应用程序的方法的通用性能较差的问题。所述技术方案如下:
6.第一方面,提供了一种应用程序的控制方法,所述方法包括:
7.在电子设备显示目标应用程序的目标操作界面的情况下,接收针对物理按键的触发操作;
8.确定所述目标操作界面包括的按钮控件中,与所述物理按键对应的目标按钮控件;
9.执行所述目标按钮控件的响应程序。
10.第二方面,提供了一种应用程序的控制装置,所述装置包括:
11.接收模块,用于在电子设备显示目标应用程序的目标操作界面的情况下,接收针对物理按键的触发操作;
12.确定模块,用于确定所述目标操作界面包括的按钮控件中,与所述物理按键对应的目标按钮控件;
13.执行模块,用于执行所述目标按钮控件的响应程序。
14.第三方面,提供了一种电子设备,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如第一方面所述的应用
程序的控制方法。
15.第四方面,提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如第一方面所述的应用程序的控制方法。
16.本技术实施例提供的应用程序的控制方法、装置、电子设备及存储介质中,通过将应用程序的操作界面中按钮控件与物理按键关联对应,以使得在接收到针对物理按键的触发操作后,可以确定该物理按键对应的目标按钮控件,然后执行该目标按钮控件的响应程序,实现了采用物理按键控制应用程序。该技术方案中,通过额外设定的应用程序的操作界面中按钮控件与物理按键的对应关系,实现了采用物理按键触发原有按钮控件,进而执行应用程序中原有按钮控件的响应程序,实现原有按钮控件的功能。因而无需针对各应用程序修改原有代码,提高了采用物理按键控制应用程序的方法的适用范围,通用性能较高。并且也避免了因需要修改应用程序原有代码而涉及到的与应用程序开发商的合作问题,进而避免了合作带来的经济成本和时间成本。
附图说明
17.图1是本技术一个示例性实施例提供的应用程序的控制装置的结构示意图;
18.图2是本技术一个示例性实施例提供的安卓操作系统的逻辑结构示意图;
19.图3是本技术一个示例性实施例提供的应用程序的控制方法的流程图;
20.图4是本技术另一个示例性实施例提供的应用程序的控制方法的流程图;
21.图5是本技术又一个示例性实施例提供的应用程序的控制方法的流程图;
22.图6是本技术一个实施例提供的应用程序的控制装置的结构框图;
23.图7是本技术一个实施例提供的应用程序的控制装置的结构框图。
具体实施方式
24.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
25.在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
26.请参考图1,其示出了本技术一个示例性实施例提供的应用程序的控制装置的结构示意图。该控制装置可以为终端,该终端可以是智能手机、平板电脑、电子书、车载终端等能够运行应用程序的电子设备。如图1所示,本技术实施例中提供的电子设备100可以包括:处理器101、存储器102以及输入输出装置103。
27.处理器101可以包括一个或者多个处理核心。处理器101利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器102内的指令、程序、代码集或指令集,以及调用存储在存储器102内的数据,执行电子设备100的各种功能和处理数据。
28.可选地,处理器101可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器101可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)
和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器101中,单独通过一块通信芯片进行实现。
29.存储器102可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read

only memory)。可选地,该存储器102包括非瞬时性计算机可读介质(non

transitory computer

readable storage medium)。存储器102可用于存储指令、程序、代码、代码集或指令集。存储器102可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等,该操作系统可以是安卓(android)系统(包括基于android系统深度开发的系统)、苹果公司开发的ios系统(包括基于ios系统深度开发的系统)或其它系统。其中,android系统可以为安卓开放源代码项目(android open source project,aosp)搭载的android系统。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
30.输入输出装置103中可以包括作为输入装置的物理按键1031,以及作为输出装置的显示装置1032。物理按键1031可以控制操作运行于该电子设备上的应用程序。即用户可以通过对物理按键1031执行触发操作,以使得电子设备在接收到针对物理按键1031的触发操作后,可以响应于该触发操作,控制操作应用程序。可选的,针对物理按键的触发操作可以包括点击操作、滑动操作以及长按操作等。显示装置1032可以用于显示运行于电子设备上的应用程序的至少一个操作界面。
31.本技术实施例以电子设备的操作系统为安卓操作系统为例进行说明。如图2所示,电子设备按照逻辑结构可划分为内核层(kernel layer)201、框架层(framework layer)202以及应用层(application layer)203。
32.其中,内核层201为电子设备的各种硬件提供底层的驱动。例如,输入(input)设备驱动、显示驱动和蓝牙驱动等。内核层通常会在电子设备调用输入驱动后生成/dev/input目录内的文件。
33.框架层202包括输入管理服务(inputmanagerservice)2021、输入调度(inputdispatcher)2022以及输入读取者(inputreader)2023。inputreader 2023用于从输入设备驱动读取并接收输入事件,并将输入事件传输至inputdispatcher。其中,输入事件可以为触摸屏事件,硬按键事件,鼠标事件等。inputdispatcher 2022用于将从inputreader接收的输入事件并传输至包括inputmanagerservice的上层窗口。inputmanagerservice2021为输入事件处理的核心服务端,其可以用于初始化inputreader和inputdispatcher,并在接收到inputdispatcher传递的输入事件后,将该输入事件上送至应用层。
34.应用层203包括activity 2031、viewrootimpl 2032以及输入方法管理(inputmethodmanager)2033。inputmethodmanager2033可以用于管理输入法的显示等处理逻辑。viewrootimpl 2032为顶层视图数据结构,其可以用于接收来着inputmanagerservice传输的界面绘制事件以及输入事件等,并将接收到的事件分发至视图组件。activity 2031为负责与用户交互的组件,其可以用于显示应用程序中的显示界面。
35.实际应用中,应用程序通常具有多个显示界面。该多个显示界面可以包括具有按钮控件的一类显示界面。本技术实施例将该类显示界面称为操作界面。通常而言,电子设备显示于屏幕上的应用程序的操作界面中,可以包括按钮控件对应的图标。用户可以通过屏幕触摸或者鼠标点击等方式点击或者长按图标,从而使得电子设备触发针对图标对应的按钮控件的响应程序,实现按钮控件的特定功能。本技术实施例可以通过将物理按键与应用程序的操作界面中按钮控件对应绑定,使得能够通过触发物理按键来确定物理按键对应的按钮控件,从而可以触发应用程序中原有的按钮控件对应的响应程序,实现了在不改变原有应用程序的基础上采用物理按键控制应用程序。
36.请参考图3,其示出了本技术一个示例性实施例提供的应用程序的控制方法的流程图。该应用程序的控制方法可以应用于图1所示的电子设备。如图3所示,该应用程序的控制方法可以包括:
37.步骤301、在电子设备显示目标应用程序的目标操作界面的情况下,接收针对物理按键的触发操作。
38.如前所述电子设备的操作系统可以为ios系统或者安卓系统等,本技术实施例以电子设备的操作系统为安卓系统为例进行说明。电子设备可以安装有一个或多个应用程序。该应用程序可以是电子设备出厂时自带的,也可以是用户根据自身需求下载后安装于电子设备的。例如,电子设备可以车载系统中的中控显示设备,应用程序可以包括安装的音乐应用程序和导航应用程序等。
39.本技术实施例中,目标应用程序为电子设备安装运行的一个或多个应用程序中的任一应用程序。目标操作界面为目标应用程序包括的一个或多个操作界面中的任一操作界面。
40.可选的,电子设备接收到的针对物理按键的触发操作可以是点击操作或者长按操作等。示例的,用户可以点击电子设备的物理按键,使得电子设备接收到该针对物理按键的点击操作,响应于该点击操作,以执行后续步骤。
41.步骤302、确定目标操作界面包括的按钮控件中,与物理按键对应的目标按钮控件。
42.本技术实施例中,目标操作界面可以包括一个或多个按钮控件,按钮控件又称为虚拟按键。各按钮控件可以对应不同的响应程序。也即是在触发针对各不同按钮控件的设定操作时,可以使得电子设备针对目标应用程序执行不同的响应程序,以执行按钮控件的不同事件,实现不同功能。其中,针对按钮控件的设定操作可以包括点击操作或者长按操作等。例如,在音乐应用程序的歌曲a的播放操作界面。该播放操作界面包括播放/暂停按钮控件。在触发针对播放/暂停按钮控件的第一点击操作时,电子设备响应于第一点击操作,实现播放歌曲a的功能。
43.可选的,电子设备可以预先存储有物理按键与按钮控件的对应关系。该对应关系中的按钮控件包括目标操作界面所包含的所有按钮控件。电子设备在接收到针对物理按键的触发操作后,可以查询该对应关系,确定目标操作界面中与该物理按键对应的目标按钮控件。示例的,电子设备可以预先存储有物理按键的第一按键标识与按钮控件的第二按键标识的对应关系,第一按键标识用于标识物理按键,第二按键标识可以用于标识按钮控件。其中,第一按键标识可以为物理按键的键码值(keycode)。第二按键标识可以包括应用程序
的包名、应用程序的操作界面的activity类名以及按钮控件的名称。需要说明的是,第一按键标识以及第二按键标识也可以其他,仅需保证第一按键标识可以唯一标识物理按键,第二按键标识可以唯一标识按钮控件即可,本技术实施例对此不做限定。
44.步骤303、执行目标按钮控件的响应程序。
45.电子设备在确定目标操作界面中与物理按键对应的目标按钮控件后,可以执行目标按钮控件的响应程序,以实现目标按钮控件的功能。可选的,电子设备接收到针对物理按键的触发操作可以为多种类型的操作。相应的,在执行目标按钮控件的响应程序时,可以执行目标按钮控件的目标操作类型对应的响应程序,其中目标操作类型与触发操作的操作类型相同。示例的,在针对物理按键的触发操作为针对物理按键的点击操作时,电子设备执行点击目标按钮控件对应的响应程序。
46.综上所述,本技术实施例提供的应用程序的控制方法中,通过将应用程序的操作界面中按钮控件与物理按键关联对应,以使得在接收到针对物理按键的触发操作后,可以确定该物理按键对应的目标按钮控件,然后执行该目标按钮控件的响应程序,实现了采用物理按键控制应用程序。该技术方案中,通过额外设定的应用程序的操作界面中按钮控件与物理按键的对应关系,实现了采用物理按键触发原有按钮控件,进而执行应用程序中原有按钮控件的响应程序,实现原有按钮控件的功能。因而无需针对各应用程序修改原有代码,提高了采用物理按键控制应用程序的方法的适用范围,通用性能较高。并且也避免了因需要修改应用程序原有代码而涉及到的与应用程序开发商的合作问题,进而避免了合作带来的经济成本和时间成本。
47.请参考图4,其示出了本技术另一个示例性实施例提供的应用程序的控制方法的流程图。该应用程序的控制方法可以应用于图1所示的电子设备。如图4所示,该应用程序的控制方法可以包括:
48.步骤401、在电子设备显示目标应用程序的目标操作界面的情况下,接收针对物理按键的触发操作。
49.本技术实施例中,目标应用程序为电子设备安装运行的一个或多个应用程序中的任一应用程序。目标操作界面为目标应用程序包括的一个或多个操作界面中的任一操作界面。如前所述电子设备的操作系统可以为ios系统或者安卓系统等,本技术实施例以电子设备的操作系统为安卓系统为例进行说明。
50.可选的,电子设备接收到的针对物理按键的触发操作可以是点击操作或者长按操作等。示例的,用户可以点击电子设备的物理按键,使得电子设备接收到该针对物理按键的点击操作,响应于该点击操作,以执行后续步骤。
51.步骤402、生成触发操作对应的硬按键事件。
52.本技术实施例中,电子设备在开始运行目标应用程序后,通过启动的目标应用程序的应用进程与安卓操作系统中框架层的inputmanagerservice建立连接。使得输入设备驱动接收到针对电子设备包括的物理按键的触发操作后,生成触发操作对应的硬按键事件(keyevent)。硬按键事件通过inputreader和inputdispatcher传输至inputmanagerservice。inputmanagerservice可以将接收到硬按键事件传输至目标应用程序所运行的应用层。其中,硬按键事件也可以称为物理按键事件。该硬按键事件中可以包括该物理按键的键码值(keycode),该键码值的数据类型为整型(int)类型。
53.步骤403、在确定不存在针对所述多个视图组件中任一所述视图组件的所述硬按键事件时,确定目标操作界面包括的按钮控件中,与物理按键对应的目标按钮控件。
54.本技术实施例中,电子设备首先判断是否存在针对目标操作界面包括的多个视图组件中任一视图组件的硬按键事件。若否,执行确定目标操作界面包括的按钮控件中,与物理按键对应的目标按钮控件的步骤;若是,结束执行此次应用程序的控制方法。
55.可选的,目标操作界面可以包括多个视图(view)组件。视图组件也即是view类,其用于显示目标操作界面的数据。由于在应用程序的原有代码逻辑中,可能存在步骤401触发的物理按键被占用消耗的情况,也即是在接收到针对该物理按键的触发操作后,响应于该触发操作,执行多个view组件中某一view组件的响应程序,即执行针对触发操作生成的某一view组件的硬按键事件,实现该某一view组件的功能。因此,电子设备可以首先判断接收到触发操作对应物理按键是否被消耗。当确定接收到的触发操作对应物理按键未被消耗时,表明针对后续执行步骤中,针对物理按键的相关操作不会影响应用程序的原有代码逻辑,进而保证了本技术实施例方法的兼容性。反之,当确定接收到的触发操作对应物理按键被消耗时,为了保证后续针对物理按键的相关操作不会影响应用程序的原有代码逻辑,可以结束执行此次应用程序的控制方法。
56.示例的,电子设备存储有与多个view组件中任一view组件对应的硬按键事件,该硬按键事件可以针对多个不同物理按键生成的。电子设备可以遍历该对应关系,确定是否存在针对任一view组件的上述触发操作对应的硬按键事件。当确定存在针对任一view组件的该硬按键事件时,结束执行此次应用程序的控制方法;当不存在针对任一view组件的该硬按键事件时,确定目标操作界面包括的按钮控件中,与物理按键对应的目标按钮控件。
57.例如,本技术在实际应用中,view类为一种链表类型数据结构。应用程序的显示界面(包括操作界面)通过activity组件,也即是activity类显示。每个activity类对应有一个根view(mview),该根view为由于activity类对应的所有view类构成的链表中的根节点。
58.由于安卓系统的原有系统逻辑中,在inputmanagerservice接收到物理按键的触发操作对应的硬按键事件后,inputmanagerservice将硬按键事件上送至应用层的viewrootimpl。以使得viewrootimpl在接收到硬按键事件后,对该硬按键事件执行processkeyevent方法,创建目标操作界面的唯一viewrootimpl对象。从而可以通过viewrootimpl对象获取其包括的目标操作界面对应activity类的mview。
59.针对硬按键事件对mview执行按键事件分发函数dispatchkeyevent方法。该dispatchkeyevent方法用于判断目标操作界面包括的任一view类是否消耗硬按键事件。也可以理解为该dispatchkeyevent方法用于判断目标操作界面包括的任一view类是否消耗硬按键事件包括的键码值。其中,若对mview执行dispatchkeyevent方法返回false,表示不存在view类消耗硬按键事件,即确定不存在view组件的硬按键事件。则确定目标操作界面包括的按钮控件中,与物理按键对应的目标按钮控件。若对mview执行dispatchkeyevent方法返回true,表示存在view类消耗硬按键事件,即确定存在view组件的硬按键事件。则结束执行此次应用程序的控制方法。
60.本技术实施例中,目标操作界面可以包括一个或多个按钮控件,按钮控件又称为虚拟按键。各按钮控件可以对应不同的响应程序。也即是在触发针对各不同按钮控件的设定操作时,可以使得电子设备针对目标应用程序执行不同的响应程序,以执行按钮控件的
不同事件,实现不同功能。其中,针对按钮控件的设定操作可以包括点击操作或者长按操作等。例如,在音乐应用程序的歌曲a的播放操作界面。该播放操作界面包括播放/暂停按钮控件。在触发针对播放/暂停按钮控件的点击操作时,电子设备响应于该点击操作,实现播放歌曲a的功能。
61.可选的,电子设备可以预先存储有物理按键与按钮控件的对应关系。该对应关系中的按钮控件包括目标操作界面所包含的所有按钮控件。电子设备在接收到针对物理按键的触发操作后,可以查询该对应关系,确定目标操作界面中与该物理按键对应的目标按钮控件。
62.本技术实施例中,电子设备可以预先存储有配置文件。该配置文件用于记录物理按键的第一按键标识与按钮控件的第二按键标识的对应关系。其中第一按键标识用于标识物理按键,第二按键标识可以用于标识按钮控件。
63.则在步骤403之前,所述方法还包括:电子设备获取物理按键的目标第一按键标识,以及配置文件。
64.相应的,电子设备确定目标操作界面包括的按钮控件中,与物理按键对应的目标按钮控件的过程可以包括:电子设备基于目标第一按键标识以及配置文件,得到目标第一按键标识对应的目标第二按键标识,目标按钮控件为该目标第二按键标识对应的按钮控件。示例的,电子设备可以查询配置文件记录的第一按键标识与第二按键标识的对应关系中,目标第一按键标识对应的第二按键标识,该第二按键标识即为目标第二按键标识。
65.在一种可能的方式中,第一按键标识可以为物理按键的键码值(keycode)。第二按键标识可以包括应用程序的包名(package_name)、应用程序的操作界面的activity类名以及按钮控件的名称(targetview id)。
66.则在步骤403之前,所述方法还包括:电子设备获取物理按键的目标第一按键标识、配置文件、目标应用程序的目标包名以及目标操作界面的目标activity类名。
67.相应的,电子设备基于目标第一按键标识以及配置文件,得到目标第一按键标识对应的目标第二按键标识的过程可以包括:电子设备基于目标第一按键标识、目标包名、目标activity类名以及配置文件,得到目标第一按键标识对应的目标名称,目标按钮控件为目标名称对应的按钮控件。
68.示例的,配置文件可以为表格形式的文件。该配置文件以第一按键标识为物理按键的键码值,第二按键标识为应用程序的包名、应用程序的操作界面的activity类名以及按钮控件的名称为例进行说明。如表1所示,该配置文件可以包括:键码值“5”对应的应用程序的包名“com.test.demo1”、操作界面的activity类名“com.test.demo.mainactivity1”、按钮控件的名称“btn1”。该数据表明想要通过键码值为5的物理按键,控制应用程序的包名为com.test.demo,操作界面的activity类名为com.test.demo.mainactivity,按钮控件的名称为btn1的按钮控件执行点击操作。该配置文件还包括:键码值“6”对应的应用程序的包名“com.test.demo2”、操作界面的activity类名“com.test.demo.mainactivity2”、按钮控件的名称“btn2”。
69.键码值应用程序的包名操作界面的activity类名按钮控件的名称5com.test.demo1com.test.demo.mainactivity1btn16com.test.demo2com.test.demo.mainactivity2btn2
70.电子设备获取到配置文件以及目标第一按键标识5、目标包名com.test.demo1、目标activity类名com.test.demo.mainactivity1后,可以通过查询配置文件得到目标名称btn1,目标按键控件为目标名称对应的按钮控件。
71.需要说明的是,示例中配置文件包括的按钮控件的名称的数据类型为字符串。例如,配置文件包括的按钮控件可以为开发人员编写应用程序的原生代码javascript中写入的按钮控件的字符串名称。其中,javascript(js)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。由于按钮控件的名称通常在不同应用程序和不同操作界面中重复,因此第二按键标识采用应用程序的包名、应用程序的操作界面的activity类名以及按钮控件的名称这三者,可以更有效地保证标识的按钮控件的准确性。当然,不难理解的是第一按键标识和第二按键标识也可以为其他标识,仅需要保证第一按键标识可以唯一标识物理按键,第二按键标识可以唯一标识按键控件即可,本技术实施例对此不做赘述。
72.此外,本技术实施例中,配置文件可以是预先基于实际需求确定的电子设备包括的物理按键与其可控制的应用程序和操作界面中按钮控件的关系确定的。电子设备可以获取并存储电子设备的使用者输入的配置文件。其中,电子设备的使用人员可以是处于开发阶段的开发人员,或者,也可以是电子设备的使用用户。也即是,电子设备的使用用户可以在使用过程中,通过执行设定触发设置操作,使得电子设备在接收到该设定触发设置操作后,显示设置页面。使用用户通过设置页面更改配置文件,并保存更改后的配置文件。电子设备在接收到更改后的配置文件后,若在接收到针对物理按键的触发操作,则基于更改后的配置文件确定与物理按键对应的目标按钮控件。
73.可选的,电子设备获取物理按键的目标第一按键标识、配置文件、目标应用程序的目标包名以及目标操作界面的目标activity类名的过程可以包括:
74.电子设备在生成触发操作对应的硬按键事件后,可以获取该硬按键事件包括的触发操作对应的物理按键的键码值,该键码值的数据类型为int类型。电子设备可以从其存储空间中获取存储的配置文件。
75.安卓系统的原有系统逻辑中,在viewrootimpl在接收到触发操作对应的硬按键事件后,对该硬按键事件执行processkeyevent方法,创建目标操作界面的唯一viewrootimpl对象。其中,在对该硬按键事件执行processkeyevent方法中会创建mcontext对象。该mcontext对象用于唯一指向目标操作界面对应activity类的本身。则电子设备可以对mcontext执行获取应用程序包名函数getpackagename方法,得到目标应用程序的目标包名,该目标包名的数据类型为字符串。电子设备还可以对mcontext执行getclass.getname方法,得到目标操作界面的目标activity类名,该目标activity类名的数据类型为字符串。
76.本技术实施例中,电子设备在获取物理按键的目标第一按键标识、配置文件、目标应用程序的目标包名以及目标操作界面的目标activity类名之后,所述方法还包括:判断配置文件中是否包括目标第一按键标识、目标应用程序的目标包名以及目标操作界面的目标activity类名。若是,执行基于目标第一按键标识、目标包名、目标activity类名以及配置文件,得到目标第一按键标识对应的目标名称,目标按钮控件为目标名称对应的按钮控件的步骤。若否,结束执行此次应用程序的控制方法。
77.由于用户可能误按至未与目标操作界面中按钮控件关联的物理按键,因此,电子设备可以在获取到物理按键的目标第一按键标识、目标应用程序的目标包名以及目标操作
界面的目标activity类名后,可以通过查询配置文件,先判断配置文件中是否包括该目标第一按键标识、目标包名以及目标activity类名这一数据,以在确定配置文件包括该数据时执行后续确定物理按键对应的按钮控件的步骤。
78.步骤404、执行目标按钮控件的响应程序。
79.电子设备在确定目标操作界面中与物理按键对应的目标按钮控件后,可以执行目标按钮控件的响应程序,以实现目标按钮控件的功能。可选的,电子设备接收到针对物理按键的触发操作可以为多种类型的操作。相应的,在执行目标按钮控件的响应程序时,可以执行目标按钮控件的目标操作类型对应的响应程序,其中目标操作类型与触发操作的操作类型相同。示例的,在针对物理按键的触发操作为针对物理按键的点击操作时,电子设备执行点击目标按钮控件对应的响应程序。
80.示例的,在针对物理按键的触发操作为针对物理按键的点击操作的情况下,电子设备执行目标按钮控件的响应程序的过程可以包括步骤4041至步骤4042。
81.在步骤4041中,获取目标操作界面中,用于显示目标按钮控件的目标视图组件。
82.可选的,在电子设备基于目标第一按键标识、目标包名、目标activity类名以及配置文件,得到目标第一按键标识对应的目标名称,目标按钮控件为目标名称对应的按钮控件的情况下,电子设备获取目标操作界面中,用于显示目标按钮控件的目标视图组件的过程可以包括步骤40411至步骤40412。
83.在步骤40411中,基于目标按钮控件的目标名称,确定目标按钮控件的整型类型的目标标识号。
84.其中,按钮控件的标识号又为按钮控件的身份标识号(identity document,id),即资源索引。该按钮控件的id为应用程序的代码在编译过程中随机生成的int类型的数据,该id可以唯一标识按钮控件。
85.可选的,电子设备基于目标按钮控件的目标名称,确定该目标按钮控件的int类型的目标标识号的过程可以包括:电子设备可以采用反射机制通过目标应用程序的r文件的类名以及目标名称,得到目标按钮控件的int类型的目标标识号。
86.其中,r文件为在android系统中的应用程序被编译自动生成的一个文件。该文件包括所有系统资源的id,该系统资源包括按钮控件。r文件的类名为“目标应用程序的包名”拼接“.r.id”。例如,假设目标应用程序的包名为com.test.demo,该目标应用程序的r文件的类名为com.test.demo.r.id。
87.反射机制称为java语言的反射机制,其可以实现动态获取程序信息以及动态调用对象的功能。反射机制是指在运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,也可以了解任意一个类的成员变量和方法,还可以调用任意一个对象的属性和方法。例如,反射机制可以用于确定目标按钮控件的目标名称与目标按钮控件的int类型的目标标识号的关系。
88.在步骤40412中,遍历目标操作界面包括的所有视图组件对应的标识号,获取与目标标识号对应的目标视图组件。
89.其中,按钮控件的id也用于唯一标识用于显示按钮控件的视图组件(view类)。电子设备可以通过遍历目标操作界面包括的所有视图组件对应的标识号,确定与目标标识号对应的目标视图组件。
90.可选的,电子设备对mview执行findviewbyid方法,得到与目标标识号对应的目标视图组件。目标视图组件即为目标按钮控件的view对象,该view对象为一个java对象。findviewbyid方法中采用的参数为目标标识号。
91.在步骤4042中,执行目标视图组件的点击事件。
92.可选的,电子设备执行目标视图组件的点击事件的过程可以包括:电子设备对目标视图组件执行performclick方法。该performclick方法用于通过代码主动去调用按钮控件的点击事件,即模拟人手去触摸控件。电子设备对目标视图组件执行performclick方法,以使得目标按钮控件执行点击事件对应的点击触发逻辑,即可以模拟用户点击目标按钮控件的操作,从而电子设备响应于对目标按钮控件的点击操作,执行对目标按钮控件的点击方法,实现对目标按钮控件的点击效果。
93.需要说明的是,本技术实施例提供的应用程序的控制方法,可以不执行上述判断是否存在针对目标操作界面包括的多个视图组件中任一视图组件的硬按键事件的步骤,也即是电子设备在生成触发操作对应的硬按键事件后,可以不考虑存在针对目标操作界面包括的多个视图组件中任一视图组件的硬按键事件的情况,直接执行确定目标操作界面包括的按钮控件中,与物理按键对应的目标按钮控件的步骤,简化应用程序的控制过程。
94.综上所述,本技术实施例提供的应用程序的控制方法中,通过将应用程序的操作界面中按钮控件与物理按键关联对应,以使得在接收到针对物理按键的触发操作后,可以确定该物理按键对应的目标按钮控件,然后执行该目标按钮控件的响应程序,实现了采用物理按键控制应用程序。该技术方案中,通过额外设定的应用程序的操作界面中按钮控件与物理按键的对应关系,实现了采用物理按键触发原有按钮控件,进而执行应用程序中原有按钮控件的响应程序,实现原有按钮控件的功能。因而无需针对各应用程序修改原有代码,提高了采用物理按键控制应用程序的方法的适用范围,通用性能较高。并且也避免了因需要修改应用程序原有代码而涉及到的与应用程序开发商的合作问题,进而避免了合作带来的经济成本和时间成本。
95.请参考图5,其示出了本技术又一个示例性实施例提供的应用程序的控制方法的流程图。图5所示的控制方法对前述控制方法进行进一步说明。示例的,如图5所示,应用程序进程启动后,电子设备与inputmanagerservice建立连接,监听硬按键事件。电子设备解析配置文件,并在接收到硬按键事件后,判断应用程序是否处理此按键消息。若应用程序处理此按键消息,则电子设备不处理此按键消息。若应用程序不处理此按键消息,则获取应用程序的包名、应用程序操作界面的activity名称以及硬按键的id。判断数据在配置文件中是否有对应的配置。该数据包括应用程序的包名、应用程序操作界面的activity类名称以及硬按键的id。若数据在配置中有对应的配置,则获取控件java对象,执行点击方法。若数据在配置中没有对应的配置,则不处理此按键消息。
96.其中,用户可以触发应用程序启动,使得电子设备显示目标应用程序的目标操作界面。应用程序进程启动后,电子设备与inputmanagerservice建立连接,监听硬按键事件的过程包括:电子设备可以接收针对物理按键的触发操作,通过启动的目标应用程序的应用进程与安卓操作系统中框架层的inputmanagerservice建立连接。从而使得inputmanagerservice监听针对电子设备包括的物理按键的触发操作。并在监听到电子设备接收到针对物理按键的触发操作后,生成触发操作对应的硬按键事件(keyevent)。
97.电子设备接收预先存储的配置文件,并在接收到硬按键事件后,判断应用程序是否处理此按键消息,即判断是否存在针对目标操作界面包括的多个视图组件中任一视图组件的硬按键事件。若应用程序处理此按键消息,表明存在任一视图组件的硬按键事件,则电子设备不处理此按键消息,即结束执行此次应用程序的控制方法。
98.若应用程序不处理此按键消息,表明不存在任一视图组件的硬按键事件,则获取应用程序的包名、应用程序操作界面的activity类名以及硬按键的id,该硬按键的id可以指的是硬按键的第一按键标识(键码值),即获取应用程序的目标包名、应用程序操作界面的目标activity类名以及硬按键的目标第一按键标识。
99.判断数据在配置文件中是否有对应的配置,即判断配置文件中是否包括该目标第一按键标识、目标包名以及目标activity类名这一数据。若数据在配置文件中有对应的配置,获取控件java对象,执行点击方法。该获取控件java对象,执行点击方法过程可以包括:电子设备基于目标第一按键标识、目标包名、目标activity类名以及配置文件,得到目标第一按键标识对应的目标名称,目标按钮控件为目标名称对应的按钮控件。获取目标操作界面中,用于显示目标按钮控件的目标视图组件。执行目标视图组件的点击事件。若数据在配置中没有对应的配置,则不处理此按键消息,即结束执行此次应用程序的控制方法。
100.请参考图6,其示出了本技术另一个实施例提供的应用程序的控制装置的结构框图。该应用程序的控制装置可以通过软件、硬件或者两者的结合实现成为电子设备的全部或一部分,该电子设备运行有应用程序。控制装置600包括:接收模块601、确定模块602以及执行模块603。
101.接收模块601,用于在电子设备显示目标应用程序的目标操作界面的情况下,接收针对物理按键的触发操作;
102.确定模块602,用于确定目标操作界面包括的按钮控件中,与物理按键对应的目标按钮控件;
103.执行模块603,用于执行目标按钮控件的响应程序。
104.可选的,如图7所示,控制装置600还包括:获取模块604。
105.获取模块604,用于获取物理按键的目标第一按键标识,以及配置文件,配置文件用于记录物理按键的第一按键标识与按钮控件的第二按键标识的对应关系。
106.确定模块602,还用于:基于目标第一按键标识以及配置文件,得到目标第一按键标识对应的目标第二按键标识,目标按钮控件为目标第二按键标识对应的按钮控件。
107.可选的,按钮控件的第二按键标识包括:应用程序的包名、应用程序的操作界面的activity类名以及按钮控件的名称。
108.获取模块604,还用于:获取目标应用程序的目标包名、以及目标操作界面的目标activity类名。
109.确定模块602,还用于:基于目标第一按键标识、目标包名、目标activity类名以及配置文件,得到目标第一按键标识对应的目标名称,目标按钮控件为目标名称对应的按钮控件。
110.可选的,目标操作界面包括多个视图组件,视图组件用于显示目标操作界面的数据。控制装置600还包括:生成模块605。
111.生成模块605,用于生成触发操作对应的硬按键事件。
112.确定模块602,还用于:在确定不存在针对多个视图组件中任一视图组件的硬按键事件时,确定目标操作界面包括的按钮控件中,与物理按键对应的目标按钮控件。
113.可选的,针对物理按键的触发操作包括针对物理按键的点击操作。执行模块603,还用于:
114.获取目标操作界面中,用于显示目标按钮控件的目标视图组件;
115.执行目标视图组件的点击事件。
116.可选的,执行模块603,还用于:
117.基于目标按钮控件的目标名称,确定目标按钮控件的整型类型的目标标识号;
118.遍历目标操作界面包括的所有视图组件对应的标识号,获取与目标标识号对应的目标视图组件。
119.可选的,电子设备的操作系统为安卓操作系统。
120.综上所述,本技术实施例提供的应用程序的控制装置中,通过将应用程序的操作界面中按钮控件与物理按键关联对应,以使得在接收模块接收到针对物理按键的触发操作后,可以使得确定模块确定该物理按键对应的目标按钮控件,然后执行模块执行该目标按钮控件的响应程序,实现了采用物理按键控制应用程序。该技术方案中,通过额外设定的应用程序的操作界面中按钮控件与物理按键的对应关系,实现了采用物理按键触发原有按钮控件,进而执行应用程序中原有按钮控件的响应程序,实现原有按钮控件的功能。因而无需针对各应用程序修改原有代码,提高了采用物理按键控制应用程序的方法的适用范围,通用性能较高。并且也避免了因需要修改应用程序原有代码而涉及到的与应用程序开发商的合作问题,进而避免了合作带来的经济成本和时间成本。
121.需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
122.本技术实施例还提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集。所述至少一条指令、至少一段程序、代码集或指令集经配置以由一个或者一个以上处理器执行,以实现本技术实施例提供的应用程序的控制方法。
123.本技术实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的应用程序的控制方法。
124.本技术实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的应用程序的控制方法。
125.本领域技术人员应该可以意识到,在上述一个或多个示例中,本技术实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个
地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
126.以上所述仅为本技术的较佳实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1