CN108536491B - 一种车载设备反向控制安卓移动终端的处理方法及系统 - Google Patents

一种车载设备反向控制安卓移动终端的处理方法及系统 Download PDF

Info

Publication number
CN108536491B
CN108536491B CN201810123224.XA CN201810123224A CN108536491B CN 108536491 B CN108536491 B CN 108536491B CN 201810123224 A CN201810123224 A CN 201810123224A CN 108536491 B CN108536491 B CN 108536491B
Authority
CN
China
Prior art keywords
mobile terminal
vehicle
android mobile
data
executable program
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
CN201810123224.XA
Other languages
English (en)
Other versions
CN108536491A (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.)
Wuhan Kotei Informatics Co Ltd
Original Assignee
Wuhan Kotei Informatics 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 Wuhan Kotei Informatics Co Ltd filed Critical Wuhan Kotei Informatics Co Ltd
Priority to CN201810123224.XA priority Critical patent/CN108536491B/zh
Publication of CN108536491A publication Critical patent/CN108536491A/zh
Application granted granted Critical
Publication of CN108536491B publication Critical patent/CN108536491B/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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions

Abstract

本发明公开了一种车载设备反向控制安卓移动终端的处理方法和系统,先建立车载设备与安卓移动终端的通信连接,在车载设备配置adb后,执行相关的adb指令获取安卓移动终端的参数信息,车载设备推送可执行程序以及服务程序到安卓移动终端,并且在推送完成后在车载设备中通过adb指令启动二者,在启动所述可执行程序时,车载设备通过所述可执行程序向安卓移动终端传送节点eventNote,并控制安卓移动终端打开节点文件;安卓移动终端中上述二者启动后,之间建立连接,等待车载设备数据输入;服务程序接收到车载设备的数据后转发数据到可执行程序,可执行程序接收到数据后根据手机系统的Touch数据上报格式及参数调用系统write函数写数据到节点文件中实现对手机系统的控制。

Description

