CN106371752A - 一种安卓系统智能终端的虚拟按键实现方法及装置 - Google Patents
一种安卓系统智能终端的虚拟按键实现方法及装置 Download PDFInfo
- Publication number
- CN106371752A CN106371752A CN201610782265.0A CN201610782265A CN106371752A CN 106371752 A CN106371752 A CN 106371752A CN 201610782265 A CN201610782265 A CN 201610782265A CN 106371752 A CN106371752 A CN 106371752A
- Authority
- CN
- China
- Prior art keywords
- intelligent terminal
- root
- android system
- function
- virtual key
- 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.)
- Granted
Links
Classifications
-
- 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/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04886—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
-
- 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/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- 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/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种安卓系统智能终端的虚拟按键实现方法及装置。该方法包括:检测安卓系统智能终端是否具有root权限;在检测到安卓系统智能终端具有root权限后,判断当前应用是否获得root授权,并在判断当前应用获得root授权后,确定拟实现的虚拟按键功能,并获取虚拟按键功能对应的键值码;创建并执行与键值码对应的shell指令,并在shell指令执行成功后,调用并执行预设jar库文件,以通过jar库文件的主函数反射调用注入虚拟按键函数,预设jar库文件中存储有实现虚拟按键功能所需要的文件,在反射调用注入虚拟按键函数成功后,实现虚拟按键功能。该方法能够方便地实现虚拟按键功能,实现成本低,且灵活可靠。
Description
技术领域
本发明涉及智能终端技术领域,特别涉及一种安卓系统智能终端的虚拟按键实现方法及装置。
背景技术
智能终端,尤其是智能手机的按键通常设置在手机上的固定位置,例如,在屏幕的最下方设置有:返回键、菜单键和home键,用户只能通过点击这些区域才能执行相应的功能。这些按钮对于用户而言使用最为频繁,经过长期使用后,往往会导致这些区域不灵敏或者失效,进而造成手机难以操作、使用,用户只能花钱换屏幕或者购买新的手机,从而造成较大的经济损失。
现有技术中,提供了一种虚拟按键的实现方法,包括:接收生成虚拟功能按键的命令;根据生成虚拟功能按键的命令,生成虚拟功能按键,所述虚拟功能按键包括虚拟功能按键主体和虚拟功能按键呼出点。通过分析可知,该方法通过预先定义好虚拟功能按键的命令,然后根据焦点所在位置,发送不同的虚拟按键命令,从而代替了实体按键,通过虚拟按键实现了对焦点的操作,解决了实体按键不适应安卓系统的触摸屏手机的问题,但是该实现方式也存在一定问题:需要预先定义好虚拟功能按键命令,该操作需要系统权限才能够实现,并且需要将其预先集成到手机ROM中,需要和手机制造商合作才能实现,此外,预先定义好虚拟按键对应的命令增加了存储成本,不利于维护。
发明内容
本发明提供一种安卓系统智能终端的虚拟按键实现方法及装置,能够方便地实现虚拟按键功能,实现成本低,灵活可靠,能够有效保护智能终端的实体按键。
一方面,本发明提供一种安卓系统智能终端的虚拟按键实现方法,包括:
检测所述安卓系统智能终端是否具有root权限;
在检测到所述安卓系统智能终端具有root权限后,判断当前应用是否获得root授权,并在判断当前应用获得root授权后,确定拟实现的虚拟按键功能,并获取所述虚拟按键功能所对应的键值码;
创建并执行与所述键值码对应的shell指令,并在所述shell指令执行成功后,调用并执行预设jar库文件,以通过所述jar库文件的主函数反射调用注入虚拟按键函数,其中,所述预设jar库文件中存储有实现所述虚拟按键功能所需要的文件,在反射调用注入所述虚拟按键函数成功后,实现所述虚拟按键功能。
优选的,所述方法还包括:在检测所述安卓系统智能终端不具有root权限后,向用户提醒在不具有root权限情况下,将无法实现虚拟按键功能,并向用户发出如何取得root权限的提示;和/或,
在判断当前应用未获得root授权后,向用户提醒不获得root授权,将无法实现虚拟按键功能,并引导用户向当前应用授予root权限。
优选的,所述检测所述安卓系统智能终端是否具有root权限,包括:
检测所述智能终端的系统目录下是否存在su文件,其中,所述系统目录包括/system/bin/、/system/xbin/、/sbin/、/system/sd/xbin/、/data/local/xbin/和/data/local/bin/;在检测到存在su文件后,确定所述安卓系统智能终端具有root权限;否则,确定所述安卓系统智能终端不具有root权限;或者,
在所述Shell指令中执行su指令,并在返回的输出系统中执行预设指令,在所述执行预设指令的返回结果正确后,确定所述安卓系统智能终端具有root权限;否则,确定所述安卓系统智能终端不具有root权限。
优选的,所述方法还包括:检测所述安卓系统的版本号,根据所述版本号确定设置环境变量所需要的指令格式,并获取相应格式的指令来设置环境变量。
优选的,所述方法还包括:
启动客户端进程;
由所述客户端进程启动安卓服务进程;
在所述安卓服务进程中创建悬浮按钮和悬浮窗,其中,所述悬浮按钮和所述悬浮窗中的一个显示时,另外一个进行隐藏,所述悬浮窗中具有多个虚拟按键功能选项,并且所述悬浮按钮和所述悬浮窗能够悬浮在所述智能终端显示屏的任意位置,根据所述用户手动操作指令能够任意改变所述悬浮按钮和所述悬浮窗的位置。
另一方面,本发明提供一种安卓系统智能终端的虚拟按键实现装置,包括:
第一检测模块,用于检测所述安卓系统智能终端是否具有root权限;
判断模块,用于在检测到所述安卓系统智能终端具有root权限后,判断当前应用是否获得root授权;
确定模块,用于在判断当前应用获得root授权后,确定拟实现的虚拟按键功能,并获取所述虚拟按键功能所对应的键值码;
执行模块,用于创建并执行与所述键值码对应的shell指令,并在所述shell指令执行成功后,调用并执行预设jar库文件,以通过所述jar库文件的主函数反射调用注入虚拟按键函数,其中,所述预设jar库文件中存储有实现所述虚拟按键功能所需要的文件,在反射调用注入所述虚拟按键函数成功后,实现所述虚拟按键功能。
优选的,所述装置还包括:
第一提醒模块,用于在检测所述安卓系统智能终端不具有root权限后,向用户提醒在不具有root权限情况下,将无法实现虚拟按键功能,并向用户发出如何取得root权限的提示;和/或,
第二提醒模块,用于在判断当前应用未获得root授权后,向用户提醒不获得root授权,将无法实现虚拟按键功能,并引导用户向当前应用授予root权限。
优选的,所述第一检测模块,包括:
检测单元,用于检测所述智能终端的系统目录下是否存在su文件,其中,所述系统目录包括/system/bin/、/system/xbin/、/sbin/、/system/sd/xbin/、/data/local/xbin/和/data/local/bin/;
第一确定单元,用于在检测到存在su文件后,确定所述安卓系统智能终端具有root权限,否则,确定所述安卓系统智能终端不具有root权限;或者,
执行单元,用于在所述Shell指令中执行su指令,并在返回的输出系统中执行预设指令;
第二确定单元,用于在所述执行预设指令返回的结果正确后,确定所述安卓系统智能终端具有root权限,否则,确定所述安卓系统智能终端不具有root权限。
优选的,所述装置还包括:
第二检测模块,用于检测所述安卓系统的版本号;
设置模块,用于根据所述版本号确定设置环境变量所需要的指令格式,并获取相应格式的指令来设置环境变量。
优选的,所述装置还包括:
第一启动模块,用于启动客户端进程;
第二启动模块,用于由所述客户端进程启动安卓服务进程;
创建模块,用于在所述安卓服务进程中创建悬浮按钮和悬浮窗,其中,所述悬浮按钮和所述悬浮窗中的一个显示时,另外一个进行隐藏,所述悬浮窗中具有多个虚拟按键功能选项,并且所述悬浮按钮和所述悬浮窗能够悬浮在所述智能终端显示屏的任意位置,其中,根据所述用户手动操作指令能够任意改变所述悬浮按钮或所述悬浮窗的位置。
本发明实施例提供的安卓系统智能终端的虚拟按键实现方法及装置,通过检测安卓系统智能终端是否具有root权限;在检测到安卓系统智能终端具有root权限后,判断当前应用是否获得root授权;在判断当前应用获得root授权后,确定拟实现的虚拟按键功能,并获取虚拟按键功能所对应的键值码;创建并执行与键值码对应的shell指令,并在shell指令执行成功后,调用并执行预设jar库文件,以通过jar库文件的主函数反射调用注入虚拟按键函数,其中,预设jar库文件中存储有实现虚拟按键功能所需要的文件,在反射调用注入所述虚拟按键函数成功后,实现虚拟按键功能。通过该方式能够方便地实现虚拟按键功能,实现成本低,灵活可靠,能够有效保护智能终端的实体按键。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1为本发明实施例提供的一种安卓系统智能终端虚拟按键的实现方法的流程图;
图2为本发明实施例提供的另外一种安卓系统智能终端虚拟按键的实现装置的框图;
图3为本发明实施例提供的一种悬浮按钮的示意图;
图4为本发明实施例提供的一种悬浮窗的示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
以下对本专利申请中用到的名词、术语进行解释说明,具体如下:
安卓系统:英文名为Android system,是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设备,如智能手机和平板电脑等,由Google公司和开放手机联盟领导及开发。
root权限:指Unix类操作系统(包括Linux,Android)的系统管理员权限,类似于Windows系统中的Administrator。当安卓系统智能手机处于root权限时,可以访问和修改智能手机中几乎所有的文件(Android系统文件及用户文件,不包括ROM)。
Shell:是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它是Linux的一个命令解释器,接收并解释用户输入的命令并把它送入内核去执行。
app_process:是放在Android系统目录下的一个可执行二进制文件,利用它可以在shell窗口执行一些预置的功能,例如系统的am,pm指令都是通过它实现的。
虚拟按键:指用于全触摸手机的虚拟于屏幕的一个按钮,利用此按钮可直接实现系统按键的功能。
JAVA反射机制:指在程序运行状态中,对于任意一个类,都可以获取到该类的所有属性和方法;对于任意一个对象,都能够调用到该对象的任意一个方法和属性;也即,将动态获取类的信息以及动态调用对象的方法的功能称为java语言的反射机制。
本发明实施例提供一种安卓系统智能终端的虚拟按键的实现方法,如图1所示,该方法包括以下步骤S101-S105:
步骤S101:检测安卓系统智能终端是否具有root权限;
步骤S102:在检测到安卓系统智能终端具有root权限后,判断当前应用是否获得root授权;
步骤S103:在判断当前应用获得root授权后,确定拟实现的虚拟按键功能;
步骤S104:获取虚拟按键功能所对应的键值码;
步骤S105:创建并执行与键值码对应的shell指令,并在shell指令执行成功后,调用并执行预设jar库文件,以通过jar库文件的主函数反射调用注入虚拟按键函数,其中,预设jar库文件中存储有实现虚拟按键功能所需要的文件,在反射调用注入虚拟按键函数成功后,实现虚拟按键功能。
在另外一个实施例中,上述安卓系统智能终端的虚拟按键实现方法,还包括:
步骤S201:在检测安卓系统智能终端不具有root权限后,向用户提醒在不具有root权限情况下,将无法实现虚拟按键功能,并向用户发出如何取得root权限的提示;和/或,
步骤S202:在判断当前应用未获得root授权后,向用户提醒不获得root授权,将无法实现虚拟按键功能,并引导用户向当前应用授予root权限。
在另外一个实施例中,上述检测安卓系统智能终端是否具有root权限,包括:
检测智能终端的系统目录下是否存在su文件,其中,系统目录包括/system/bin/、/system/xbin/、/sbin/、/system/sd/xbin/、/data/local/xbin/和/data/local/bin/;在检测到存在su文件后,确定安卓系统智能终端具有root权限;否则,确定安卓系统智能终端不具有root权限;或者,
在Shell指令中执行su指令,并在返回的输出系统中执行预设指令,在执行预设指令的返回结果正确后,确定安卓系统智能终端具有root权限;否则,确定安卓系统智能终端不具有root权限。
以上两种检测方式只是示例性的,当然也可以采用其他方法检测安卓系统智能终端是否具有root权限,例如,也可以通过第三方的库函数来进行检测,本发明实施例不对具体如何检测安卓系统智能终端是否具有root权限进行限定,原则上采用任何能够检测智能终端是否具有root权限的方法都落入本专利申请的保护范围。
在另外一个实施例中,上述安卓系统智能终端的虚拟按键实现方法,还包括:检测安卓系统的版本号,根据版本号确定设置环境变量所需要的指令格式,并获取相应格式的指令来设置环境变量。
在另外一个实施例中,上述安卓系统智能终端的虚拟按键实现方法所述方法,还包括:
步骤S301:启动客户端进程;
步骤S302:由客户端进程启动安卓服务进程;
步骤S303:在安卓服务进程中创建悬浮按钮和悬浮窗,其中,悬浮按钮和悬浮窗中的一个显示时,另外一个进行隐藏,悬浮窗中具有多个虚拟按键功能选项,并且悬浮按钮和悬浮窗能够悬浮在智能终端显示屏的任意位置,根据用户手动操作指令能够任意改变悬浮按钮和悬浮窗的位置。
在本实施例中,通过将悬浮按钮和悬浮窗的位置设置在智能终端显示屏的任意位置,并且通过用户的手动操作指令,例如拖动、框选后移动等方式能够实现悬浮按钮和悬浮窗位置的改变,从而能够根据用户的个人喜好放置在不同位置,从而大大满足用户的个性化需求及使用灵活程度,有效提升用户的使用体验。
如图3和图4所示,分别为本发明实施例提供的悬浮按钮和悬浮窗的示意图,在本实施例中,通过定义的虚拟按键在智能手机屏幕的任意位置代替系统实际按键,具体可以将虚拟按键功能以悬浮窗的形式进行展示,例如,可以通过点击悬浮按钮弹出一个悬浮窗,并将悬浮按钮关闭,悬浮窗不用太大,可以放置一些按钮,这些按钮对应不同的功能,好处就是可以悬浮到屏幕的任意位置,并且可以在几乎所有的手机应用界面之上。其中,点击其中的某一个按钮可以实现相应的功能,我们仅以实现系统按键为例,如点击返回键,具体可以参考图4左下角的“返回”按钮。在点击“返回”键后,首先判断手机是否root成功,如果未root则提示用户要使用此功能首先需要root,并提供可以root手机的工具下载地址;如果root成功了,则会由系统弹出赋予此应用的权限授予窗口,用户点击允许后,就获取到root权限,否则提示未授予权限,操作执行失败。
在获得root权限后,会判断用户将要执行哪种按键功能,并将此按键对应的键值码提取出来,如返回键的键值码为KEYCODE_BACK,对应的数值为4。其中,键值码的数值是系统预先定义好,对外开放的,可以通过源码或SDK查询到。
然后,执行一条“exec app_process库所在的路径库中实现功能的类名”的shell指令,“库所在的路径”是指将实现的java反射功能需要打包到一个xxx.jar库中,这个库存放在apk的assets目录下,在程序首次运行时,会将其解压缩到“/data/data/包名/files/”路径下,库所在的路径就是指的这个路径;“库中实现功能的类名”指的是具体库中那个类执行了反射注入键函数。
然后,再执行xxx.jar库文件,通过xxx.jar库中的main函数跳到具体的类中,这个类通过反射技术调用了系统注入按键函数,其实手机的系统按键或者实体按键也是通过此函数来执行的,接着判断函数是否执行成功。这里需要注意不同的Android系统版本对应的函数名称会不同,因此,反射调用需要使用不同的注入函数。执行成功后,系统会对按键做出响应,从而实现虚拟按键的功能,否则,将提示执行失败。
以下将对本发明实施例提供的安卓系统智能终端的虚拟按键的实现过程进行详细说明如下:
在本实施例中,虚拟按键借助于悬浮窗加以实现,悬浮窗具有随意拖动,可以悬浮于任意应用之上的优点,因此,可以使用悬浮窗作为虚拟按键的载体。另外,还需要一个悬浮按钮,悬浮按钮用来展示待机状态,悬浮窗用来实现具体的功能。悬浮按钮点击后会打开悬浮窗,同时悬浮按钮进行隐藏;悬浮窗关闭后,悬浮按钮会显示出来,这两个是相互排斥出现的,遵循“你显示,我隐藏;你隐藏,我显示”的规律。在使用过程中,用户可以通过点击悬浮按钮来展开悬浮窗,通过点击悬浮窗上的功能按钮来控制发送具体的按键,如返回键、菜单键、电源键等。
本专利申请实施例所提供的虚拟按键功能的实现,需要手机root权限的支持,因此,需要判断手机是否具有root权限。一般是通过检测一些常用的系统目录是否存在su文件来实现的,如/system/bin/,/system/xbin/,/sbin/,/system/sd/xbin/,/data/local/xbin/,/data/local/bin/等这些目录是否存在su文件,如果存在就认为手机root了。也有其它检测方式,比如直接在Shell指令里执行“su”,在返回的输出系统中执行一条简单打印指令,如果返回成功,则代表root成功。如果检测到手机未root成功,例如su文件不存在等,则给出相应的错误提示,提示手机未root,无法使用此功能,同时可以引导用户去对手机进行root,如提示一个下载root工具的地址。
在本实施例中,在判断获取root授权后,可以获取虚拟按键功能所对应的键值码,提取按键对应的action和code值:手机root成功,则开始提取虚拟按键对应的action和code值。其中,action有单击、长按两种值,为自定义的类型,一个单击事件可以描述成连续发送了一个KeyEvent.ACTION_DOWN和KeyEvent.ACTION_UP消息,用数字1表示;一个长按事件可以描述成先发送了一个KeyEvent.ACTION_DOWN,然后休息2-3秒(我们可以定义为2.5秒),再发送一个KeyEvent.ACTION_UP消息,我们用数字2来表示;
code为系统各个按键的键值码,系统为每个键提供了唯一标识,如KEYCODE_BACK=4表示返回键,KEYCODE_POWER=26表示电源键,KEYCODE_MENU=82表示菜单键。
在计算出悬浮窗点击的按钮将要对应的系统按键的action和code值后,以点击返回键为例,它表示一个单击事件,所以action为1;因为要实现系统返回键,所以code值为4。
申请root权限,系统提示是否赋予该app权限:执行具体shell指令之前,我们首先需要获取到root权限,手机虽然root了,但是如果没有授权给应用使用root的权限,同样会执行失败。具体可以使用第三方库rootmanager_1.5.0.jar中的hasRooted()方法来检测是否赋予此app权限。执行此方法后,会触发系统的权限管理,只有系统赋予root权限后,才能继续执行。
手机在被root后,通常由一个root管理工具来对系统的root权限进行管理,一般的app在使用root权限时,都会触发系统的root管理工具,管理工具通常提示用户,是否赋予此app权限,只有在用户点击确认后app才能获得root权限,然后才能执行相应的功能,否则会提示获取权限失败,未获得Root权限,执行失败,并退出功能,当然可以进行友好提示设置,同时引导用户去放开权限。当然,用户也可以到root管理工具中主动赋予app权限,可以选择允许、提示和禁止三种操作。
执行adb shell指令:将执行一条形如“exec app_process库所在的路径库中实现功能的类名”的指令,在执行此指令前首先会创建一个执行su的process(进程),然后在此shell进程中执行“exec app_process库所在的路径库中实现功能的类名”指令,接着再将之前生成的action和code拼接成字符串传给此进程执行。在此过程中借助app_process工具执行了自定义的一个xxx.jar包文件,并将action和code传递给了xxx.jar文件;
具体的执行指令为“exec app_process库所在的路径库中实现功能的类名”。“库所在的路径”是指实现的java反射功能需要打包到一个xxx.jar库中,这个库存放在apk的assets目录下,在程序首次运行时,会将其解压缩到“/data/data/包名/files/”路径下,库所在的路径就是指的这个路径;“库中实现功能的类名”指的是执行反射注入键函数所在类的名称,它是一个全路径名称,包括了类所在包名,如实现类名定义为com.shere.common.keyexecutor.KeyExecutor,表示这个类所在包为com.shere.common.keyexecutor,类名为KeyExecutor,位于xxx.jar库中。“库所在的路径”和“库中实现功能的类名”都可以看做是在执行二进制文件app_process时,传递给它的两个参数。
另外,在执行之前需要设置执行的环境变量,在Android 4.0及以上版本使用export LD_LIBRARY_PATH进行设置,在Android 4.0以下版本使用export CLASSPATH进行设置。
其中,shell指令是否执行成功,主要通过执行指令是否有异常来进行判断,如果没有异常反馈,可以确定命令执行成功;否则,确定指令执行失败:shell指令执行失败,将退出程序,释放之前申请的资源,退出创建的shell进程等等,并提示用户出错的信息。
调用执行自定义的xxx.jar文件:shell指令执行成功,将启动预置到apk中的xxx.jar库文件,“xxx”表示名称可以随意取,定义的名称为admob.jar。这个库存放在apk的assets目录下,在程序首次运行时,会将其解压缩到“/data/data/包名/files/”路径下。xxx.jar启动后,会首先触发xxx.jar文件中的main函数。
通过xxx.jar的main函数,执行实现类,反射调用注入函数:xxx.jar库是实现按键功能的核心代码,通过执行xxx.jar,进而启动类KeyExecutor内部的main函数,再由main函数调用注入函数injectInputEvent或者injectKeyEvent来启动具体的注入按键代码。由于注入函数系统不对外开放,需要通过反射调用才能执行。需要注意的是Android4.1及以上版本使用injectInputEvent方法,而Android4.1以下使用的是injectKeyEvent方法。
判断注入函数是否执行成功:这里通过函数执行情况进行判断,未抛出异常说明执行成功;注入函数执行失败,则提示用户执行失败,然后退出。
实现相应的系统按键功能:执行成功,系统会响应执行的系统按键功能。如点击返回键,会将当前的页面关闭;执行退出功能,此时可以选择关闭悬浮窗,也可以继续保留悬浮窗,继续执行其它按键功能。
本专利申请实施例通过悬浮按钮和悬浮窗技术,使得用户能够快速、便捷,根据自身需要来操作按键功能,并且为了能够使悬浮按钮和悬浮窗及时响应用户输入,启动了一个Service进程来进行管理,使应用程序不容易被系统或第三方杀死。
以下是悬浮按钮和悬浮窗启动过程以及工作流程。其实现的步骤如下:
启动程序:程序启动入口分三种情况,一种是程序刚刚安装成功,这时自动启动程序;第二种是手机已经安装了本程序,重新开机,收到系统开机广播或者其它常用的系统广播消息,如网络变化、开关蓝牙、GPS等等,将触发其自动启动运行;第三种是用户手动点击程序图标,启动程序。
启动客户端进程:程序启动后首先运行客户端进程,此进程中包含了悬浮窗的所有设置功能以及其他一些辅助功能,如主题替换,设置功能项的开关,信息反馈,帮助,版本信息等内容。
由客户端进程启动一个Android Service进程:程序共包含两个进程,一个是客户端进程,一个是Service进程,前者是对主要功能的一些辅助设置,后者用来实现具体的功能,Service的优势是可以运行在系统的后台,并且不容易被杀死,用它可以提供持久的悬浮窗展示,提升了用户的体验度。
在Service进程中分别创建悬浮按钮和悬浮窗:悬浮按钮和悬浮窗的实现原理差不多,都是通过系统的WindowManager(窗口管理器)提供的addView方法在系统界面管理器中添加一个窗口,并将此新加的窗口的优先级设置为TYPE_SYSTEM_ALERT级别的,这样它的优先级非常高,就可以显示于大多数系统窗口之上了,达到了“悬浮”于其它窗口之上的目的。
Service进程在后台一直保持运行,显示悬浮按钮、隐藏悬浮窗,其中,Service进程的一个优势就是可以在后台一直保持运行,在其启动后,待机状态时,将悬浮按钮显示出来,而将悬浮窗进行隐藏,这两者的关系是互斥的,“你显示,我隐藏;你隐藏,我显示”。
点击悬浮按钮:执行具体功能时需要先点击悬浮按钮,将悬浮窗显示出来。
待机运行,继续监听按键事件:如果没有点击事件发生,悬浮按钮将保持待机运行,直到监听到按键事件。
显示悬浮窗,隐藏悬浮按钮:收到点击事件,将悬浮按钮隐藏,并实现悬浮窗。
展示支持的各种按键功能:展开悬浮窗,会展示程序支持的所有功能,例如,虚拟返回按键功能。通过ViewPager控件来实现悬浮窗页面功能项展示,可以展示多屏内容,通过左右滑动来进行切换。
点击屏幕,判断点击的位置是否是悬浮窗上的虚拟功能键:点击屏幕,需要判断点击的位置是不是悬浮窗对应的功能按钮。如果点击的是悬浮窗的某一个展示项,将触发点击对应的功能,比如系统的返回按键功能。如果点击的不是悬浮窗的上具体功能按钮的位置,将退出悬浮窗。
执行对应的功能:针对点击来执行对应的按键功能,从而最终实现“虚拟按键”功能。
待机运行,继续监听按键事件:按键功能执行完毕,保持悬浮窗显示,继续执行其它的功能。悬浮窗待机运行,继续监听按键事件。
退出悬浮窗,将其隐藏,展示悬浮按钮:如果点击的位置不是悬浮窗上的某一个按键,而是点击空白处,则退出悬浮窗,将悬浮窗关闭,打开悬浮按钮,保持悬浮按钮待机运行,继续监听悬浮按钮的按键事件。只要不关机,悬浮按钮可以一直悬浮显示,待机提供虚拟按键功能,达到系统按键同样的效果。
在获得了root权限,执行shell指令时,需要根据系统的版本设置不同的环境变量才能保证命令的执行环境正确,然后才能成功的执行shell指令,此指令需要分多步进行执行,并且需要始终运行在一个shell进程之中。具体实现的步骤如下:
执行su命令,创建一个shell进程:使用如下java语句Runtime.getRuntime().exec("su"),创建一个shell进程,此进程的第一个命令为"su"。
判断系统版本号:通过系统变量Build.VERSION.SDK_INT判断系统的版本号,比较其是否大于14。数字14对应Android4.0系统,即判断当前系统是不是Android4.0以上的系统。
使用指令格式export LD_LIBRARY_PATH=xxx设置环境变量:如果是Android4.0(包括4.0)以上的系统则使用如下指令“export LD_LIBRARY_PATH=/vendor/lib:/system/lib;export CLASSPATH=/data/data/包名/files/admob.jar”设置环境变量,其中的“包名”表示使用当前应用的包名。
使用指令格式export CLASSPATH==xxx设置环境变量:如果是Android4.0以下系统,则使用如下指令“export CLASSPATH==/data/data/包名/files/admob.jar”设置环境变量,其中的“包名”表示使用当前应用的包名。
执行命令“exec app_process库所在的路径库中实现功能的类名”:执行一条“exec app_process库所在的路径库中实现功能的类名”这样的shell指令,“库所在的路径”是指我们实现的java反射功能需要打包到一个xxx.jar库中,这个库存放在apk的assets目录下,在程序首次运行时,会将其解压缩到“/data/data/包名/files/”路径下,库所在的路径就是指的这个路径;“库中实现功能的类名”指的是执行反射注入键函数所在类的名称,它是一个全路径名称,包括了类所在包名,如实现类名定义为com.shere.common.keyexecutor.KeyExecutor,表示这个类所在包为com.shere.common.keyexecutor,类名为KeyExecutor,位于xxx.jar库中。“库所在的路径”和“库中实现功能的类名”都可以看做是在执行二进制文件app_process时,传递给它的两个参数。
在su指令进程中,继续输入按键的参数action和code值:以上步骤的执行都是运行在开始时创建的su指令进程中,此步需要传入按键对应的action和code值,如单击返回键对应的值为“1 4”(注意1前面有一个空格),1代表action,4代表code值。
判断指令是否执行成功:主要依靠是否有异常来进行判断,如果没有异常反馈,可以判定命令执行成功。
指令执行失败:如果执行失败,则返回给上层一个false值。
指令执行成功:如果执行成功,则返回给上层一个true值。
退出,返回执行结果:返回执行的结果,上层收到返回值,根据返回值决定是否继续往下执行。
本发明实施例提供的安卓系统智能终端的虚拟按键实现方法,通过检测安卓系统智能终端是否具有root权限;在检测到安卓系统智能终端具有root权限后,判断当前应用是否获得root授权;在判断当前应用获得root授权后,确定拟实现的虚拟按键功能,并获取虚拟按键功能所对应的键值码;创建并执行与键值码对应的shell指令,并在shell指令执行成功后,调用并执行预设jar库文件,以通过jar库文件的主函数反射调用注入虚拟按键函数,其中,预设jar库文件中存储有实现所述虚拟按键功能所需要的文件,在反射调用注入所述虚拟按键函数成功后,实现虚拟按键功能。通过该方式能够方便地实现虚拟按键功能,实现成本低,灵活可靠,能够有效保护智能终端的实体按键。
另一方面,本发明实施例提供一种安卓系统智能终端的虚拟按键的实现装置,如图2所示,该装置包括:
第一检测模块201,用于检测安卓系统智能终端是否具有root权限;
判断模块202,用于在检测到安卓系统智能终端具有root权限后,判断当前应用是否获得root授权;
确定模块203,用于在判断当前应用获得root授权后,确定拟实现的虚拟按键功能;
获取模块204,用于获取虚拟按键功能所对应的键值码;
执行模块205,用于创建并执行与键值码对应的shell指令,并在shell指令执行成功后,调用并执行预设jar库文件,以通过jar库文件的主函数反射调用注入虚拟按键函数,其中,预设jar库文件中存储有实现虚拟按键功能所需要的文件,在反射调用注入所述虚拟按键函数成功后,实现虚拟按键功能。
在另外一个实施例中,上述安卓系统智能终端的虚拟按键的实现装置还包括:
第一提醒模块,用于在检测安卓系统智能终端不具有root权限后,向用户提醒在不具有root权限情况下,将无法实现虚拟按键功能,并向用户发出如何取得root权限的提示;和/或,
第二提醒模块,用于在判断当前应用未获得root授权后,向用户提醒不获得root授权,将无法实现虚拟按键功能,并引导用户向当前应用授予root权限。
在另外一个实施例中,上述安卓系统智能终端的虚拟按键的实现装置中的第一检测模块,包括:
检测单元,用于检测智能终端的系统目录下是否存在su文件,其中,系统目录包括/system/bin/、/system/xbin/、/sbin/、/system/sd/xbin/、/data/local/xbin/和/data/local/bin/;
第一确定单元,用于在检测到存在su文件后,确定安卓系统智能终端具有root权限,否则,确定安卓系统智能终端不具有root权限;或者,
执行单元,用于在Shell指令中执行su指令,并在返回的输出系统中执行预设指令;
第二确定单元,用于在执行预设指令返回的结果正确后,确定安卓系统智能终端具有root权限,否则,确定安卓系统智能终端不具有root权限。
在另外一个实施例中,上述安卓系统智能终端的虚拟按键的实现装置,还包括:
第二检测模块,用于检测安卓系统的版本号;
设置模块,用于根据版本号确定设置环境变量所需要的指令格式,并获取相应格式的指令来设置环境变量。
在另外一个实施例中,上述安卓系统智能终端的虚拟按键的实现装置,还包括:
第一启动模块,用于启动客户端进程;
第二启动模块,用于由客户端进程启动安卓服务进程;
创建模块,用于在安卓服务进程中创建悬浮按钮和悬浮窗,其中,悬浮按钮和悬浮窗中的一个显示时,另外一个进行隐藏,悬浮窗中具有多个虚拟按键功能选项,并且悬浮按钮和悬浮窗能够悬浮在智能终端显示屏的任意位置,其中,根据用户手动操作指令能够任意改变所述悬浮按钮或悬浮窗的位置。
本发明实施例提供的安卓系统智能终端的虚拟按键实现装置,通过检测安卓系统智能终端是否具有root权限;在检测到安卓系统智能终端具有root权限后,判断当前应用是否获得root授权;在判断当前应用获得root授权后,确定拟实现的虚拟按键功能,并获取虚拟按键功能所对应的键值码;创建并执行与键值码对应的shell指令,并在shell指令执行成功后,调用并执行预设jar库文件,以通过jar库文件的主函数反射调用注入虚拟按键函数,其中,预设jar库文件中存储有实现所述虚拟按键功能所需要的文件,在反射调用注入所述虚拟按键函数成功后,实现虚拟按键功能。通过该方式能够方便地实现虚拟按键功能,实现成本低,且灵活可靠。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种安卓系统智能终端的虚拟按键实现方法,其特征在于,包括:
检测所述安卓系统智能终端是否具有root权限;
在检测到所述安卓系统智能终端具有root权限后,判断当前应用是否获得root授权;
在判断当前应用获得root授权后,确定拟实现的虚拟按键功能,并获取所述虚拟按键功能所对应的键值码;
创建并执行与所述键值码对应的shell指令,并在所述shell指令执行成功后,调用并执行预设jar库文件,以通过所述jar库文件的主函数反射调用注入虚拟按键函数,其中,所述预设jar库文件中存储有实现所述虚拟按键功能所需要的文件,在反射调用注入所述虚拟按键函数成功后,实现所述虚拟按键功能。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在检测所述安卓系统智能终端不具有root权限后,向用户提醒在不具有root权限情况下,将无法实现虚拟按键功能,并向用户发出如何取得root权限的提示;和/或,
在判断当前应用未获得root授权后,向用户提醒不获得root授权,将无法实现虚拟按键功能,并引导用户向当前应用授予root权限。
3.根据权利要求1所述的方法,其特征在于,所述检测所述安卓系统智能终端是否具有root权限,包括:
检测所述智能终端的系统目录下是否存在su文件,其中,所述系统目录包括/system/bin/、/system/xbin/、/sbin/、/system/sd/xbin/、/data/local/xbin/和/data/local/bin/;在检测到存在su文件后,确定所述安卓系统智能终端具有root权限;否则,确定所述安卓系统智能终端不具有root权限;或者,
在所述Shell指令中执行su指令,并在返回的输出系统中执行预设指令,在所述执行预设指令的返回结果正确后,确定所述安卓系统智能终端具有root权限;否则,确定所述安卓系统智能终端不具有root权限。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测所述安卓系统的版本号,根据所述版本号确定设置环境变量所需要的指令格式,并获取相应格式的指令来设置环境变量。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
启动客户端进程;
由所述客户端进程启动安卓服务进程;
在所述安卓服务进程中创建悬浮按钮和悬浮窗,其中,所述悬浮按钮和所述悬浮窗中的一个显示时,另外一个进行隐藏,所述悬浮窗中具有多个虚拟按键功能选项,并且所述悬浮按钮和所述悬浮窗能够悬浮在所述智能终端显示屏的任意位置,根据所述用户手动操作指令能够任意改变所述悬浮按钮和所述悬浮窗的位置。
6.一种安卓系统智能终端的虚拟按键实现装置,其特征在于,包括:
第一检测模块,用于检测所述安卓系统智能终端是否具有root权限;
判断模块,用于在检测到所述安卓系统智能终端具有root权限后,判断当前应用是否获得root授权;
确定模块,用于在判断当前应用获得root授权后,确定拟实现的虚拟按键功能;
获取模块,用于获取所述虚拟按键功能所对应的键值码;
执行模块,用于创建并执行与所述键值码对应的shell指令,并在所述shell指令执行成功后,调用并执行预设jar库文件,以通过所述jar库文件的主函数反射调用注入虚拟按键函数,其中,所述预设jar库文件中存储有实现所述虚拟按键功能所需要的文件,在反射调用注入所述虚拟按键函数成功后,实现所述虚拟按键功能。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一提醒模块,用于在检测所述安卓系统智能终端不具有root权限后,向用户提醒在不具有root权限情况下,将无法实现虚拟按键功能,并向用户发出如何取得root权限的提示;和/或,
第二提醒模块,用于在判断当前应用未获得root授权后,向用户提醒不获得root授权,将无法实现虚拟按键功能,并引导用户向当前应用授予root权限。
8.根据权利要求6所述的装置,其特征在于,所述第一检测模块,包括:
检测单元,用于检测所述智能终端的系统目录下是否存在su文件,其中,所述系统目录包括/system/bin/、/system/xbin/、/sbin/、/system/sd/xbin/、/data/local/xbin/和/data/local/bin/;
第一确定单元,用于在检测到存在su文件后,确定所述安卓系统智能终端具有root权限,否则,确定所述安卓系统智能终端不具有root权限;或者,
执行单元,用于在所述Shell指令中执行su指令,并在返回的输出系统中执行预设指令;
第二确定单元,用于在所述执行预设指令返回的结果正确后,确定所述安卓系统智能终端具有root权限,否则,确定所述安卓系统智能终端不具有root权限。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二检测模块,用于检测所述安卓系统的版本号;
设置模块,用于根据所述版本号确定设置环境变量所需要的指令格式,并获取相应格式的指令来设置环境变量。
10.根据权利要求6至9任一项所述的装置,其特征在于,所述装置还包括:
第一启动模块,用于启动客户端进程;
第二启动模块,用于由所述客户端进程启动安卓服务进程;
创建模块,用于在所述安卓服务进程中创建悬浮按钮和悬浮窗,其中,所述悬浮按钮和所述悬浮窗中的一个显示时,另外一个进行隐藏,所述悬浮窗中具有多个虚拟按键功能选项,并且所述悬浮按钮和所述悬浮窗能够悬浮在所述智能终端显示屏的任意位置,其中,根据所述用户手动操作指令能够任意改变所述悬浮按钮或所述悬浮窗的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610782265.0A CN106371752B (zh) | 2016-08-30 | 2016-08-30 | 一种安卓系统智能终端的虚拟按键实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610782265.0A CN106371752B (zh) | 2016-08-30 | 2016-08-30 | 一种安卓系统智能终端的虚拟按键实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106371752A true CN106371752A (zh) | 2017-02-01 |
CN106371752B CN106371752B (zh) | 2019-06-14 |
Family
ID=57898672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610782265.0A Active CN106371752B (zh) | 2016-08-30 | 2016-08-30 | 一种安卓系统智能终端的虚拟按键实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106371752B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704304A (zh) * | 2017-10-26 | 2018-02-16 | 竞技世界(北京)网络技术有限公司 | 一种利用java反射机制进行灭屏的方法 |
CN107728888A (zh) * | 2017-10-26 | 2018-02-23 | 竞技世界(北京)网络技术有限公司 | 一种安卓终端虚拟按键实现方法 |
CN107765972A (zh) * | 2017-10-26 | 2018-03-06 | 竞技世界(北京)网络技术有限公司 | 一种安卓终端截屏方法 |
CN107807835A (zh) * | 2017-10-26 | 2018-03-16 | 竞技世界(北京)网络技术有限公司 | 一种利用java反射机制进行截屏的方法 |
CN108170341A (zh) * | 2017-11-30 | 2018-06-15 | 努比亚技术有限公司 | 界面操作按键自适应方法、终端及计算机可读存储介质 |
CN108459794A (zh) * | 2017-12-20 | 2018-08-28 | 北京奇安信科技有限公司 | 一种无按钮屏幕的交互操作处理方法及装置 |
CN109359024A (zh) * | 2018-08-03 | 2019-02-19 | 挖财网络技术有限公司 | 一种模拟安卓用户真实系统资源环境的测试方法及系统 |
CN110378106A (zh) * | 2019-07-23 | 2019-10-25 | 北京智游网安科技有限公司 | 一种root检测方法、智能终端及存储介质 |
CN110955480A (zh) * | 2019-11-20 | 2020-04-03 | 北京金山安全软件有限公司 | 一种视图显示方法和装置 |
CN111062006A (zh) * | 2018-10-17 | 2020-04-24 | 福建天泉教育科技有限公司 | 一种安卓系统的管控方法及终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0660289A1 (en) * | 1993-12-27 | 1995-06-28 | Aisin Aw Co., Ltd. | Map display system |
CN103294398A (zh) * | 2013-05-08 | 2013-09-11 | 深圳Tcl新技术有限公司 | 基于悬浮式虚拟窗口操控显示终端的方法和装置 |
CN103309464A (zh) * | 2012-03-06 | 2013-09-18 | 李大春 | 一种输入装置 |
CN104156252A (zh) * | 2014-08-28 | 2014-11-19 | 广州金山网络科技有限公司 | 一种应用软件安装方法及装置 |
CN105045625A (zh) * | 2015-07-17 | 2015-11-11 | 上海斐讯数据通信技术有限公司 | 一种Android平台下root权限管控方法 |
-
2016
- 2016-08-30 CN CN201610782265.0A patent/CN106371752B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0660289A1 (en) * | 1993-12-27 | 1995-06-28 | Aisin Aw Co., Ltd. | Map display system |
CN103309464A (zh) * | 2012-03-06 | 2013-09-18 | 李大春 | 一种输入装置 |
CN103294398A (zh) * | 2013-05-08 | 2013-09-11 | 深圳Tcl新技术有限公司 | 基于悬浮式虚拟窗口操控显示终端的方法和装置 |
CN104156252A (zh) * | 2014-08-28 | 2014-11-19 | 广州金山网络科技有限公司 | 一种应用软件安装方法及装置 |
CN105045625A (zh) * | 2015-07-17 | 2015-11-11 | 上海斐讯数据通信技术有限公司 | 一种Android平台下root权限管控方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704304A (zh) * | 2017-10-26 | 2018-02-16 | 竞技世界(北京)网络技术有限公司 | 一种利用java反射机制进行灭屏的方法 |
CN107728888A (zh) * | 2017-10-26 | 2018-02-23 | 竞技世界(北京)网络技术有限公司 | 一种安卓终端虚拟按键实现方法 |
CN107765972A (zh) * | 2017-10-26 | 2018-03-06 | 竞技世界(北京)网络技术有限公司 | 一种安卓终端截屏方法 |
CN107807835A (zh) * | 2017-10-26 | 2018-03-16 | 竞技世界(北京)网络技术有限公司 | 一种利用java反射机制进行截屏的方法 |
CN108170341A (zh) * | 2017-11-30 | 2018-06-15 | 努比亚技术有限公司 | 界面操作按键自适应方法、终端及计算机可读存储介质 |
CN108459794A (zh) * | 2017-12-20 | 2018-08-28 | 北京奇安信科技有限公司 | 一种无按钮屏幕的交互操作处理方法及装置 |
CN109359024A (zh) * | 2018-08-03 | 2019-02-19 | 挖财网络技术有限公司 | 一种模拟安卓用户真实系统资源环境的测试方法及系统 |
CN111062006A (zh) * | 2018-10-17 | 2020-04-24 | 福建天泉教育科技有限公司 | 一种安卓系统的管控方法及终端 |
CN111062006B (zh) * | 2018-10-17 | 2023-01-10 | 福建天泉教育科技有限公司 | 一种安卓系统的管控方法及终端 |
CN110378106A (zh) * | 2019-07-23 | 2019-10-25 | 北京智游网安科技有限公司 | 一种root检测方法、智能终端及存储介质 |
CN110378106B (zh) * | 2019-07-23 | 2021-08-03 | 北京智游网安科技有限公司 | 一种root检测方法、智能终端及存储介质 |
CN110955480A (zh) * | 2019-11-20 | 2020-04-03 | 北京金山安全软件有限公司 | 一种视图显示方法和装置 |
CN110955480B (zh) * | 2019-11-20 | 2024-02-23 | 北京金山猎豹科技有限公司 | 一种视图显示方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106371752B (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106371752B (zh) | 一种安卓系统智能终端的虚拟按键实现方法及装置 | |
US20200348654A1 (en) | Zero footprint robotic process automation system | |
JP2021511592A (ja) | アプリケーションプログラム処理方法、装置、記憶媒体及びコンピュータデバイス | |
US9417793B2 (en) | Global keyboard shortcuts management for web applications | |
US20180188921A1 (en) | Method and system for enabling the sharing of information between applications on a computing device | |
WO2013086988A1 (zh) | 软件安装方法及装置 | |
CN105912241A (zh) | 人机交互方法、装置及终端 | |
US11252191B2 (en) | Visual policy configuration and enforcement for platform security | |
CN107765972A (zh) | 一种安卓终端截屏方法 | |
CN111949334B (zh) | 基于沙箱环境的虚拟应用启动控制方法、装置及设备 | |
US11846972B2 (en) | Method and apparatus for generating software test reports | |
CN104050417A (zh) | 一种在移动终端对软件状态进行检测的方法及装置 | |
US20120050336A1 (en) | Touch-based remote control | |
CN106713608B (zh) | 应用的功能状态修改方法、装置及终端 | |
US20130293486A1 (en) | Touch-based remote control | |
CN105700869B (zh) | 控制方法、信息处理方法、相关装置及电子设备 | |
CN107832105A (zh) | 一种应用程序启动方法、启动装置及计算机可读存储介质 | |
CN106445309A (zh) | 应用下载入口的显示方法及装置 | |
EP2360578B1 (en) | A method for detecting user screens in mobile devices working under symbian operating system | |
CN111766987B (zh) | 应用程序管理方法、装置及电子设备 | |
CN109491762B (zh) | 容器状态控制方法及装置、存储介质、电子设备 | |
Paternò et al. | Model-based design of multi-device interactive applications based on web services | |
CN110750805B (zh) | 应用程序访问控制方法、装置、电子设备及可读存储介质 | |
CN107728888B (zh) | 一种安卓终端虚拟按键实现方法 | |
CN107704304A (zh) | 一种利用java反射机制进行灭屏的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |