CN107357586B - 应用程序的控制方法、装置及设备 - Google Patents

应用程序的控制方法、装置及设备 Download PDF

Info

Publication number
CN107357586B
CN107357586B CN201710573725.3A CN201710573725A CN107357586B CN 107357586 B CN107357586 B CN 107357586B CN 201710573725 A CN201710573725 A CN 201710573725A CN 107357586 B CN107357586 B CN 107357586B
Authority
CN
China
Prior art keywords
program
touch event
layer program
pressure touch
internal layer
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
CN201710573725.3A
Other languages
English (en)
Other versions
CN107357586A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710573725.3A priority Critical patent/CN107357586B/zh
Publication of CN107357586A publication Critical patent/CN107357586A/zh
Application granted granted Critical
Publication of CN107357586B publication Critical patent/CN107357586B/zh
Priority to PCT/CN2018/095342 priority patent/WO2019011280A1/zh
Priority to JP2019540578A priority patent/JP6768243B2/ja
Priority to KR1020197029030A priority patent/KR102248561B1/ko
Priority to US16/537,768 priority patent/US10754715B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0414Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means using force sensing means to determine a position
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • 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)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种应用程序的控制方法、装置及设备,属于人机交互领域。所述方法包括:通过虚拟引擎拦截压力触控事件;通过虚拟引擎将压力触控事件传递至应用程序的外层程序;通过应用程序的外层程序将压力触控事件传递至应用程序的内层程序;通过应用程序的内层程序根据压力触控事件执行预定操作。本发明解决了由于应用程序的内层程序无法直接在操作***中运行,需要增加外层程序后才能正常运行,但因外层程序的存在,导致应用程序无法直接对压力触控事件进行处理的问题;从而实现了基于虚拟引擎开发的应用程序中能够采用压力触控技术进行输入控制,在移动终端有限的屏幕面积上实现多种控制指令的触发,从而提高人机交互的效率。

Description

