CN105808404B - 一种基于共享管道的Android设备的调试方法 - Google Patents

一种基于共享管道的Android设备的调试方法 Download PDF

Info

Publication number
CN105808404B
CN105808404B CN201410853161.5A CN201410853161A CN105808404B CN 105808404 B CN105808404 B CN 105808404B CN 201410853161 A CN201410853161 A CN 201410853161A CN 105808404 B CN105808404 B CN 105808404B
Authority
CN
China
Prior art keywords
adb
shared pipeline
target program
orders
pipeline
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
CN201410853161.5A
Other languages
English (en)
Other versions
CN105808404A (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.)
TD Tech Ltd
Original Assignee
TD Tech 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 TD Tech Ltd filed Critical TD Tech Ltd
Priority to CN201410853161.5A priority Critical patent/CN105808404B/zh
Publication of CN105808404A publication Critical patent/CN105808404A/zh
Application granted granted Critical
Publication of CN105808404B publication Critical patent/CN105808404B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种基于共享管道的Android设备调试方法,包括:作为客户端的计算机上的目标程序服务启动后,建立用于执行ADB命令的共享管道;在目标程序运行过程中,利用共享管道执行ADB命令,在目标程序服务停止时,关闭建立的共享管道,并释放相应的资源。应用本申请,能够节省系统资源,避免多次执行adb命令后的反应速度变慢的问题,改善用户体验。

Description

