一种图像镜像显示方法及其装置制造方法

文档序号:6633939阅读:384来源:国知局
一种图像镜像显示方法及其装置制造方法
【专利摘要】本申请提供一种图像镜像显示方法及其装置,应用于安卓数据处理系统,包括:以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前屏幕图像相同;处理并保存所述安卓数据处理系统中的虚拟屏幕上显示的图像;所述安卓数据处理系统与外部显示设备通过连接通道连接,将保存的所述安卓数据处理系统中的虚拟屏幕上显示的图像通过所述连接通道发送给所述外部显示设备。本申请无需获得现有的数据处理系统的root权限即可实现对现有的数据处理系统和外部显示设备的图像镜像显示,且无需对现有的数据处理系统进行较大的改动。
【专利说明】一种图像镜像显示方法及其装置

【技术领域】
[0001 ] 本申请涉及图像显示【技术领域】,尤其涉及一种图像镜像显示方法及其装置。

【背景技术】
[0002]通常计算机、手机以及PAD或者其他电子设备均具有内部显示器,该内部显示器可以将电子设备产生或者存储的图像数据进行显示。
[0003]但是,由于该电子设备的内部显示器大小以及性等限制,通常无法获得很好的显示效果。因此,现有的图像镜像显示技术,可以将电子设备连接外部设备,令电子设备的内部显示器和外部设备的外部显示器同时显示相同的图像数据,该技术称之为镜像模式(mirrored mode)。
[0004]
【公开日】为2012年9月19日的中国专利CN102681810公开了一种将图形内容镜像到外部显示器。数据处理系统合成由在数据处理系统上运行的应用程序产生的图形内容以产生图像数据。该数据处理系统将该图像数据存储在第一帧缓冲器中,并将从第一帧缓冲器中的图像数据产生的图像显示在数据处理系统的内部显示器上。数据处理系统中的定标器对第一帧缓冲器中的图像数据执行定标操作,将定目标图像数据存储在第二帧缓冲器中,并且将从第二帧缓冲器中的定目标图像数据产生的图像显示在与数据处理系统耦接的外部显示设备上。定标器与图形内容的合成异步地执行定标操作。数据处理系统自动地将图像镜像在外部显示设备上,除非应用程序正在发布用于在外部显示设备上显示的另外的图形内容。但是,该技术方案的数据处理系统需要定标器与第一帧缓冲器和第二帧缓冲器配合使用才能实现图像的镜像显示。该技术方案需要修改数据处理系统的程序,对数据处理系统进行较大改动,其无法实现在现有的数据处理系统中直接实现外部显示器的镜像显
/Jn ο
[0005]
【公开日】为2012年3月14日的中国专利申请CN102377877公开了一种用户设备的显示镜像方法响应于第一类型显示镜像请求同时执行将压缩的第一源文件和对应于第一源文件的第一显示信息通过无线方式发送到另一使用者设备的操作以及解碼第一源文件的操作。基于第一显示信息显示第一源文件的译码结果,并且在所述另一使用者设备中执行所发送的第一源文件的显示操作。但是上述技术方案所采用的是无线的方式进行镜像图像显示,在不具备无线网络信号的应用场景中第一显示信息无法通过无线网络进行传输则无法完成图像的镜像显示。并且,该技术方案的图像显示会占用无线带宽,且造成图像显示的延时。
[0006]
【公开日】为2014年2月12日的中国大陆专利CN103581337包括智能手机和车载装置,包括以下步骤,a)智能手机和车载装置之间通过独立的显示信道和互动信道分别进行连接山)手机通过显示信道将显示内容镜像到车载屏幕上;c)车载装置通过互动信道将操作镜像到智能手机上。所述显示信道为USB或者HDMI。但是,智能手机和车载装置之间需要建立两个信道,分别为显示信道和互动信道。并且,该技术方案需要获得所述智能手机的root (系统管理员)权限,方可实现对智能手机的图像的镜像传输与处理,破坏了智能手机现有的安全系统,造成智能手机厂家不再对出厂的智能手机提供保修服务。


【发明内容】