一种车载设备反向控制安卓移动终端的处理方法及系统
技术领域
本发明涉及移动互联领域,更具体地说,涉及一种车载设备反向控制安卓移动终端的处理方法及系统。
背景技术
Kotei User Input Back Control简称KUIBC,是为了解决移动互联领域中的手机与车机连接时的反向控制(车机控制手机)而开发设计出来的一种实现方法。KUIBC直接所属领域为移动互联领域,是Android平台下车机互联中反向控制的一种实现方案,在车机互联中,反向控制是必不可少的需求之一,反向控制对于用户体验的重要性不言而喻。在目前可实现KUIBC的技术中有三种主要实现方式:
1)Instrumation方式:
在Android提供的原生API中使用Instrumation在Android层实现对鼠标、Touch等事件的模拟。Instrumation是Android提供的一个测试工具,它针对Android的环境,扩展了业内标准的JUnit测试框架,Instrumentation框架可以控制和测试应用程序。对于反向控制而言,可以直接调用Android提供的API下的Instrumation中的sendPointerSync(keycode),sendKeyDownUpSync(key),sendCharacterSync(keyCode)等函数,实现事件模拟,从而实现KUIBC。此种容易实现,Coding轻松,但是Instrumation属于应用级的测试工具,所以在模拟系统事件时,Instrumation的执行线程必须保持在当前活动状态,当属于他的线程活动界面退出到后台时,会发生异常中断;另外如果有系统弹框提示弹出时,车载机端也是无法控制,所以使用该方式的作用域局限性很大。
2)Uinput桥接方式:
使用Uinput桥接方式,通过JNI方式在C层实现向设备节点中写数据而达到模拟手机触摸事件的效果。Uinput桥接的方式,是通过用户自己注册挂载自定义的设备节点在系统中,然后通过对这个设备节点的操作达到向系统发送鼠标、Touch等事件的数据,不需要人为去写驱动,使用Android自带的驱动以用户态向/dev/input/eventNote写入事件,即用户向Kernel注入数据。此种方式代码规范性高,适配性强,但需要设备拥有Root权限,这往往是用户不能接受的。
3)Runtime process方式:
直接使用系统的提供的Runtime线程去执行adb指令。通过Process线程去加载Runtime.getRuntime().exec(COMMAND)运行时,写入所需数据。此种容易实现,Coding轻松卡顿以及延时严重,用户体验相当糟糕。
以上的三种方案分别在不同场景下实现了对手机触摸事件的模拟与控制,而对于车机互联方案来说存在一定的局限性和不足之处,难以满足客户需求。
发明内容
本发明要解决的技术问题在于,针对现有技术中上述三种方案的局限性和不足之处,提供一种车载设备反向控制安卓移动终端的处理方法及系统,以实现车机互联的反向控制功能,解决手机Root权限问题,并成功解决反向控制性能问题,解决延时问题,提高流畅,实现友好的用户体验。
本发明为解决其技术问题,提供了一种车载设备反向控制安卓移动终端的处理方法,包括如下步骤:
S1、建立车载设备与安卓移动终端的通信连接;
S2、在车载设备配置adb后,执行相关的adb指令获取安卓移动终端的参数信息,所述参数信息包括屏幕相关参数以及移动终端对应的input event节点;
S3、车载设备推送一可执行程序以及一服务程序到安卓移动终端,并且在推送完成后在车载设备中通过adb指令启动二者,在启动所述可执行程序时,车载设备通过所述可执行程序向安卓移动终端传送input节点参数,并控制安卓移动终端打开该节点参数对应的节点文件;
S4、安卓移动终端中所述可执行程序以及所述服务程序启动后,所述可执行程序以及一服务程序之间建立sock连接,等待车载设备数据的输入;
S5、所述服务程序接收到所述车载设备的数据后转发数据到所述可执行程序,所述可执行程序接收到数据后根据手机系统的Touch数据上报格式及参数写入控制数据到所述节点文件中,实现对手机系统的控制。
优选地,在本发明的车载设备反向控制安卓移动终端的处理方法中,在步骤S3中:
在启动所述可执行程序时,车载设备还通过所述可执行程序向安卓移动终端传送车载设备获取到的与其连接的安卓移动终端的型号,根据该型号做设备的适配,对于不同的安卓移动设备型号或者品牌采用相应的格式进行Touch数据的上报。
优选地,在本发明的车载设备反向控制安卓移动终端的处理方法中,所述步骤S5中所述车载设备的数据是指根据所述屏幕相关参数信息进行同屏转换后的数据,同屏转换包括:对坐标系的调整以及每个点的坐标进行处理,保持每个点的宽、高都同比缩放,具体根据公式计算得出:
ASPECT_X=width_p/width_c;
ASPECT_Y=height_p/height_c;
X=ASPECT_X*event.getX();
Y=ASPECT_Y*event.getY();
式中,ASPECT_X、ASPECT_Y均为预设的比例系数,width_p、height_p分别为安卓移动终端的屏幕宽度和高度,width_c、height_c分别为要在车载设备的屏幕上图像显示区域的宽度和高度;event.getX()、event.getY()分别为获取的车载设备的屏幕上图像显示点的横坐标和纵坐标,X、Y分别为计算所得的转换至安卓移动终端上所对应的横坐标和纵坐标。
优选地,在本发明的车载设备反向控制安卓移动终端的处理方法中,所述步骤S3中所述可执行程序向安卓移动终端传送节点参数,并控制安卓移动终端打开该节点参数对应的节点文件具体为:通过adb指令向所述可执行程序传送节点参数eventNote,并控制安卓移动终端打开/dev/input/eventNote这个节点文件;
所述步骤S5可执行程序接收到数据后根据手机系统的Touch数据上报格式及参数写入控制数据到所述节点文件中具体为:所述可执行程序接收到数据后根据手机系统的Touch数据上报格式及参数调用系统write函数写控制数据到/dev/input/eventNote所述节点文件中。
优选地,在本发明的车载设备反向控制安卓移动终端的处理方法中,在车载设备反向控制安卓移动终端时,车载设备配置了adb,adb运行以识别安卓移动终端,从而与安卓移动终端之间进行基于adb-adbd通信模式。
根据本发明的另一方面,本发明为解决其技术问题,还提供了一种车载设备反向控制安卓移动终端的处理系统,包括如下步骤:
通信建立模块,用于建立车载设备与安卓移动终端的通信连接;
信息获取模块,用于在车载设备配置adb后,执行相关的adb指令获取安卓移动终端的参数信息,所述参数信息包括屏幕相关参数以及移动终端对应的input event节点;
程序写入模块,用于车载设备推送一可执行程序以及一服务程序到安卓移动终端,并且在推送完成后在在车载设备中通过adb指令启动二者,在启动所述可执行程序时,车载设备通过所述可执行程序向安卓移动终端传送input节点参数,并控制安卓移动终端打开该节点参数对应的节点文件;
等待执行模块,用于安卓移动终端中所述可执行程序以及所述服务程序启动后,所述可执行程序以及一服务程序之间建立sock连接,等待车载设备数据的输入;
数据写入模块,用于所述服务程序接收到所述车载设备的数据后转发数据到所述可执行程序,所述可执行程序接收到数据后根据手机系统的Touch数据上报格式及参数写入控制数据到所述节点文件中,实现对手机系统的控制。
优选地,在本发明的车载设备反向控制安卓移动终端的处理系统中,在程序写入模块中:
在启动所述可执行程序时,车载设备还通过所述可执行程序向安卓移动终端传送车载设备获取到的与其连接的安卓移动终端的型号,根据该型号做设备的适配,对于不同的安卓移动设备型号或者品牌采用相应的格式进行Touch数据的上报。
优选地,在本发明的车载设备反向控制安卓移动终端的处理系统中,所述数据写入模块中所述车载设备的数据是指根据所述屏幕相关参数信息进行同屏转换后的数据,同屏转换包括:对每个点的坐标进行处理,保持每个点的宽、高都同比缩放,具体根据公式计算得出:
ASPECT_X=width_p/width_c;
ASPECT_Y=height_p/height_c;
X=ASPECT_X*event.getX();
Y=ASPECT_Y*event.getY();
式中,ASPECT_X、ASPECT_Y均为预设的比例系数,width_p、height_p分别为安卓移动终端的屏幕宽度和高度,width_c、height_c分别为要在车载设备的屏幕上图像显示区域的宽度和高度;event.getX()、event.getY()分别为获取的车载设备的屏幕上图像显示点的横坐标和纵坐标,X、Y分别为计算所得的转换至安卓移动终端上所对应的横坐标和纵坐标。
优选地,在本发明的车载设备反向控制安卓移动终端的处理系统中,所述通信建立模块中通信连接是指车载设备与安卓移动终端之间通过USB连接方式、WiFi连接方式、蓝牙连接方式中的其中一种方式建立通信连接。
优选地,在本发明的车载设备反向控制安卓移动终端的处理系统中,在车载设备反向控制安卓移动终端时,车载设备配置了adb,adb运行以识别安卓移动终端,从而与安卓移动终端之间进行基于adb-adbd通信模式。
实施本发明的车载设备反向控制安卓移动终端的处理方法及系统,具有以下有益效果:实现车机互联的反向控制功能,绕过对用户手机的Root权限申请问题,成功解决反向控制性能问题,解决延时问题,提高流畅,实现友好的用户体验。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的车载设备反向控制安卓移动终端的处理方法一优选实施例的原理图;
图2是本发明的车载设备反向控制安卓移动终端的处理方法的信号流向图;
图3是本发明的车载设备反向控制安卓移动终端的ADB c/s连接逻辑图;
图4是本发明的车载设备反向控制安卓移动终端的坐标适配图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
本实施例设计的实现方案包括手机(安卓移动终端),车机(车载设备)以及把二者连接为一体的媒介(USB,WiFi,蓝牙等)。在本发明设计实现中车机负责收集用户对车机的动作事件,组装用户触发事件的数据;安卓移动终端则负责接受车载设备发过来的数据,并同步响应该用户动作;媒介则作为中间桥梁,负责为数据的传输提供传输通道。
在手机与车机进行有效连接后,车机端需要获取手机相关信息,包括屏幕相关参数信息、Touch-Screen的input event节点,屏幕相关参数信息包括像素尺寸以及横竖屏等,优选地所述手机相关信息还包括设备类型等。通过屏幕相关参数信息实现手机车机之间的同屏坐标系转换,转换前根据屏幕相关参数信息建立手机、车机之间的屏幕之间的相互映射关系,该相互映射关系是指屏幕上相同位置上对应像素间的映射关系。
在车机端做用户对车机的操作数据收集工作,这就有别与当前其他技术在车机端直接运行指令实现对手机系统进行控制的实现。而该方案的提出是为了解决在手机上的Root权限问题,需要绕开Root权限问题,因为不能对用户手机进行Root请求或者设置,不管从安全性来说还是用户体验上来讲要求用户对程序使用Root权限那将是不可想象和无法获得认可和理解的需求。本发明完美绕开该问题,通过调研分析adb实现原理而借鉴adbd对设备权限的分配等,实现无需申请用户开放Root权限即可实现反向控制功能。
在车机端通过数据读取并且筛选出手机系统的input系统触控节点,在手机车机建立连接后,车机端通过adb方式启动执行程序并打开手机该event节点,手机端则等待车机端数据,在收到车机端数据后同步响应该用户动作。而由于打开的是手机系统的input节点完美利用手机本身的input事件处理模块,解决数据延时和延时累加问题,并且在代码编写以及实现上更加标准化。
本发明方案的关键点在于打开手机系统的input节点/dev/input/eventNote文件节点,而打开这个文件需要使用open(event,O_RDWR)函数,执行该函数打开手机系统event节点需要root权限才可以写数据,如何拥有root权限成为本方案的关键难题。
如图1、图2所示,本发明方案的具体方案为:
S1、建立车载设备与安卓移动终端的通信连接,车载设备获取安卓移动终端的显示画面并进行显示。
S2、车载设备配置adb开机自启动:adb源码目录xxx/system/core/adb。在车载设备(如车载Android设备)配置adb后,执行相关的adb指令获取安卓移动终端(手机)参数信息,安卓移动终端(手机)参数信息包括安卓移动终端(手机)的屏幕参数、event节点、手机型号等。在车机端使用指令“adb shell getevent-p”获取安卓移动终端(手机)event节点信息,编写算法对信息进行筛选后确认设备节点,如该设备的触屏节点为/dev/input/event1。
S3、在车载设备初始化完成后推送应用程序KylinInput跟服务程序TouchInputService程序到安卓移动终端,并且在车载设备推送完成后在车载设备中通过adb指令启动二者,在此的关键部分在启动执行KylinInput C语言可执行程序时,传入手机型号、设备Touch节点两个参数(PhoneType,EventNote),并且打开/dev/input/eventNote这个节点文件;PhoneType用来进行安卓移动终端的适配,对于不同的安卓移动设备型号或者品牌后续将采用相应的格式进行Touch数据的上报。这是该方案实现的关键之处,打开/dev/input/eventNote文件节点需要root权限,而本方案成功绕开该权限问题。
S4、安卓移动终端应用程序KylinInput跟服务程序TouchInputService启动后,二者会建立sock连接,等待车载设备数据的输入。
S5、服务程序TouchInputService接收到车载设备数据后转发用户数据到可执行应用程序KylinInput,可执行应用程序KylinInput接收到数据后根据手机系统的Touch数据上报格式及参数调用系统write函数写控制数据到/dev/input/eventNote节点文件中,实现对手机系统的控制。其中上述各/dev/input/eventNote中的eventNote为动态的,通过对eventNote进行参数的赋值,可以得到要打开的节点文件。
安卓移动终端的Android系统提供了供远端调试用的adbd进程。PC电脑之所以能够连接手机对手机进行调试,关键技术就在于在手机端有adbd的存在,而在PC端是adb,adb包括了adb client跟adb service,adb server作为adb client的车载设备,而位于手机端的adbd又作为adb service的车载设备存在,为两端的连接通信提供服务。二者关系图3如下所示:
adbd源码位于system/core/adb/目录下,可执行文件位于/sbin/adbd。通过adb执行ps命令,结果可以看出adbd本身权限为shell,而它的父进程权限为root。因此本发明在其父进程中的init.rc文件中对其进行配置,使其拥有root权限。
Android使用sendevent/getevent模拟触屏事件,这两个命令的源码在system/core/toolbox/下,sendevent.c getevent.c。
(1)getevent
使用getevent获得/dev/input/eventNote设备汇报的事件,执行这个命令将会输出所有event设备的基本信息,如下:
add device 1:/dev/input/event1
name:"mxc_ts"
add device 2:/dev/input/event0
name:"mxckpd"
表明系统有两个event设备,分别对应着input设备touchscreen,keyboard。
(2)Sendevent
Android可以使用sendevent来模拟触屏,键盘以及其他类型的event事件,sendevent/dev/input/eventNote type code value,其中/dev/input/eventNote对应一个event设备,可以通过getevent获得可用的event设备,type,code,value的定义可参看kernel/include/linux/input.h。
type如下定义:
Event types value
#define EV_KEY 0x01
#define EV_REL 0x02
#define EV_ABS 0x03
#define EV_MSC 0x04
#define EV_SW 0x05
#define EV_LED 0x11
#define EV_SND 0x12
#define EV_REP 0x14
#define EV_FF 0x15
#define EV_PWR 0x16
#define EV_FF_STATUS 0x17
#define EV_MAX 0x1f
#define EV_CNT (EV_MAX+1)
一般来说,常用的是EV_KEY,EV_REL,EV_ABS,EV_SYN分别对应keyboard,相对坐标,绝对坐标,同步事件。
EV_REL对应的code:
Figure BDA0001572749090000081
Figure BDA0001572749090000091
EV_ABS对应的code
Figure BDA0001572749090000092
Figure BDA0001572749090000101
使用示例:用senevent模拟触屏事件
sendevent/dev/input/event1:0003 0000 0000015e//ABS x坐标
sendevent/dev/input/event1:0003 0001 000000df//ABS y坐标
sendevent/dev/input/event1:0001 014a 00000001//BTN touch事件值为1
sendevent/dev/input/event1:0003 0018 00000000//ABS pressure事件
sendevent/dev/input/event1:0001 014a 00000000//BTN touch事件值为0
sendevent/dev/input/event1:0000 0000 00000000//sync事件
可以直接使用Runtime.getRuntime().exec(COMMAND)来执行这些语句,但是执行效果不佳,因此在KUIBC中不直接使用命令的方式,而是采用打开文件节点,来向系统写文件方式,在采用这种方式的时候,需要把对应的十六进制数据转化成十进制数据这样安卓移动终端的Android系统才能识别响应。
基于上面两点,第一点解决了权限问题,第二点利用Android系统的事件上报处理系统进行对触屏事件及动作的模拟,达到对手机的反向控制。
本发明旨在车机互联领域,进一步探讨了UIBC反向控制的实现方案,丰富了该领域的技术实现方式。在经济方面,KUIBC的实现可以配套其他模块转换成经济效益,在车机互联的前端、后装市场可发挥其经济价值。在技术方面,KUIBC实现了模拟手机的触屏系统向手机input事件节点中写数据,成功解决了root权限一大关键难题。在数据、性能方面,达到快速同步及时响应用户动作,解决了延时、卡顿等不友好的用户体验问题。整个过程所需的响应时长在100ms以内。
本方案具体实现方式为在c层打开设备节点(open(eventnode,O_RDWR)),使用写文件的方式实现事件模拟。
KUIBC反向控制使用流程
Figure BDA0001572749090000111
Step1获取对端安卓移动终端(手机)相关信息
Figure BDA0001572749090000112
确认车载设备(车机)ADB连接success,成功识别安卓移动终端设备(手机)
→执行命令adb devices
Figure BDA0001572749090000113
获取安卓移动终端(手机)尺寸(如:720x1280)
→执行命令adb shell dumpsys window policy,根据结果筛选出所需结果
Figure BDA0001572749090000114
获取安卓移动终端(手机)型号
→执行命令adb shell getprop ro.product.model
Figure BDA0001572749090000115
获取eventNote(要写入的设备节点号)
→执行命令adb shell getevent-p,筛选得到Touch所属设备号
Figure BDA0001572749090000121
Step2:根据获取到的安卓移动终端(手机)尺寸,适屏处理,设定车载设备(车机)的显示尺寸。
通过第一步获取了phone的屏幕尺寸宽度width,高度height,而实际应用中车载设备(车机)的宽度width_c,高度height_c是常量(可知的),因此需要选定二者之一来为算法的实际计算提供标准数据来动态计算另一个数据。设安卓移动终端(手机)像素比例为Coefficient,则
Coefficient=width/height
而要达到客户度(手机)跟车载设备(车机)的坐标点同步,必须满足Coefficient一致,也就是说
Coefficient=width_p/height_p=width_c/height_c
那么
Width_c=Coefficient*height_c=(width_p/height_p)*height_c
注:公式中width_p/height_p为安卓移动终端(手机phone)的宽/高;width_c/height_c为车载设备(车机car)的宽/高参数。
到此满足了server端(车机)跟client端(手机)像素的同步,保证车载设备与安卓移动终端的坐标系一致。
对于坐标系的换算见图4所示,其中asp_x跟asp_y是根据手机的尺寸与车机的尺寸不同而计算出来的比例值,会根据车机端的显示界面具体是按照width或者height作为依据而有所区别。
Figure BDA0001572749090000122
Step3:监听server端触发的事件,组装数据。
在发送数据之前,还需要对每个点的坐标进行处理,保持每个点的宽、高都同比缩放,则令
宽的比例:ASPECT_X=width_p/width_c
高的比例:ASPECT_Y=height_p/height_c
单点的坐标如下:
X=ASPECT_X*event.getX();
Y=ASPECT_Y*event.getY()
event.getX()、event.getY()分别为获取的车载设备的屏幕上图像显示点的横坐标和纵坐标,X、Y分别为计算所得的转换至安卓移动终端上所对应的横坐标和纵坐标。
Figure BDA0001572749090000131
Step4发送数据(ADB)
通过USB或者WiFi传输通道把数据发送到安卓移动终端(手机),手机端应用接收到数据后,转化数据到手机的C可执行程序。
Figure BDA0001572749090000132
写入该数据到Android系统节点中
组装数据分别写入用户的up,down,move等数据到/dev/input/eventNote设备节点中。
数据组装举例,以ZTE手机机型为例:
定义down、move、up必须上报的数据如下:
int mDownData[DOWNDATA][DATA_NUM]={{3,57,10},{1,330,1}};
int mMoveData[MOVEDATA][DATA_NUM]={{3,58,50},{3,53,0},{3,54,0},{0,0,0}};
int mUpData[UPDATA][DATA_NUM]={{3,57,-1},{1,330,0},{0,0,0}};
注:其中加粗且标记下划线的标记处需要动态填写数据
由于不同手机的厂商都有可能进行定制化处理,在具体实现上有部分差异,需要对手机进行适配,目前本方案可覆盖市面的主流手机。而对于一些少用的机型也可以进行扩展适配,从而达到对所有Android系统手机的全覆盖。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (10)

