CN109062714B - 远程控制安卓设备的方法、装置及电子设备 - Google Patents

远程控制安卓设备的方法、装置及电子设备 Download PDF

Info

Publication number
CN109062714B
CN109062714B CN201810844265.8A CN201810844265A CN109062714B CN 109062714 B CN109062714 B CN 109062714B CN 201810844265 A CN201810844265 A CN 201810844265A CN 109062714 B CN109062714 B CN 109062714B
Authority
CN
China
Prior art keywords
target interface
calling
target
interface
hardware
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
CN201810844265.8A
Other languages
English (en)
Other versions
CN109062714A (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.)
Advanced Nova Technology Singapore Holdings Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201810844265.8A priority Critical patent/CN109062714B/zh
Publication of CN109062714A publication Critical patent/CN109062714A/zh
Application granted granted Critical
Publication of CN109062714B publication Critical patent/CN109062714B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种远程控制安卓设备的方法、装置及电子设备,所述方法包括:安卓设备在接收到来自远程控制设备的目标接口调用请求后,基于目标接口调用请求中携带的目标接口的标识和调用目标接口的方法,通过Java反射机制调用所述目标接口,以对安卓设备的目标硬件进行控制。

Description

远程控制安卓设备的方法、装置及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种远程控制安卓设备的方法、装置及电子设备。
背景技术
为了方便人们的生活或提高工作效率,常常需要通过个人电脑(PersonalComputer,PC)对自己的手机等电子设备进行远程控制。例如,需要通过PC远程控制安卓(Android)设备(例如安卓手机)中蓝牙、WiFi或相机等硬件的开启和关闭,以对安卓设备中的硬件进行测试。传统的远程控制安卓设备的方案是,在安卓设备上启动一个后台服务(service),在该服务中封装一些控制该安卓设备硬件的方法,然后通过http协议调用这些方法控制硬件的开启与关闭。
但是,对于传统的这种方案,随着安卓系统的版本升级,如果一些硬件的框架(Framework)应用程序编程接口(Application Programming Interface,API)发生变化,需要将服务的安装包(service.apk)与安卓系统的版本进行适配;如果想要扩充一个新的硬件控制功能,需要在service.apk中重新封装一个新的方法。不难看出,这两种方案都需要对service.apk重新进行修改和编译,较为繁琐、很不方便。
发明内容
本申请实施例提供了一种远程控制安卓设备的方法、装置及电子设备,以简化安卓设备的远程控制过程。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,提出了一种远程控制安卓设备的方法,应用于安卓设备,所述方法包括:
接收来自远程控制设备的目标接口调用请求,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法,所述目标接口调用请求用于请求通过所述目标接口控制所述安卓设备中的目标硬件;
基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
第二方面,提出了一种远程控制安卓设备的装置,应用于安卓设备,所述装置包括:
请求接收模块,用于接收来自远程控制设备的目标接口调用请求,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法,所述目标接口调用请求用于请求通过所述目标接口控制所述安卓设备中的目标硬件;
接口调用模块,用于基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
第三方面,提出了一种远程控制安卓设备的方法,应用于远程控制设备,所述方法包括:
向安卓设备发送目标接口调用请求;
其中,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法;所述目标接口调用请求,用于请求通过所述目标接口控制所述安卓设备中的目标硬件;以及,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
第四方面,提出了一种远程控制安卓设备的装置,应用于远程控制设备,所述装置包括:
请求发送模块,用于向安卓设备发送目标接口调用请求;
其中,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法;所述目标接口调用请求,用于请求通过所述目标接口控制所述安卓设备中的目标硬件;以及,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
第五方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
接收来自远程控制设备的目标接口调用请求,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法,所述目标接口调用请求用于请求通过所述目标接口控制所述安卓设备中的目标硬件;
基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
第六方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
接收来自远程控制设备的目标接口调用请求,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法,所述目标接口调用请求用于请求通过所述目标接口控制所述安卓设备中的目标硬件;
基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
第七方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
向安卓设备发送目标接口调用请求;
其中,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法;所述目标接口调用请求,用于请求通过所述目标接口控制所述安卓设备中的目标硬件;以及,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
第八方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
向安卓设备发送目标接口调用请求;
其中,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法;所述目标接口调用请求,用于请求通过所述目标接口控制所述安卓设备中的目标硬件;以及,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
由以上本申请实施例提供的技术方案可见,本申请实施例提供的方案至少具备如下一种技术效果:由于安卓设备可以利用Java反射机制,调用来自远程控制设备的目标接口调用请求中的任意目标接口,而不需要在安卓系统升级后一些硬件的API发生变化时,或者在扩充一个新的硬件控制功能时,重新修改编译安卓设备中的代码,因此可以简化安卓设备的远程控制过程,间接地实现了在远程控制设备端任意调用安卓设备API的目的。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本说明书提供的一种远程控制安卓设备的架构示意图。
图2是本说明书提供的一种远程控制安卓设备的方法的流程示意图之一。
图3是图1所示的实施例中的步骤104的一种详细流程示意图。
图4是本说明书提供的一种远程控制安卓设备的方法的流程示意图之二。
图5是本说明书提供的另一种远程控制安卓设备的方法的流程示意图。
图6是本说明书提供的一种电子设备的结构示意图。
图7是本说明书提供的一种远程控制安卓设备的装置的结构示意图之一。
图8是图7所示的实施例中的步骤702的一种详细结构示意图。
图9是本说明书提供的一种远程控制安卓设备的装置的结构示意图之二。
图10是本说明书提供的另一种远程控制安卓设备的装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了简化远程控制安卓设备的过程,本说明书提供一种远程控制安卓设备的方法及装置。在本说明书提供的远程控制安卓设备的架构中,包括:远程控制设备和安卓设备,并由远程控制设备对与其连接的安卓设备进行远程控制。
本说明书提供一种远程控制安卓设备的方法及装置,可以应用在对安卓设备进行测试的云测平台上;也可应用于自定义jar包或者apk的API接口远程调用中,在该应用场景中,安卓设备在该方法及装置对应的服务(例如下文中的RPC.apk服务)启动前通过动态加载技术,把相关的jar包或者apk加载进进程的ClassLoader中即可实现API接口的远程调用。
下面先结合图1所示的一个例子,详细介绍本说明书提供的远程控制安卓设备的架构。在图1中,远程控制设备为个人电脑(Personal Computer,PC)端12,安卓设备为安卓手机11,PC端12和安卓手机11可通过USB连接,并由PC端12作为客户机(client)对安卓手机11进行远程控制。PC端12和安卓手机之间的通信采用传输控制协议(TransmissionControl Protocol,TCP)。
需要说明的是,在本说明书提供的技术方案中,为了提高远程控制设备与安卓设备的连接稳定性,可以采用采用Linux+docker技术实现远程控制设备与安卓设备的连接。
以下结合具体的实施例对远程控制安卓设备的技术方案进行介绍。
如图2所示,本说明书提供的一种远程控制安卓设备的方法,应用于安卓设备,该方法可以包括如下步骤:
在步骤202处,接收来自远程控制设备的目标接口调用请求,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法,所述目标接口调用请求用于请求通过所述目标接口控制所述安卓设备中的目标硬件。
在本实施例中,目标接口是指用于控制安卓设备中的目标硬件的应用程序编程接口(Application Programming Interface,API)。其中,目标硬件,例如可以是蓝牙、耳机、照相机、出声筒、WiFi和手电筒等。
其中,目标接口的标识可以为所述目标接口的类(class)地址,通常用目标接口的名称表示目标接口的类地址。
例如,安卓设备可以接收来自远程控制设备的这样一个目标接口调用请求:send_request("android.bluetooth.BluetoothAdapter","enable",[]),其中,“android.bluetooth.BluetoothAdapter”是目标接口的标识,意为“安卓.蓝牙.蓝牙适配器”,也即需要调用的目标接口为“BluetoothAdapter”;“enable”是调用目标接口的方法,意为“开启”。在该例子中,远程控制设备想要控制的安卓设备的硬件即为蓝牙,具体是要开启安卓设备中的蓝牙。
来自所述远程控制设备的所述目标接口调用请求的代码语言包括:python、java或js等能够被Java反射机制解析的代码语言。
在步骤204处,基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
Java反射机制,是可以动态地创建类型(简称类)的实例,将类绑定到现有对象,或从现有对象中获取类型,然后调用类的方法或访问类的字段和属性的一种机制。在此处,对象可以是需要调用的目标接口。
在一个例子中,如图3所示,步骤204可包括:
子步骤302、通过Java反射机制中的Class.forName从所述目标接口调用请求中,获取所述目标接口的类。
Class.forName是Java反射机制中用于获取被调用的目标接口的类的函数之一,在实际应用中,还可以通过其他方式获取被调用的目标接口的类。
沿用步骤202中所举的例子,当目标接口调用请求为:send_request("android.bluetooth.BluetoothAdapter","enable",[])时,通过Java反射机制中的Class.forName从该调用请求中获取的类可以为“android.bluetooth.BluetoothAdapter”。
子步骤304、通过Java反射机制中的Class.getMethods()从所述目标接口调用请求中,获取调用所述目标接口的方法。
Class.getMethods()是Java反射机制中用于获取与调用类的方法的函数之一,在实际应用中,还可以通过其他方式获取调用类的方法。
沿用步骤202中所举的例子,当目标接口调用请求为:send_request("android.bluetooth.BluetoothAdapter","enable",[])时,通过Java反射机制中的Class.getMethods()从所述目标接口调用请求中,获取的调用类的方法为“enable”。
子步骤306、基于所述目标接口的类和调用所述目标接口的方法,通过Java反射机制中的invoke对所述目标接口进行调用,以对所述目标硬件进行控制。
同样可以理解,invoke是Java反射机制中基于“类”和“方法”调用API的函数之一,在实际应用中,还可以通过其他方式基于“类”和“方法”调用API。
在另一个例子中,在图3所示的基础上,如果目标接口调用请求中还携带所述目标接口的调用参数,例如,沿用步骤102中所举的例子,如果目标接口调用请中的调用参数“[]”不为空,则在上述子步骤306之前,步骤204还可包括:通过Java反射机制从所述目标接口调用请求中,获取所述目标接口的调用参数。
相应的,上述子步骤306具体可包括:基于所述目标接口的类、调用所述目标接口的方法和所述目标接口的调用参数,通过Java反射机制中的invoke对所述目标接口进行调用,以对所述目标硬件进行控制。
可选地,在又一个例子中,在上述子步骤306之前,步骤204还可包括:通过Java反射机制中的getDclaredMethod从所述目标接口调用请求中,获取与调用所述目标接口的方法匹配的调用参数类型;确定获取的所述目标接口的调用参数的数据类型,与所述调用参数类型是否匹配;如不匹配,则将获取的所述目标接口的调用参数的数据类型,转换成所述调用参数类型;如匹配则不转换,以使安卓设备能正确的调用目标接口。
通常来讲,远程控制设备发送的目标接口调用请求中的调用参数类型是字符串类型,而与安卓手机中的目标接口匹配的调用参数的类型可能是整型、浮点型、数组等类型,因此需要进行类型的转换,以使安卓设备能正确的调用目标接口。
不难理解,在本实施例中,安卓设备通过Java反射机制可实现调用任意的架构(framework)层代码的目的,相当于在远程控制设备端实现了安卓设备端用于控制目标硬件需要调用的代码,这样的话,如果安卓版本升级后,一些硬件的API有变化,只需要在远程控制设备端更新API调用请求(目标接口调用请求)中的API即可,并不需要安卓设备重新修改编译代码。
例如,假设远程控制设备想打开安卓设备中的WiFi/或者关闭蓝牙,则发送打开WiFi或关闭蓝牙的接口调用请求到安卓设备,安卓设备会自动利用本说明书提供的方法动态调用打开WiFi或者关闭蓝牙的接口,以实现打开WiFi或者关闭蓝牙的控制操作。
也就是说,本实施例提供的一种远程控制安卓设备的方法,由于安卓设备可以利用Java反射机制,调用来自远程控制设备的目标接口调用请求中的任意目标接口,而不需要在安卓系统升级后一些硬件的API发生变化时,或者在扩充一个新的硬件控制功能时,重新修改编译安卓设备中的代码。因此可以简化安卓设备的远程控制过程,间接地实现了在远程控制设备端任意调用安卓设备API的目的。
可选地,在另一个实施例中,安卓设备可以基于远程过程调用(Remote ProcedureCall,RPC)实现上述一种远程控制安卓设备的方法,具体可以通过安装在安卓设备中的RPC.apk服务(service)来实现,RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。下面结合图4对利用RPC.apk服务实现上述一种远程控制安卓设备的方法的过程进行说明。
如图4所示,在该实施例中,应用于安卓设备的一种远程控制安卓设备的方法,在步骤202之前,还可包括:
步骤206、创建用于接收所述目标接口调用请求的特定端口。
具体来说,步骤206可包括:使用远程过程调用RPC.apk服务创建用于接收所述目标接口调用请求的特定端口。例如,安装在安卓设备中的RPC.apk服务可以创建一个用于接收所述目标接口调用请求的套接字(socket),该套接字即可作为上述特定端口。
进一步地,远程控制设备可通过adb forward命令,在上述特定端口和远程控制设备的一个端口之间建立映射关系,这样,远程控制设备即可通过安卓设备的ip加端口的方式给安卓设备发送上述目标接口调用请求。其中,adb指安卓调试桥(Android DebugBridge)。
在此基础上,上述步骤202可包括:使用所述特定端口接收所述目标接口调用请求。更为具体的,使用所述RPC.apk服务监听所述特定端口以接收所述目标接口调用请求。
以及,上述步骤204可包括:使用所述RPC.apk服务通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。更为具体的,在接收到目标接口调用请求之后,RPC.apk服务会创建一个线程来实现目标接口的调用,在该线程中通过Java的反射机制完成目标接口的实例化和调用。
同样的,本实施例提供的一种远程控制安卓设备的方法,由于安卓设备中的RPC.apk服务可以利用Java反射机制,调用来自远程控制设备的目标接口调用请求中的任意目标接口,而不需要在安卓系统升级后一些硬件的API发生变化时,或者在扩充一个新的硬件控制功能时,重新修改编译安卓设备中的RPC.apk。因此可以简化安卓设备的远程控制过程,间接地实现了在远程控制设备端任意调用安卓设备API的目的。
可选地,在上述任一实施例的基础上,应用于终端设备的一种远程控制安卓设备的方法,在步骤204之后,还可以包括:向所述远程控制设备返回调用所述目标接口的返回值,所述返回值可用于所述远程控制设备确定下一个需要调用的接口。
应理解,接口调用的返回值可以为空,也可以不为空,接口调用的返回值是否为空与接口本身的定义有关。当返回值不为空时,远程控制设备端可能需要利用该返回值进行下一次的调用,因为有时候一个调用过程可能包含多次交互过程,第一次交互后,远程控制设备得到一个返回值,并根据这个返回值进行第二次调用,以此类推。
作为一个例子,向所述远程控制设备返回调用所述目标接口的返回值,可包括:如果所述返回值是基本数据类型的对象(也称非基本对象),则返回所述返回值的字符串。其中,非基本对象包括一些基本数据类型的对象,例如字符串型(string)、整型(int)、浮点型(float)和字符型(char)等基本数据类型的对象。
作为另一个例子,向所述远程控制设备返回调用所述目标接口的返回值,可包括:如果所述返回值包括成员变量和/或成员函数的大对象,则存储所述返回值的字符串和字符串索引的对应关系,并返回所述字符串索引。其中,大对象是相对与上述非基本对象而言的,大对象一般是指类在内存中装载的实例,包含相关的成员变量和/或成员函数。
在实际应用中,由于安卓设备和远程控制设备之间传递的是字符串值(字符串本身),因此对于一些业务逻辑复杂的调用过程,比如,进行先目标接口的初始化,然后再调用该目标接口的方法,为了节约通信资源,该例子在远程控制设备端调用目标接口构造方法后返回一个字符串值的同时,在安卓设备端存储了“字符串值和字符串索引”的对应关系,例如存储一个”字符串值-字符串名”这样的一个map表,当远程控制设备端再次调用目标接口的方法时,只需要传递目标接口的字符串名以及相应的方法名和参数值,安卓设备端会依据目标接口的字符串名,从map表中查找出目标接口的字符串值,然后完成目标接口的调用。可以理解,相比于传递数据相对较大的“目标接口的字符串值”而言,传递数据量较少的“目标接口的字符串名”,可以节约通信资源。
以上是对本说明书提供应用于安卓设备的一种远程控制安卓设备的方法的说明,下面对应用于远程控制设备的一种远程控制安卓设备的方法进行介绍。
如图5所示,本说明书提供的一种远程控制安卓设备的方法,应用于远程控制设备,该方法可以包括:
步骤502、向安卓设备发送目标接口调用请求。
在一个例子中,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法;所述目标接口调用请求,用于请求通过所述目标接口控制所述安卓设备中的目标硬件;以及,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
例如,远程控制设备可以向安卓设备发送这样一个目标接口调用请求:send_request("android.bluetooth.BluetoothAdapter","enable",[]),其中,“android.bluetooth.BluetoothAdapter”是目标接口的标识,意为“安卓.蓝牙.蓝牙适配器”,也即需要调用的目标接口为“BluetoothAdapter”;“enable”是调用目标接口的方法,意为“开启”。在该例子中,远程控制设备想要控制的安卓设备的硬件即为蓝牙,具体是要开启安卓设备中的蓝牙。
在另一个例子中,所述目标接口调用请求中还携带所述目标接口的调用参数,其中,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识、调用所述目标接口的方法和所述目标接口的调用参数,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
可选地,所述目标接口的标识为所述目标接口的类。
可选地,向所述安卓设备发送的所述目标接口调用请求的代码语言包括:python、java或js等能够被Java反射机制解析的代码语言。
以及可选地,在上述两个例子中,安卓设备通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制的过程可参考上文中对应用于安卓设备的一种远程控制安卓设备的方法的说明,此处不再重复描述。
不难理解,在本实施例中,远程控制设备向安卓设备发送目标接口调用请求后,安卓设备可自动通过Java反射机制实现调用任意的架构(framework)层代码的目的,相当于在远程控制设备端实现了安卓设备端用于控制目标硬件需要调用的代码,这样的话,如果安卓版本升级后,一些硬件的API有变化,只需要在远程控制设备端更新API调用请求(目标接口调用请求)中的API即可,并不需要安卓设备重新修改编译代码。
例如,假设远程控制设备想打开安卓设备中的WiFi/或者关闭蓝牙,则发送打开WiFi或关闭蓝牙的接口调用请求到安卓设备,安卓设备会自动利用本说明书提供的方法动态调用打开WiFi或者关闭蓝牙的接口,以实现打开WiFi或者关闭蓝牙的控制操作。
也就是说,本实施例提供的一种远程控制安卓设备的方法,由于远程控制设备向安卓设备发送目标接口调用请求后,安卓设备可以自动利用Java反射机制,调用来自远程控制设备的目标接口调用请求中的任意目标接口,而不需要在安卓系统升级后一些硬件的API发生变化时,或者在扩充一个新的硬件控制功能时,重新修改编译安卓设备中的代码。因此可以简化安卓设备的远程控制过程,间接地实现了在远程控制设备端任意调用安卓设备API的目的。
可选地,在另一实施例中,上述步骤502可包括:向所述安卓设备的特定端口发送所述目标接口调用请求,所述特定端口由所述安卓设备预先创建。
作为一个例子,所述特定端口由所述安卓设备使用远程过程调用RPC.apk服务预先创建,且所述特定端口被所述安卓设备中的所述PRC服务监听;以及,所述调用请求用于触发所述PRC服务通过Java反射机制调用所述目标接口,对所述目标硬件进行控制。
特定端口的具体创建过程,也请参见上文中对应用于安卓设备的一种远程控制安卓设备的方法的说明,此处不再重复描述。
可选地,在又一个实施例中,图5所示的方法还可以包括:接收所述安卓设备返回的调用所述目标接口的返回值,所述返回值用于所述远程控制设备确定下一个需要调用的接口。
应理解,接口调用的返回值可以为空,也可以不为空,接口调用的返回值是否为空与接口本身的定义有关。当返回值不为空时,远程控制设备端可能需要利用该返回值进行下一次的调用,因为有时候一个调用过程可能包含多次交互过程,第一次交互后,远程控制设备得到一个返回值,并根据这个返回值进行第二次调用,以此类推。
作为一个例子,所述接收所述安卓设备返回的调用所述目标接口的返回值,可包括:如果所述返回值是基本数据类型的对象,则接收所述返回值的字符串。其中,非基本对象包括一些基本数据类型的对象,例如字符串型(string)、整型(int)、浮点型(float)和字符型(char)等基本数据类型的对象。
作为另一个例子,所述接收所述安卓设备返回的调用所述目标接口的返回值,可包括:如果所述返回值包括成员变量和/或成员函数的大对象,则接收所述返回值的字符串索引,所述安卓设备中存储有所述返回值的字符串和字符串索引的对应关系。其中,大对象是相对与上述非基本对象而言的,大对象一般是指类在内存中装载的实例,包含相关的成员变量和/或成员函数。
在实际应用中,由于安卓设备和远程控制设备之间传递的是字符串值,因此对于一些业务逻辑复杂的调用过程,比如,进行先目标接口的初始化,然后再调用该目标接口的方法,为了节约通信资源,该例子在远程控制设备端调用目标接口构造方法后返回一个字符串值的同时,在安卓设备端存储了“字符串值和字符串索引”的对应关系,例如存储一个”字符串值-字符串名”这样的一个map表,当远程控制设备端再次调用目标接口的方法时,只需要传递目标接口的字符串名以及相应的方法名和参数值,安卓设备端会依据目标接口的字符串名,从map表中查找出目标接口的字符串值,然后完成目标接口的调用。可以理解,相比于传递数据相对较大的“目标接口的字符串值”而言,传递数据量较少的“目标接口的字符串名”,可以节约通信资源。
以上是对本说明书提供应用于远程控制设备的一种远程控制安卓设备的方法的说明,下面对本说明书提供的电子设备进行介绍。
图6是本说明书的一个实施例提供的电子设备的结构示意图。请参考图6,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成远程控制安卓设备的装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
接收来自远程控制设备的目标接口调用请求,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法,所述目标接口调用请求用于请求通过所述目标接口控制所述安卓设备中的目标硬件;
基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
或者,处理器,执行存储器所存放的程序,并具体用于执行以下操作:
向安卓设备发送目标接口调用请求;
其中,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法;所述目标接口调用请求,用于请求通过所述目标接口控制所述安卓设备中的目标硬件;以及,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
上述如本说明书图2或图5所示实施例揭示的远程控制安卓设备的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图2或图5的远程控制安卓设备的方法,本说明书在此不再赘述。
当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本说明书还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图2或图5所示实施例的方法,并具体用于执行以下操作:
接收来自远程控制设备的目标接口调用请求,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法,所述目标接口调用请求用于请求通过所述目标接口控制所述安卓设备中的目标硬件;
基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
或者,具体用于执行以下操作:
向安卓设备发送目标接口调用请求;
其中,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法;所述目标接口调用请求,用于请求通过所述目标接口控制所述安卓设备中的目标硬件;以及,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
下面对本说明书提供的一种远程控制安卓设备的装置进行说明。
图7是本说明书提供的远程控制安卓设备的装置700的结构示意图。请参考图7,在一种软件实施方式中,远程控制安卓设备的装置700可包括:请求接收模块701和接口调用模块702。
请求接收模块701,用于接收来自远程控制设备的目标接口调用请求,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法,所述目标接口调用请求用于请求通过所述目标接口控制所述安卓设备中的目标硬件。
其中,目标接口是指用于控制安卓设备中的目标硬件的API。目标接口的标识可以为所述目标接口的类(class)地址,通常用目标接口的名称表示目标接口的类地址。
来自所述远程控制设备的所述目标接口调用请求的代码语言包括:python、java或js,等等。
接口调用模块702,用于基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
在一个例子中,如图8所示,接口调用模块702可包括:
第一获取子模块801,用于通过Java反射机制中的Class.forName从所述目标接口调用请求中,获取所述目标接口的类。
第二获取子模块802,用于通过Java反射机制中的Class.getMethods()从所述目标接口调用请求中,获取调用所述目标接口的方法。
调用子模块803,用于基于所述目标接口的类和调用所述目标接口的方法,通过Java反射机制中的invoke对所述目标接口进行调用,以对所述目标硬件进行控制。
在另一个例子中,在图8所示的基础上,如果目标接口调用请求中还携带所述目标接口的调用参数,接口调用模块702还可包括:第三获取子模块,用于在基于所述目标接口的类和调用所述目标接口的方法,通过Java反射机制中的invoke对所述目标接口进行调用,以对所述目标硬件进行控制之前,通过Java反射机制从所述目标接口调用请求中,获取所述目标接口的调用参数。
相应的,上述调用子模块803具体可用于:基于所述目标接口的类、调用所述目标接口的方法和所述目标接口的调用参数,通过Java反射机制中的invoke对所述目标接口进行调用,以对所述目标硬件进行控制。
可选地,在又一个例子中,接口调用模块702还可包括:
第四获取子模块,用于在基于所述目标接口的类和调用所述目标接口的方法,通过Java反射机制中的invoke对所述目标接口进行调用,以对所述目标硬件进行控制之前,通过Java反射机制中的getDclaredMethod从所述目标接口调用请求中,获取与调用所述目标接口的方法匹配的调用参数类型。
触发子模块,用于确定获取的所述目标接口的调用参数的数据类型,与所述调用参数类型是否匹配;如不匹配,则将获取的所述目标接口的调用参数的数据类型,转换成所述调用参数类型并触发上述调用子模块803;如匹配则不转换,直接触发上述调用子模块803。
通常来讲,远程控制设备发送的目标接口调用请求中的调用参数类型是字符串类型,而与安卓手机中的目标接口匹配的调用参数的类型可能是整型、浮点型、数组等类型,因此需要进行类型的转换,以使安卓设备能正确的调用目标接口。
本实施例提供的一种远程控制安卓设备的装置700,由于安卓设备可以利用Java反射机制,调用来自远程控制设备的目标接口调用请求中的任意目标接口,而不需要在安卓系统升级后一些硬件的API发生变化时,或者在扩充一个新的硬件控制功能时,重新修改编译安卓设备中的代码。因此可以简化安卓设备的远程控制过程,间接地实现了在远程控制设备端任意调用安卓设备API的目的。
可选地,在另一个实施例中,安卓设备可以基于远程过程调用(Remote ProcedureCall,RPC)实现上述一种远程控制安卓设备的方法,具体可以通过安装在安卓设备中的RPC.apk服务(service)来实现,RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
可选地,在另一个实施例中,如图9所示,远程控制安卓设备的装置700,还可包括:端口创建模块703。
端口创建模块703,用于在触发请求接收模块701之前,创建用于接收所述目标接口调用请求的特定端口。
具体来说,端口创建模块703可以用于:使用远程过程调用RPC.apk服务创建用于接收所述目标接口调用请求的特定端口。例如,安装在安卓设备中的RPC.apk服务可以创建一个用于接收所述目标接口调用请求的套接字(socket),该套接字即可作为上述特定端口。
在此基础上,请求接收模块701可用于,使用所述特定端口接收所述目标接口调用请求。更为具体的,使用所述RPC.apk服务监听所述特定端口以接收所述目标接口调用请求。
以及,上述接口调用模块702可用于,使用所述RPC.apk服务通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。更为具体的,在接收到目标接口调用请求之后,RPC.apk服务会创建一个线程来实现目标接口的调用,在该线程中通过Java的反射机制完成目标接口的实例化和调用。
图9提供的一种远程控制安卓设备的装置700,由于安卓设备中的RPC.apk服务可以利用Java反射机制,调用来自远程控制设备的目标接口调用请求中的任意目标接口,而不需要在安卓系统升级后一些硬件的API发生变化时,或者在扩充一个新的硬件控制功能时,重新修改编译安卓设备中的RPC.apk。因此可以简化安卓设备的远程控制过程,间接地实现了在远程控制设备端任意调用安卓设备API的目的。
可选地,在上述任一实施例的基础上,远程控制安卓设备的装置700,还可以包括:返回模块,用于向所述远程控制设备返回调用所述目标接口的返回值,所述返回值可用于所述远程控制设备确定下一个需要调用的接口。
作为一个例子,返回模块具体可以用于:向所述远程控制设备返回调用所述目标接口的返回值,可包括:如果所述返回值是基本数据类型的对象(也称非基本对象),则返回所述返回值的字符串。
作为另一个例子,返回模块具体可以用于:如果所述返回值包括成员变量和/或成员函数的大对象,则存储所述返回值的字符串和字符串索引的对应关系,并返回所述字符串索引,以节约远程控制设备和安卓设备之间的通信资源。
需要说明的是,远程控制安卓设备的装置700能够实现图2的方法实施例的方法,具体可参考图2所示实施例的远程控制安卓设备的方法,不再赘述。
以上是对本说明书提供应用于安卓设备的一种远程控制安卓设备的装置的说明,下面对应用于远程控制设备的一种远程控制安卓设备的装置进行介绍。
图10是本说明书提供的远程控制安卓设备的装置1000的结构示意图。请参考图10,在一种软件实施方式中,远程控制安卓设备的装置1000可包括:
请求发送模块1001,用于向安卓设备发送目标接口调用请求。
在一个例子中,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法;所述目标接口调用请求,用于请求通过所述目标接口控制所述安卓设备中的目标硬件;以及,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
在另一个例子中,所述目标接口调用请求中还携带所述目标接口的调用参数,其中,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识、调用所述目标接口的方法和所述目标接口的调用参数,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
可选地,所述目标接口的标识为所述目标接口的类。
可选地,向所述安卓设备发送的所述目标接口调用请求的代码语言包括:python、java或js等。
以及,可选地,在上述两个例子中,安卓设备通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制的过程可参考上文中对应用于安卓设备的一种远程控制安卓设备的方法的说明,此处不再重复描述。
本实施例提供的一种远程控制安卓设备的装置1000,由于远程控制设备向安卓设备发送目标接口调用请求后,安卓设备可以自动利用Java反射机制,调用来自远程控制设备的目标接口调用请求中的任意目标接口,而不需要在安卓系统升级后一些硬件的API发生变化时,或者在扩充一个新的硬件控制功能时,重新修改编译安卓设备中的代码。因此可以简化安卓设备的远程控制过程,间接地实现了在远程控制设备端任意调用安卓设备API的目的。
可选地,在另一实施例中,请求发送模块1001可用于:向所述安卓设备的特定端口发送所述目标接口调用请求,所述特定端口由所述安卓设备预先创建。
作为一个例子,所述特定端口由所述安卓设备使用远程过程调用RPC.apk服务预先创建,且所述特定端口被所述安卓设备中的所述PRC服务监听;以及,所述调用请求用于触发所述PRC服务通过Java反射机制调用所述目标接口,对所述目标硬件进行控制。
特定端口的具体创建过程,也请参见上文中对应用于安卓设备的一种远程控制安卓设备的方法的说明,此处不再重复描述。
可选地,在又一个实施例中,图10所示的装置1000还可以包括:返回值接收模块,用于接收所述安卓设备返回的调用所述目标接口的返回值,所述返回值用于所述远程控制设备确定下一个需要调用的接口。
应理解,接口调用的返回值可以为空,也可以不为空,接口调用的返回值是否为空与接口本身的定义有关。当返回值不为空时,远程控制设备端可能需要利用该返回值进行下一次的调用,因为有时候一个调用过程可能包含多次交互过程,第一次交互后,远程控制设备得到一个返回值,并根据这个返回值进行第二次调用,以此类推。
作为一个例子,返回值接收模块可以用于:如果所述返回值是基本数据类型的对象,则接收所述返回值的字符串。
作为另一个例子,返回值接收模块可以用于:如果所述返回值包括成员变量和/或成员函数的大对象,则接收所述返回值的字符串索引,所述安卓设备中存储有所述返回值的字符串和字符串索引的对应关系,以节约远程控制设备和安卓设备之间的通信资源。
需要说明的是,远程控制安卓设备的装置1000能够实现图5的方法实施例的方法,具体可参考图5所示实施例的远程控制安卓设备的方法,不再赘述。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制时,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (16)

