一种控制终端的方法和装置与流程

文档序号:31331843发布日期:2022-08-31 07:17阅读:78来源:国知局
一种控制终端的方法和装置与流程

1.本技术涉及终端技术领域,尤其涉及一种控制终端的方法和装置。


背景技术:

2.随着移动互联网的普及以及智能终端技术的发展,智能智能终端、平板电脑等智能终端已成为人们生活中的必不可少的一部分。但手机等智能终端往往由于后台应用较多,造成运行速度过慢,给用户使用造成较大影响。
3.目前方案往往需要用户主动对所安装的各类应用进行扫描,以清理后台运行的应用程序,但部分应用存在拉活机制,往往清理后又重新被第三方进行拉活,仍会占用大量系统资源。


技术实现要素:

4.本技术实施例的目的是提供一种控制终端的方法和装置,能够方便终端进行资源释放,提高终端的运行速度。
5.为解决上述技术问题,本技术实施例是通过以下各方面实现的。
6.第一方面,本技术实施例提供了一种控制终端的方法,包括:
7.在终端的本地设置虚拟主机;监测所述虚拟主机与所述终端进行通讯的目标端口,通过所述目标端口将所述终端与所述虚拟主机进行adb连接;所述虚拟主机以adb模式向所述终端发送控制指令;所述控制指令用于停止在所述终端中后台运行的应用程序;所述终端执行所述控制指令,并将所述控制指令对应的执行结果在终端屏幕上进行展示。
8.第二方面,本技术实施例提供了一种控制终端的装置,包括:设置模块,用于在终端的本地设置虚拟主机;监测模块,用于监测所述虚拟主机与所述终端进行通讯的目标端口,通过所述目标端口将所述终端与所述虚拟主机进行adb连接;发送模块,用于所述虚拟主机以adb模式向所述终端发送控制指令;所述控制指令用于停止在所述终端中后台运行的应用程序;展示模块,用于所述终端执行所述控制指令,并将所述控制指令对应的执行结果在终端屏幕上进行展示。
9.在本技术实施例中,在终端的本地设置虚拟主机;监测所述虚拟主机与所述终端进行通讯的目标端口,通过所述目标端口将所述终端与所述虚拟主机进行adb连接;所述虚拟主机以adb模式向所述终端发送控制指令;所述控制指令用于停止在所述终端中后台运行的应用程序;所述终端执行所述控制指令,并将所述控制指令对应的执行结果在终端屏幕上进行展示。本技术能够在终端本地以虚拟主机的形式与终端本身进行adb通信,通过adb的调试机制筛选出终端中运行的后台应用,并以强行对各项后台应用进行终结,有效形成了资源释放,也避免了后台应用被第三方拉活,提高了终端的运行速度。
附图说明
10.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
11.图1为本技术实施例提供的一种控制终端的方法的一种流程示意图;
12.图2为本技术实施例提供的一种控制终端的方法的另一种流程示意图;
13.图3为本技术实施例提供的一种控制终端的方法的另一种流程示意图;
14.图4为本技术实施例提供的一种控制终端的装置的一种流程示意图。
具体实施方式
15.为了使本技术领域的人员更好地理解本技术中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
16.图1示出本技术实施例提供的一种控制终端的方法的一种流程示意图,该方法可以由电子设备执行,例如第一终端设备和/或第二终端设备。换言之,所述方法可以由安装在终端设备的软件或硬件来执行。如图所示,该方法可以包括以下步骤。
17.s10:在终端的本地设置虚拟主机。
18.本实施例中,在终端的本地设置虚拟主机,使终端认为与一部上位机通过adb连接并接受调试。
19.设置虚拟主机首先需开启终端所对应的相关调试权限。
20.s101:接受用户触发的辅助权限的开启指令;
21.终端接受用户的辅助权限开启指令,开启辅助服务权限,辅助权限开启后,终端可以模拟用户点击等触发行为,以便开启对应的调试权限。
22.s102:根据所述开启指令,开启所述终端对应的开发者调试模式和无线调试开关;
23.利用辅助权限模拟用户在终端屏幕上的点击操作,则首先需要在androidmanifest.xml里声明辅助权限所关联的服务,如下代码所示:
24.《application》
25.《service
26.android:name="cn.tbu.accessibilitymonitorservice"
27.android:description="@string/strong_acc_description"
28.android:exported="true"
29.android:permission="android.permission.bind_accessibility_service"》
30.《intent-filter》
31.《action android:name="android.accessibilityservice.accessibilityservice"/》
32.《/intent-filter》
33.《meta-data
34.android:name="android.accessibilityservice"
35.android:resource="@xml/access_config"/》
36.《/service》
37.《/application》
38.其中,开启“开发者调试模式”时,获取设置配置文件access_config.xml的内容中,定义了具体申请的能力,比如是否可以获取窗口内容、是否可以模拟手势等。本实施例中,申请获取辅助权限的所有能力,如下所示。
39.《accessibility-service
40.xmlns:android="http://schemas.android.com/apk/res/android"
41.android:accessibilityeventtypes="typeallmask"
42.android:accessibilityfeedbacktype="feedbackgeneric"
43.android:accessibilityflags="flagdefault|flagreportviewids|flagincludenoti
44.mportantviews"
45.android:canperformgestures="true"
46.android:canretrievewindowcontent="true"
47.android:description="@string/strong_acc_description"
48.android:notificationtimeout="0"/》
49.声明完毕后,打开“开发者调试模式”开关,即调用“系统设置”界面中的“开发者选项”界面,然后利用辅助服务的onaccessibilityevent回调方法,通过accessibilityevent参数可以获得前台运行的应用包名和窗口变化事件类型,并且获取窗口里所有ui元素的类型、id、显示文本内容等信息,查找到“开发者选项”界面的开关对应的ui组件,执行performaction(accessibilitynodeinfo.action_click)方法来模拟用户点击该开关,触发开关为打开状态,使“开发者调试模式”因触发而开启
50.同理,开启“无线调试”开关时,开启“开发者选项”界面,在界面的ui组件中进行查找,找到“无线调试”的ui组件,模拟进行点击触发,再模拟点击“开启”按钮,来开启“无线调试”的开关。
51.s103:在无线调试模式下本地建立虚拟主机,并生成公私钥文件,以便与所述终端建立adb连接。
52.开启“无线调试”功能后,获取界面上显示的提示连接的端口和配对码。用辅助功能在当前窗口中找到“使用配对码配对设备”按钮,并模拟用户进行点击,从而展示弹窗提示的目标端口和配对码信息。根据ui组件id找到显示组件后,使用accessibilitynodeinfo.gettext()方法拿到显示的文本内容,得到目标端口和配对码。
53.在终端中建立虚拟主机,并使用“adbkeygenadbkey”生成一对rsa公私钥文件,用来对建立的虚拟主机进行标记,以便于后续通过adbd建立adb连接,命令末尾的adbkey为密钥的名字。
54.s12:监测所述虚拟主机与所述终端进行通讯的目标端口,通过所述目标端口将所述终端与所述虚拟主机进行adb连接;
55.a)所述终端上的adb系统服务通过目标端口向无线调试端口发起连接监听,等待调试连接建立;
56.b)所述终端监听到所述虚拟主机通过所述目标端口发起连接请求时,通过所述公私钥文件向所述虚拟主机发起鉴权;具体为:
57.所述虚拟主机通过所述目标端口发起连接请求,即发送建立连接的cnxn消息,cnxn消息包括:cnxn的版本号+最大数据长度4096+host名;终端接收到cnxn消息后,通过无线调试端口向虚拟主机返回一条包含第一验证令牌的auth消息。
58.虚拟主机根据rsa公私钥文件对所述终端发送的第一验证令牌进行签名验证,将验证通过后对应的验证签名以cnxn消息的形式发送至所述终端;
59.终端根据验证签名通过无效调试端口向虚拟主机再次发送一条包含第二验证令牌的auth消息,表示需要验证对应的rsa的公钥信息;
60.所述虚拟主机根据rsa公私钥文件中的公钥信息对所述第二验证令牌进行验证,即发送一条带有公钥信息的auth消息给终端,需在终端中进一步针对公钥信息进行校验,以提高调试时的安全性。
61.c)所述虚拟主机在鉴权通过,则被所述终端识别为用于调试的上位机。
62.终端中如果公钥信息验证通过,则向虚拟主机以cnxn返回确认信息,表示鉴权通过,则虚拟主机被终端识别为用于调试的上位机,至此虚拟主机与终端以adb的形式连接成功,虚拟主机即可通过adb的形式接收对应的调试指令。
63.s14:虚拟主机以adb模式向所述终端发送控制指令;所述控制指令用于停止在所述终端中后台运行的应用程序;
64.本实施例中,终端中设置的虚拟主机与终端本身以adb模式进行连接后,虚拟主机向终端发送带有控制指令的调试命令,控制指令中包含停止应用运行的控制命令,用以结束后台运行的应用程序。
65.s16:终端执行所述控制指令,并将所述控制指令对应的执行结果在终端屏幕上进行展示。
66.本实施例中,终端接收到虚拟主机发送的控制指令后,筛选出后台运行的应用程序,并根据控制指令后对这些后台运行的应用程序进行停止,释放了这些后台运行的应用程序所占用的系统资源,这些被占用cpu、内存等系统资源即可以供终端中前台应用进行加载,提高了用户所关注的前台应用的运行效率。同时将释放的系统资源的对应大小在终端的屏幕中进行展示,也提高了用户的使用体验。
67.本技术能够在终端本地以虚拟主机的形式与终端本身进行adb通信,通过adb的调试机制筛选出终端中运行的后台应用,并以强行对各项后台应用进行终结,有效形成了资源释放。
68.图2示出本技术实施例提供的一种控制终端的方法的另一种流程示意图,如图所示,该方法可以包括以下步骤。
69.s210:在终端的本地设置虚拟主机;
70.与上一实施例相同,不再赘述。
71.s220:监测所述虚拟主机与所述终端进行通讯的目标端口,通过所述目标端口将所述终端与所述虚拟主机进行adb连接;
72.与上一实施例相同,不再赘述。
73.s230:所述虚拟主机基于adb连接,获取所述终端中正在运行的用户进程列表和前
台运行的前台进程列表;
74.本实施例中,虚拟主机基于adb连接向终端发送open消息,消息体为“shell:《具体命令》”。比如,“shell:ps-a|grep-e\”^u0_\
””
,执行“ps-a|grep-e"^u0_"”控制指令,查询终端中正在运行的进程信息。
75.其中,各参数命令含义为:
76.ps:linux上用来列出运行中的进程、线程信息的工具,android高版本上默认只输出当前用户的进程,所以加上-a参数表示输出所有用户的进程信息。
77.grep:linux上用来文本搜索的工具,因为ps命令输出的进程包括终端中的系统服务和不属于系统服务的用户服务,且用户服务的用户名是以“u0_”开头,故将“u0_”作为过滤关键字,从ps命令输出的进程中将用户进程作为正在运行的进程分别过滤出来,从而得到正在运行的用户进程列表。
78.同理,虚拟主机基于adb连接向终端发送“dumpsys activity top”指令,查询终端中运行的前台应用的信息,得到前台应用的列表。
79.s240:基于所述用户进程列表和所述前台进程列表,筛选出后台运行的目标进程列表。
80.本实施例中,虚拟主机对用户进程列表和前台进程列表进行求差运算,因用户进程列表记录了所有运行的用户进程,前台进程列表记录了所有前台运行的用户进程,两者求差,即得到记录后台运行应用的目标进程列表。
81.s250:分别读取所述目标进程列表中各应用对应的第一包名,所述虚拟主机以adb模式向所述终端发送所述第一包名对应的控制指令。
82.本实施例中,虚拟主机对目标进程列表进行解析,分别得到每项后台应用的第一包名,以adb模式向终端发送针对第一包名的停止指令。本实施例中,虚拟主机分别向终端发送控制指令“am force-stop第一包名”,分别强制停止第一包名对应的后台应用停止运行。
83.s260:所述终端执行所述控制指令,并将所述控制指令对应的执行结果在终端屏幕上进行展示。
84.本实施例中,终端分别执行虚拟主机发出的控制指令,分别对第一包名对应的后台应用停止运行,并将所有后台应用一共所占用的资源,如内存大小等,进行统计,作为执行结果在终端屏幕上进行展示。
85.本实施例中,在终端的本地设置虚拟主机;监测所述虚拟主机与所述终端进行通讯的目标端口,通过所述目标端口将所述终端与所述虚拟主机进行adb连接;所述虚拟主机以adb模式向所述终端发送控制指令;所述控制指令用于停止在所述终端中后台运行的应用程序;所述终端执行所述控制指令,并将所述控制指令对应的执行结果在终端屏幕上进行展示。本技术能够在终端本地以虚拟主机的形式与终端本身进行adb通信,通过adb的调试机制分别统计用户进程和前台进程,经过筛选后,得到终端中运行的后台应用,并以强行对各项后台应用进行终结,有效形成了资源释放,后台应用停止运行后,受安卓系统本身影响,很难被第三方再次拉活,从而提高了终端的运行速度。
86.图3示出本技术实施例提供的一种控制终端的方法的另一种流程示意图,如图所示,该方法可以包括以下步骤。
87.s310:在终端的本地设置虚拟主机;
88.与上一实施例相同,不再赘述。
89.s320:监测所述虚拟主机与所述终端进行通讯的目标端口,通过所述目标端口将所述终端与所述虚拟主机进行adb连接;
90.与上一实施例相同,不再赘述。
91.s330:所述虚拟主机基于adb连接,获取所述终端中正在运行的用户进程列表和前台运行的前台进程列表;
92.本实施例中,虚拟主机基于adb连接向终端发送open消息,查询终端中正在运行的进程信息,得到终端中正在运行的用户进程,组成用户进程列表。
93.同理,虚拟主机基于adb连接向终端发送指令,指令用于查询终端中运行的前台应用的信息,得到前台应用的列表。
94.s340:基于所述用户进程列表和所述前台进程列表,筛选出后台运行的目标进程列表。
95.本实施例中,虚拟主机对用户进程列表和前台进程列表进行求差运算,因用户进程列表记录了所有运行的用户进程,前台进程列表记录了所有前台运行的用户进程,两者求差,即得到记录后台运行应用的目标进程列表。
96.s350:分别读取所述目标进程列表中各应用各自对应的内存信息,并分别将内存占用大于既定阈值对应的应用包名作为第二包名,所述虚拟主机以adb模式向所述终端发送所述第二包名对应的控制指令。
97.本实施例中,虚拟主机对目标进程列表进行解析,获取每项后台运行应用各自对应的内存占用值,对各内存占用值进行数据分析,提取各内存占用值的中位数作为既定阈值,则大于既定阈值的内存占用值的对应应用所占用内存资源过多。本实施例中,将内存占用值大于既定阈值的应用包名作为第二包名,进而根据第二包名形成控制指令,而对内存占用值小于既定阈值的应用包名不进行处理。虚拟主机以adb模式向所述终端发送包含第二包名对应的控制指令,对终端中内存占用过大的后台进程进行控制,强制停止终端中内存占用大于既定阈值的后台进程。
98.s360:所述终端执行所述控制指令,并将所述控制指令对应的执行结果在终端屏幕上进行展示。
99.本实施例中,终端执行虚拟主机发出的控制指令,分别对第二包名对应的后台应用停止运行,并将第二包名对应的后台应用所占用的资源,如内存大小等,进行统计,作为执行结果在终端屏幕上进行展示。
100.本实施例中,在终端的本地设置虚拟主机;监测所述虚拟主机与所述终端进行通讯的目标端口,通过所述目标端口将所述终端与所述虚拟主机进行adb连接;所述虚拟主机以adb模式向所述终端发送控制指令;所述控制指令用于停止在所述终端中后台运行的应用程序;所述终端执行所述控制指令,并将所述控制指令对应的执行结果在终端屏幕上进行展示。本技术能够在终端本地以虚拟主机的形式与终端本身进行adb通信,通过adb的调试机制分别统计用户进程和前台进程,经过筛选后,得到终端中运行的后台应用,并对后台应用进行分析,选取内存占用过大的后台应用进行终结,对内存占用过大的资源形成了资源释放,因被终结的后台应用被终端自身终结,受安卓系统本身影响,很难被第三方再次拉
活,从而提高了终端的运行速度。
101.图4为本技术实施例提供的一种控制终端的装置400,包括:
102.设置模块401,用于在终端的本地设置虚拟主机;
103.监测模块402,用于监测所述虚拟主机与所述终端进行通讯的目标端口,通过所述目标端口将所述终端与所述虚拟主机进行adb连接;
104.发送模块403,用于所述虚拟主机以adb模式向所述终端发送控制指令;所述控制指令用于停止在所述终端中后台运行的应用程序;
105.展示模块404,用于所述终端执行所述控制指令,并将所述控制指令对应的执行结果在终端屏幕上进行展示。
106.在一种可能的实现方式中,所述设置模块,包括:
107.接收单元,用于接受用户触发的辅助权限的开启指令;
108.开启单元,用于根据所述开启指令,开启所述终端对应的开发者调试模式和无线调试开关;
109.设立单元,用于在无线调试模式下本地建立虚拟主机,并生成公私钥文件,以便与所述终端建立adb连接。
110.在一种可能的实现方式中,所述监测模块,包括:
111.监听单元,用于所述终端通过所述目标端口向无线调试端口发起连接监听,等待调试连接建立;
112.鉴权单元,用于所述终端监听到所述虚拟主机通过所述目标端口发起连接请求时,通过所述公私钥文件向所述虚拟主机发起鉴权;
113.验证单元,用于如果所述虚拟主机在鉴权通过时,则被所述终端识别为用于调试的上位机。
114.在一种可能的实现方式中,所述鉴权单元具体包括,
115.第一验证子单元,用于所述虚拟主机对所述终端发送的第一验证令牌进行验证,将验证通过后对应的验证签名发送至所述终端;
116.发送子单元,用于所述终端根据所述验证签名再次向所述虚拟主机发送第二验证令牌;
117.第二验证子单元,用于所述虚拟主机根据所述公私钥文件中的公钥对所述第二验证令牌进行验证。
118.在一种可能的实现方式中,所述装置还包括:
119.获取模块,用于所述虚拟主机基于adb连接,获取所述终端中正在运行的用户进程列表和前台运行的前台进程列表;
120.筛选模块,用于基于所述用户进程列表和所述前台进程列表,筛选出后台运行的目标进程列表。
121.在一种可能的实现方式中,所述发送模块具体包括:
122.第一控制单元,用于分别读取所述目标进程列表中各应用对应的第一包名,所述虚拟主机以adb模式向所述终端发送所述第一包名对应的控制指令。
123.在一种可能的实现方式中,所述装置还包括:
124.第二控制单元,用于分别读取所述目标进程列表中各应用各自对应的内存信息,
并分别将内存占用大于既定阈值对应的应用包名作为第二包名,所述虚拟主机以adb模式向所述终端发送所述第二包名对应的控制指令。
125.本技术实施例的电子设备以多种形式存在,包括但不限于以下设备。
126.(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。
127.(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。
128.(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
129.(4)其他具有数据交互功能的电子装置。
130.进一步地,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现以下流程:与第二终端设备建立连接;接收来自所述第二终端设备的控制指令,所述控制指令是通过所述第二终端的输入设备输入的,所述控制指令包括用于获取屏幕显示内容的指令;执行所述控制指令,包括:获取第一终端设备的屏幕显示内容;将所述控制指令的执行结果发送给所述第二终端设备,所述控制指令的执行结果包括第一终端设备屏幕显示内容。
131.进一步地,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现以下流程:与第一终端设备建立连接;向所述第一终端设备发送控制指令,所述控制指令是通过第二终端的输入设备输入的,所述控制指令包括用于获取屏幕显示内容的指令;接收第一终端设备发送的所述控制指令的执行结果,所述控制指令的执行结果包括第一终端设备屏幕显示内容;将所述第一终端设备屏幕显示内容展示在所述第二终端设备的显示设备上。
132.由此,所述计算机可执行指令被处理器执行时能够执行前文方法实施例中所述的各方法,并实现前文方法实施例中所述的各方法的功能和有益效果,在此不再赘述。
133.其中,所述的计算机可读存储介质包括只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等。
134.进一步地,本技术实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,实现以下流程:与第二终端设备建立连接;接收来自所述第二终端设备的控制指令,所述控制指令是通过所述第二终端的输入设备输入的,所述控制指令包括用于获取屏幕显示内容的指令;执行所述控制指令,包括:获取第一终端设备的屏幕显示内容;将所述控制指令的执行结果发送给所述第二终端设备,所述控制指令的执行结果包括第一终端设备屏幕显示内容。
135.进一步地,本技术实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,实现以下流程:与第一终端设备建立连接;向所述第一终端设备发送控制指令,所述控制指令是通过第二终端的输入设备输入的,所述控制指令包括用于获取屏幕显示内容的指令;接收第一终端设备发送的所述控制指令的执行结果,所述
控制指令的执行结果包括第一终端设备屏幕显示内容;将所述第一终端设备屏幕显示内容展示在所述第二终端设备的显示设备上。
136.由此,执行本技术实施例提供的计算机程序产品能够执行前文方法实施例中所述的各方法,并实现前文方法实施例中所述的各方法的功能和有益效果,在此不再赘述。
137.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
138.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1