SyncService

public class SyncService
extends Object

java.lang.Object
   ↳ com.android.tradefed.device.server.SyncService


同步服务类,用于通过调试桥向设备/模拟器推送/从设备/模拟器拉取数据。

如需获取 SyncService 对象,请使用 IDevice.getSyncService()

摘要

嵌套类

class SyncService.FileStat

 

interface SyncService.ISyncProgressMonitor

实现此接口的类提供用于处理显示传输进度的方法。 

公共构造函数

SyncService(InetSocketAddress address, IDevice device)

创建同步服务对象。

公共方法

void close()

关闭连接。

static SyncService.ISyncProgressMonitor getNullProgressMonitor()

返回一个不执行任何操作的同步进度监控器。

boolean openSync()

打开同步连接。

void pull(FileEntry[] entries, String localPath, SyncService.ISyncProgressMonitor monitor)

提取文件或文件夹。

void pullFile(FileListingService.FileEntry remote, String localFilename, SyncService.ISyncProgressMonitor monitor)

提取单个文件。

void pullFile(String remoteFilepath, String localFilename, SyncService.ISyncProgressMonitor monitor)

提取单个文件。

void push(String[] local, FileListingService.FileEntry remote, SyncService.ISyncProgressMonitor monitor)

推送多个文件或目录。

void push(String[] local, String remote, SyncService.ISyncProgressMonitor monitor)

推送多个文件或目录。

void pushFile(String local, String remote, SyncService.ISyncProgressMonitor monitor)

推送单个文件。

SyncService.FileStat statFile(String path)

返回远程文件的统计信息。

公共构造函数

SyncService

public SyncService (InetSocketAddress address, 
                IDevice device)

创建同步服务对象。

参数
address InetSocketAddress:要连接到的地址

device IDevice:服务连接到的 IDevice

公共方法

关闭

public void close ()

关闭连接。

getNullProgressMonitor

public static SyncService.ISyncProgressMonitor getNullProgressMonitor ()

返回一个不执行任何操作的同步进度监控器。这样,不想/不需要显示界面的后台任务就可以传递有效的 ISyncProgressMonitor

此对象可重复使用多次,并且可供并发线程使用。

返回
SyncService.ISyncProgressMonitor

openSync

public boolean openSync ()

打开同步连接。必须在调用 push[File] / pull[File] 之前调用此方法。

返回
boolean 如果连接已打开,则为 true;如果 adb 拒绝连接,则为 false。如果 IDevice 无效,可能会发生这种情况。

抛出
TimeoutException 在连接超时的情况下。
AdbCommandRejectedException 如果 adb 拒绝该命令
如果与 adb 的连接失败。

拉取

public void pull (FileEntry[] entries, 
                String localPath, 
                SyncService.ISyncProgressMonitor monitor)

提取文件或文件夹。

参数
entries FileEntry:要拉取的远程项

localPath String:本地目的地。如果条目数量大于 1,或者唯一条目是文件夹,则此参数应为文件夹。

monitor SyncService.ISyncProgressMonitor:进度监控器。不能为 null。

抛出
com.android.ddmlib.SyncException
IOException
com.android.ddmlib.TimeoutException
SyncException
TimeoutException

pullFile

public void pullFile (FileListingService.FileEntry remote, 
                String localFilename, 
                SyncService.ISyncProgressMonitor monitor)

提取单个文件。

参数
remote FileListingService.FileEntry:远程文件

localFilename String:本地目的地。

monitor SyncService.ISyncProgressMonitor:进度监控器。不能为 null。

抛出
以防出现 IO 异常。
TimeoutException 如果从设备读取响应时发生超时,则返回此值。
SyncException 在出现同步异常时。

pullFile

public void pullFile (String remoteFilepath, 
                String localFilename, 
                SyncService.ISyncProgressMonitor monitor)

提取单个文件。

由于此方法仅处理远程文件的字符串,而不处理 FileEntry,因此拉取的文件的大小未知,并且 ISyncProgressMonitor 将无法正确显示进度

参数
remoteFilepath String:远程文件的完整路径

localFilename String:本地目的地。

monitor SyncService.ISyncProgressMonitor:进度监控器。不能为 null。

抛出
以防出现 IO 异常。
TimeoutException 如果从设备读取响应时发生超时,则返回此值。
SyncException 在出现同步异常时。

推送

public void push (String[] local, 
                FileListingService.FileEntry remote, 
                SyncService.ISyncProgressMonitor monitor)

推送多个文件或目录。

参数
local String:要推送的本地文件

remote FileListingService.FileEntry:表示目录的远程 FileEntry

monitor SyncService.ISyncProgressMonitor:进度监控器

抛出
SyncException 如果某些文件无法推送
如果连接出现 I/O 错误
TimeoutException 如果从设备读取响应时发生超时

推送

public void push (String[] local, 
                String remote, 
                SyncService.ISyncProgressMonitor monitor)

推送多个文件或目录。

参数
local String:要推送的本地文件

remote String:表示目录的远程路径

monitor SyncService.ISyncProgressMonitor:进度监控器

抛出
SyncException 如果某些文件无法推送
如果连接出现 I/O 错误
TimeoutException 如果从设备读取响应时发生超时

pushFile

public void pushFile (String local, 
                String remote, 
                SyncService.ISyncProgressMonitor monitor)

推送单个文件。

参数
local String:本地文件路径。

remote String:远程文件路径。

monitor SyncService.ISyncProgressMonitor:进度监控器。不能为 null。

抛出
SyncException 如果无法推送文件
如果连接出现 I/O 错误,则为 true。
TimeoutException 如果从设备读取响应时发生超时,则返回此值。

statFile

public SyncService.FileStat statFile (String path)

返回远程文件的统计信息。

参数
path String:远程文件

返回
SyncService.FileStat 如果一切顺利,则为包含模式、大小和上次修改信息的文件统计信息;否则为 null

抛出
IOException
TimeoutException 如果从设备读取响应时发生超时,则返回此值。