1.一种远程控制安卓设备的方法,应用于安卓设备,所述方法包括:
接收来自远程控制设备的目标接口调用请求,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法,所述目标接口调用请求用于请求通过所述目标接口控制所述安卓设备中的目标硬件,所述目标接口是用于控制所述目标硬件的应用程序编程接口;
基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
2.根据权利要求1所述的方法,其中,所述目标接口的标识为所述目标接口的类,所述基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制,包括:
通过Java反射机制中的Class.forName从所述目标接口调用请求中,获取所述目标接口的类;
通过Java反射机制中的Class.getMethods()从所述目标接口调用请求中,获取调用所述目标接口的方法;
基于所述目标接口的类和调用所述目标接口的方法,通过Java反射机制中的invoke对所述目标接口进行调用,以对所述目标硬件进行控制。
3.根据权利要求2所述的方法,所述目标接口调用请求中还携带所述目标接口的调用参数,则在所述通过Java反射机制中的invoke对所述目标接口进行调用之前,所述方法还包括:
通过Java反射机制从所述目标接口调用请求中,获取所述目标接口的调用参数;
其中,所述基于所述目标接口的类和调用所述目标接口的方法,通过Java反射机制中的invoke对所述目标接口进行调用,以对所述目标硬件进行控制,包括:
基于所述目标接口的类、调用所述目标接口的方法和所述目标接口的调用参数,通过Java反射机制中的invoke对所述目标接口进行调用,以对所述目标硬件进行控制。
4.根据权利要求3所述的方法,在所述通过Java反射机制中的invoke对所述目标接口进行调用之前,所述方法还包括:
通过Java反射机制中的getDclaredMethod从所述目标接口调用请求中,获取与调用所述目标接口的方法匹配的调用参数类型;
确定获取的所述目标接口的调用参数的数据类型,与所述调用参数类型是否匹配;
如不匹配,则将获取的所述目标接口的调用参数的数据类型,转换成所述调用参数类型。
5.根据权利要求1所述的方法,还包括:
向所述远程控制设备返回调用所述目标接口的返回值,所述返回值用于所述远程控制设备确定下一个需要调用的接口。
6.根据权利要求5所述的方法,其中,所述向所述远程控制设备返回调用所述目标接口的返回值,包括:
如果所述返回值是基本数据类型的对象,则返回所述返回值的字符串;
如果所述返回值包括成员变量和/或成员函数的大对象,则存储所述返回值的字符串和字符串索引的对应关系,并返回所述字符串索引。
7.一种远程控制安卓设备的方法,应用于远程控制设备,所述方法包括:
向安卓设备发送目标接口调用请求;
其中,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法;所述目标接口调用请求,用于请求通过所述目标接口控制所述安卓设备中的目标硬件,所述目标接口是用于控制所述目标硬件的应用程序编程接口;以及,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
8.根据权利要求7所述的方法,所述目标接口调用请求中还携带所述目标接口的调用参数,其中,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识、调用所述目标接口的方法和所述目标接口的调用参数,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
9.根据权利要求7所述的方法,所述方法还包括:
接收所述安卓设备返回的调用所述目标接口的返回值,所述返回值用于所述远程控制设备确定下一个需要调用的接口。
10.根据权利要求9所述的方法,其中,所述接收所述安卓设备返回的调用所述目标接口的返回值,包括:
如果所述返回值是基本数据类型的对象,则接收所述返回值的字符串;
如果所述返回值包括成员变量和/或成员函数的大对象,则接收所述返回值的字符串索引,所述安卓设备中存储有所述返回值的字符串和字符串索引的对应关系。
11.一种远程控制安卓设备的装置,应用于安卓设备,所述装置包括:
请求接收模块,用于接收来自远程控制设备的目标接口调用请求,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法,所述目标接口调用请求用于请求通过所述目标接口控制所述安卓设备中的目标硬件,所述目标接口是用于控制所述目标硬件的应用程序编程接口;
接口调用模块,用于基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
12.一种远程控制安卓设备的装置,应用于远程控制设备,所述装置包括:
请求发送模块,用于向安卓设备发送目标接口调用请求;
其中,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法;所述目标接口调用请求,用于请求通过所述目标接口控制所述安卓设备中的目标硬件,所述目标接口是用于控制所述目标硬件的应用程序编程接口;以及,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
13.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
接收来自远程控制设备的目标接口调用请求,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法,所述目标接口调用请求用于请求通过所述目标接口控制安卓设备中的目标硬件,所述目标接口是用于控制所述目标硬件的应用程序编程接口;
基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
14.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
接收来自远程控制设备的目标接口调用请求,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法,所述目标接口调用请求用于请求通过所述目标接口控制安卓设备中的目标硬件,所述目标接口是用于控制所述目标硬件的应用程序编程接口;
基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
15.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
向安卓设备发送目标接口调用请求;
其中,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法;所述目标接口调用请求,用于请求通过所述目标接口控制所述安卓设备中的目标硬件,所述目标接口是用于控制所述目标硬件的应用程序编程接口;以及,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
16.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
向安卓设备发送目标接口调用请求;
其中,所述目标接口调用请求中携带目标接口的标识和调用所述目标接口的方法;所述目标接口调用请求,用于请求通过所述目标接口控制所述安卓设备中的目标硬件,所述目标接口是用于控制所述目标硬件的应用程序编程接口;以及,所述目标接口调用请求,用于触发所述安卓设备基于所述目标接口的标识和调用所述目标接口的方法,通过Java反射机制调用所述目标接口,以对所述目标硬件进行控制。
CN201810844265.8A 2018-07-27 2018-07-27 远程控制安卓设备的方法、装置及电子设备 Active CN109062714B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810844265.8A CN109062714B (zh) 2018-07-27 2018-07-27 远程控制安卓设备的方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810844265.8A CN109062714B (zh) 2018-07-27 2018-07-27 远程控制安卓设备的方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN109062714A CN109062714A (zh) 2018-12-21
CN109062714B true CN109062714B (zh) 2023-01-10