1.一种车载设备反向控制安卓移动终端的处理方法,其特征在于,包括如下步骤:
S1、建立车载设备与安卓移动终端的通信连接;
S2、在车载设备配置adb后,执行相关的adb指令获取安卓移动终端的参数信息,所述参数信息包括屏幕相关参数以及移动终端对应的input event节点;
S3、车载设备推送一可执行程序以及一服务程序到安卓移动终端,并且在推送完成后在车载设备中通过adb指令启动二者,在启动所述可执行程序时,在所述可执行程序父进程中对init.rc文件进行配置,使其拥有root权限,之后车载设备通过所述可执行程序向安卓移动终端传送input event节点参数,并控制安卓移动终端打开该节点参数对应的节点文件;
S4、安卓移动终端中所述可执行程序以及所述服务程序启动后,所述可执行程序以及所述服务程序之间建立sock连接,等待车载设备数据的输入;
S5、所述服务程序接收到所述车载设备的数据后转发数据到所述可执行程序,所述可执行程序接收到数据后根据手机系统的Touch数据上报格式及参数写入控制数据到所述节点文件中,实现对手机系统的控制。
2.根据权利要求1所述的车载设备反向控制安卓移动终端的处理方法,其特征在于,在步骤S3中:
在启动所述可执行程序时,车载设备还通过所述可执行程序向安卓移动终端传送车载设备获取到的与其连接的安卓移动终端的型号,根据该型号做设备的适配,对于不同的安卓移动设备型号或者品牌采用相应的格式进行Touch数据的上报。
3.根据权利要求1所述的车载设备反向控制安卓移动终端的处理方法,其特征在于,所述步骤S5中所述车载设备的数据是指根据所述屏幕相关参数信息进行同屏转换后的数据,同屏转换包括:对坐标系的调整以及每个点的坐标进行处理,保持每个点的宽、高都同比缩放,具体根据公式计算得出:
ASPECT_X=width_p/width_c;
ASPECT_Y=height_p/height_c;
X=ASPECT_X*event.getX();
Y=ASPECT_Y*event.getY();
式中,ASPECT_X、ASPECT_Y均为预设的比例系数,width_p、height_p分别为安卓移动终端的屏幕宽度和高度,width_c、height_c分别为要在车载设备的屏幕上图像显示区域的宽度和高度;event.getX()、event.getY()分别为获取的车载设备的屏幕上图像显示点的横坐标和纵坐标,X、Y分别为计算所得的转换至安卓移动终端上所对应的横坐标和纵坐标。
4.根据权利要求1所述的车载设备反向控制安卓移动终端的处理方法,其特征在于,
所述步骤S3中所述可执行程序向安卓移动终端传送节点参数,并控制安卓移动终端打开该节点参数对应的节点文件具体为:通过adb指令向所述可执行程序传送节点参数eventNote,并控制安卓移动终端打开/dev/input/eventNote这个节点文件;
所述步骤S5可执行程序接收到数据后根据手机系统的Touch数据上报格式及参数写入控制数据到所述节点文件中具体为:所述可执行程序接收到数据后根据手机系统的Touch数据上报格式及参数调用系统write函数写控制数据到/dev/input/eventNote所述节点文件中。
5.根据权利要求1所述的车载设备反向控制安卓移动终端的处理方法,其特征在于,在车载设备反向控制安卓移动终端时,车载设备配置了adb,adb运行以识别安卓移动终端,从而与安卓移动终端之间进行基于adb-adbd通信模式。
6.一种车载设备反向控制安卓移动终端的处理系统,其特征在于,包括如下步骤:
通信建立模块,用于建立车载设备与安卓移动终端的通信连接;
信息获取模块,用于在车载设备配置adb后,执行相关的adb指令获取安卓移动终端的参数信息,所述参数信息包括屏幕相关参数以及移动终端对应的input event节点;
程序写入模块,用于车载设备推送一可执行程序以及一服务程序到安卓移动终端,并且在推送完成后在车载设备中通过adb指令启动二者,在启动所述可执行程序时,在所述可执行程序父进程中对init.rc文件进行配置,使其拥有root权限,之后车载设备通过所述可执行程序向安卓移动终端传送input event节点参数,并控制安卓移动终端打开该节点参数对应的节点文件;
等待执行模块,用于安卓移动终端中所述可执行程序以及所述服务程序启动后,所述可执行程序以及所述服务程序之间建立sock连接,等待车载设备数据的输入;
数据写入模块,用于所述服务程序接收到所述车载设备的数据后转发数据到所述可执行程序,所述可执行程序接收到数据后根据手机系统的Touch数据上报格式及参数写入控制数据到所述节点文件中,实现对手机系统的控制。
7.根据权利要求6所述的车载设备反向控制安卓移动终端的处理系统,其特征在于,在程序写入模块中:
在启动所述可执行程序时,车载设备还通过所述可执行程序向安卓移动终端传送车载设备获取到的与其连接的安卓移动终端的型号,根据该型号做设备的适配,对于不同的安卓移动设备型号或者品牌采用相应的格式进行Touch数据的上报。
8.根据权利要求6所述的车载设备反向控制安卓移动终端的处理系统,其特征在于,所述数据写入模块中所述车载设备的数据是指根据所述屏幕相关参数信息进行同屏转换后的数据,同屏转换包括:对每个点的坐标进行处理,保持每个点的宽、高都同比缩放,具体根据公式计算得出:
ASPECT_X=width_p/width_c;
ASPECT_Y=height_p/height_c;
X=ASPECT_X*event.getX();
Y=ASPECT_Y*event.getY();
式中,ASPECT_X、ASPECT_Y均为预设的比例系数,width_p、height_p分别为安卓移动终端的屏幕宽度和高度,width_c、height_c分别为要在车载设备的屏幕上图像显示区域的宽度和高度;event.getX()、event.getY()分别为获取的车载设备的屏幕上图像显示点的横坐标和纵坐标,X、Y分别为计算所得的转换至安卓移动终端上所对应的横坐标和纵坐标。
9.根据权利要求6所述的车载设备反向控制安卓移动终端的处理系统,其特征在于,所述通信建立模块中通信连接是指车载设备与安卓移动终端之间通过USB连接方式、WiFi连接方式、蓝牙连接方式中的其中一种方式建立通信连接。
10.根据权利要求6所述的车载设备反向控制安卓移动终端的处理系统,其特征在于,在车载设备反向控制安卓移动终端时,车载设备配置了adb,adb运行以识别安卓移动终端,从而与安卓移动终端之间进行基于adb-adbd通信模式。
CN201810123224.XA 2018-02-07 2018-02-07 一种车载设备反向控制安卓移动终端的处理方法及系统 Active CN108536491B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810123224.XA CN108536491B (zh) 2018-02-07 2018-02-07 一种车载设备反向控制安卓移动终端的处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810123224.XA CN108536491B (zh) 2018-02-07 2018-02-07 一种车载设备反向控制安卓移动终端的处理方法及系统