一种基于共享管道的Android设备的调试方法
技术领域
本申请涉及Android技术,特别涉及一种基于共享管道的Android设备的调试方法。
背景技术
Android Debug Bridge,Android调试桥接器,简称adb。adb的主要功能有:运行设备的shell(命令行),管理模拟器或设备的端口映射,计算机和设备之间上传/下载文件,将本地apk软件安装至模拟器或android设备。ADB是一个客户端-服务器端程序,其中客户端是用来操作的计算机,服务器端是android设备。通过在客户端的计算机上运行ADB命令进行服务器端android设备的调试。
目前,在客户端的计算机上,通常使用java程序作为ADB命令的允许环境。具体地,在java程序中,可以通过Runtime.getRuntime()获取当前JVM的运行时环境,使用exec方法执行adb命令,创建一个进程process实例,exec方法实现对Android设备的adb命令输入,利用process实例的输入流得到adb命令执行后的反馈,adb命令执行完毕后,销毁process进程。Java程序通过Runtime exec调用adb命令,建立了java程序进程与Android设备进程的管道,实现了对Android设备的控制和交互。
现有的处理方式中,当需要执行多个adb命令时,采用循环执行方式,其中每执行一个adb命令都将进行下列步骤:调用Runtime的exec方法,生成一个process进程,建立管道,执行adb命令,关闭管道,销毁process进程。
但是,通过上述处理方式进行android设备调试时,当连续多次执行adb命令(大于3000次)后,会出现android设备端资源占用高和反应速度变慢的问题,严重影响用户体验,最终可能导致adb不可用的现象,影响用户正常使用。
发明内容
本申请提供一种基于共享管道的Android设备的调试方法,能够避免多次执行adb命令后的反应速度变慢的问题,改善用户体验。
为实现上述目的,本申请采用如下的技术方案:
一种基于共享管道的Android设备的调试方法,包括:
作为客户端的计算机上的目标程序服务启动后,建立用于执行Android调试桥接器ADB命令的共享管道;
在所述目标程序运行过程中,利用所述共享管道执行ADB命令;
在所述目标程序服务停止时,关闭所述共享管道,并释放相应的资源。
较佳地,使用Runtime exec建立所述共享管道。
较佳地,所述利用所述共享管道执行ADB命令包括:
监听要执行的ADB命令;
当监听到ADB命令时,将该ADB命令加入ADB命令队列中;
定时扫描ADB命令队列,按照加入所述队列的时间先后顺序,依次执行各个等待执行的ADB命令,当执行完任一命令后,将该命令从所述队列中移出。
较佳地,所述目标程序为JAVA程序或C++程序。
由上述技术方案可见,本申请中,作为客户端的计算机上的目标程序服务启动后,建立用于执行ADB命令的共享管道;在目标程序运行过程中,利用共享管道执行ADB命令,在目标程序服务停止时,关闭建立的共享管道,并释放相应的资源。通过上述处理,在执行ADB命令时,大大减少了建立管道和关闭管道的时间,从而节省系统资源,能够避免多次执行adb命令后的反应速度变慢的问题,改善用户体验。
附图说明
图1为现有调试Android设备时执行ADB命令的示意图;
图2为本申请中基于共享管道的调试Android设备的方法示意图;
图3为本申请基于共享管道的调试Android设备时执行ADB命令的示意图。
具体实施方式
为了使本申请的目的、技术手段和优点更加清楚明白,以下结合附图对本申请做进一步详细说明。
在现有的ADB命令执行方式中,尽管在执行命令这一步所需要的时间极少,但执行前管道的建立和执行结束后管道的关闭所需花费的时间远远大于执行命令所需要的时间,造成了80%以上的时间都浪费在管道的建立和关闭上,且管道的建立需要消耗较多的资源,正是由此,致使系统负荷增加,资源占用高,耗时并且效率低。
同时由于客户端程序不能控制服务器端Android设备在命令执行完成后资源的正常释放,致使连续执行多次adb命令后(大于3000次),出现Android设备端资源占用高,反应速度变慢,影响用户体验,最终导致adb不可用现象,影响用户正常使用。
基于上述原因,本申请给出一种Android设备的调试方法,如图2所示,在利用客户端程序调试Android设备的过程中,仅建立一条共享管道,用于执行本次调试过程中的各条ADB命令。
图3为本申请基于共享管道调试Android设备方法的流程示意图。其中,以客户端程序为JAVA程序为例进行说明。如图3所示,该方法包括:
步骤301,作为客户端的计算机上的目标程序服务启动,并建立用于执行ADB命令的共享管道。
客户端计算机上的java程序服务启动时,使用Runtime exec调用建立管道,该管道在本次调试过程中,用于所有ADB命令的执行,称为共享管道。该共享管道一旦建立,直到java程序关闭时才会关闭管道。
步骤302,在目标程序运行过程中,利用共享管道执行所有ADB命令。
在目标程序运行过程中,为执行ADB命令,增加监听程序用于监听adb执行命令,当监听到执行命令时,将该执行命令添加到命令队列中等待执行。
具体地,使用命令队列管理多个adb命令,建立定时任务对adb命令队列进行扫描,若存在等待执行的命令队列且当前系统中无正在执行的命令,根据加入的先后顺序取出加入时间最早的命令,利用共享管道,输入执行该adb命令,完成执行后从命令队列中移除该命令。所有的adb命令都使用同一个共享管道。
步骤303,目标程序服务停止时,关闭共享管道,并释放相应的资源。
当java程序服务停止时,关闭启动时建立的唯一共享管道,释放相关资源结束处理。
至此,本申请中的Android设备调试方法流程结束。在该方法流程中,只建立了一个共享管道,直到服务停止时,才去关闭共享管道释放资源,解决了多次建立和释放管道导致的adb不可用问题,减少了多次建立和释放管道带来的资源占用多和执行效率低的问题。
上述图3所示的方法中,以java程序作为目标程序为例进行了说明,在实际应用中,目标程序不限于java程序,还可以采用C++等程序,本申请对此不做限定。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (3)