Family

ID=64835950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810844265.8A Active CN109062714B (zh) 2018-07-27 2018-07-27 远程控制安卓设备的方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN109062714B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857450A (zh) * 2019-01-31 2019-06-07 平安科技(深圳)有限公司 一种校验服务编排方法及装置
CN112925572B (zh) * 2021-03-01 2023-05-23 联想(北京)有限公司 一种控制方法、装置及电子设备
CN113891441A (zh) * 2021-11-17 2022-01-04 维沃移动通信有限公司 网络连接方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685254A (zh) * 2012-05-31 2012-09-19 深圳英宝通科技有限公司 一种跨平台移动网络终端控制方法及其系统
CN104216709A (zh) * 2014-08-20 2014-12-17 深圳光启创新技术有限公司 操作系统中直接控制硬件设备的方法和模块
CN106506835A (zh) * 2016-10-28 2017-03-15 努比亚技术有限公司 应用共享装置及方法
CN106776224A (zh) * 2016-12-26 2017-05-31 东南大学 一种基于CPU控制的Android手机硬件组件的功耗测算系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130043984A1 (en) * 2011-08-19 2013-02-21 Arnold Peter Goetzke Smart Remote

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685254A (zh) * 2012-05-31 2012-09-19 深圳英宝通科技有限公司 一种跨平台移动网络终端控制方法及其系统
CN104216709A (zh) * 2014-08-20 2014-12-17 深圳光启创新技术有限公司 操作系统中直接控制硬件设备的方法和模块
CN106506835A (zh) * 2016-10-28 2017-03-15 努比亚技术有限公司 应用共享装置及方法
CN106776224A (zh) * 2016-12-26 2017-05-31 东南大学 一种基于CPU控制的Android手机硬件组件的功耗测算系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
打开camera;fuyinghaha;《https://blog.csdn.net/fuyinghaha/article/details/79713119》;20180327;全文 *