Publications (2)

Publication Number Publication Date
CN108536491A CN108536491A (zh) 2018-09-14
CN108536491B true CN108536491B (zh) 2021-11-05

Family

ID=63485718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810123224.XA Active CN108536491B (zh) 2018-02-07 2018-02-07 一种车载设备反向控制安卓移动终端的处理方法及系统

Country Status (1)

Country Link
CN (1) CN108536491B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109375845A (zh) * 2018-09-20 2019-02-22 武汉卡比特信息有限公司 基于预设图标的快捷启动互连系统及方法
CN109510895A (zh) * 2018-10-24 2019-03-22 惠州Tcl移动通信有限公司 移动终端控制配件进行工作的方法、移动终端及存储介质
CN109308175A (zh) * 2018-11-02 2019-02-05 盛子望 利用移动设备及显示设备进行同屏显示的电子装置及方法
CN111199734B (zh) * 2018-11-20 2024-03-12 奥迪股份公司 移动终端的控制方法及装置、计算机设备和可读存储介质
CN109871288B (zh) * 2018-12-25 2021-11-23 上海瑞家信息技术有限公司 执行Android系统命令的方法、装置、设备及介质
CN110868697B (zh) * 2019-11-19 2023-11-21 深圳创维汽车智能有限公司 车机与多个移动设备的互联方法、设备及存储介质
CN111639000B (zh) * 2020-06-03 2023-03-24 公安部第三研究所 一种安卓移动终端备份数据快速提取的方法及自动化备份系统
CN114584815A (zh) * 2020-11-30 2022-06-03 上海新微技术研发中心有限公司 一种可回控投屏方法、计算机可读存储介质和装置
CN114584816A (zh) * 2020-11-30 2022-06-03 上海新微技术研发中心有限公司 安卓投屏清晰度设置方法、计算机可读存储介质和设备
CN113515250A (zh) * 2021-06-10 2021-10-19 澳柯玛股份有限公司 一种冰箱大屏与安卓的无线传屏系统及方法
CN114356819A (zh) * 2021-12-01 2022-04-15 深圳市海邻科信息技术有限公司 设备连接方法、车载警务终端、车机
CN114422557A (zh) * 2021-12-17 2022-04-29 浙江零跑科技股份有限公司 一种手机远程控制汽车的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365441A (zh) * 2013-06-24 2013-10-23 福州博远无线网络科技有限公司 计算机端远程控制Android手机桌面的方法
WO2014205788A1 (zh) * 2013-06-28 2014-12-31 深圳市掌讯通讯设备有限公司 一种安卓智能设备间数据自动同步方法
CN104391695A (zh) * 2014-11-06 2015-03-04 北京凌阳益辉科技有限公司 一种通过外部设备进行同步控制的方法及其装置
CN107256188A (zh) * 2017-06-30 2017-10-17 百度在线网络技术(北京)有限公司 安卓设备的控制方法、装置、终端及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365441A (zh) * 2013-06-24 2013-10-23 福州博远无线网络科技有限公司 计算机端远程控制Android手机桌面的方法
WO2014205788A1 (zh) * 2013-06-28 2014-12-31 深圳市掌讯通讯设备有限公司 一种安卓智能设备间数据自动同步方法
CN104391695A (zh) * 2014-11-06 2015-03-04 北京凌阳益辉科技有限公司 一种通过外部设备进行同步控制的方法及其装置
CN107256188A (zh) * 2017-06-30 2017-10-17 百度在线网络技术(北京)有限公司 安卓设备的控制方法、装置、终端及存储介质