应用程序的控制方法、装置及设备
技术领域
本发明涉及人机交互领域,特别涉及一种应用程序的控制方法、装置及设备。
背景技术
移动终端上存在很多采用虚拟引擎开发的应用程序,特别是存在很多采用三维虚拟引擎开发的应用程序,比如:虚拟现实应用程序、三维地图程序、第一人称射击游戏(First-person shooting game,FPS)、多人在线战术竞技游戏(Multiplayer OnlineBattle Arena Games,MOBA)。
目前较为常用的三维虚拟引擎是Unity引擎,以应用程序是基于Unity引擎开发的FPS游戏应用程序为例,用户在使用该FPS游戏应用程序时,用户界面上显示有若干个虚拟按键,用户按压虚拟按键控制游戏角色进行前进、后退、转身和开火等行为。
虽然一些移动终端上配备了压力触控屏幕,但是由于目前的Unity引擎还不能直接支持压力触控功能,所以无法采用压力触控技术对基于Unity引擎开发的应用程序进行控制。
发明内容
为了解决无法采用压力触控技术对基于Unity引擎开发的应用程序进行控制的问题,本发明实施例提供了一种应用程序的控制方法、装置及设备。所述技术方案如下:
第一方面,提供了一种应用程序的控制方法,应用于安装有虚拟引擎和应用程序的终端中,所述应用程序是基于所述虚拟引擎开发的程序,所述应用程序包括外层程序和内层程序,所述方法包括:
所述虚拟引擎拦截压力触控事件,所述压力触控事件包括操作坐标和压力值;
所述虚拟引擎将所述压力触控事件传递至所述外层程序;
所述外层程序将所述压力触控事件传递至所述内层程序;
所述内层程序根据所述压力触控事件执行预定操作。
第二方面,提供了一种应用程序的控制装置包括:虚拟引擎模块和应用程序模块,所述应用程序是基于所述虚拟引擎模块开发的程序模块,所述应用程序模块包括外层程序模块和内层程序模块;
所述虚拟引擎模块,用于拦截压力触控事件,所述压力触控事件包括操作坐标和压力值;
所述虚拟引擎模块,用于将所述压力触控事件传递至所述外层程序模块;
所述外层程序模块,用于将所述压力触控事件传递至所述内层程序模块;
所述内层程序模块,用于根据所述压力触控事件执行预定操作。
本发明实施例提供的技术方案带来的有益效果是:
通过将压力触控事件传递至应用程序的外层程序,再从应用程序的外层程序传递至应用程序的内层程序,由内层程序根据压力触控事件执行预设操作;解决了由于应用程序的内层程序无法直接在操作***中运行,需要增加外层程序后才能正常运行,但因外层程序的存在,导致应用程序无法直接对压力触控事件进行处理的问题;从而实现了基于三维虚拟引擎开发的应用程序中能够采用压力触控技术进行输入控制,在移动终端有限的屏幕面积上实现多种控制指令的触发,从而提高人机交互的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个示例性的实施例提供的终端的结构示意图;
图2是本发明一个示例性实施例提供的应用程序的控制方法的流程图;
图3是本发明一个示例性实施例提供的应用程序的控制方法在实施时的界面示意图;
图4是本发明另一个示例性实施例提供的应用程序的控制方法的流程图;
图5是本发明另一个示例性的实施例提供的终端的结构示意图;
图6是本发明另一个示例性实施例提供的应用程序的控制方法的流程图;
图7是本发明另一个示例性的实施例提供的终端的结构示意图;
图8是本发明另一个示例性实施例提供的应用程序的控制方法的流程图;
图9是本发明另一个示例性的实施例提供的终端的结构示意图;
图10是本发明另一个示例性实施例提供的应用程序的控制方法的流程图;
图11是本发明另一个示例性的实施例提供的终端的结构示意图;
图12是本发明另一个示例性实施例提供的应用程序的控制方法的流程图;
图13是本发明另一个示例性实施例提供的应用程序的控制方法的流程图;
图14是本发明一个示例性实施例提供的应用程序的控制装置的的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
常见的虚拟引擎为Unity引擎,基于Unity引擎开发的应用程序通常采用C#编程语言编写。在将基于Unity引擎开发的应用程序发布到不同的操作***上时,由于不同的操作***上所支持的编程语言是不同的,所以需要对应用程序进行适应性的修改。比如,安卓操作***支持以Java编程语言开发的应用程序,则需要对基于C#编程语言编写的应用程序增加一个Java编程语言编写的外层程序后,才能在安卓操作***中正常运行;又比如,IOS操作***支持以Object-C编程语言开发的应用程序,则需要对基于C#编程语言编写的应用程序增加一个Object-C编程语言编写的外层程序后,才能在IOS操作***中正常运行。
由于外层程序的存在,导致基于C#编程语言编写的应用程序无法获取到操作***底层的压力触控事件,所以不支持压力触控技术。为此,本发明实施例提供了如下实施例,用于解决该技术问题。
图1是本发明一个示例性的实施例提供的终端的结构示意图。如图1所示,该终端包括处理器11、触摸屏12以及存储器13。
处理器11可以是单核处理器、多核处理器、嵌入式芯片以及具有指令运行能力的处理器中的至少一种。
触摸屏12为压力感应触摸屏,压力感应触摸屏可以对施加在触摸屏12上的按压力度进行测量。
存储器13存储有处理器11的可执行程序。示意性的,存储器13中存储有应用程序A、应用程序B、应用程序C、虚拟引擎17、压力感应模块18、操作***的内核层19。示意性的,应用程序A包括了应用程序A的外层程序141和应用程序A的内层程序142。其中,应用程序A为基于虚拟引擎17开发的应用程序,应用程序A的外层程序采用第一编程语言进行开发,应用程序A的内层程序采用第二编程语言进行开发。可选地,第一编程语言为操作***的应用层所直接支持的开发语言,第二编程语言为应用程序初始开发时所使用的编程语言,第一编程语言与第二编程语言为两种不同的编程语言,且在没有应用程序A的外层程序的情况下,应用程序A的内层程序无法直接运行在操作***中。应用程序A的外层程序中包含了应用程序A的内层程序。可选地,应用程序A包括但不限于由虚拟引擎17开发的游戏程序、虚拟现实程序、三维地图程序、三维演示程序中的至少一种。比如,终端的操作***采用安卓操作***时,应用程序A的外层程序采用Java编程语言进行开发,应用程序A的内层程序采用C#语言进行开发;又比如,终端的操作***采用IOS操作***时,应用程序A的外层程序采用Object-C编程语言进行开发,应用程序A的内层程序采用C#语言进行开发。
虚拟引擎17是一款支持多种操作***平台的交互式引擎,示意性的,虚拟引擎可用于游戏开发领域、虚拟现实(Virtual Reality,VR)领域以及三维地图领域等多领域的程序开发,虚拟引擎包括但不限于:三维虚拟引擎、二维虚拟引擎等。本发明实施例对虚拟引擎17的具体类型不限,在下文实施例中以虚拟引擎17为三维虚拟引擎,特别是Unity引擎为例来举例说明。
压力感应模块18是用于接收触摸屏驱动程序191所上报的压力触控事件的模块。压力触控事件中包括:压力触控事件的压力值以及坐标值。该坐标值用于指示压力触控操作在显示屏上的触控位置。可选地,以显示屏的水平方向建立横坐标轴,显示屏的竖直方向建立竖坐标轴得到一个二维坐标系。
示意性的,内核层19包括了触摸屏驱动程序191以及其它驱动程序192。触摸屏驱动程序191是用于检测压力触控事件的模块,当触摸屏驱动程序191检测到压力触控事件后,将压力触控事件传递给压力感应模块18。
其他驱动程序192可以是与处理器11有关的驱动程序、与存储器13有关的驱动程序、与网络组件有关的驱动程序、与声音组件有关的驱动程序等。
本领域技术人员可以知晓,上述仅为对终端的结构的概括性示意。在不同的实施例中,终端可以具有更多或更少的组件。比如,终端还可以包括重力加速度传感器、陀螺仪传感器、电源等等。
图2是本发明一个示例性实施例提供的应用程序的控制方法的流程图。本实施例以该应用程序的控制方法应用于图1所示的终端中来举例说明。该方法包括:
在步骤101中,虚拟引擎拦截压力触控事件。
压力触控事件是在采用了压力触控技术的触摸屏上触发的触摸事件。在本实施例中,虚拟引擎为应用程序A所使用的引擎。
当用户使用应用程序A时,终端的触摸屏12上显示有应用程序A的用户界面,该用户界面上包括用于人机交互的控件,比如虚拟按钮。用户在触摸屏上施加压力触控操作时,终端的触摸屏驱动程序191会产生压力触控事件,并上报至压力感应模块18。压力感应模块18将压力触控事件以消息形式,发送至至少一个应用程序。
其中,虚拟引擎会拦截压力触控事件。
在步骤102中,虚拟引擎将压力触控事件传递至应用程序的外层程序。
应用程序的外层程序采用第一编程语言进行开发,可选地,第一编程语言为操作***的应用层所直接支持的开发语言,如安卓操作***的应用层所支持的开发语言为Java,iOS操作***的应用层所支持的开发语言为Object-C等,本实施例对此不加以限定。
在本实施例中,应用程序A为基于虚拟引擎所开发的应用程序,当虚拟引擎截获到压力触控事件后,将压力触控事件传递至应用程序A的外层程序,压力触控事件包括:该事件的压力值以及坐标值。
在步骤103中,应用程序的外层程序接收到压力触控事件。
该压力触控事件包括:该事件的压力值以及坐标值。
在步骤104中,应用程序的外层程序将压力触控事件传递至应用程序的内层程序。
应用程序的内层程序采用第二编程语言进行开发,可选地,第二编程语言为应用程序原始开发时的编程语言,该编程语言包括但不限于:C语言、Java语言、C#语言、C++语言、Python语言中的至少一种,本实施例以第二编程语言是C#语言来举例说明,但对此不加以限定。
在步骤105中,应用程序的内层程序接收到压力触控事件。
在步骤106中,应用程序的内层程序根据压力触控事件执行预定操作。
示意性的,当压力触控事件中的压力值大于预设阈值时,执行第一预定操作;当压力触控事件中的压力值小于预设阈值时,执行第二预定操作。
综上所述,本发明提供的应用程序的控制方法,通过将压力触控事件传递至应用程序的外层程序,再从应用程序的外层程序传递至应用程序的内层程序,由内层程序根据压力触控事件执行预设操作;解决了由于应用程序的内层程序无法直接在操作***中运行,需要增加外层程序后才能正常运行,但因外层程序的存在,导致应用程序无法直接对压力触控事件进行处理的问题;从而实现了基于虚拟引擎开发的应用程序中能够采用压力触控技术进行输入控制,在移动终端有限的屏幕面积上实现多种操作指令的触发,从而提高人机交互的效率。
图3是本发明一个示例性实施例提供的应用程序的控制方法在具体实施时的界面示意图。在一个具体的例子中,如图3所示,终端上位于前台运行的应用程序是一个第一人称射击游戏,该应用程序是基于虚拟引擎开发的游戏应用程序,位于前台运行的用户界面为在游戏中以玩家的第一视角进行射击的界面,该界面包括:用于移动角色位置的第一控件331和用于移动视角位置的第二控件332。
第一控件331是用于移动角色位置的控件,由于游戏角色是位于三维虚拟环境中的虚拟人物,用户通过第一控件331可以控制虚拟人物在三维虚拟环境中向前、向后、向左或向右移动。示意性的,用户将第一控件331沿垂直向上滑动,终端将在三维虚拟环境中的虚拟人物向前方移动;用户将第一控件331沿垂直向下滑动,终端将在三维虚拟环境中的虚拟人物会向后方移动;用户将第一控件331沿水平向左滑动,终端将在三维虚拟环境中的虚拟人物向左方移动;用户将第一控件331沿水平向右滑动,终端将在三维虚拟环境中的虚拟人物向右方移动。
第二控件332是用于控制第一视角的视角方向的控件,示意性的,用户采用较轻的压力滑动第二控件332且将第二控件332沿水平向左滑动,应用程序的内层程序判断出压力值未超过预定阈值,则应用程序将游戏中的第一视角向左转动;将第一控件331沿水平向右滑动,用户在游戏中的第一视角向右转动;将第一控件沿垂直向上滑动,用户在游戏中的主观视角向上转动;将第二控件332沿垂直向下滑动,用户在游戏中的主观视角向下转动。
同时,第二控件332还可以用来触发开火操作。当用户采用较重的压力在第二控件332上按压时,应用程序的内层程序判断出压力值超过了预定阈值,则应用程序控制游戏角色进行开火操作。也即,用户能够通过不同压力值的压力触控操作,在第二控件332上实现两种不同的控制操作。
在一些实施例中,虚拟引擎本身提供有消息转发代码,该消息转发代码默认将压力触控事件转发至内层程序232。但是由于外层程序231的存在,该消息转发代码会转发失败,不能有效执行。此时需要对虚拟引擎的消息转发代码进行修改。为此,本发明还提供有如下实施例:
图4是本发明另一个示例性实施例提供的终端的结构示意图。示意性的,以终端采用的第一操作***为例,该第一操作***是触摸屏驱动程序将压力触控事件不通过图形用户界面组件而直接发送至应用层的操作***,该第一操作***包括但不限于:安卓操作***。
处理器21可以是单核处理器、多核处理器、嵌入式芯片以及具有指令运行能力的处理器中的至少一种。
触摸屏22为压力感应触摸屏,压力感应触摸屏可以对施加在触摸屏12上的按压力度进行测量。
存储器23中存储有处理器21的可执行程序。示意性的,存储器23中存储有应用程序A、应用程序B、应用程序C、C++动态链接库26、虚拟引擎261、压力感应模块262、操作***的内核层27。示意性的,应用程序A包括了应用程序A的外层程序231和应用程序A的内层程序232。其中,应用程序A为基于虚拟引擎261开发的应用程序,应用程序A的外层程序采用第一编程语言进行开发,应用程序A的内层程序采用第二编程语言进行开发。可选地,第一编程语言为操作***的应用层所直接支持的开发语言,第二编程语言为应用程序初始开发时所使用的编程语言,第一编程语言与第二编程语言为两种不同的编程语言,且在没有应用程序A的外层程序的情况下,应用程序A的内层程序无法直接运行在操作***中。应用程序A的外层程序中包含了应用程序A的内层程序。可选地,应用程序A包括但不限于由虚拟引擎261开发的游戏程序、虚拟现实程序、三维地图程序、三维演示程序中的至少一种。比如,终端的操作***采用安卓操作***时,应用程序A的外层程序采用Java编程语言进行开发,应用程序A的内层程序采用C#语言进行开发;又比如,终端的操作***采用IOS操作***时,应用程序A的外层程序采用Object-C编程语言进行开发,应用程序A的内层程序采用C#语言进行开发。
示意性的,内核层27包括了触摸屏驱动程序271以及其它驱动程序272。触摸屏驱动程序271是用于检测压力触控事件的模块,当触摸屏驱动程序271检测到压力触控事件后,将压力触控事件传递给压力感应模块262。
其他驱动程序272可以是与处理器21有关的驱动程序、与存储器23有关的驱动程序、与网络组件有关的驱动程序、与声音组件有关的驱动程序等。
如图4所示出的终端采用第一操作***时,应用程序A的内层程序232又包括:内层程序的主线程模块233以及输入管理器234;C++动态链接库26又包括:虚拟引擎261和压力感应模块262。
C++动态链接库是实现共享函数库概念的一种方式,动态链接库允许进程调用不属于其可执行代码的函数,且动态链接库可以将更新功能应用于应用程序的各个模块而不影响程序的其它部分。换句话说,应用程序A可以调用C++动态链接库26中的各个模块,但C++动态链接库26中的各个模块可以视为不属于应用程序A自身的可执行代码。
压力感应模块262中包括有预设程序,该预设程序是用于对虚拟引擎中的消息转发代码进行修改的程序。
图5是本发明另一个示例性实施例提供的应用程序的控制方法的流程图。本实施例以该应用程序的控制方法应用在图4所示终端中来举例说明。该方法包括:
在步骤301中,预设程序获取虚拟引擎在内存中的基地址。
在应用程序A启动后,C++动态链接库26中的预设程序获取虚拟引擎在内存中运行时的基地址。预设程序可以采用反汇编的形式获取虚拟引擎在内存中的基地址。
内存寻址是指在内存中找到数据或指令的代码位置,对于内存寻址来说,需要通过基地址+偏移地址来定位指令或代码位置。
在步骤302中,预设程序按照基地址和预设偏移地址定位消息转发代码对应的代码位置。
消息转发代码是虚拟引擎中预设的消息转发代码。该消息转发代码用于将拦截到的压力触控事件转发至内层程序。
预设程序根据获取到的基地址以及预设的偏移地址,对消息转发代码在内存中的代码位置进行定位。
在步骤303中,预设程序根据定位到的代码位置将消息转发代码的消息接收方从内层程序修改为外层程序。
由于需要将压力触控事件先传递给外层程序后,再由外层程序传递给内层程序,所以预设程序在定位到消息转发代码的代码位置后,将消息转发代码中的消息接收方从内层程序修改为外层程序。
在步骤304中,虚拟引擎拦截压力触控事件。
当用户使用应用程序时,终端的触摸屏上显示有应用程序的用户界面,该用户界面上包括用于人机交互的控件,比如虚拟按钮。用户在触摸屏上施加压力触控操作时,终端的触摸屏驱动程序会产生压力触控事件,并上报至压力感应模块,虚拟引擎会拦截到该压力触控事件。
在步骤305中,虚拟引擎根据预设程序修改后的消息转发代码,将压力触控事件传递至应用程序的外层程序。
由于修改后的消息转发代码中将压力触控事件的目标地址由内层程序修改为外层程序,故虚拟引擎在拦截到压力触控事件时,根据修改后的消息转发代码将压力触控事件传递至应用程序的外层程序中。
在步骤306中,外层程序将压力触控事件发送至内层程序的主线程中。
在步骤307中,内层程序通过主线程将压力触控事件传递至内层程序中的输入管理器。
输入管理器是在内层程序中负责处理外部输入信号的程序模块。示意性的,输入管理器用于对用户界面显示的虚拟按键上所触发的压力触控事件进行管理,参考图3可知,输入管理器可对第一控件31和第二控件32进行压力触摸事件的管理。
在步骤308中,内层程序通过输入管理器根据压力触控事件执行预定操作。
可选地,输入管理器从压力触控事件中解析出操作坐标和压力值;输入管理器确定与操作坐标对应的输入控件;当压力值大于预定阈值时,输入管理器执行与输入控件对应的第一操作;当压力值小于预定阈值时,输入管理器执行与输入控件对应的第二操作。
综上所述,本实施例提供的应用程序控制方法,通过采用预设程序对虚拟引擎中原始的消息转发代码进行修改,使得虚拟引擎在拦截到压力触控事件后,先将压力触控事件传递至外层程序,再由外层程序传递至内层程序;从而解决了由于应用程序的内层程序无法直接在操作***中运行,需要增加外层程序后才能正常运行,但因外层程序的存在,导致应用程序无法直接对压力触控事件进行处理的问题;从而实现了内层程序也能够接收到压力触控事件,从而内层程序中的输入管理器也能够对压力触控事件进行处理,从而支持压力触控操作对应用程序的控制,在移动终端有限的屏幕面积上实现多种控制指令的触发,从而提高人机交互的效率。
在一个具体的例子中,图4所示终端采用的第一操作***是安卓操作***。图6示出了本发明另一个示例性实施例提供的终端的结构示意图。在终端采用安卓操作***时,应用程序A的外层程序为Java层57,应用程序A的内层程序为C#层572,其中,应用程序A的Java层中还包括:UI线程模块571;C++动态链接库58中的虚拟引擎为Unity引擎581,压力感应模块582用于拦截压力触控事件且压力感应模块582中包括有预设程序,该预设程序用于修改Unity引擎的消息转发机制;安卓操作***中还包括:Java虚拟机59。Java虚拟机59用于为应用程序A、应用程序B和应用程序C提供Java运行环境。
可选地,Java语言为安卓操作操作的应用层所支持的编程语言,所以应用程序A的外层程序为Java层的程序模块;可选地,C#语言为应用程序A的原始开发语言,所以应用程序A的内层程序为C#层的程序模块。
虚拟机是一种虚拟化和抽象化的计算机,Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,且具有相应的指令***,Java虚拟机可以使Java程序只需生成在Java虚拟机上运行的目标代码就可以在多种平台上不加修改的运行。在本实施例中,Java虚拟机用于运行应用程序A的外层程序的各项功能。
上述的预设程序具有地址映射能力。地址映射是指将应用程序中的逻辑地址转换为运行时由机器直接寻址的物理地址的过程。
图7是本发明一个示例性实施例提供的应用程序的控制方法的流程图。本实施例以该应用程序的控制方法应用于图6所示的安卓操作***中来举例说明。该方法包括:
在步骤501中,在应用程序启动时,C#层进行应用程序的初始化;
用户点击应用程序A的图标后,启动应用程序A。应用程序A的C#层进行初始化,初始化包括但不限于:启动C#层中的主线程、加载图像资源、音频资源和逻辑代码等。
在步骤502中,Unity引擎调用Java层的UI线程;
在应用程序需要显示与三维虚拟环境有关的UI时,由Unity引擎生成UI画面,并调用Java层的UI线程进行显示。
在步骤503中,Java层的UI线程加载C++动态链接库中的压力感应模块;
Java层的UI线程在显示UI画面的过程中,会动态加载压力感应模块。该压力感应模块中包括预设程序。
在步骤504中,预设程序获取Unity引擎在内存中的基地址。
预设程序从安卓操作***中获取Unity引擎在内存中运行时的基地址。预设程序可以采用反汇编的形式获取Unity引擎在内存中的基地址。
在步骤505中,预设程序按照基地址和预设偏移地址定位消息转发代码对应的代码位置。
消息转发代码是Unity引擎中预设的消息转发代码。该消息转发代码用于将拦截到的压力触控事件转发至内层程序。
预设程序根据获取到的基地址以及预设的偏移地址,对消息转发代码在内存中的代码位置进行定位。
在步骤506中,预设程序根据定位到的代码位置将消息转发代码的消息接收方从C#层修改为Java层的UI线程。
由于应用程序A的内层程序为C#层,即应用程序A所使用的开发语言为C#语言,而外层程序的开发语言为Java语言,在不经过Java层的情况下C#层无法获取到压力触控事件,所以需要将压力触控事件先传递给Java层的UI线程后,再由Java层的UI线程传递给C#层。
预设程序在定位到消息转发代码的代码位置后,将消息转发代码中的消息接收方从C#层修改为Java层的UI线程。
在步骤507中,在接收到压力触控操作时,触摸屏驱动程序生成压力触控事件;
在步骤508中,Unity引擎拦截压力触控事件。
当用户使用应用程序A时,终端的触摸屏上显示有应用程序A的用户界面,该用户界面上包括用于人机交互的控件,比如虚拟按钮。用户在触摸屏上施加压力触控操作时,终端的触摸屏驱动程序会产生压力触控事件,并上报至压力感应模块,Unity引擎会拦截到该压力触控事件。
在步骤509中,Unity引擎根据修改后的消息转发代码,将压力触控事件传递至Java层的UI线程。
在本实施例中,由于修改后的消息转发代码中将压力触控事件的目标地址由C#层修改为Java层,故Unity引擎通过该消息转发代码,会将压力触控事件传递至Java层的UI线程。
在步骤510中,Java层的UI线程接收到压力触控事件。
在步骤511中,Java层的UI线程将压力触控事件发送至C#层的主线程中。
当应用程序A是游戏应用程序时,该主线程是用于实现游戏应用程序中主要运行逻辑的主线程。
在步骤512中,C#层的主线程将压力触控事件传递至C#层的输入管理器。
输入管理器是在C#层中负责处理外部输入信号的程序模块。示意性的,输入管理器用于对用户界面显示的虚拟按键上所触发的压力触控事件进行管理,参考图3可知,输入管理器可对第一控件31和第二控件32进行压力触摸事件的管理。
在步骤513中,输入管理器根据压力触控事件生成控制指令;
可选地,输入管理器从压力触控事件中解析出操作坐标和压力值;输入管理器确定与操作坐标对应的输入控件(比如第二控件);当压力值大于预定阈值时,输入管理器生成与输入控件对应的第一操作指令,比如改变第一视角的视角方向;当压力值小于预定阈值时,输入管理器生成与输入控件对应的第二操作,比如开火,如图8所示。
在步骤514中,角色控制器执行控制指令。
可选地,应用程序是游戏应用程序时,内层程序中还包括用于对游戏角色进行控制的角色控制器。当输入管理器生成第一操作指令时,由角色控制器执行第一操作指令;当输入管理器生成第二操作指令时,由角色控制器执行第二操作指令。
在另外一些实施例中,终端采用第二操作***。与第一操作***不同的是,第二操作***是具有一套原生的GUI(Graphical User Interface,图形用户界面)组件的***,该GUI组件具有一套完善的消息派发模块,该GUI组件用于在压力触控事件由触摸屏驱动程序上报至该GUI组件后,将该压力触控事件上报至应用层,该第二操作***包括但不限于:iOS操作***。此时,虚拟引擎需要从该GUI组件中的消息派发模块中拦截压力触控事件。
图9是本发明另一个示例性实施例提供的终端的结构示意图。示意性的,以终端采用的是第二操作***为例。该终端包括:处理器31、触摸屏32和存储器33。存储器33中存储有至少一个程序指令。
处理器31可以是单核处理器、多核处理器、嵌入式芯片以及具有指令运行能力的处理器中的至少一种。
触摸屏32为压力感应触摸屏,压力感应触摸屏可以对施加在触摸屏32上的按压力度进行测量。
存储器33存储有处理器31的可执行程序。示意性的,存储器33中存储的程序指令包括但不限于:内核层34、UI框架35、C++动态链接库36和应用层37。
内核层34包括:触摸屏驱动程序341和其它驱动程序342。触摸屏驱动程序341用于在触摸屏32上收到压力触控操作时,生成压力触控事件。该压力触控事件包括:操作坐标和压力值。触摸屏驱动程序341还用于将压力触控事件上报至UI框架35。
UI框架35是操作***提供的框架,用于实现人机交互的界面显示框架。UI框架35中提供有消息派发模块。当UI框架35接收到压力触控事件时,会将压力触控事件派发至相应的应用程序。
C++动态链接库36包括:虚拟引擎361和消息拦截模块362。虚拟引擎361用于实现三维虚拟环境的构建和显示;消息拦截模块362用于从UI框架35拦截压力触控事件。可选地,消息拦截模块362是虚拟引擎361的一部分。虚拟引擎361通过消息拦截模块362拦截到压力触控事件后,将压力触控事件传递至应用程序A的外层程序。
应用程序A是基于虚拟引擎开发的应用程序。应用程序A包括:外层程序371和内层程序372。其中,内层程序372包括:主线程模块373和输入管理器374。输入管理器374是用于对外部输入信号(比如压力触控事件)进行处理的程序模块。
图10示出了本发明的一个示例性实施例提供的应用程序的控制方法的流程图。本实施例以该应用程序的控制方法应用于图9所示的终端中来举例说明。该方法包括:
在步骤601中,内层程序向外层程序发送调用请求,该调用请求用于指示所述外层程序在接收到压力触控事件时转发至内层程序;
在步骤602中,UI框架接收到压力触控事件;
当用户使用应用程序A时,终端的触摸屏上显示有应用程序A的用户界面,该用户界面上包括用于人机交互的控件,比如虚拟按钮。用户在触摸屏上施加压力触控操作时,终端的触摸屏驱动程序会产生压力触控事件,并上报至UI框架。
对应的,UI框架接收压力触控事件。
在步骤603中,虚拟引擎从UI框架拦截压力触控事件;
在步骤604中,虚拟引擎将压力触控事件传递至外层程序;
在步骤605中,外层程序将压力触控事件传递至内层程序;
在步骤606中,内层程序根据压力触控事件执行预定操作。
示意性的,当压力触控事件中的压力值大于预设阈值时,执行第一预定操作;当压力触控事件中的压力值小于预设阈值时,执行第二预定操作。
综上所述,本实施例提供的应用程序控制方法,通过预先由内层程序向外层程序发送调用请求,能够触发外层程序在接收到压力触控事件时转发至内层程序;再由内层程序根据压力触控事件执行预设操作;解决了由于应用程序的内层程序无法直接在操作***中运行,需要增加外层程序后才能正常运行,但因外层程序的存在,导致应用程序无法直接对压力触控事件进行处理的问题;从而实现了基于虚拟引擎开发的应用程序中能够采用压力触控技术进行输入控制,在移动终端有限的屏幕面积上实现多种操作指令的触发,从而提高人机交互的效率。
图11是本发明另一个示例性的实施例提供的终端的结构示意图。示意性的,以终端采用的第二操作***为iOS操作***为例,该终端包括:处理器61、触摸屏62和存储器63。存储器63中存储有至少一个程序指令。
处理器61可以是单核处理器、多核处理器、嵌入式芯片以及具有指令运行能力的处理器中的至少一种。
触摸屏62为压力感应触摸屏,压力感应触摸屏可以对施加在触摸屏62上的按压力度进行测量。
存储器63存储有处理器61的可执行程序。示意性的,存储器63中存储的程序指令包括但不限于:内核层64、UI Kit 65、C++动态链接库66和应用层67。
内核层64包括:触摸屏驱动程序641和其它驱动程序642。触摸屏驱动程序641用于在触摸屏62上收到压力触控操作时,生成压力触控事件。该压力触控事件包括:操作坐标和压力值。触摸屏驱动程序641还用于将压力触控事件上报至UI Kit 65。
UI Kit 65是IOS操作***提供的框架,用于实现人机交互的界面显示框架。UIKit 65中提供有消息派发模块。当UI Kit 65接收到压力触控事件时,会将压力触控事件派发至相应的程序模块。
C++动态链接库66包括:Unity引擎661和消息拦截模块662。Unity引擎661用于实现三维虚拟环境的构建和显示;消息拦截模块662用于从UI Kit65拦截压力触控事件。可选地,消息拦截模块662是Unity引擎661的一部分。Unity引擎661通过消息拦截模块662拦截到压力触控事件后,将压力触控事件传递至应用程序A的外层程序。
应用程序A是基于Unity引擎开发的应用程序。应用程序A包括:Object-C层671和C#层672。其中,Object-C层671包括:UI线程模块673和Unity线程模块674,C#层672包括:主线程模块675、输入管理器676、应用框架(Frame Work)677、原生消息中心(NativeMsgHub)678和角色控制器679。输入管理器676是用于对外部输入信号(比如压力触控事件)进行处理的程序模块;应用框架(Frame Work)677用于实现应用程序A的主要运行逻辑,当应用程序A是游戏应用时,应用框架677是游戏应用框架;原生消息中心678用于实现与Object-C层671的调用;角色控制器679用于执行输入管理器676生成的控制指令,并控制游戏角色。
图12是本发明一个示例性实施例提供的应用程序的控制方法的流程图。本实施例以该应用程序的控制方法应用于图11所示的终端中来举例说明。该方法包括:
在步骤701中,C#层向Object-C层发送调用请求,该调用请求用于指示Object-C层在接收到压力触控事件时转发至C#层;
在应用程序启动后,C#层的主线程模块(也称Unity Mono C#线程)向Object-C层发送调用请求。该调用请求用于询问终端是否支持压力触控功能,当终端支持压力触控功能时,Object-C层需要在接收到压力触控事件时转发至C#层。
可选地,C#层中的输入管理器会通过原生消息中心向Object-C层的Unity线程发送调用请求。Untiy线程通过线程安全异步调用将调用请求转发至UI线程。UI线程用于在接收到压力触控事件时转发至C#层中的应用框架,如图13所示。
在步骤702中,在接收到压力触控操作时,触摸屏驱动程序生成压力触控事件;
当用户使用应用程序A时,终端的触摸屏上显示有应用程序A的用户界面,该用户界面上包括用于人机交互的控件,比如虚拟按钮。用户在触摸屏上施加压力触控操作时,终端的触摸屏驱动程序会产生压力触控事件。
在步骤703中,触摸屏驱动程序将压力触控事件上报至UI Kit;
在步骤704中,UI Kit接收到压力触控事件;
在步骤705中,Unity引擎从UI Kit拦截压力触控事件;
Unity引擎通过消息拦截模块,从UI Kit拦截压力触控事件。
在步骤706中,Unity引擎将压力触控事件传递至Object-C层的UI线程;
在步骤707中,Object-C层的UI线程将压力触控事件传递至C#层的游戏应用框架;
在步骤708中,C#层的游戏应用框架将压力触控事件转发给C#层的输入管理器;
在步骤709中,C#层的输入管理器根据压力触控事件生成控制指令;
可选地,输入管理器从压力触控事件中解析出操作坐标和压力值;输入管理器确定与操作坐标对应的输入控件(比如第二控件);当压力值大于预定阈值时,输入管理器生成与输入控件对应的第一操作指令,比如改变第一视角的视角方向;当压力值小于预定阈值时,输入管理器生成与输入控件对应的第二操作,比如开火,如图8所示。
在步骤710中,C#层的角色控制器执行控制指令。
可选地,应用程序是游戏应用程序时,内层程序中还包括用于对游戏角色进行控制的角色控制器。当输入管理器生成第一操作指令时,由角色控制器执行第一操作指令;当输入管理器生成第二操作指令时,由角色控制器执行第二操作指令。
图14示出了本公开一个示例性实施例提供的应用程序的控制装置的框图,该应用程序的控制装置可以通过软件、硬件和/或两者的结合实现成为终端的全部和一部分,该装置中安装有操作***和应用程序,所述装置包括:
虚拟引擎模块801,被配置为拦截压力触控事件,所述压力触控事件包括操作坐标和压力值;
所述虚拟引擎模块,被配置为将所述压力触控事件传递至所述外层程序模块;
应用程序模块802,被配置为包括外层程序模块和内层程序模块;
外层应用程序模块803,被配置为将压力触控事件传递至内层程序模块;
内层应用程序模块804,被配置为根据所述压力触控事件执行预定操作。
在一个可选的实施例中,所述外层程序模块,用于将所述压力触控事件发送至所述内层程序模块的主线程中;
所述内层程序模块,用于通过所述主线程将所述压力触控事件传递至所述内层程序模块的输入控制器;
其中,所述输入控制器是所述内层程序模块中用于处理外部输入信号的程序模块。
在一个可选的实施例中,所述装置还包括:预设程序模块;
所述预设程序模块,用于在所述应用程序启动时,将所述虚拟引擎中的消息转发机制的消息接收方从所述内层程序模块修改为所述外层程序模块;
所述虚拟引擎模块,用于按照所述预设程序模块修改后的所述消息转发机制,将所述压力触控事件传递至所述外层程序模块。
在一个可选的实施例中,所述预设程序模块,用于在所述应用程序启动时,获取所述虚拟引擎模块在内存中的基地址;按照所述基地址和预设偏移地址定位所述消息转发机制对应的代码位置;根据定位到的所述代码位置将所述消息转发机制的消息接收方地址从所述内层程序模块修改为所述外层程序模块。
在一个可选的实施例中,所述内层程序模块,还用于向所述外层程序模块发送调用请求,所述调用请求用于指示所述外层程序模块在接收到所述压力触控事件时转发至所述内层程序模块。
在一个可选的实施例中,所述装置还包括:***级UI框架;
所述虚拟引擎模块,用于在所述***级UI框架拦截所述压力触控事件。
在一个可选的实施例中,所述内层程序模块,用于从所述压力触控事件中解析出所述操作坐标和所述压力值;确定与所述操作坐标对应的输入控件;当所述压力值大于预定阈值时,执行与所述输入控件对应的第一操作;当所述压力值小于所述预定阈值时,执行与所述输入控件对应的第二操作。
需要说明的是:上述实施例提供的应用程序的控制装置在触发智能网业务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用程序的控制装置与应用程序的控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例还提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上任一实施例所述的应用程序的控制方法。
本发明实施例还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如上任一实施例所述的应用程序的控制方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种应用程序的控制方法,其特征在于,应用于安装有虚拟引擎和应用程序的终端中,所述应用程序是基于所述虚拟引擎开发的程序,所述应用程序包括外层程序和内层程序,所述方法包括:
所述虚拟引擎拦截压力触控事件,所述压力触控事件包括操作坐标和压力值;
所述虚拟引擎将所述压力触控事件传递至所述外层程序;
所述外层程序将所述压力触控事件传递至所述内层程序;
所述内层程序根据所述压力触控事件执行预定操作。
2.根据权利要求1所述的方法,其特征在于,所述外层程序是采用第一编程语言开发的程序,所述内层程序是采用第二编程语言开发的程序;
所述外层程序将所述压力触控事件传递至所述内层程序,包括:
所述外层程序将所述压力触控事件发送至所述内层程序的主线程中;
所述内层程序的主线程将所述压力触控事件传递至所述内层程序的输入控制器;
其中,所述输入控制器是用于处理外部输入信号的程序模块。
3.根据权利要求2所述的方法,其特征在于,所述终端采用第一操作***,所述终端还安装有预设程序;
所述虚拟引擎将所述压力触控事件传递至所述外层程序之前,还包括:
在所述应用程序启动时,所述预设程序将所述虚拟引擎中的消息转发代码的消息接收方从所述内层程序修改为所述外层程序;
所述虚拟引擎将所述压力触控事件传递至所述外层程序,包括:
所述虚拟引擎中按照所述预设程序修改后的所述消息转发代码,将所述压力触控事件传递至所述外层程序。
4.根据权利要求3所述的方法,其特征在于,所述在所述应用程序启动时,所述预设程序将所述虚拟引擎中的消息转发代码的消息接收方从所述内层程序修改为所述外层程序,包括:
在所述应用程序启动时,所述预设程序获取所述虚拟引擎在内存中的基地址;
所述预设程序按照所述基地址和预设偏移地址定位所述消息转发代码对应的代码位置;
所述预设程序根据定位到的所述代码位置将所述消息转发代码的消息接收方地址从所述内层程序修改为所述外层程序。
5.根据权利要求2所述的方法,其特征在于,所述终端采用第二操作***;
所述外层程序将所述压力触控事件发送至所述内层程序的主线程之前,还包括:
所述内层程序向所述外层程序发送调用请求,所述调用请求用于指示所述外层程序在接收到所述压力触控事件时转发至所述内层程序。
6.根据权利要求5所述的方法,其特征在于,所述第二操作***包括***级用户界面UI框架;
所述虚拟引擎拦截压力触控事件,包括:
所述虚拟引擎在所述***级UI框架拦截所述压力触控事件。
7.根据权利要求1至6任一所述的方法,其特征在于,所述内层程序根据所述压力触控事件执行预定操作,包括:
所述内层程序从所述压力触控事件中解析出所述操作坐标和所述压力值;
所述内层程序确定与所述操作坐标对应的输入控件;
当所述压力值大于预定阈值时,所述内层程序执行与所述输入控件对应的第一操作;
当所述压力值小于所述预定阈值时,所述内层程序执行与所述输入控件对应的第二操作。
8.一种应用程序的控制装置,其特征在于,所述装置包括:虚拟引擎模块和应用程序模块,所述应用程序是基于所述虚拟引擎模块开发的程序,所述应用程序模块包括外层程序模块和内层程序模块;
所述虚拟引擎模块,用于拦截压力触控事件,所述压力触控事件包括操作坐标和压力值;
所述虚拟引擎模块,用于将所述压力触控事件传递至所述外层程序模块;
所述外层程序模块,用于将所述压力触控事件传递至所述内层程序模块;
所述内层程序模块,用于根据所述压力触控事件执行预定操作。
9.根据权利要求8所述的装置,其特征在于,
所述外层程序模块,用于将所述压力触控事件发送至所述内层程序模块的主线程中;
所述内层程序模块,用于通过所述主线程将所述压力触控事件传递至所述内层程序模块的输入控制器;
其中,所述输入控制器是所述内层程序模块中用于处理外部输入信号的程序模块。
10.根据权利要求9所述的装置,其特征在于,所述装置采用第一操作***,所述装置还包括:预设程序模块;
所述预设程序模块,用于在所述应用程序启动时,将所述虚拟引擎中的消息转发代码的消息接收方从所述内层程序模块修改为所述外层程序模块;
所述虚拟引擎模块,用于按照所述预设程序模块修改后的所述消息转发代码,将所述压力触控事件传递至所述外层程序模块。
11.根据权利要求10所述的装置,其特征在于,
所述预设程序模块,用于在所述应用程序启动时,获取所述虚拟引擎模块在内存中的基地址;按照所述基地址和预设偏移地址定位所述消息转发代码对应的代码位置;根据定位到的所述代码位置将所述消息转发代码的消息接收方地址从所述内层程序模块修改为所述外层程序模块。
12.根据权利要求9所述的装置,其特征在于,
所述内层程序模块,还用于向所述外层程序模块发送调用请求,所述调用请求用于指示所述外层程序模块在接收到所述压力触控事件时转发至所述内层程序模块。
13.根据权利要求8至12任一所述的装置,其特征在于,
所述内层程序模块,用于从所述压力触控事件中解析出所述操作坐标和所述压力值;确定与所述操作坐标对应的输入控件;当所述压力值大于预定阈值时,执行与所述输入控件对应的第一操作;当所述压力值小于所述预定阈值时,执行与所述输入控件对应的第二操作。
14.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至7任一所述的应用程序的控制方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至7任一所述的应用程序的控制方法。
CN201710573725.3A 2017-07-14 2017-07-14 应用程序的控制方法、装置及设备 Active CN107357586B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201710573725.3A CN107357586B (zh) 2017-07-14 2017-07-14 应用程序的控制方法、装置及设备
PCT/CN2018/095342 WO2019011280A1 (zh) 2017-07-14 2018-07-12 应用程序的控制方法、装置、终端及存储介质
JP2019540578A JP6768243B2 (ja) 2017-07-14 2018-07-12 アプリケーションプログラムの制御方法、装置、端末、および記憶媒体
KR1020197029030A KR102248561B1 (ko) 2017-07-14 2018-07-12 애플리케이션 프로그램 제어 방법 및 디바이스, 단말 그리고 저장 매체
US16/537,768 US10754715B2 (en) 2017-07-14 2019-08-12 Application program control method and apparatus, terminal, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710573725.3A CN107357586B (zh) 2017-07-14 2017-07-14 应用程序的控制方法、装置及设备