[0007]有鉴于此,本申请提供一种图像镜像显示方法及其装置,其无需获得现有的数据处理系统的root权限即可实现对现有的数据处理系统和外部显示设备的图像镜像显示,且无需对现有的数据处理系统进行较大的改动。
[0008]为达到上述目的之一,本申请的实施例采用如下技术方案:
[0009]本申请实施例的一方面,本申请提供一种图像镜像显示方法,应用于安卓数据处理系统,包括:
[0010]以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同;
[0011]处理并保存所述安卓数据处理系统中的虚拟屏幕上显示的图像;
[0012]所述安卓数据处理系统与外部显示设备通过连接通道连接,将保存的所述安卓数据处理系统中的虚拟屏幕上显示的图像通过所述连接通道发送给所述外部显示设备。
[0013]在本申请一实施例中,所述虚拟屏幕拷贝程序的预存包括:
[0014]通过安卓调试桥ADB的拷贝命令将所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统存储空间;
[0015]编写并保存安卓JAVA程序到所述安卓数据处理系统,以获得所述安卓JAVA程序控制的目录空间;
[0016]运行所述安卓JAVA程序,将存储到所述安卓数据处理系统存储空间的所述虚拟屏幕拷贝程序拷贝到所述安卓JAVA程序控制的目录空间;
[0017]通知所述安卓Shell用户所述目录空间的名称,并修改所述虚拟屏幕拷贝程序的文件属性为其他用户身份可运行的可执行文件。
[0018]在本申请一实施例中,所述安卓JAVA程序以安卓安装包apk的形式保存到所述安卓数据处理系统。
[0019]在本申请一实施例中,所述以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序是通过在所述安卓数据处理系统上输入的adb Shell命令来执行所述目录空间保存的虚拟屏幕拷贝程序。
[0020]在本申请一实施例中,所述虚拟屏幕拷贝程序的预存包括:
[0021]通过安卓调试桥ADB的拷贝命令将所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统存储空间中对所述Shell用户开放写权限的目录下;
[0022]通过安卓调试桥ADB的adb Shell命令修改所述被拷贝过来的程序的属性为S属性的可执行文件。
[0023]在本申请一实施例中,所述虚拟屏幕拷贝程序的预存包括:
[0024]在所述安卓数据处理系统存储空间中对所述Shell用户开放写权限的目录下新建目录;
[0025]通过安卓调试桥ADB的拷贝命令将所述新建目录的属性设置为t属性;
[0026]通过安卓调试桥ADB的拷贝命令将所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统存储空间中所述t属性的新建目录下;
[0027]通过安卓调试桥ADB的adb Shell命令修改所述被拷贝过来的程序的属性为S属性的可执行文件。。
[0028]在本申请一实施例中,所述以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序是通过安卓安装包apk的程序调用所述虚拟屏幕拷贝程序。
[0029]在本申请一实施例中,所述处理并保存所述内部显示器显示的当前屏幕虚拟图像为将获得的所述内部显示器显示的当前屏幕虚拟图像压缩成符合H.264标准的视频码流。
[0030]在本申请一实施例中,使用安卓的多媒体框架处理流程Stagefright对所述内部显示器显示的当前屏幕虚拟图像进行处理。
[0031]在本申请一实施例中,使用硬件编码器将所述内部显示器显示的当前屏幕虚拟图像压缩成符合H.264标准的视频码流。
[0032]在本申请一实施例中,所述连接通道是通过所述安卓数据处理系统的TCP端口和所述外部显示设备的TCP端口关联起来获得。
[0033]在本申请一实施例中,所述连接通道为USB线。
[0034]在本申请一实施例中,所述连接通道是通过USB网络共享方式获得。
[0035]在本申请一实施例中,还包括通过指令修改所述虚拟屏幕拷贝程序的SELinuxcontext属性,令所述虚拟屏幕拷贝程序可以被安卓Shell用户身份运行。
[0036]本申请还提供一种图像镜像显示方法,应用于外部显示设备,包括:
[0037]所述外部显示设备与安卓数据处理系统通过连接通道连接,接收所述安卓数据处理系统通过所述连接通道发送的所述安卓数据处理系统的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同;
[0038]对接收的所述安卓数据处理系统的虚拟屏幕上显示的图像,进行处理并显示。
[0039]在本申请一实施例中,所述连接通道是通过所述安卓数据处理系统的TCP端口和所述外部显示设备的TCP端口关联起来获得。
[0040]在本申请一实施例中,所述连接通道为USB线。
[0041]在本申请一实施例中,所述连接通道是通过USB网络共享方式获得。
[0042]本申请还提供一种图像镜像显示装置,应用于安卓数据处理系统,包括:
[0043]图像获取模块,用于以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同;
[0044]图像处理模块,用于处理并保存所述安卓数据处理系统中的虚拟屏幕上显示的图像;
[0045]图像传输模块,用于与外部显示设备通过连接通道连接,将保存的所述安卓数据处理系统中的虚拟屏幕上显示的图像通过所述连接通道发送给所述外部显示设备。
[0046]本申请还提供一种图像镜像显示装置,应用于外部显示设备,包括:
[0047]图像接收模块,用于所述外部显示设备与安卓数据处理系统通过连接通道连接,接收所述安卓数据处理系统通过所述连接通道发送的所述安卓数据处理系统的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同;
[0048]图像显示模块,用于对接收的所述安卓数据处理系统的虚拟屏幕上显示的图像,进行处理并显示。
[0049]由以上技术方案可见,本申请以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。

【专利附图】

【附图说明】
[0050]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0051]图1是本申请安卓数据处理系统的结构示意图;
[0052]图2是本申请图像镜像显示方法一实施例的流程图;
[0053]图3是本申请图像镜像显示方法另一实施例中虚拟屏幕拷贝程序的预存流程图;
[0054]图4是本申请图像镜像显示方法再一实施例中虚拟屏幕拷贝程序的预存流程图;
[0055]图5是本申请图像镜像显示方法再一实施例中虚拟屏幕拷贝程序的预存流程图;
[0056]图6是本申请外部显示装置的结构示意图;
[0057]图7是本申请图像镜像显示方法再一实施例的流程图;
[0058]图8是本申请图像镜像显示装置一实施例的结构示意图;
[0059]图9是本申请图像镜像显示装置另一实施例中虚拟屏幕拷贝装置的结构示意图;
[0060]图10是本申请图像镜像显示装置再一实施例中虚拟屏幕拷贝装置的结构示意图;
[0061]图11是本申请图像镜像显示装置再一实施例中虚拟屏幕拷贝装置的结构示意图;
[0062]图12是本申请图像镜像显示装置再一实施例的结构示意图。