Also Published As

Publication number Publication date
CN108536491A (zh) 2018-09-14

Similar Documents

Publication Publication Date Title
CN108536491B (zh) 一种车载设备反向控制安卓移动终端的处理方法及系统
US11561887B2 (en) Test script debugging using an automated testing framework and UI rendering tree
CN101957793B (zh) 一种面向Android及其衍生系统的软件操作录制回放方法
US20030036866A1 (en) System and method for creating a test executive sequence to perform display inspection
CN105120483B (zh) 智能卡与移动终端兼容性的自动化测试方法及系统
US20110191787A1 (en) System and method for providing sensor data from embedded device to software development environment
CN106776294B (zh) 安卓手机自动化测试方法和系统
US20170147480A1 (en) Test script generation
CN106649107B (zh) 安卓系统稳定性的自动化测试方法及装置
CN105094783A (zh) 安卓应用稳定性测试的方法及装置
US20170322637A1 (en) Mouse action capture and replay system and method, recording medium, and program product
CN102521118A (zh) 一种Android程序的自动测试方法
CN103455403B (zh) 测试方法及装置
CN104915297B (zh) 一种android设备的APP耗电量的自动化测试方法
CN113407393B (zh) 芯片验证方法、终端设备、验证平台以及存储介质
WO2018184359A1 (zh) 支付终端应用仿真方法、移动终端和可读存储介质
CN108282542A (zh) 用于测试设备的远程操作方法和装置
CN111061601B (zh) 一种产品hmi测试模拟系统
CN109656826B (zh) 应用测试方法、系统、设备及计算机可读存储介质
CN112241373A (zh) 自动化测试方法、测试装置、处理器和测试系统
CN104239202A (zh) 交互式智能设备的非Root测试方法和系统
CN112866312A (zh) 一种脚本生成方法、远程操作方法及相关设备
US8773527B2 (en) System and method for capturing debug information using a peripheral device
CN115712537A (zh) 一种低成本的车辆控制器can信号模拟系统
CN109522223B (zh) 一种车载Android多媒体主机的自动测试方法和系统

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