Publications (2)

Publication Number Publication Date
CN107357586A CN107357586A (zh) 2017-11-17
CN107357586B true CN107357586B (zh) 2018-06-05

Family

ID=60292596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710573725.3A Active CN107357586B (zh) 2017-07-14 2017-07-14 应用程序的控制方法、装置及设备

Country Status (5)

Country Link
US (1) US10754715B2 (zh)
JP (1) JP6768243B2 (zh)
KR (1) KR102248561B1 (zh)
CN (1) CN107357586B (zh)
WO (1) WO2019011280A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357586B (zh) 2017-07-14 2018-06-05 腾讯科技(深圳)有限公司 应用程序的控制方法、装置及设备
CN110597499B (zh) * 2018-10-10 2023-10-03 苏州沁游网络科技有限公司 Unity环境下的跨平台GUI触摸事件解析方法
CN110275722B (zh) * 2019-06-21 2023-08-08 北京百度网讯科技有限公司 用于升级应用的方法、装置、设备和存储介质
CN110404256A (zh) * 2019-07-26 2019-11-05 上海商汤智能科技有限公司 数据处理方法及装置、设备、服务器、***及存储介质
CN112083996A (zh) * 2020-09-16 2020-12-15 努比亚技术有限公司 屏幕控制方法、移动终端及计算机可读存储介质
CN113032273B (zh) * 2021-04-01 2024-04-19 广州虎牙科技有限公司 一种应用程序的调试方法、装置、计算机设备和存储介质
CN113111012B (zh) * 2021-04-14 2023-07-25 景德镇市明泰精工瓷业有限公司 一种应用数据***生成方法及应用数据定位方法
CN114816401B (zh) * 2022-04-13 2022-12-23 上海弘玑信息技术有限公司 界面元素的定位方法、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035760A (zh) * 2014-03-04 2014-09-10 苏州天魂网络科技有限公司 跨移动平台实现沉浸式虚拟现实的***
CN106095666A (zh) * 2016-06-02 2016-11-09 腾讯科技(深圳)有限公司 游戏自动化测试方法及相关装置
CN106293753A (zh) * 2016-08-16 2017-01-04 网易(杭州)网络有限公司 编辑器的开发方法和装置,编辑方法及编辑器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120033673A1 (en) 2010-08-06 2012-02-09 Deepak Goel Systems and methods for a para-vitualized driver in a multi-core virtual packet engine device
US8572508B2 (en) * 2010-11-22 2013-10-29 Acer Incorporated Application displaying method for touch-controlled device and touch-controlled device thereof
JP5480347B2 (ja) * 2012-08-31 2014-04-23 株式会社スクウェア・エニックス ビデオゲーム処理装置、およびビデオゲーム処理プログラム
CN103810089B (zh) * 2012-11-12 2021-12-03 Sap欧洲公司 自动测试基于姿态的应用
KR20140068410A (ko) * 2012-11-28 2014-06-09 삼성전자주식회사 물리 엔진 기반의 사용자 인터페이스를 제공하는 방법 및 그 전자 장치
JP6008897B2 (ja) * 2014-06-13 2016-10-19 キヤノン株式会社 装置、方法、及びプログラム
CN105521603B (zh) * 2015-12-11 2019-05-31 北京奇虎科技有限公司 针对跑酷类游戏进行虚拟输入控制的方法、装置及***
CN107357586B (zh) * 2017-07-14 2018-06-05 腾讯科技(深圳)有限公司 应用程序的控制方法、装置及设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035760A (zh) * 2014-03-04 2014-09-10 苏州天魂网络科技有限公司 跨移动平台实现沉浸式虚拟现实的***
CN106095666A (zh) * 2016-06-02 2016-11-09 腾讯科技(深圳)有限公司 游戏自动化测试方法及相关装置
CN106293753A (zh) * 2016-08-16 2017-01-04 网易(杭州)网络有限公司 编辑器的开发方法和装置,编辑方法及编辑器

