UI Automator Viewer二次开发(一)—— 提升快照速度

本文介绍了如何通过二次开发UI Automator Viewer来提高快照速度,详细讲解了添加EasyScreenshotAction类、新增按钮、优化文件处理以及替换jar包的步骤,并解释了实现原理,即避免socket通信,利用adb命令多线程操作,从而达到速度翻倍的效果。
摘要由CSDN通过智能技术生成

先上效果对比图

改进前的快照速度
改进后的快照速度

速度直接翻倍,起飞!

修改方法

(一)在actions包中添加一个EasyScreenshotAction类

顾名思义,就是一个方便的快照类

代码如下

package com.android.uiautomator.actions;
 
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.InvocationTargetException;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
 
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.ImageLoader;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
 
import com.android.ddmlib.IDevice;
import com.android.uiautomator.DebugBridge;
import com.android.uiautomator.UiAutomatorModel;
import com.android.uiautomator.UiAutomatorViewer;
 
public class EasyScreenshotAction extends Action {
	
	UiAutomatorViewer mViewer;
	
	
	public EasyScreenshotAction(UiAutomatorViewer viewer) {//构造方法
		super("&Zoom");//图标名
		this.mViewer = viewer;
	}
	
	public ImageDescriptor getImageDescriptor() {//按钮使用图标
		return ImageHelper.loadImageDescriptorFromResource("images/quickshot.png");
	}
	
	public static String getCurrentTime(){//获取当前时间,并转换成固定格式
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");   
		retu
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值