Also Published As

Publication number Publication date
CN109062714A (zh) 2018-12-21

Similar Documents

Publication Publication Date Title
JP6912583B2 (ja) サービス処理方法および装置
CN109062714B (zh) 远程控制安卓设备的方法、装置及电子设备
TW201833792A (zh) 用戶介面渲染方法及裝置
CN108600326B (zh) 通信方法、装置及设备
EP3606010B1 (en) Method and apparatus for processing web application package
CN111930382B (zh) 应用页面的接入方法、装置及设备
WO2016058488A1 (zh) 一种用于提供sdk文件的方法与设备
CN107273226B (zh) 在安卓系统中集成组件及调用被集成组件的方法和装置
CN114547024A (zh) 一种sql语句风险检测方法、装置、设备及介质
CN114527983A (zh) 一种基于中间件的接口适配方法、装置及电子设备
CN111651467A (zh) 一种区块链节点接口发布调用方法和装置
CN112835615B (zh) 软件开发工具包的插件化处理方法、装置及电子设备
CN111949297B (zh) 一种区块链智能合约升级方法、装置及电子设备
CN107301097B (zh) 一种调用java对象、java对象的引用地址信息的存储方法及装置
WO2015007183A1 (en) Methods for adapting a dual-sim terminal, dual-sim terminal, and server
CN111797270A (zh) 音频播放方法、装置、电子设备及计算机可读存储介质
CN111026502B (zh) 一种业务调试架构创建方法、装置及电子设备、存储介质
CN110502251B (zh) 应用安装方法及装置
CN114546843A (zh) 程序调试处理方法及装置
CN110333914B (zh) 一种用于执行目标操作的方法与设备
CN114064594A (zh) 数据处理方法和装置
CN112612460A (zh) 接口的封装和调用方法、电子设备、及存储介质
CN108023966B (zh) 通用网关接口请求处理方法、设备和存储介质
CN112068814A (zh) 可执行文件的生成方法、装置、系统及介质
CN116382796B (zh) 一种h5小程序运行器的插件管理方法、装置及电子设备

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant before: Advanced innovation technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240226

Address after: Guohao Times City # 20-01, 128 Meizhi Road, Singapore

Patentee after: Advanced Nova Technology (Singapore) Holdings Ltd.

Country or region after: Singapore

Address before: Ky1-9008 business centre, 27 Hospital Road, Georgetown, grand caiman, UK

Patentee before: Innovative advanced technology Co.,Ltd.

Country or region before: Cayman Islands