1.一种基于共享管道的Android设备的调试方法,其特征在于,包括:
作为客户端的计算机上的目标程序服务启动后,使用Runtime exec建立用于执行Android调试桥接器ADB命令的共享管道;其中,所述共享管道用于执行所述目标程序运行过程中的所有ADB命令;
在所述目标程序运行过程中,利用所述共享管道执行ADB命令;
在所述目标程序服务停止时,关闭所述共享管道,并释放相应的资源。
2.根据权利要求1所述的方法,其特征在于,所述利用所述共享管道执行ADB命令包括:
监听要执行的ADB命令;
当监听到ADB命令时,将该ADB命令加入ADB命令队列中;
定时扫描ADB命令队列,按照加入所述队列的时间先后顺序,依次执行各个等待执行的ADB命令,当执行完任一命令后,将该命令从所述队列中移出。
3.根据权利要求1所述的方法,其特征在于,所述目标程序为JAVA程序或C++程序。
CN201410853161.5A 2014-12-31 2014-12-31 一种基于共享管道的Android设备的调试方法 Active CN105808404B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410853161.5A CN105808404B (zh) 2014-12-31 2014-12-31 一种基于共享管道的Android设备的调试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410853161.5A CN105808404B (zh) 2014-12-31 2014-12-31 一种基于共享管道的Android设备的调试方法

Publications (2)

Publication Number Publication Date
CN105808404A CN105808404A (zh) 2016-07-27
CN105808404B true CN105808404B (zh) 2018-10-23

Family

ID=56420763

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410853161.5A Active CN105808404B (zh) 2014-12-31 2014-12-31 一种基于共享管道的Android设备的调试方法

Country Status (1)

Country Link
CN (1) CN105808404B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124702B (zh) * 2019-11-22 2023-03-21 腾讯科技(深圳)有限公司 性能数据采集方法、装置和计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446083A (zh) * 2011-09-07 2012-05-09 福州博远无线网络科技有限公司 PC端读取并保存Android手机屏幕显示内容的方法
CN103605529A (zh) * 2013-05-17 2014-02-26 华为终端有限公司 应用程序的处理方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8879735B2 (en) * 2012-01-20 2014-11-04 Digimarc Corporation Shared secret arrangements and optical data transfer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446083A (zh) * 2011-09-07 2012-05-09 福州博远无线网络科技有限公司 PC端读取并保存Android手机屏幕显示内容的方法
CN103605529A (zh) * 2013-05-17 2014-02-26 华为终端有限公司 应用程序的处理方法和装置

Also Published As

Publication number Publication date
CN105808404A (zh) 2016-07-27

Similar Documents

Publication Publication Date Title
US9471386B2 (en) Allocating resources to tasks in a build process
WO2020106779A3 (en) Testing as a service for cloud gaming
US20150178184A1 (en) Test management using distributed computing
US10042744B2 (en) Adopting an existing automation script to a new framework
EP3032413B1 (en) Code generation method, compiler, scheduling method, apparatus and scheduling system
CN102629207A (zh) 一种多租户环境运行实例分时更新的方法
CN108762905B (zh) 一种多任务事件的处理方法和装置
CN111381965B (zh) 用于处理请求的方法和装置
CN105808404B (zh) 一种基于共享管道的Android设备的调试方法
EP3506101A2 (en) System and method for controlled data extraction in computer networks
CN108062251B (zh) 一种服务器资源回收方法以及计算机设备
JP2007199829A5 (zh)
CN111031123B (zh) Spark任务的提交方法、系统、客户端及服务端
CN109766131A (zh) 基于多线程技术实现软件智能化自动升级的系统及方法
JP2011109254A5 (zh)
CN107861798B (zh) 应用的系统级别操作方法及装置
CN103514044A (zh) 一种动态行为分析系统的资源优化方法、装置和系统
KR101396781B1 (ko) 응용프로그램 관리장치 및 관리방법
CN110795330A (zh) 一种Monkey压力测试的方法和装置
CN104461753A (zh) 一种防止应用程序检测Windows虚拟机信息的方法
Liu et al. A concurrent approach for improving the efficiency of Android CTS testing
WO2015180298A1 (zh) 业务鉴权的处理方法及装置
CN112286639B (zh) 降低安全组件cpu占用率的方法
CN104182339A (zh) 一种自动化测试方法及系统
CN103853616A (zh) 一种实现云计算虚拟桌面自动关闭并释放硬件资源的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant