WO2019228095A1 - 手柄与第三方应用程序进行适配的方法、装置及存储介质 - Google Patents
手柄与第三方应用程序进行适配的方法、装置及存储介质 Download PDFInfo
- Publication number
- WO2019228095A1 WO2019228095A1 PCT/CN2019/083446 CN2019083446W WO2019228095A1 WO 2019228095 A1 WO2019228095 A1 WO 2019228095A1 CN 2019083446 W CN2019083446 W CN 2019083446W WO 2019228095 A1 WO2019228095 A1 WO 2019228095A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- party application
- handle
- event
- touch event
- active page
- Prior art date
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
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- 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/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/039—Accessories therefor, e.g. mouse pads
- G06F3/0393—Accessories for touch pads or touch screens, e.g. mechanical guides added to touch screens for drawing straight lines, hard keys overlaying touch screens or touch pads
-
- 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/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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
Definitions
- FIG. 9 is a schematic flowchart of another method for adapting a handle to a third-party application according to an embodiment of the present application.
- FIG. 5 is a schematic flowchart of another method for adapting a handle to a third-party application according to an embodiment of the present application.
- the method for adapting the handle to a third-party application in the embodiment of the present application implements loading management of the third-party application in a sandbox environment by replacing the active page of the third-party application with a proxy activity page.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种手柄与第三方应用程序进行适配的方法、装置及存储介质,其中,该方法在沙箱环境中运行,由终端执行,该方法包括:识别终端当前运行的第三方应用程序以及第三方应用程序当前所展示的活动页面(101),截取由与终端连接的手柄设备生成的手柄事件(102),解析手柄事件,根据解析结果生成用于对活动页面进行控制的第一触摸事件(103),将第一触摸事件发送给第三方应用程序执行,以使第三方应用程序对活动页面进行控制(104)。
Description
本申请要求于2018年5月29日提交中国专利局、申请号为201810533334.3、名称为“手柄与第三方应用程序进行适配的方法、装置及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及终端技术领域,尤其涉及一种手柄与第三方应用程序进行适配的方法、装置及存储介质。
背景
手柄是一种电子游戏机的输入设备,通过操纵其按钮等,可以实现对游戏中模拟角色等的控制。随着终端技术的发展,目前,可将手柄与智能电视、智能手机等连接,通过手柄助手激活手柄按键,以实现通过游戏手柄对终端上的游戏模拟角色进行控制。
技术内容
本申请实施例提出了一种手柄与第三方应用程序进行适配的方法,在沙箱环境中运行,由终端执行,所述方法包括:
识别终端当前运行的第三方应用程序以及所述第三方应用程序当前所展示的活动页面;
截取由与所述终端连接的手柄设备生成的手柄事件;
解析所述手柄事件,根据解析结果生成用于对所述活动页面进行控制的第一触摸事件;
将所述第一触摸事件发送给所述第三方应用程序执行,以使所述第三方应用程序对所述活动页面进行控制。
本申请实施例提出了一种手柄与第三方应用程序进行适配的装置,安装在终端上,在沙箱环境中运行,包括:
识别模块,用于识别终端当前运行的第三方应用程序以及所述第三方应用程序当前所展示的活动页面;
截取模块,用于截取由与所述终端连接的手柄设备生成的手柄事件;
第一生成模块,用于解析所述手柄事件,根据解析结果生成用于对所述活动页面进行控制的第一触摸事件;
发送模块,用于将所述第一触摸事件发送给所述第三方应用程序执行,以使第三方应用程序对活动页面进行控制。
本申请实施例提出了一种电子设备,包括处理器和存储器;
其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如本申请实施例所述的手柄与第三方应用程序进行适配的方法。
本申请实施例提出了一种存储介质,存有处理器可执行指令,所述指令由一个或一个以上处理器执行时,实现本申请实施例所述的手柄与第三方应用程序进行适配的方法。
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例提供的一种应用场景示意图;
图2为本申请实施例提供的一种手柄与第三方应用程序进行适配 的方法的流程示意图;
图3为本申请实施例提供的一种手柄与第三方应用程序进行适配的方法的过程示意图;
图4为本申请实施例提供的一种手柄与第三方应用程序进行适配的方法的进程之间交互的示意图;
图5为本申请实施例提供的另一种手柄与第三方应用程序进行适配的方法的流程示意图;
图6为本申请实施例提供的另一种手柄与第三方应用程序进行适配的方法的流程示意图;
图7为本申请实施例提供的另一种手柄与第三方应用程序进行适配的方法的流程示意图;
图8为本申请实施例提供的另一种手柄与第三方应用程序进行适配的方法的流程示意图;
图9为本申请实施例提供的另一种手柄与第三方应用程序进行适配的方法的流程示意图;
图10为本申请实施例提供的一种具体的手柄与第三方应用程序进行适配的方法的流程示意图;
图11为本申请实施例提供的一种手柄与第三方应用程序进行适配的装置的结构示意图;
图12为本申请实施例提供的另一种手柄与第三方应用程序进行适配的装置的结构示意图;以及
图13为本申请实施例提供的一种电子设备的结构示意图。
实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出, 其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的手柄与第三方应用程序进行适配的方法、装置及存储介质。
在实际使用中,可以在终端上安装手柄助手这类应用程序。但是现有技术中这类应用程序需要具有栈顶(root)权限,只有当手柄助手具有了root权限后,手柄助手才能准确识别到当前界面为运行游戏界面。而且获得root权限之后就意味着手柄助手获得了最高的权限,手柄助手可以对系统中的任何文件(包括系统文件)执行所有增、删、改、查的操作。上述需要获取root权限的手柄助手,不仅使用门槛较高,而且会使得系统存在一定的安全风险。
本申请实施例提出一种手柄与第三方应用程序进行适配的方法。
本申请实施例的手柄与第三方应用程序进行适配的方法,该方法在沙箱(Sandboxie)环境中运行,通过在沙箱环境中截取由与终端连接的手柄设备生成的手柄事件,并解析手柄事件,根据解析结果生成对活动页面进行控制的第一触摸事件,发送给第三方应用程序执行,实现第三方应用程序对当前所展示的活动页面进行控制。由于沙箱环境是一种虚拟的系统环境,可以识别当前展示的活动页面,而不需要手柄助手具有root权限识别当前活动页面,不仅降低了使用门槛,而且不会给系统带来安全隐患。
图1为本申请实施例提供的一种应用场景示意图。图1中,终端11与手柄设备12之间连接,其中,终端11与手柄设备12之间可以通过有线连接也可以通过无线连接,终端11上安装有手柄助手和第三方应用程序。
用户可以通过操控手柄设备上的按键,控制第三方应用程序展示的活动页面中的对象,如游戏人物等。手柄助手在沙箱环境中运行,可以截取手柄设备生成的手柄事件,并对手柄事件进行解析,根据解析结果生成对活动页面进行控制的第一触摸事件,并将第一触摸事件 发送给第三方应用程序。第三方应用程序根据第一触摸事件对活动页面进行控制,以实现通过手柄设备对第三方活动页面中的对象进行操控。
图2为本申请实施例提供的一种手柄与第三方应用程序进行适配的方法的流程示意图。该方法由图1所示的终端11执行,例如,可以通过终端11运行一个应用程序,如运行手柄助手来实现。
如图2所示,该手柄与第三方应用程序进行适配的方法包括:
步骤101,识别终端当前运行的第三方应用程序以及第三方应用程序当前所展示的活动页面。
其中,沙箱环境是一种独立的虚拟运行环境。本实施例中,沙箱环境具有系统管理权限,由此在具有系统管理权限的沙箱环境中可以运行第三方应用程序,如游戏应用程序。
本实施例中,探测沙箱的启动指令,当探测到启动指令后,根据启动指令控制开启具有系统管理权限的沙箱环境。比如在探测到用户启动第三方应用程序的操作时,生成沙箱启动的指令,这时可探测到沙箱的启动指令。沙箱环境启动成功后,在沙箱环境下识别终端当前运行的第三方应用程序,以及识别当前展示的活动画面。具体地,可根据当前运行的进程的数量、进程的标识符等信息,识别当前运行的第三方应用程序,以及第三方应用程序当前展示的活动页面。
例如,在沙箱环境下识别终端当前运行的游戏应用程序,如识别游戏应用程序的名称、游戏应用程序的类别等,以及识别终端屏幕当前展示的游戏画面。由此,在沙箱环境中即可识别当前为游戏界面,不需要手柄助手具有root权限,从而降低了使用门槛。
本实施例中,在上述步骤101之前,可先在沙箱环境中,为第三方应用程序分配进程,通过分配的进程启动第三方应用程序。其中,每个进程具有唯一的标识符。在识别第三方应用程序时,可根据进程的标识符识别第三方应用程序。
为提高对第三方应用程序对管理,节省资源,在第三方应用程序退出时,对分配的进程进行回收。
步骤102,截取由与终端连接的手柄设备生成的手柄事件。
本实施例中,操作系统底层可监听,与第三方应用程序关联的手柄设备发送的手柄信号。当用户操作手柄设备上的控制部件时,操作系统底层监听到手柄信号,并将手柄信号解析生成符合操作系统标准的原始手柄事件。其中,控制部件是手柄设备上的按键。
本实施例中,手柄信号中可携带有手柄设备的被控制部件的标识信息、动作信息等。其中,动作信息包括被控制部件被点击的次数、动作幅度等信息。
操作系统底层将原始手柄事件转发给操作系统服务层,操作系统服务层将原始手柄事件,封装成操作系统应用框架层标准的手柄事件,进一步将手柄事件发送给操作系统应用框架层。
其中,操作系统应用框架层设置在沙箱环境中,由此可在沙箱环境中对由操作系统服务层向操作系统应用框架层发送的事件进行监听。当监听到的事件为手柄事件时,截取手柄事件。本实施例中,操作系统服务层向操作系统应用框架层发送手柄事件时,可在手柄事件中携带特殊标识符以表示该事件为手柄事件,由此当在沙箱环境中监听到的事件中提取到特殊标识时,可以认为该事件为手柄事件。
本实施例中,在操作系统服务层向操作系统应用框架层发送手柄事件时,可在沙箱环境中截取到与第三方应用程序关联的手柄设备的手柄事件,以在手柄事件传递至终端当前运行的第三方应用程序之前,对截取的手柄事件进行处理。
步骤103,解析手柄事件,根据解析结果生成用于对活动页面进行控制的第一触摸事件。
以手机为例,当用户在手机上玩游戏时,可在游戏界面直接进行触摸操作,游戏应用程序监控到触摸操作后,生成触摸事件,并通过执行触摸事件控制游戏中的被操控对象。由此,当通过与手机连接的手柄设备玩游戏时,需要将手柄事件转换成对应的触摸事件,以实现通过手柄设备玩游戏。
一般活动展示页面上具有虚拟的按键,通过虚拟的按键可以对游 戏中的运行的活动页面进行控制。本申请实例中,通过手柄设备上的按键可以替代虚拟按键。操作系统的底层可以监听到手柄事件,然后该手柄事件可以被沙箱环境截取到,在截取到手柄事件后,对手柄事件进行解析,然后从解析结果中提取手柄设备的控制部件的标识信息和动作信息,转换成对应的按键的标识信息和动作信息,以生成触摸事件。
具体而言,从手柄事件的解析结果中提取手柄设备上被控制部件的标识信息和动作信息。然后,根据被控制部件的标识信息,查询预设的部件的标识信息与活动界面上的按键标识之间的映射关系,可获取与部件标识信息匹配的按键标识。
在获取匹配的按键标识后,根据匹配的按键标识即可确定目标按键。可以理解的是,匹配的按键标识即为目标按键的标识。进一步地,可根据目标按键标识和动作信息,生成第一触摸事件。具体地,在生成第一触摸事件时,还可提取手柄设备操控对象在活动页面中的坐标信息,并添加至第一触摸事件中。那么,第一触摸事件中可包括目标按键的标识和坐标信息。其中,坐标信息是指手柄设备操控的对象,如游戏人物等,在活动页面中的坐标信息。
例如,当前展示的活动页面中具有向左移动和向右移动的按键,从手柄事件的解析结果中提取手柄设备上被控制部件的标识信息和被点击的次数。根据被控制部件的标识信息,可查询到与被控制部件的标识信息匹配的按键标识,该按键标识为向右移动的按键的标识。那么,根据向右移动的按键的标识和被点击的次数,可生成第一触摸事件。
本实施例中,在沙箱环境中,对截取的手柄事件进行处理,根据手柄事件的解析结果生成第一触摸事件,以便于当前运行的第三方应用程序执行相应的操作。
步骤104,将第一触摸事件发送给第三方应用程序执行,以使第三方应用程序对活动页面进行控制。
本实施例中,在生成第一触摸事件后,将第一触摸事件发送给第 三方应用程序执行。由于第一触摸事件中包括目标按键的标识和坐标信息,那么当前运行的第三方应用程序可根据第一触摸事件,执行相应的操作,以实现对第三方应用程序所展示的活动页面进行控制。
具体而言,可根据第一触摸事件中包括的目标按键在相应的动作信息下,活动页面中被控对象应发生的动作,控制活动页面中相应坐标信息处的被控对象发生相应的动作。其中,被控对象可以是游戏界面中的人物、物体等。
本实施例中,通过截取手柄事件,并将手柄事件转换成对活动页面进行控制的第一触摸事件,发送给第三方应用程序执行,实现对当前所展示的活动页面进行控制。由于沙箱环境是一种虚拟的系统环境,可以识别当前展示的活动页面,而不需要手柄助手具有root权限识别当前活动页面,从而降低了使用门槛,且不会给系统带来安全隐患。
另外,相关技术中用户可能需要下载二次打包的游戏安装包,这些二次打开的游戏安装包可能隐含一些未经市场审查的伤害用户的行为,本实施例提供的手柄与第三方应用程序进行适配的方法,不需要用户下载二次打包的游戏,提高了终端的安全性。
图3为本申请实施例提供的一种手柄与第三方应用程序进行适配的方法的过程示意图。图3中,手柄助手和游戏应用程序均运行在沙箱环境中。其中,图2所示方法由图1所示的终端11执行,例如,可以通过终端11运行一个应用程序,如运行手柄助手来实现。
在通过手柄设备玩游戏之前,先在终端中安装手柄助手,然后在手柄助手中启动游戏。当用户通过手柄设备玩游戏的过程中,如图3所示,操作系统服务层向游戏应用程序发送手柄事件,在操作系统服务层将手柄事件发送至游戏应用程序的过程中,被沙箱环境中的手柄助手截取。手柄助手对手柄事件进行处理,比如解析手柄事件,根据手柄事件的解析结果生成第一触摸事件。之后,手柄助手将第一触摸事件发送给游戏应用程序执行,以实现对游戏界面的控制。
本实施例中,将根据手柄事件的解析结果生成的第一触摸事件,发送给终端当前运行的第三方应用程序执行,实现了通过手柄设备控 制当前展示的活动页面。
图4为本申请实施例提供的一种手柄与第三方应用程序进行适配的方法的进程之间交互的示意图。如图4所示,进程可以分为两种,用户进程和系统进程。其中,用户进程中的沙箱主进程安装应用程序(Application,简称App)。其中,App可以是游戏应用程序。沙箱服务具有系统管理权限,可以识别当前运行的第三方应用程序的活动页面。
可通过存根进程(stub进程)启动第三方App,以及截取手柄事件,其中,第三方App即为在沙箱环境中安装的App。
在截取到手柄事件后,stub进程可以通过钩子应用程序编程接口Hook API(Hook Application Programming Interface)对操作系统中的对象进行反射得到沙箱环境中的对象。另外,stub进程通过Android API调用系统进程中系统服务中的API,以使用操作系统框架提供的各种服务及功能,与正常启动在操作系统框架上的运行环境操作一致。
例如,通过安卓应用程序编程接口(Android API)可以调用ActivityManagerService(AMS)、PackageManagerService(PMS)、WindowManagerService(WMS)等等。其中,AMS,PMS,以及WMS等是运行在系统服务进程中的服务。
为了能够在沙箱环境中截取到手柄事件,在沙箱环境中对由操作系统服务层向操作系统应用框架层发送事件进行监听,当监听到的事件为手柄事件时,截取手柄事件之前,可通过调用代理进程,在代理进程中,通过反射得到能够监听手柄事件的对象。图5为本申请实施例提供的另一种手柄与第三方应用程序进行适配的方法的流程示意图。
如图5所示,该手柄与第三方应用程序进行适配的方法包括:
步骤201,识别终端当前运行的第三方应用程序以及第三方应用程序当前所展示的活动页面。
本实施例中,步骤202与上述实施例中的步骤101类似,在此不再赘述。
步骤202,调用用于实现终端当前运行的第三方应用程序与沙箱环境交互的代理进程。
为了实现沙箱环境与当前运行的第三方应用程序之间的交互,在沙箱环境中调用代理进程,如stub进程,以用于实现终端当前运行的第三方应用程序与沙箱环境之间的交互。
步骤203,在代理进程中,对操作系统中与手柄事件相关的第一功能对象进行反射,生成可被沙箱环境调用的第二功能对象。
本实施例中,第一功能对象可以理解为在操作系统中,根据与手柄事件相关的类创建的对象,这些对象用于在操作系统对手柄事件进行监听、处理等。
由于操作系统中与手柄事件相关的对象,与沙箱环境中不同,所以对第一功能对象进行反射,生成可被沙箱环境调用的第二功能对象。
步骤204,调用第二功能对象,通过第二功能对象,对操作系统服务层向操作系统应用框架层发送的手柄事件进行监听,当监听到手柄事件时,截取手柄事件。
例如,通过反射得到WindowInputEventReceiver对象,在沙箱环境中,调用WindowInputEventReceiver对象,通过WindowInputEventReceiver对象,对手柄事件进行监听,当WindowInputEventReceiver对象接收到手柄事件时,截取手柄事件。
本实施例中,通过反射得到第二功能对象,通过第二功能对象,截取到手柄事件,实现了在沙箱环境截取到手柄事件。
步骤205,解析手柄事件,根据解析结果生成用于对活动页面进行控制的第一触摸事件。
本实施例中,步骤205与上述实施例中步骤103类似,故在此不再赘述。
步骤206,通过第二功能对象,将第一触摸事件注入到第三方应用程序中,由第三方应用程序执行第一触摸事件。
本实施例中,在将第一触摸事件发送给终端当前运行的第三方应用程序时,可通过第二功能对象,将第一触摸事件注入到第三方应用 程序中。也就是说,第三方应用程序不用创建新的对象,直接调用第二功能对象,获得第一触摸事件,执行第一触摸事件,实现对当前展示的活动页面进行控制。
本申请实施例的手柄与第三方应用程序进行适配的方法,通过在沙箱环境中调用用于实现第三方应用程序与沙箱环境交互的代理进程,在代理进程中,通过反射得到第二功能对象,实现了在沙箱环境中截取手柄事件,并对手柄事件处理,发送给第三方应用程序执行。
进一步地,在调用代理进程后,还可在代理进程中,创建第三方应用程序的活动页面。图6为本申请实施例提供的另一种手柄与第三方应用程序进行适配的方法的流程示意图。本申请实施例的手柄与第三方应用程序进行适配的方法,在上述步骤202之后,还可包括如图6所示的,
步骤301,在代理进程中创建第三方应用程序的入口,并对第三方应用程序的入口进行初始化。
为了实现对第三方应用程序的控制管理,在调用代理进程后,需要在代理进程中创建第三方应用程序的入口,并对第三方应用程序的入口进行初始化。从而,在代理进程中,通过第三方应用程序的入口即可访问第三方应用程序,实现了对第三方应用程序的控制。
步骤302,对属于第三方应用程序的代理活动页面进行创建。
在完成对第三方应用程序的入口的初始化之后,可在代理进程中,通过第三方应用程序的入口访问第三方应用程序,创建第三方应用程序的代理活动页面。也就是说,通过代理进程,创建第三方应用程序的代理活动页面,实现在沙箱环境中对第三方应用程序进行管理。
本实施例中,通过在代理程序中,创建的第三方应用程序活动页面,称为代理活动页面。可见,通过在代理进程中创建代理活动页面,可以更精准的对第三方应用程序活动页面进行识别,以及截取手柄事件。
进一步地,本申请实施例中,可在沙箱环境中,对第三方应用程序进行启动以及完成对代理活动页面的启动。例如,可在手柄助手中 启动游戏,利用手柄设备玩游戏。图7为本申请实施例提供的另一种手柄与第三方应用程序进行适配的方法的流程示意图。
如图7所示,该手柄与第三方应用程序进行适配的方法包括:
步骤401,获取启动第三方应用程序的启动指令,根据启动指令,获取启动第三方应用程序每个活动页面的意图对象。
其中,第三方应用程序为与手柄设备关联的应用程序,如游戏应用程序,第三方应用程序运行在沙箱环境中。
以通过终端11运行手柄助手来实现本申请实施例所述的手柄与第三方应用程序进行适配的方法为例。当用户在手柄助手中,打开第三方应用程序时,手柄助手在沙箱环境中,获取启动第三方应用程序的启动指令。之后,根据启动指令,启动第三方应用程序每个活动页面的意图对象。其中,意图对象是根据每个活动页面的意图类创建的对象。
步骤402,对意图对象进行解析,得到意图对象的配置信息。
本实施例中,在启动意图对象后,针对每个意图对象,对意图对象进行解析,得到意图对象的配置信息。
步骤403,将意图对象与对应的配置信息,写入到代理进程中的模拟意图对象中。
本实施例中,在代理进程中创建模拟意图对象。在获取意图对象和对应的配置信息后,将意图对象和对应的配置信息,写入到代理进程中的模拟意图对象中,以实现在代理进程中根据模拟意图对象创建代理活动页面。
步骤404,对属于第三方应用程序的代理活动页面进行创建。
本实施例中,可根据代理进程中的模拟意图对象,创建属于第三方应用程序的代理活动页面。具体地,可根据意图对象和对应的配置信息创建第三方应用程序的代理活动页面,实现了在代理进程中根据模拟意图对象创建代理活动页面。
步骤405,确定活动页面所在的第三方应用程序的入口,控制所在的第三方应用程序的入口,对入口进行初始化。
在对属于第三方应用程序的代理活动页面进行创建之后,查找活动页面所在的第三方应用程序的入口,在确定活动页面所在的第三方应用程序的入口后,控制所在的第三方应用程序的入口,并对入口进行初始化,以便访问第三方应用程序。
步骤406,根据活动页面的启动流程启动代理活动页面。
本实施例中,在完成入口的初始化后,在根据活动页面的启动流程完成对启动代理活动页面,实现了在沙箱环境中,对第三方应用程序进行启动的任务。
步骤407,在启动流程执行过程中,获取活动页面对应的模拟意图对象,从模拟意图对象中提取配置信息。
在活动页面的启动流程执行过程中,获取活动页面对应的模拟意图对象,从模拟意图对象中提取配置信息,如提取活动页面中参数的取值等信息。
步骤408,对配置信息中的存储路径进行反射,得到在沙箱环境中的私有访问路径。
本实施例中,将配置信息的存储路径,修改为在沙箱环境中的私有访问路径。通过存储路径的修改后,在沙箱环境运行游戏时,就可以从该私有的访问路径中,去调用游戏所需的数据,以及存储游戏运行中产生的数据。
步骤409,利用配置信息,替换活动页面的本地记录中的配置信息,完成代理活动页面的启动。
在对配置信息的存储路径进行反射,得到在沙箱环境中的私有访问路径后,将从模拟意图对象中提取的配置信息,替换活动页面的本地记录中的配置信息,以根据替换后配置信息,完成代理活动页面的启动。
本申请实施例的手柄与第三方应用程序进行适配的方法,通过代理活动页面代替第三方应用程序的活动页面,实现了在沙箱环境中对第三方应用程序进行加载管理。
在上述实施例的基础上,用户在使用手柄设备玩游戏的过程中, 可能会同时对终端的屏幕进行触摸操作。为了提高对游戏页面的控制准确度,在截取手柄事件的同时,在沙箱环境中实时监听终端屏幕被触摸时,生成的第二触摸事件。在监控到第二触摸事件时,截取第二触摸事件。
其中,第二触摸事件包括目标按键标识和坐标信息。其中,目标按键为用户触摸的终端屏幕上的按键,坐标信息指通过触摸操作操控的对象在活动页面中的坐标信息。
为了提高对活动页面的控制的准确性,本申请实施例的手柄与第三方应用程序进行适配的方法,当监听到第二触模事件时,根据第一触摸事件和第二触摸事件,生成多点触摸事件,将多点触摸事件发送给应用程序执行。
具体地,根据第一触摸事件中目标按键的标识信息和动作信息,和第二触摸事件中的目标按键的标识信息和动作信息,生成多点触摸事件。其中,多点触摸事件中包括第一触摸事件和第二触摸事件中的目标按键的标识和坐标信息。其中,多点触摸事件中的坐标信息包括手柄设备操控的对象在活动页面中的坐标信息,以及通过触摸操作操控的对象在活动页面中的坐标信息。
在生成多点触摸事件后,将多点触摸事件发送给第三方应用程序执行,具体地,可将多点触摸事件注入第三方应用程序中,由第三方应用程序执行多点触摸事件。第三方应用程序可根据多点触摸事件中的目标按键标识和坐标信息,可以控制活动页面上相应位置处的被控对象发生相应的动作,实现对当前展示的活动页面的控制。
本实施例中,可在沙箱环境中对终端屏幕被触摸时生成的第二触摸事件进行监听,当监听到第二触摸事件时,同时截取手柄事件和第二触摸事件,并根据第一触摸事件和第二触摸事件,生成多点触摸事件,实现了当用户同时通过手柄设备和对终端屏幕进行触摸玩游戏时,游戏应用程序能够精确地对活动页面进行控制。
进一步地,为了提高对第三方应用程序的管理,在沙箱环境下识别终端当前运行的第三方应用程序以及第三方应用程序当前所展示 的活动页面之前,可生成、激活、删除模拟程序组件。图8为本申请实施例提供的另一种手柄与第三方应用程序进行适配的方法的流程示意图。
本申请实施例的手柄与第三方应用程序进行适配的方法,在沙箱环境下识别终端当前运行的第三方应用程序以及第三方应用程序当前所展示的活动页面之前,如图8所示,还包括:
步骤501,在第三方应用程序启动的过程中,获取第三方应用程序除活动页面之外的其他实际程序组件,利用反射机制生成实际程序组件对应的模拟程序组件,并激活模拟程序组件。
本实施例中,模拟程序组件用于替代第三方应用程序中实际的程序组件。
例如,对服务程序组件、广播接收者程序组件、内容提供者组件进行反射,可生成对应的模拟服务程序组件,模拟广播接收者程序组件、模拟内容提供者组件,以替代第三方应用程序中的服务程序组件、广播接收者程序组件,内容提供者程序组件等实际程序组件。
本实施例中,通过反射机制生成并激活除活动页面之外的其他模拟程序组件,以替代第三方应用程序中实际的程序组件,从而减少与第三方应用程序的交互,节省交互时间。
步骤502,在第三方应用程序退出时,对模拟程序组件进行删除。
为了节省资源,在第三方应用程序退出时,如游戏退出时,对模拟程序组件进行删除,从而可以节省存储空间。
本实施例中,通过在第三方应用程序启动时,生成并激活模拟程序组件,代替第三方应用程序实际的程序组件,并在第三方应用程序退出时,删除模拟程序组件,不仅节省了与第三方应用程序之间的交互时间,而且节省了存储空间。
由于操作系统为每个第三方应用程序分配独立私有的存储目录,沙箱环境中的第三方应用程序得不到操作系统分配的目录。沙箱环境作为一个虚拟的系统环境,同样需要为加载的第三方应用程序分配各种的独立存储目录,并且确保沙箱环境中的第三方应用程序在读取目 录下的文件时能够找到正确的路径。由此,在沙箱环境中首次启动第三方应用程序时,需要为第三方应用程序建立访问路径。
图9为本申请实施例提供的另一种手柄与第三方应用程序进行适配的方法的流程示意图。如图9所示,该手柄与第三方应用程序进行适配的方法包括:
步骤601,当首次在沙箱环境中试图启动第三方应用程序时,获取第三方应用程序的安装包。
本实施例中,当首次在沙箱环境中试图启动第三方应用程序时,判断本地是否有第三方应用程序的安装包,如果有第三方应用程序的安装包,则获取第三方应用程序的安装包。如果没有第三方应用程序的安装包,可通过下载获取。
步骤602,根据安装包为第三方应用程序,在沙箱环境中构建私有访问路径。
在获取安装包后,解析并记录安装包信息,如安装位置、安装时间等等,根据安装包信息为第三方应用程序在沙箱环境中构建私有访问路径。例如,根据第三方应用程序的安装信息,创建data目录等。
本实施例中,在沙箱环境中构建私有访问路径,可以提高安全性。
步骤603,根据私有访问路径,为第三方应用程序生成所需的文件夹。
在构建私有访问路径后,在私有访问路径中,为第三方应用程序生成所需的文件夹,如存放源代码的src文件夹、res文件夹等等。
步骤604,根据私有访问路径,将安装包中的共享对象文件,复制到沙箱环境中。
其中,共享对象文件如共享动态链接库(shared object,so)文件等。
本实施例中,可将安装包中的共享文件复制到沙箱环境中构建的私有访问路径中的相应位置。
本申请实施例的手柄与第三方应用程序进行适配的方法,在沙箱环境中首次启动第三方应用程序时,为第三方应用程序分配独立的私 有访问路径,并生成第三方应用程序所需的文件,将所需的共享对象文件复制到沙箱环境中,从而确保沙箱中的第三方应用程序按照正确的路径能够读取到目录下的文件,实现了在沙箱环境中启动第三方应用程序。由此,不支持手柄设备的游戏也能够通过手柄设备进行操作,降低了使用门槛,能够适配更多的用户。
图10为本申请实施例提供的一种具体的手柄与第三方应用程序进行适配的方法的流程示意图。图10中以Android操作系统为例。如图10所示,当用户通过物理设备如手柄设备或者终端的触摸屏进行操作时,操作系统的底层,比如Linux Kernel层,将由物理设备的输入操作产生的中断(interrupt)信号(即手柄事件)解析成android标准的原始手柄事件。具体地,将interrupt信号传入输入设备驱动(Input Device Driver),并由Input Device Driver传入Linux Input Stack(Linux输入栈),并存放到/dev/input/目录下。
操作系统的服务层监听并读取input目录下的数据变化,在监听到数据变化时,将原始手柄事件转化封装称标准的操作系统的应用层手柄事件,并发送至操作系统应用层。在实际中,可通过安卓系统输入管理服务(Android InputManagerService)实现,涉及到Android InputManager、NativeInputManager、EventHub、InputReader、InputReaderPolicy、InputDispatcher、Input DispatcherPolicy、InputChannel等类。
操作系统应用层可通过安卓活动组件(Android Actvity)、安卓控件(Android View),展示当前的活动页面。在操作系统应用层接收到手柄事件时,已进入沙箱环境,在沙箱环境中,可通过反射得到与手柄事件相关的WindowInputEventReceiver对象。在具体实现时,可通过com.android.server.input.InputManagerService、android.view.InputChannel、com.android.server.wm.WindowManagerServic、InputChannel、Application View等类实现。
在得到WindowInputEventReceiver对象后,可通过该对象将第一 触摸事件注入第三方应用程序中,由第三方应用程序执行第一触摸事件。
为了实现上述实施例,本申请实施例还提供一种手柄与第三方应用程序进行适配的装置。图11为本申请实施例提供的一种手柄与第三方应用程序进行适配的装置的结构示意图。
如图11所示,该手柄与第三方应用程序进行适配的装置包括:识别模块710、截取模块720、第一生成模块730、发送模块740。
识别模块710用于识别终端当前运行的第三方应用程序以及第三方应用程序当前所展示的活动页面。
截取模块720用于截取由与终端连接的手柄设备生成的手柄事件。
第一生成模块730用于解析手柄事件,根据解析结果生成用于对活动页面进行控制的第一触摸事件。
发送模块740用于将第一触摸事件发送给第三方应用程序执行,以使第三方对活动页面进行控制。
图12为本申请实施例提供的另一种手柄与第三方应用程序进行适配的装置的结构示意图。在本实施例一种可能的实现方式中,如图12所示,截取模块720包括:
截取单元721,用于对由操作系统服务层向操作系统应用框架层发送的事件进行监听,当监听到的事件为手柄事件时,截取手柄事件;其中,手柄事件由操作系统底层监听到,并转发给操作系统服务层的。
在本实施例一种可能的实现方式中,如图12所示,截取模块720还包括:
调用单元722,用于对由操作系统服务层向操作系统应用框架层发送的事件进行监听,当监听到的事件为手柄事件时,截取手柄事件之前,调用用于实现第三方应用程序与沙箱环境交互的代理进程;
第一反射单元723,用于在代理进程中,对操作系统中与手柄事件相关的第一功能对象进行反射,生成可被沙箱环境调用的第二功能对象;
截取单元,还用于调用第二功能对象,通过第二功能对象,对操 作系统服务层向操作系统应用框架层发送的手柄事件进行监听,当监听到手柄事件时,截取手柄事件。
在本实施例一种可能的实现方式中,发送模块740还用于:
通过第二功能对象,将第一触摸事件注入到第三方应用程序中,由第三方应用程序执行第一触摸事件。
在本实施例一种可能的实现方式中,截取模块720还包括:
第一创建单元,用于在对属于第三方应用程序的代理活动页面进行创建之前,在沙箱环境中调用用于实现第三方应用程序与沙箱环境交互的代理进程之后,在代理进程中创建第三方应用程序的入口,并对第三方应用程序的入口进行初始化;
第二创建单元,用于在完成对第三方应用程序的入口的初始化之后,对属于第三方应用程序的代理活动页面进行创建。
在本实施例一种可能的实现方式中,截取模块720还包括:
第一获取单元,用于在对属于第三方应用程序的代理活动页面进行创建之前,获取启动第三方应用程序的启动指令,根据启动指令,获取启动第三方应用程序每个活动页面的意图对象;
第二获取单元,用于对意图对象进行解析,得到意图对象的配置信息;
写入单元,用于将意图对象与对应的配置信息,写入到代理进程中的模拟意图对象中。
在本实施例一种可能的实现方式中,截取模块720还包括:
确定单元,用于在对属于第三方应用程序的代理活动页面进行创建之后,确定活动页面所在的第三方应用程序的入口,控制所在的第三方应用程序的入口,对入口进行初始化;
启动单元,用于在完成入口的初始化之后,根据活动页面的启动流程启动代理活动页面;
提取单元,用于在启动流程执行过程中,获取活动页面对应的模拟意图对象,从所模拟意图对象中提取配置信息;
第二反射单元,用于对配置信息的存储路径进行反射,得到在沙 箱环境中的私有访问路径;
启动单元,还用于利用配置信息,替换活动页面的本地记录中的配置信息,完成代理活动页面的启动。
在本实施例一种可能的实现方式中,截取模块720,还用于在截取手柄事件的同时,在沙箱环境中对终端屏幕被触摸时生成的第二触摸事件进行监听;
发送模块740,还用于当监听到第二触模事件时,根据第一触摸事件和第二触摸事件,生成多点触摸事件,将多点触摸事件发送给第三方应用程序执行。
在本实施例一种可能的实现方式中,第一生成模块730还用于:
对手柄事件进行解析,从解析结果中提取手柄设备上被控制部件的部件标识信息和动作信息;
查询部件标识信息与活动界面上的按键标识之间的映射关系,得到与部件标识信息匹配的按键标识,根据匹配的按键标识,确定目标按键;其中,匹配的按键标识为目标按键的标识;
根据目标按键标识和动作信息,生成第一触摸事件。
在本实施例一种可能的实现方式中,该装置还包括:
第二生成模块,用于识别终端当前运行的第三方应用程序以及第三方应用程序当前所展示的活动页面之前,在第三方应用程序启动的过程中,获取第三方应用程序除活动页面之外的其他实际程序组件,利用反射机制生成实际程序组件对应的模拟程序组件,并激活模拟程序组件,其中,模拟程序组件用于替代第三方应用程序中实际的程序组件;
删除模块,用于在第三方应用程序退出时,对模拟程序组件进行删除。
在本实施例一种可能的实现方式中,该装置还包括:
获取模块,用于当首次在沙箱环境中试图启动第三方应用程序时,获取第三方应用程序的安装包;
构建模块,用于根据安装包为第三方应用程序,构建私有访问路 径;
第三生成模块,用于根据私有访问路径,为第三方应用程序生成所需的文件夹;
复制模块,用于根据私有访问路径,将安装包中的共享对象文件,复制到沙箱环境中。
在本实施例一种可能的实现方式中,该装置还包括:
分配模块,用于识别终端当前运行的第三方应用程序以及第三方应用程序当前所展示的活动页面之前,为第三方应用程序分配进程,通过分配的进程启动第三方应用程序;
回收模块,用于在第三方应用程序退出时,对分配的进程进行回收。
需要说明的是,前述对手柄与第三方应用程序进行适配的方法实施例的解释说明,也适用于该实施例的手柄与第三方应用程序进行适配的装置,在此不再赘述。
本申请实施例的手柄与第三方应用程序进行适配的装置,该装置在沙箱环境中运行,通过识别终端当前运行的第三方应用程序以及第三方应用程序当前所展示的活动页面,在沙箱环境中截取由与终端连接的手柄设备生成的手柄事件,解析手柄事件,根据解析结果生成用于对活动页面进行控制的第一触摸事件,将第一触摸事件发送给第三方应用程序执行,以对当前所展示的活动页面进行控制。本实施例中,通过在沙箱环境中截取手柄事件,并解析手柄事件,根据解析结果生成对活动页面进行控制的第一触摸事件,发送给第三方应用程序执行,实现对当前所展示的活动页面进行控制。由于沙箱环境是一种虚拟的系统环境,可以识别当前展示的活动页面,而不需要手柄助手具有root权限识别当前活动页面,不仅降低了使用门槛,而且不会给系统带来安全隐患。
为了实现上述实施例,本申请实施例还提出一种电子设备,该电子设备可以是终端。图13是本发明本申请实施例提供的一种电子设备的结构示意图,如图13所示,该电子设备包括供电电源、各类壳 体等结构,所述电子设备还可以包括:至少一个处理器1301,输入接口1303,输出接口1304,存储装置1305。
在一个实施例中,输入接口1303可以是一些网络接口或者用户接口。所述输出接口1304也可以为一些网络接口或者显示屏等显示接口,能够展示第三方应用程序的活动页面。
所述存储装置1305可以包括易失性存储器(volatile memory),如随机存取存储器(random-access memory,RAM);存储装置1305也可以包括非易失性存储器(non-volatile memory),如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;存储装置905还可以包括上述种类的存储器的组合。
所述处理器1301可以是中央处理器(central processing unit,CPU)。在一个实施例中,所述处理器1301还可以包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)等。上述PLD可以是现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)等。
在一个实施例中,所述存储装置1305还用于存储程序指令。所述处理器1301可以调用所述程序指令,实现本申请实施例所述的各种方法和步骤。
本发明本申请实施例的所述处理器1301的具体功能实现可参考前述各个实施例中相关内容的描述,在此不赘述。
为了实现上述实施例,本申请实施例还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所述手柄与第三方应用程序进行适配的方法。
在本说明书的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现, 也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (16)
- 一种手柄与第三方应用程序进行适配的方法,在沙箱环境中运行,由终端执行,所述方法包括以下步骤:识别终端当前运行的第三方应用程序以及所述第三方应用程序当前所展示的活动页面;截取由与所述终端连接的手柄设备生成的手柄事件;解析所述手柄事件,根据解析结果生成用于对所述活动页面进行控制的第一触摸事件;将所述第一触摸事件发送给所述第三方应用程序执行,以使所述第三方应用程序对所述活动页面进行控制。
- 根据权利要求1所述的方法,其中,所述截取由与所述终端连接的手柄设备生成的手柄事件,包括:监听由操作系统服务层向操作系统应用框架层发送的事件,当监听到的事件为所述手柄事件时,截取所述手柄事件;其中,所述手柄事件由操作系统底层监听到,并转发给所述操作系统服务层的。
- 根据权利要求2所述的方法,其中,所述监听由操作系统服务层向操作系统应用框架层发送事件,当监听到的事件为所述手柄事件时,截取所述手柄事件之前,进一步包括:调用用于实现所述第三方应用程序与所述沙箱环境交互的代理进程;在所述代理进程中,对操作系统中与所述手柄事件相关的第一功能对象进行反射,生成可被所述沙箱环境调用的第二功能对象。
- 根据权利要求3所述的方法,其中,所述监听由操作系统服务层向操作系统应用框架层发送的事件,当监听到的事件为所述手柄事件时,截取所述手柄事件,包括:调用所述第二功能对象,通过所述第二功能对象,对所述操作系统服务层向所述操作系统应用框架层发送的所述手柄事件进行监听,当监听到所述手柄事件时,截取所述手柄事件。
- 根据权利要求3所述的方法,其中,所述将所述第一触摸事件发送给所述第三方应用程序执行,包括:通过所述第二功能对象,将所述第一触摸事件注入到所述第三方应用程序中,以使所述第三方应用程序执行所述第一触摸事件。
- 根据权利要求3所述的方法,其中,所述调用用于实现所述第三方应用程序与所述沙箱环境交互的代理进程之后,进一步包括:在所述代理进程中创建所述第三方应用程序的入口,并对所述第三方应用程序的入口进行初始化;创建属于所述第三方应用程序的代理活动页面。
- 根据权利要求6所述的方法,其中,所述创建属于所述第三方应用程序的代理活动页面之前,还包括:获取启动所述第三方应用程序的启动指令,根据所述启动指令,获取启动所述第三方应用程序每个活动页面的意图对象,所述意图对象是根据每个活动页面的意图类创建的对象;对所述意图对象进行解析,得到所述意图对象的配置信息;将所述意图对象与对应的所述配置信息,写入到所述代理进程中的模拟意图对象中。
- 根据权利要求7所述的方法,其中,所述创建属于所述第三方应用程序的代理活动页面之后,进一步包括:确定所述活动页面所在的所述第三方应用程序的入口,控制所在的所述第三方应用程序的入口,对所述入口进行初始化;根据所述活动页面的启动流程启动所述代理活动页面;在所述启动流程执行过程中,获取所述活动页面对应的所述模拟意图对象,从所述模拟意图对象中提取所述配置信息;对所述配置信息中的存储路径进行反射,得到在所述沙箱环境中的私有访问路径;利用所述配置信息,替换所述活动页面的本地记录中的配置信息,完成所述代理活动页面的启动。
- 根据权利要求1所述的方法,进一步包括:在截取所述手柄事件的同时,对终端屏幕被触摸时生成的第二触摸事件进行监听;当监听到所述第二触模事件时,根据所述第一触摸事件和所述第二触摸事件,生成多点触摸事件;将所述多点触摸事件发送给所述第三方应用程序执行。
- 根据权利要求1所述的方法,其中,所述解析所述手柄事件,根据解析结果生成用于对所述活动页面进行控制的第一触摸事件,包括:对所述手柄事件进行解析,从所述解析结果中提取所述手柄设备上被控制部件的部件标识信息和所述动作信息;查询部件标识信息与所述活动界面上的按键标识之间的映射关系,得到与所述部件标识信息匹配的按键标识,根据所述匹配的按键标识,确定所述目标按键;其中,所述匹配的按键标识为所述目标按键的标识;根据所述目标按键标识和所述动作信息,生成所述第一触摸事件。
- 根据权利要求1所述的方法,其中,所述识别终端当前运行的第三方应用程序以及所述第三方应用程序当前所展示的活动页面之前,进一步包括:在所述第三方应用程序启动的过程中,获取所述第三方应用程序除活动页面之外的其他实际程序组件,利用反射机制生成所述实际程序组件对应的模拟程序组件,并激活所述模拟程序组件,其中,所述模拟程序组件用于替代所述第三方应用程序中实际的程序组件;在所述第三方应用程序退出时,删除所述模拟程序组件。
- 根据权利要求1所述的方法,进一步包括:当首次在所述沙箱环境中试图启动所述第三方应用程序时,获取所述第三方应用程序的安装包;根据所述安装包为所述第三方应用程序构建私有访问路径;根据所述私有访问路径,为所述第三方应用程序生成所需的文件夹;根据所述私有访问路径,将所述安装包中的共享对象文件,复制到所述沙箱环境中。
- 根据权利要求1所述的方法,其中,所述识别终端当前运行的第三方应用程序以及所述第三方应用程序当前所展示的活动页面之前,进一步包括:为所述第三方应用程序分配进程,通过分配的进程启动所述第三方应用程序;在所述第三方应用程序退出时,对分配的进程进行回收。
- 一种手柄与第三方应用程序进行适配的装置,安装在终端上,在沙箱环境中运行,所述装置包括:识别模块,用于识别终端当前运行的第三方应用程序以及所述第三方应用程序当前所展示的活动页面;截取模块,用于截取由与所述终端连接的手柄设备生成的手柄事件;第一生成模块,用于对所述手柄事件进行解析,根据解析结果生成用于对所述活动页面进行控制的第一触摸事件;发送模块,用于将所述第一触摸事件发送给所述第三方应用程序执行,以使所述第三方应用程序对所述活动页面进行控制。
- 一种电子设备,包括处理器和存储器;其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如权利要求1-13中任一所述的手柄与第三方应用程序进行适配的方法。
- 一种存储介质,其上存储有处理器可执行指令,其特征在于,所述指令由一个或一个以上处理器执行时,实现如权利要求1-13中任一所述的手柄与第三方应用程序进行适配的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/994,087 US11269663B2 (en) | 2018-05-29 | 2020-08-14 | Method and apparatus for adapting handle device to third-party application, and storage medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810533334.3A CN110543789B (zh) | 2018-05-29 | 2018-05-29 | 手柄与第三方应用程序进行适配的方法、装置及存储介质 |
CN201810533334.3 | 2018-05-29 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/994,087 Continuation US11269663B2 (en) | 2018-05-29 | 2020-08-14 | Method and apparatus for adapting handle device to third-party application, and storage medium |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019228095A1 true WO2019228095A1 (zh) | 2019-12-05 |
Family
ID=68697801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/083446 WO2019228095A1 (zh) | 2018-05-29 | 2019-04-19 | 手柄与第三方应用程序进行适配的方法、装置及存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11269663B2 (zh) |
CN (1) | CN110543789B (zh) |
WO (1) | WO2019228095A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968053A (zh) * | 2022-04-13 | 2022-08-30 | Oppo广东移动通信有限公司 | 操作处理方法及装置、计算机可读存储介质和电子设备 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210007262A (ko) * | 2019-07-10 | 2021-01-20 | 삼성전자주식회사 | 어플리케이션을 관리하는 방법 및 그 장치 |
CN111309617A (zh) * | 2020-02-21 | 2020-06-19 | 北京字节跳动网络技术有限公司 | 应用程序的控制方法、装置、存储介质及电子设备 |
CN111913722A (zh) * | 2020-06-15 | 2020-11-10 | 北京爱接力科技发展有限公司 | 一种应用于机器人的第三方应用程序管理方法及装置 |
CN111949334B (zh) * | 2020-10-16 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 基于沙箱环境的虚拟应用启动控制方法、装置及设备 |
CN113076088A (zh) * | 2021-04-08 | 2021-07-06 | 南京爱奇艺智能科技有限公司 | 应用开发3dof手柄sdk的系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013036920A1 (en) * | 2011-09-09 | 2013-03-14 | Cloudon, Inc. | Systems and methods for workspace interaction with cloud-based applications |
CN106178499A (zh) * | 2015-04-29 | 2016-12-07 | Tcl集团股份有限公司 | 基于nfc的移动终端游戏操作控制实现方法及系统 |
CN107209732A (zh) * | 2014-12-22 | 2017-09-26 | 迈克菲公司 | 外部装置与随机用户动作的配对 |
CN107832105A (zh) * | 2017-11-24 | 2018-03-23 | 南昌黑鲨科技有限公司 | 一种应用程序启动方法、启动装置及计算机可读存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7116310B1 (en) * | 1999-04-06 | 2006-10-03 | Microsoft Corporation | Application programming interface that maps input device controls to software actions |
US6727884B1 (en) * | 1999-04-06 | 2004-04-27 | Microsoft Corporation | System and method for mapping input device controls to software actions |
US8448094B2 (en) * | 2009-01-30 | 2013-05-21 | Microsoft Corporation | Mapping a natural input device to a legacy system |
US8214539B1 (en) * | 2009-02-23 | 2012-07-03 | Kulanko Robert J | Command mapping systems relating input devices to application program interfaces |
US8984478B2 (en) * | 2011-10-03 | 2015-03-17 | Cisco Technology, Inc. | Reorganization of virtualized computer programs |
CN104216741A (zh) * | 2014-08-25 | 2014-12-17 | 华中科技大学 | 基于APK动态加载的Android插件化实现方法、装置及交互方法 |
CN104462879B (zh) * | 2014-11-28 | 2018-04-17 | 北京奇虎科技有限公司 | 应用程序免Root运行控制方法与装置 |
CN105477854B (zh) * | 2014-12-19 | 2019-04-02 | 广州爱九游信息技术有限公司 | 应用于智能终端的手柄控制方法、装置及系统 |
US10162653B2 (en) * | 2016-03-31 | 2018-12-25 | Vmware, Inc. | Capturing components of an application using a sandboxed environment |
CN106897611A (zh) * | 2017-03-03 | 2017-06-27 | 金光 | 无需root权限的安全虚拟移动应用程序运行环境系统及方法与应用 |
CN107220083B (zh) * | 2017-05-22 | 2020-12-18 | 南京航空航天大学 | 一种安卓系统中免安装运行应用程序的方法和系统 |
-
2018
- 2018-05-29 CN CN201810533334.3A patent/CN110543789B/zh active Active
-
2019
- 2019-04-19 WO PCT/CN2019/083446 patent/WO2019228095A1/zh active Application Filing
-
2020
- 2020-08-14 US US16/994,087 patent/US11269663B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013036920A1 (en) * | 2011-09-09 | 2013-03-14 | Cloudon, Inc. | Systems and methods for workspace interaction with cloud-based applications |
CN107209732A (zh) * | 2014-12-22 | 2017-09-26 | 迈克菲公司 | 外部装置与随机用户动作的配对 |
CN106178499A (zh) * | 2015-04-29 | 2016-12-07 | Tcl集团股份有限公司 | 基于nfc的移动终端游戏操作控制实现方法及系统 |
CN107832105A (zh) * | 2017-11-24 | 2018-03-23 | 南昌黑鲨科技有限公司 | 一种应用程序启动方法、启动装置及计算机可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968053A (zh) * | 2022-04-13 | 2022-08-30 | Oppo广东移动通信有限公司 | 操作处理方法及装置、计算机可读存储介质和电子设备 |
CN114968053B (zh) * | 2022-04-13 | 2024-05-03 | Oppo广东移动通信有限公司 | 操作处理方法及装置、计算机可读存储介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110543789A (zh) | 2019-12-06 |
US11269663B2 (en) | 2022-03-08 |
CN110543789B (zh) | 2023-05-16 |
US20200371821A1 (en) | 2020-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019228095A1 (zh) | 手柄与第三方应用程序进行适配的方法、装置及存储介质 | |
CN108475217B (zh) | 用于审计虚拟机的系统及方法 | |
TWI529524B (zh) | 應用場景的識別方法、功耗管理方法、裝置及終端設備 | |
EP3035191B1 (en) | Identifying source code used to build executable files | |
US11100227B2 (en) | Security indication information configuration method and device | |
US10228993B2 (en) | Data dump for a memory in a data processing system | |
US9135056B2 (en) | Automated, controlled distribution and execution of commands and scripts | |
US20170286644A1 (en) | Protection Method and Device for Application Data | |
US10402216B1 (en) | Live support integration in a virtual machine based development environment | |
CN113032273B (zh) | 一种应用程序的调试方法、装置、计算机设备和存储介质 | |
US9513762B1 (en) | Static content updates | |
US20220121472A1 (en) | Vm creation by installation media probe | |
KR20220083838A (ko) | 미러 이미지 파일을 생성하는 방법 및 장치, 그리고 컴퓨터로 판독 가능한 저장 매체 | |
CN110874216B (zh) | 一种完备代码生成方法、装置、设备和存储介质 | |
CN111078424A (zh) | 一种信息交互方法、装置、计算机设备和存储介质 | |
CN112199151B (zh) | 一种应用程序的运行方法及装置 | |
US7962922B2 (en) | Delivering callbacks into secure application areas | |
CN111385661B (zh) | 语音控制全屏播放的方法、装置、终端及存储介质 | |
CN111666581A (zh) | 数据保护方法、装置、设备及介质 | |
WO2017121231A1 (zh) | 一种资源下载方法和装置 | |
CN115269058B (zh) | 一种wpf资源加载方法及装置 | |
WO2021223544A1 (zh) | 一种启动应用的方法和相关装置 | |
CN114706657A (zh) | 一种多平台虚拟机管理接口、管理方法、终端及存储介质 | |
KR102327065B1 (ko) | 부트워킹셋을 이용한 가상머신 프로비저닝 가속장치와 가상머신 관리장치 및 방법 | |
CN117492776A (zh) | 应用安装方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19810844 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19810844 Country of ref document: EP Kind code of ref document: A1 |