Also Published As

Publication number Publication date
KR20190121376A (ko) 2019-10-25
WO2019011280A1 (zh) 2019-01-17
JP2020509463A (ja) 2020-03-26
US10754715B2 (en) 2020-08-25
KR102248561B1 (ko) 2021-05-04
CN107357586A (zh) 2017-11-17
JP6768243B2 (ja) 2020-10-14
US20190361756A1 (en) 2019-11-28

Similar Documents

Publication Publication Date Title
CN107357586B (zh) 应用程序的控制方法、装置及设备
US10990274B2 (en) Information processing program, information processing method, and information processing device
EP3285156B1 (en) Information processing method and terminal, and computer storage medium
KR101996978B1 (ko) 정보 처리 방법, 단말 및 컴퓨터 저장 매체
CN108628652A (zh) 用户界面渲染方法、装置及终端
WO2021093619A1 (zh) 用于Android***双屏异显的多输入设备交互方法、装置及介质
EP4002075A1 (en) Interface display method and apparatus, terminal, and storage medium
US20160285958A1 (en) Application container for live migration of mobile applications
EP2840497A1 (en) Method, system and an executable piece of code for the virtualisation of a hardware resource associated with a computer system
US20140325432A1 (en) Second screen view with multitasking
US20160077850A1 (en) Methods, systems, and media for binary compatibility
WO2023138192A1 (zh) 控制虚拟对象拾取虚拟道具的方法、终端及存储介质
JP2021528763A (ja) ソフトウェアアプリケーションに入力をマッピングするための方法、システム、およびプログラム
KR20130112629A (ko) 미디어 기기의 메뉴 제어 방법 및 장치와 그 방법에 대한 프로그램 소스를 저장한 기록 매체
CN109542323B (zh) 基于虚拟场景的交互控制方法及装置、存储介质、电子设备
CN113268212A (zh) 投屏方法、装置、存储介质及电子设备
US20230330534A1 (en) Method and apparatus for controlling opening operations in virtual scene
KR20220058841A (ko) 가상 버튼의 위치를 조정하기 위한 방법 및 장치, 디바이스, 저장 매체 및 프로그램 제품
CN111766989B (zh) 一种界面切换方法及装置
US8286084B2 (en) Methods and apparatus for remote interaction using a partitioned display
CN104102367A (zh) 一种信息处理方法及装置
CN106126213B (zh) 一种基于IFML的Android开发建模方法
CN107770253A (zh) 远程控制方法及***
WO2023066003A1 (zh) 虚拟对象的控制方法、装置、终端、存储介质及程序产品
CN106227417B (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