【具体实施方式】
[0063]参看图1,所述安卓数据处理系统包括安装安卓系统的手机、计算机、PAD等具有数据处理能力的电子设备1,其在硬件上通常包括内部显示器11、第一主控芯片12、第一存储装置13以及第一输入装置14。所述第一输入装置14用于接收用户的输入指令,所述第一存储装置13用于存储各应用程序以及发送接收的数据,所述内部显示器11用于对接收或者处理获得的图像数据进行显示,所述第一主控芯片12用于控制各功能装置的运行。
[0064]所述安卓数据处理系统利用所述主控芯片12运行存储在所述存储装置13中的程序,进行数据处理。而安卓数据处理系统的用户包括普通用户权限和root用户(系统管理员)权限。只有具有root用户权限才能够对安卓数据处理系统屏幕显示的图像数据进行拷贝,而普通用户权限无法对安卓数据处理系统屏幕显示的图像数据进行拷贝。如果安卓数据处理系统为了实现屏幕显示的图像数据进行拷贝而对安卓数据处理系统的root系统进行更改,则破坏了安卓数据处理系统的安全保护系统,且无法获得安卓数据处理系统厂家的保修。
[0065]本申请以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0066]当然,实施本申请的任一技术方案必不一定需要同时达到以上所述的所有优点。
[0067]为了使本领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。
[0068]本申请一个实施例提供一种图像镜像显示方法,应用于安卓数据处理系统。参看图1,所述安卓数据处理系统包括安装安卓系统的手机、计算机、PAD等具有数据处理能力的电子设备1,其在硬件上通常包括内部显示器11、第一主控芯片12、第一存储装置13以及第一输入装置14。
[0069]参看图2,本申请所述图像镜像显示方法2包括:
[0070]S1、以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同。
[0071]具体地,安卓系统提供了名为虚拟屏幕(VirtualDisplay)拷贝(screenrecord)的命令行程序。所述虚拟屏幕拷贝程序在安卓调试桥壳体层adb Shell环境下运行,可以将和安卓数据处理系统的内部显示器当前屏幕显示的图像相同的虚拟屏幕上的显示的图像,录制成视频文件。
[0072]本申请利用安卓系统提供的虚拟屏幕拷贝(screenrecord)的命令行程序,以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,而无需以root用户身份,即可获得和所述安卓数据处理系统中的内部显示器显示的当前屏幕的图像相同的虚拟屏幕上显示的图像。
[0073]S2、处理并保存所述安卓数据处理系统中的虚拟屏幕上显示的图像。
[0074]本申请对于以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序所获得的所述安卓数据处理系统的虚拟屏幕上显示的图像进行初步的处理和保存。具体地,将所述虚拟屏幕上显示的图像保存到一第一缓存空间。
[0075]S3、所述安卓数据处理系统与外部显示设备通过连接通道连接,将保存的所述安卓数据处理系统中的虚拟屏幕上显示的图像通过所述连接通道发送给所述外部显示设备。
[0076]所述保存到所述第一缓存空间内的所述安卓数据处理系统的虚拟屏幕上显示的图像通过所述连接通道传输给所述外部显示设备进行显示,从而令所述外部显示设备获得所述安卓数据处理系统内部显示器所显示图像的镜像显示图像,改善了安卓数据处理系统的显示效果。
[0077]本实施例以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0078]本申请另一实施例提供一种图像镜像显示方法,应用于安卓数据处理系统。所述方法包括步骤:S1——S3。
[0079]具体地,参看图3,所述虚拟屏幕拷贝程序的预存方法3包括:
[0080]P1、通过安卓调试桥ADB的拷贝命令将所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统存储空间。
[0081]具体地,所述安卓数据处理系统存储空间为所述安卓数据处理系统的SD卡。所述ADB的拷贝命令通常为adb push或者adb Shell copy等命令。
[0082]由于安卓调试桥ADB的所述Shell用户没有权限在SD卡上直接运行所述虚拟屏幕拷贝程序,需要将所述虚拟屏幕拷贝程序放到一个可以让安卓调试桥ADB的所述Shell用户可以运行所述虚拟屏幕拷贝程序的位置,并赋予安卓调试桥ADB的所述Shell用户执行所述虚拟屏幕拷贝程序的权限。
[0083]因此,将所述所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统的SD卡之后还包括步骤P2-P4。
[0084]P2、编写并保存安卓JAVA程序到所述安卓数据处理系统,以获得所述安卓JAVA程序控制的目录空间。
[0085]具体的,所述安卓JAVA程序以安卓安装包apk的形式保存到所述安卓数据处理系统。这样安卓系统会为此JAVA程序建立可以运行JAVA程序并存储资料的目录空间,所述目录空间是可以被所述安卓JAVA程序控制的。
[0086]P3、运行所述安卓JAVA程序,将存储到所述安卓数据处理系统存储空间的所述虚拟屏幕拷贝程序拷贝到所述安卓JAVA程序控制的目录空间。
[0087]P4、通知所述安卓Shell用户所述目录空间的名称,并修改所述虚拟屏幕拷贝程序的文件属性为其他用户身份可运行的可执行文件。
[0088]所以,本申请将所述虚拟屏幕拷贝程序放到一个可以让安卓调试桥ADB的所述Shell用户可以运行所述虚拟屏幕拷贝程序的位置,并赋予安卓调试桥ADB的所述Shell用户执行所述虚拟屏幕拷贝程序的权限。本申请安卓调试桥ADB的所述Shell用户就可以通过运行所述安卓JAVA程序目录下的可执行文件,从而实现在SD卡上直接运行所述虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。所述其他用户身份是指普通的java层的java程序。
[0089]在本申请具体实现中,所述以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序是通过在所述安卓数据处理系统上输入的adb Shell命令来执行所述目录空间保存的虚拟屏幕拷贝程序。
[0090]本实施例以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0091]本申请另一实施例提供一种图像镜像显示方法,应用于安卓数据处理系统。所述方法包括步骤:si——S3。
[0092]具体地,参看图4,所述虚拟屏幕拷贝程序的预存方法4包括:
[0093]Q1、通过安卓调试桥ADB的拷贝命令将所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统存储空间中对所述Shell用户开放写权限的目录下。
[0094]所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统的SD卡的对所述Shell用户开放写权限的目录下,比如/data/local/tmp内。所述ADB的拷贝命令通常为adb push或者adb Shell copy等命令。
[0095]由于安卓调试桥ADB的所述Shell用户没有权限在SD卡上直接运行所述虚拟屏幕拷贝程序,需要将所述虚拟屏幕拷贝程序放到一个可以让安卓调试桥ADB的所述Shell用户可以运行所述虚拟屏幕拷贝程序的位置,并赋予安卓调试桥ADB的所述Shell用户执行所述虚拟屏幕拷贝程序的权限。
[0096]因此,将所述所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统的SD卡之后还包括步骤Q2。
[0097]Q2、通过安卓调试桥ADB的adb Shell命令修改所述被拷贝过来的程序的属性为S属性的可执行文件。
[0098]s属性称为SetnD,是指当一个可执行程序(文件)在运行时(进程)拥有这个文件所有者(owner)的权限。如果一个可执行程序的属性为s属性,则在执行该可执行文件的用户拥有该文件的Owner的权限。通过安卓调试桥ADB的adb Shell命令修改被拷贝过来的程序的属性为s属性后,用其他用户身份运行所述被拷贝过来的程序,依然可以取得Shell的权限。所述其他用户身份是指普通的java层的java程序,即用普通的java层的java程序运行所述被拷贝过来的程序,依然可以取得Shell的权限。
[0099]所以,本申请将所述虚拟屏幕拷贝程序放到一个可以让安卓调试桥ADB的所述Shell用户可以运行所述虚拟屏幕拷贝程序的位置,并赋予安卓调试桥ADB的所述Shell用户执行所述虚拟屏幕拷贝程序的权限。本申请安卓调试桥ADB的所述Shell用户就可以通过运行所述安卓JAVA程序目录下的可执行文件,从而实现在SD卡上直接运行所述虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。
[0100]本实施例以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0101]本申请另一实施例提供一种图像镜像显示方法,应用于安卓数据处理系统。所述方法包括步骤:si——S3。
[0102]具体地,参看图5,所述虚拟屏幕拷贝程序的预存方法5包括:
[0103]Tl、在所述安卓数据处理系统存储空间中对所述Shell用户开放写权限的目录下新建目录。
[0104]在所述安卓数据处理系统的SD卡的对所述Shell用户开放写权限的目录下,比如/data/local/tmp 下新建目录。
[0105]T2、通过安卓调试桥ADB的拷贝命令将所述新建目录的属性设置为t属性。
[0106]所述ADB的拷贝命令通常为adb push或者adb Shell copy等命令。
[0107]t属性称为粘住位(sticky bit)。一般情况下unix对一个文件删除,是看是否拥有目录的写权限,只要拥有该目录的写权限,即可删除文件,并不考虑是否为该文件的所有者。比如,建立一个公共可写的目录(shared direcotry),需要很多人拥有写这个目录的权限,但是这样很多人也拥有删除这个目录的权限。本申请在新建的目录位上加上t属性,这样这个目录下的文件只有文件的所有者,或是目录的所有者,或是root用户才能删除这个目录下的文件。
[0108]T3、通过安卓调试桥ADB的拷贝命令将所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统存储空间中所述t属性的新建目录下。
[0109]将所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统存储空间中所述t属性的新建目录下,这样其他用户无法删除所述虚拟屏幕拷贝程序。
[0110]由于安卓调试桥ADB的所述Shell用户没有权限在SD卡上直接运行所述虚拟屏幕拷贝程序,需要将所述虚拟屏幕拷贝程序放到一个可以让安卓调试桥ADB的所述Shell用户可以运行所述虚拟屏幕拷贝程序的位置,并赋予安卓调试桥ADB的所述Shell用户执行所述虚拟屏幕拷贝程序的权限。
[0111]因此,将所述所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统的SD卡之后还包括步骤T4。
[0112]T4、通过安卓调试桥ADB的adb Shell命令修改所述被拷贝过来的程序的属性为S属性的可执行文件。
[0113]s属性称为SetnD,是指当一个可执行程序(文件)在运行时(进程)拥有这个文件所有者(owner)的权限。如果一个可执行程序的属性为s属性,则在执行该可执行文件的用户拥有该文件的Owner的权限。通过安卓调试桥ADB的adb Shell命令修改被拷贝过来的程序的属性为s属性后,用其他用户身份运行所述被拷贝过来的程序,依然可以取得Shell的权限。所述其他用户身份是指普通的java层的java程序,即用普通的java层的java程序运行所述被拷贝过来的程序,依然可以取得Shell的权限。
[0114]所以,本申请将所述虚拟屏幕拷贝程序放到一个可以让安卓调试桥ADB的所述Shell用户可以运行所述虚拟屏幕拷贝程序的位置,并赋予安卓调试桥ADB的所述Shell用户执行所述虚拟屏幕拷贝程序的权限。本申请安卓调试桥ADB的所述Shell用户就可以通过运行所述安卓JAVA程序目录下的可执行文件,从而实现在SD卡上直接运行所述虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。
[0115]本实施例以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0116]本申请另一实施例提供一种图像镜像显示方法,应用于安卓数据处理系统。所述方法包括步骤:
[0117]S1、以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同。
[0118]S2、处理并保存所述安卓数据处理系统中的虚拟屏幕上显示的图像。
[0119]由于H.264目前是压缩率最高的压缩算法,所述处理并保存所述安卓数据处理系统中的虚拟屏幕上显示的图像为将获得的所述安卓数据处理系统中的虚拟屏幕上显示的图像压缩成符合H.264标准的视频码流。这样有利于数据的传输,会近一步减小带宽。
[0120]具体地,由于stage fright是安卓用的多媒体框架,对编译码的硬件进行封装,这样不同的硬件用同样的API。本申请使用安卓的多媒体框架处理流程Stagefright对所述内部显示器显示的当前屏幕虚拟图像进行处理。
[0121]由于硬件编码器成本更加低廉,编码耗时短,本申请直接使用硬件编码器将所述内部显示器显示的当前屏幕虚拟图像压缩成符合H.264标准的视频码流。
[0122]S3、所述安卓数据处理系统与外部显示设备通过连接通道连接,将保存的所述安卓数据处理系统中的虚拟屏幕上显示的图像通过所述连接通道发送给所述外部显示设备。
[0123]所述保存到所述第一缓存空间内的所述安卓数据处理系统的虚拟屏幕上显示的图像通过所述连接通道传输给所述外部显示设备进行显示,从而令所述外部显示设备获得所述安卓数据处理系统内部显示器所显示图像的镜像显示图像,改善了安卓数据处理系统的显示效果。
[0124]本实施例以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0125]本申请另一实施例提供一种图像镜像显示方法,应用于安卓数据处理系统。所述方法包括步骤:
[0126]S1、以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同。
[0127]S2、处理并保存所述安卓数据处理系统中的虚拟屏幕上显示的图像。
[0128]S3、所述安卓数据处理系统与外部显示设备通过连接通道连接,将保存的所述安卓数据处理系统中的虚拟屏幕上显示的图像通过所述连接通道发送给所述外部显示设备。
[0129]由于安卓调试桥ADB可以将安卓数据处理系统的TCP端口和其他与其通过USB相连的所述外部显示设备(比如车机)的TCP端口关联起来。比如,所述命令“adb forwardtcp:1OOtcp:200”就是将安卓数据处理系统的TCP端口(port) 200和运行安卓调试桥命令的所述外部显示设备(比如车机)的TCP端口(port) 100关联起来,从而安卓数据处理系统只需打开套接字(Socket)TCP 200端口,所述外部显示设备(比如车机)只需打开套接字(Socket)TCP 100端口,双方就能通讯了。
[0130]因此,所述连接通道是通过所述安卓数据处理系统的TCP端口和所述外部显示设备的TCP端口关联起来获得。具体地,所述连接通道为USB线。
[0131]本实施例无需通过Wifi等无线网络或者其他有线网络即可实现安卓数据处理系统和外部显示设备之间的图像数据传输。本实施例能够应用在某些不能使用无线网络进行数据传输的应用场景,比如飞机在飞行中或者车辆行驶到信号不佳区域等,扩展了所述安卓数据处理系统和外部显示设备之间显示图像镜像显示所应用的应用场景。并且,本实施例所述安卓数据处理系统和外部显示设备之间的图像数据传输无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0132]本实施例以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0133]本申请另一实施例提供一种图像镜像显示方法,应用于安卓数据处理系统。所述方法包括步骤所述方法包括步骤:S1-S3。
[0134]具体地,所述连接通道是通过USB网络共享方式获得。
[0135]本实施例无需通过wifi等无线网络或者其他有线网络即可实现安卓数据处理系统和外部显示设备之间的图像数据传输。本实施例能够应用在某些不能使用无线网络进行数据传输的应用场景,比如飞机在飞行中或者车辆行驶到信号不佳区域等,扩展了所述安卓数据处理系统和外部显示设备之间显示图像镜像显示所应用的应用场景。并且,本实施例所述安卓数据处理系统和外部显示设备之间的图像数据传输无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0136]本实施例以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0137]本申请另一实施例提供一种图像镜像显示方法,应用于安卓数据处理系统。所述方法包括步骤所述方法包括步骤:S1-S3。
[0138]具体地,还包括通过指令修改所述虚拟屏幕拷贝程序的SELinux context属性,令所述虚拟屏幕拷贝程序可以被安卓Shell用户身份运行。
[0139]SELinux是美国NSA推行基于角色权限管理的Linux,全称为Role-Based AccessControl (RBAC)。在Linux中需要符合传统UNIX权限的规定为,也不得违反SELinux的安全规则才会通过权限的验证。本申请在具体实现中通过chcon指令修改所述虚拟屏幕拷贝程序的SELinux context属性。本申请需要通过chcon指令改变所述虚拟屏幕拷贝程序的SELinux context属性为u:object_r: system_file: sO,从而令所述虚拟屏幕拷贝程序可以被安卓Shell用户身份运行。
[0140]本申请另一实施例提供一种图像镜像显示方法,应用于外部显示设备。参看图6,所述外部显示设备包括安装车机等具有外部显示器的电子设备6,其在硬件上通常包括外部显示器61、第二主控芯片62、第二存储装置63以及第二输入装置64。
[0141]参看图7,所述方法包括:
[0142]D1、所述外部显示设备与安卓数据处理系统通过连接通道连接,接收所述安卓数据处理系统通过所述连接通道发送的所述安卓数据处理系统的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同。
[0143]由于安卓调试桥ADB可以将安卓数据处理系统的TCP端口和其他与其通过USB相连的所述外部显示设备(比如车机)的TCP端口关联起来。比如,所述命令“adb forwardtcp:1OOtcp:200”就是将安卓数据处理系统的TCP端口(port) 200和运行安卓调试桥命令的所述外部显示设备(比如车机)的TCP端口(port) 100关联起来,从而安卓数据处理系统只需打开套接字(Socket)TCP 200端口,所述外部显示设备(比如车机)只需打开套接字(Socket)TCP 100端口,双方就能通讯了。
[0144]因此,所述连接通道是通过所述安卓数据处理系统的TCP端口和所述外部显示设备的TCP端口关联起来获得。具体地,所述连接通道为USB线。
[0145]此外,本申请所述连接通道还可以是通过USB网络共享方式获得。
[0146]本实施例无需通过wifi等无线网络或者其他有线网络即可实现安卓数据处理系统和外部显示设备之间的图像数据传输。本实施例能够应用在某些不能使用无线网络进行数据传输的应用场景,比如飞机在飞行中或者车辆行驶到信号不佳区域等,扩展了所述安卓数据处理系统和外部显示设备之间显示图像镜像显示所应用的应用场景。并且,本实施例所述安卓数据处理系统和外部显示设备之间的图像数据传输无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0147]D2、对接收的所述安卓数据处理系统的虚拟屏幕上显示的图像,进行处理并显示。
[0148]本实施例所述外部显示设备与安卓数据处理系统通过连接通道连接,接收所述安卓数据处理系统通过所述连接通道发送的所述安卓数据处理系统的虚拟屏幕上显示的图像。本实施例对接收的所述安卓数据处理系统的虚拟屏幕上显示的图像进行处理并显示。从而实现将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0149]对应于上述方法,本申请一个实施例提供一种图像镜像显示装置,应用于安卓数据处理系统。参看图1,所述安卓数据处理系统包括安装安卓系统的手机、计算机、PAD等具有数据处理能力的电子设备1,其在硬件上通常包括内部显示器11、第一主控芯片12、第一存储装置13以及第一输入装置14。
[0150]参看图8,本申请所述图像镜像显示装置包括:图像获取模块81、图像处理模块82、图像传输模块83。
[0151]图像获取模块81,用于以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同。
[0152]具体地,安卓系统提供了名为虚拟屏幕(VirtualDisplay)拷贝(screenrecord)的命令行程序。所述虚拟屏幕拷贝程序在安卓调试桥壳体层adb Shell环境下运行,可以将和安卓数据处理系统的内部显示器当前屏幕显示的图像相同的虚拟屏幕上的显示的图像,录制成视频文件。
[0153]本申请利用安卓系统提供的虚拟屏幕拷贝(screenrecord)的命令行程序,以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,而无需以root用户身份,即可获得和所述安卓数据处理系统中的内部显示器显示的当前屏幕的图像相同的虚拟屏幕上显示的图像。
[0154]图像处理模块82,用于处理并保存所述安卓数据处理系统中的虚拟屏幕上显示的图像。
[0155]本申请对于以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序所获得的所述安卓数据处理系统的虚拟屏幕上显示的图像进行初步的处理和保存。具体地,将所述虚拟屏幕上显示的图像保存到一第一缓存空间。
[0156]图像传输模块83,用于与外部显示设备通过连接通道连接,将保存的所述安卓数据处理系统中的虚拟屏幕上显示的图像通过所述连接通道发送给所述外部显示设备。
[0157]所述保存到所述第一缓存空间内的所述安卓数据处理系统的虚拟屏幕上显示的图像通过所述连接通道传输给所述外部显示设备进行显示,从而令所述外部显示设备获得所述安卓数据处理系统内部显示器所显示图像的镜像显示图像,改善了安卓数据处理系统的显示效果。
[0158]本实施例以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0159]本申请另一实施例提供一种图像镜像显示装置,应用于安卓数据处理系统。所述图像镜像显示装置包括:图像获取模块81、图像处理模块82、图像传输模块83。
[0160]具体地,参看图9,所述虚拟屏幕拷贝程序的预存装置9包括:
[0161]第一存储模块91,用于通过安卓调试桥ADB的拷贝命令将所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统存储空间。
[0162]具体地,所述安卓数据处理系统存储空间为所述安卓数据处理系统的SD卡。所述ADB的拷贝命令通常为adb push或者adb Shell copy等命令。
[0163]由于安卓调试桥ADB的所述Shell用户没有权限在SD卡上直接运行所述虚拟屏幕拷贝程序,需要将所述虚拟屏幕拷贝程序放到一个可以让安卓调试桥ADB的所述Shell用户可以运行所述虚拟屏幕拷贝程序的位置,并赋予安卓调试桥ADB的所述Shell用户执行所述虚拟屏幕拷贝程序的权限。
[0164]第一空间模块92,用于编写并保存安卓JAVA程序到所述安卓数据处理系统,以获得所述安卓JAVA程序控制的目录空间。
[0165]具体的,所述安卓JAVA程序以安卓安装包apk的形式保存到所述安卓数据处理系统。这样安卓系统会为此JAVA程序建立可以运行JAVA程序并存储资料的目录空间,所述目录空间是可以被所述安卓JAVA程序控制的。
[0166]第一拷贝模块93,用于运行所述安卓JAVA程序,将存储到所述安卓数据处理系统存储空间的所述虚拟屏幕拷贝程序拷贝到所述安卓JAVA程序控制的目录空间。
[0167]第一修改模块94,用于通知所述安卓Shell用户所述目录空间的名称,并修改所述虚拟屏幕拷贝程序的文件属性为其他用户身份可运行的可执行文件。
[0168]所以,本申请将所述虚拟屏幕拷贝程序放到一个可以让安卓调试桥ADB的所述Shell用户可以运行所述虚拟屏幕拷贝程序的位置,并赋予安卓调试桥ADB的所述Shell用户执行所述虚拟屏幕拷贝程序的权限。本申请安卓调试桥ADB的所述Shell用户就可以通过运行所述安卓JAVA程序目录下的可执行文件,从而实现在SD卡上直接运行所述虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。所述其他用户身份是指普通的java层的java程序。
[0169]在本申请具体实现中,所述以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序是通过在所述安卓数据处理系统上输入的adb Shell命令来执行所述目录空间保存的虚拟屏幕拷贝程序。
[0170]本实施例以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0171]本申请另一实施例提供一种图像镜像显示装置,应用于安卓数据处理系统。所述图像镜像显示装置包括:图像获取模块81、图像处理模块82、图像传输模块83。
[0172]具体地,参看图10,所述虚拟屏幕拷贝程序的预存装置10包括:
[0173]第二拷贝模块101,用于通过安卓调试桥ADB的拷贝命令将所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统存储空间中对所述Shell用户开放写权限的目录下。
[0174]所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统的SD卡的对所述Shell用户开放写权限的目录下,比如/data/local/tmp内。所述ADB的拷贝命令通常为adb push或者adb Shell copy等命令。
[0175]由于安卓调试桥ADB的所述Shell用户没有权限在SD卡上直接运行所述虚拟屏幕拷贝程序,需要将所述虚拟屏幕拷贝程序放到一个可以让安卓调试桥ADB的所述Shell用户可以运行所述虚拟屏幕拷贝程序的位置,并赋予安卓调试桥ADB的所述Shell用户执行所述虚拟屏幕拷贝程序的权限。
[0176]第二修改模块102,用于通过安卓调试桥ADB的adb Shell命令修改所述被拷贝过来的程序的属性为S属性的可执行文件。
[0177]s属性称为SetnD,是指当一个可执行程序(文件)在运行时(进程)拥有这个文件所有者(owner)的权限。如果一个可执行程序的属性为s属性,则在执行该可执行文件的用户拥有该文件的Owner的权限。通过安卓调试桥ADB的adb Shell命令修改被拷贝过来的程序的属性为s属性后,用其他用户身份运行所述被拷贝过来的程序,依然可以取得Shell的权限。所述其他用户身份是指普通的java层的java程序,即用普通的java层的java程序运行所述被拷贝过来的程序,依然可以取得Shell的权限。
[0178]所以,本申请将所述虚拟屏幕拷贝程序放到一个可以让安卓调试桥ADB的所述Shell用户可以运行所述虚拟屏幕拷贝程序的位置,并赋予安卓调试桥ADB的所述Shell用户执行所述虚拟屏幕拷贝程序的权限。本申请安卓调试桥ADB的所述Shell用户就可以通过运行所述安卓JAVA程序目录下的可执行文件,从而实现在SD卡上直接运行所述虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。
[0179]本实施例以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0180]本申请另一实施例提供一种图像镜像显示装置,应用于安卓数据处理系统。所述图像镜像显示装置包括:图像获取模块81、图像处理模块82、图像传输模块83。
[0181]具体地,参看图11,所述虚拟屏幕拷贝程序的预存装置11包括:
[0182]新建模块111,用于在所述安卓数据处理系统存储空间中对所述Shell用户开放写权限的目录下新建目录。
[0183]在所述安卓数据处理系统的SD卡的对所述Shell用户开放写权限的目录下,比如/data/local/tmp 下新建目录。
[0184]第三修改模块112,用于通过安卓调试桥ADB的拷贝命令将所述新建目录的属性设置为t属性。
[0185]所述ADB的拷贝命令通常为adb push或者adb Shell copy等命令。
[0186]t属性称为粘住位(sticky bit)。一般情况下unix对一个文件删除,是看是否拥有目录的写权限,只要拥有该目录的写权限,即可删除文件,并不考虑是否为该文件的所有者。比如,建立一个公共可写的目录(shared direcotry),需要很多人拥有写这个目录的权限,但是这样很多人也拥有删除这个目录的权限。本申请在新建的目录位上加上t属性,这样这个目录下的文件只有文件的所有者,或是目录的所有者,或是root用户才能删除这个目录下的文件。
[0187]第三拷贝模块113,用于通过安卓调试桥ADB的拷贝命令将所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统存储空间中所述t属性的新建目录下。
[0188]将所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统存储空间中所述t属性的新建目录下,这样其他用户无法删除所述虚拟屏幕拷贝程序。
[0189]由于安卓调试桥ADB的所述Shell用户没有权限在SD卡上直接运行所述虚拟屏幕拷贝程序,需要将所述虚拟屏幕拷贝程序放到一个可以让安卓调试桥ADB的所述Shell用户可以运行所述虚拟屏幕拷贝程序的位置,并赋予安卓调试桥ADB的所述Shell用户执行所述虚拟屏幕拷贝程序的权限。
[0190]第二修改模块114,用于通过安卓调试桥ADB的adb Shell命令修改所述被拷贝过来的程序的属性为s属性的可执行文件。
[0191]s属性称为SetnD,是指当一个可执行程序(文件)在运行时(进程)拥有这个文件所有者(owner)的权限。如果一个可执行程序的属性为s属性,则在执行该可执行文件的用户拥有该文件的Owner的权限。通过安卓调试桥ADB的adb Shell命令修改被拷贝过来的程序的属性为s属性后,用其他用户身份运行所述被拷贝过来的程序,依然可以取得Shell的权限。所述其他用户身份是指普通的java层的java程序,即用普通的java层的java程序运行所述被拷贝过来的程序,依然可以取得Shell的权限。
[0192]所以,本申请将所述虚拟屏幕拷贝程序放到一个可以让安卓调试桥ADB的所述Shell用户可以运行所述虚拟屏幕拷贝程序的位置,并赋予安卓调试桥ADB的所述Shell用户执行所述虚拟屏幕拷贝程序的权限。本申请安卓调试桥ADB的所述Shell用户就可以通过运行所述安卓JAVA程序目录下的可执行文件,从而实现在SD卡上直接运行所述虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。
[0193]本实施例以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0194]本申请另一实施例提供一种图像镜像显示装置,应用于安卓数据处理系统。所述图像镜像显示装置包括:图像获取模块81、图像处理模块82、图像传输模块83。
[0195]由于H.264目前是压缩率最高的压缩算法,所述处理并保存所述安卓数据处理系统中的虚拟屏幕上显示的图像为将获得的所述安卓数据处理系统中的虚拟屏幕上显示的图像压缩成符合H.264标准的视频码流。这样有利于数据的传输,会近一步减小带宽。
[0196]具体地,由于stage fright是安卓用的多媒体框架,对编译码的硬件进行封装,这样不同的硬件用同样的API。本申请使用安卓的多媒体框架处理流程Stagefright对所述内部显示器显示的当前屏幕虚拟图像进行处理。
[0197]由于硬件编码器成本更加低廉,编码耗时短,本申请直接使用硬件编码器将所述内部显示器显示的当前屏幕虚拟图像压缩成符合H.264标准的视频码流。
[0198]本实施例以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0199]本申请另一实施例提供一种图像镜像显示装置,应用于安卓数据处理系统。所述图像镜像显示装置包括:图像获取模块81、图像处理模块82、图像传输模块83。
[0200]由于安卓调试桥ADB可以将安卓数据处理系统的TCP端口和其他与其通过USB相连的所述外部显示设备(比如车机)的TCP端口关联起来。比如,所述命令“adb forwardtcp:1OOtcp:200”就是将安卓数据处理系统的TCP端口(port) 200和运行安卓调试桥命令的所述外部显示设备(比如车机)的TCP端口(port) 100关联起来,从而安卓数据处理系统只需打开套接字(Socket)TCP 200端口,所述外部显示设备(比如车机)只需打开套接字(Socket)TCP 100端口,双方就能通讯了。
[0201]因此,所述连接通道是通过所述安卓数据处理系统的TCP端口和所述外部显示设备的TCP端口关联起来获得。具体地,所述连接通道为USB线。
[0202]本实施例无需通过wifi等无线网络或者其他有线网络即可实现安卓数据处理系统和外部显示设备之间的图像数据传输。本实施例能够应用在某些不能使用无线网络进行数据传输的应用场景,比如飞机在飞行中或者车辆行驶到信号不佳区域等,扩展了所述安卓数据处理系统和外部显示设备之间显示图像镜像显示所应用的应用场景。并且,本实施例所述安卓数据处理系统和外部显示设备之间的图像数据传输无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0203]本实施例以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0204]本申请另一实施例提供一种图像镜像显示装置,应用于安卓数据处理系统。所述图像镜像显示装置包括:图像获取模块81、图像处理模块82、图像传输模块83。
[0205]具体地,所述连接通道是通过USB网络共享方式获得。
[0206]本实施例无需通过wifi等无线网络或者其他有线网络即可实现安卓数据处理系统和外部显示设备之间的图像数据传输。本实施例能够应用在某些不能使用无线网络进行数据传输的应用场景,比如飞机在飞行中或者车辆行驶到信号不佳区域等,扩展了所述安卓数据处理系统和外部显示设备之间显示图像镜像显示所应用的应用场景。并且,本实施例所述安卓数据处理系统和外部显示设备之间的图像数据传输无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0207]本实施例以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像。本申请处理并保存所述虚拟屏幕上显示的图像,并将保存的所述虚拟屏幕上显示的图像通过连接通道发送给所述外部显示设备。从而实现通过安卓Shell用户身份而不是root用户身份,拷贝安卓数据处理系统中的虚拟屏幕上显示的图像,将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0208]本申请另一实施例提供一种图像镜像显示装置,应用于安卓数据处理系统。所述图像镜像显示装置包括:图像获取模块81、图像处理模块82、图像传输模块83。
[0209]具体地,还包括通过指令修改所述虚拟屏幕拷贝程序的SELinux context属性,令所述虚拟屏幕拷贝程序可以被安卓Shell用户身份运行。
[0210]SELinux是美国NSA推行基于角色权限管理的Linux,全称为Role-Based AccessControl (RBAC)。在Linux中需要符合传统UNIX权限的规定为,也不得违反SELinux的安全规则才会通过权限的验证。本申请在具体实现中通过chcon指令修改所述虚拟屏幕拷贝程序的SELinux context属性。本申请需要通过chcon指令改变所述虚拟屏幕拷贝程序的SELinux context属性为u:object_r: system_file: sO,从而令所述虚拟屏幕拷贝程序可以被安卓Shell用户身份运行。
[0211]本申请另一实施例提供一种图像镜像显示装置,应用于外部显示设备。参看图6,所述外部显示设备包括安装车机等具有外部显示器的电子设备6,其在硬件上通常包括外部显示器61、第二主控芯片62、第二存储装置63以及第二输入装置64。
[0212]参看图12,所述装置12包括:
[0213]图像接收模块121,用于与安卓数据处理系统通过连接通道连接,接收所述安卓数据处理系统通过所述连接通道发送的所述安卓数据处理系统的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同。
[0214]由于安卓调试桥ADB可以将安卓数据处理系统的TCP端口和其他与其通过USB相连的所述外部显示设备(比如车机)的TCP端口关联起来。比如,所述命令“adb forwardtcp:1OOtcp:200”就是将安卓数据处理系统的TCP端口(port) 200和运行安卓调试桥命令的所述外部显示设备(比如车机)的TCP端口(port) 100关联起来,从而安卓数据处理系统只需打开套接字(Socket)TCP 200端口,所述外部显示设备(比如车机)只需打开套接字(Socket)TCP 100端口,双方就能通讯了。
[0215]因此,所述连接通道是通过所述安卓数据处理系统的TCP端口和所述外部显示设备的TCP端口关联起来获得。具体地,所述连接通道为USB线。
[0216]此外,本申请所述连接通道还可以是通过USB网络共享方式获得。
[0217]本实施例无需通过wifi等无线网络或者其他有线网络即可实现安卓数据处理系统和外部显示设备之间的图像数据传输。本实施例能够应用在某些不能使用无线网络进行数据传输的应用场景,比如飞机在飞行中或者车辆行驶到信号不佳区域等,扩展了所述安卓数据处理系统和外部显示设备之间显示图像镜像显示所应用的应用场景。并且,本实施例所述安卓数据处理系统和外部显示设备之间的图像数据传输无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0218]图像显示模块122,用于对接收的所述安卓数据处理系统的虚拟屏幕上显示的图像,进行处理并显示。
[0219]本实施例所述外部显示设备与安卓数据处理系统通过连接通道连接,接收所述安卓数据处理系统通过所述连接通道发送的所述安卓数据处理系统的虚拟屏幕上显示的图像。本实施例对接收的所述安卓数据处理系统的虚拟屏幕上显示的图像进行处理并显示。从而实现将该虚拟屏幕上显示的图像通过连接通道传输给所述外部显示设备进行镜像显示。本申请无需占用网络带宽,使用方便,操作简单,避免了图像显示过程中的延时。
[0220]本申请的实施例所提供的装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的单元以及模块划分方式仅是众多划分方式中的一种,如果划分为其他单元或模块或不划分块,只要信息对象的具有上述功能,都应该在本申请的保护范围之内。
[0221]本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0222]本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0223]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0224]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0225]尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
【权利要求】
1.一种图像镜像显示方法,应用于安卓数据处理系统,其特征在于,包括: 以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前屏幕图像相同; 处理并保存所述安卓数据处理系统中的虚拟屏幕上显示的图像; 所述安卓数据处理系统与外部显示设备通过连接通道连接,将保存的所述安卓数据处理系统中的虚拟屏幕上显示的图像通过所述连接通道发送给所述外部显示设备。
2.根据权利要求1所述的方法,其特征在于,所述虚拟屏幕拷贝程序的预存包括: 通过安卓调试桥ADB的拷贝命令将所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统存储空间; 编写并保存安卓JAVA程序到所述安卓数据处理系统,以获得所述安卓JAVA程序控制的目录空间; 运行所述安卓JAVA程序,将存储到所述安卓数据处理系统存储空间的所述虚拟屏幕拷贝程序拷贝到所述安卓JAVA程序控制的目录空间; 通知所述安卓Shell用户所述目录空间的名称,并修改所述虚拟屏幕拷贝程序的文件属性为其他用户身份可运行的可执行文件。
3.根据权利要求2所述的方法,其特征在于,所述安卓JAVA程序以安卓安装包apk的形式保存到所述安卓数据处理系统。
4.根据权利要求3所述的方法,其特征在于,所述以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序是通过在所述安卓数据处理系统上输入的adb Shell命令来执行所述目录空间保存的虚拟屏幕拷贝程序。
5.根据权利要求1所述的方法,其特征在于,所述虚拟屏幕拷贝程序的预存包括: 通过安卓调试桥ADB的拷贝命令将所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统存储空间中对所述Shell用户开放写权限的目录下; 通过安卓调试桥ADB的adb Shell命令修改所述被拷贝过来的程序的属性为S属性的可执行文件。
6.根据权利要求1所述的方法,其特征在于,所述虚拟屏幕拷贝程序的预存包括: 在所述安卓数据处理系统存储空间中对所述Shell用户开放写权限的目录下新建目录; 通过安卓调试桥ADB的拷贝命令将所述新建目录的属性设置为t属性; 通过安卓调试桥ADB的拷贝命令将所述虚拟屏幕拷贝程序存储到所述安卓数据处理系统存储空间中所述t属性的新建目录下; 通过安卓调试桥ADB的拷贝命令修改所述被拷贝过来的程序的属性为S属性的可执行文件。
7.根据权利要求5或6所述的方法,其特征在于,所述以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序是通过安卓安装包apk的程序调用所述虚拟屏幕拷贝程序。
8.根据权利要求1所述的方法,其特征在于,所述处理并保存所述内部显示器显示的当前屏幕虚拟图像为将获得的所述内部显示器显示的当前屏幕虚拟图像压缩成符合H.264标准的视频码流。
9.根据权利要求7所述的方法,其特征在于,使用安卓的多媒体框架处理流程Stagefright对所述内部显示器显示的当前屏幕虚拟图像进行处理。
10.根据权利要求8所述的方法,其特征在于,使用硬件编码器将所述内部显示器显示的当前屏幕虚拟图像压缩成符合H.264标准的视频码流。
11.根据权利要求1所述的方法,其特征在于,所述连接通道是通过所述安卓数据处理系统的TCP端口和所述外部显示设备的TCP端口关联起来获得。
12.根据权利要求10所述的方法,其特征在于,所述连接通道为USB线。
13.根据权利要求1所述的方法,其特征在于,所述连接通道是通过USB网络共享方式获得。
14.根据权利要求1所述的方法,其特征在于,还包括通过指令修改所述虚拟屏幕拷贝程序的SELinux context属性,令所述虚拟屏幕拷贝程序可以被安卓Shell用户身份运行。
15.一种图像镜像显示方法,应用于外部显示设备,其特征在于,包括: 所述外部显示设备与安卓数据处理系统通过连接通道连接,接收所述安卓数据处理系统通过所述连接通道发送的所述安卓数据处理系统的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同; 对接收的所述安卓数据处理系统的虚拟屏幕上显示的图像,进行处理并显示。
16.根据权利要求15所述的方法,其特征在于,所述连接通道是通过所述安卓数据处理系统的TCP端口和所述外部显示设备的TCP端口关联起来获得。
17.根据权利要求16所述的方法,其特征在于,所述连接通道为USB线。
18.根据权利要求15所述的方法,其特征在于,所述连接通道是通过USB网络共享方式获得。
19.一种图像镜像显示装置,应用于安卓数据处理系统,其特征在于,包括: 图像获取模块,用于以安卓Shell用户身份运行预存的虚拟屏幕拷贝程序,获得所述安卓数据处理系统中的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同; 图像处理模块,用于处理并保存所述安卓数据处理系统中的虚拟屏幕上显示的图像; 图像传输模块,用于与外部显示设备通过连接通道连接,将保存的所述安卓数据处理系统中的虚拟屏幕上显示的图像通过所述连接通道发送给所述外部显示设备。
20.一种图像镜像显示装置,应用于外部显示设备,其特征在于,包括: 图像接收模块,用于所述外部显示设备与安卓数据处理系统通过连接通道连接,接收所述安卓数据处理系统通过所述连接通道发送的所述安卓数据处理系统的虚拟屏幕上显示的图像,所述虚拟屏幕上显示的图像同所述安卓数据处理系统的内部显示器显示的当前图像相同; 图像显示模块,用于对接收的所述安卓数据处理系统的虚拟屏幕上显示的图像,进行处理并显示。
【文档编号】G06F9/44GK104407829SQ201410638090
【公开日】2015年3月11日 申请日期:2014年11月6日 优先权日:2014年11月6日
【发明者】秦巍, 王泰运, 谭鹏飞 申请人:北京凌阳益辉科技有限公司, 凌阳科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1