diff options
Diffstat (limited to 'hierarchyviewer2')
2 files changed, 50 insertions, 2 deletions
diff --git a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/HierarchyViewerDirector.java b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/HierarchyViewerDirector.java index 63b30c0..f397b1f 100644 --- a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/HierarchyViewerDirector.java +++ b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/HierarchyViewerDirector.java @@ -17,6 +17,7 @@ package com.android.hierarchyviewerlib; import com.android.ddmlib.AdbCommandRejectedException; +import com.android.ddmlib.AndroidDebugBridge; import com.android.ddmlib.IDevice; import com.android.ddmlib.Log; import com.android.ddmlib.RawImage; @@ -88,6 +89,21 @@ public abstract class HierarchyViewerDirector implements IDeviceChangeListener, return sDirector; } + /** + * Init the DeviceBridge with an existing {@link AndroidDebugBridge}. This loops until + * a bridge exists or a timeout is reached. + */ + public boolean acquireBridge() { + return DeviceBridge.acquireBridge(); + } + + /** + * Creates an {@link AndroidDebugBridge} connected to adb at the given location. + * + * If a bridge is already running, this disconnects it and creates a new one. + * + * @param adbLocation the location to adb. + */ public void initDebugBridge() { DeviceBridge.initDebugBridge(getAdbLocation()); } @@ -633,7 +649,7 @@ public abstract class HierarchyViewerDirector implements IDeviceChangeListener, } } } - + public void setPixelPerfectAutoRefreshInterval(int value) { synchronized (mPixelPerfectRefreshTimer) { if (mPixelPerfectAutoRefreshInterval == value) { diff --git a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/DeviceBridge.java b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/DeviceBridge.java index 20feeec..74fbc13 100644 --- a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/DeviceBridge.java +++ b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/DeviceBridge.java @@ -80,6 +80,37 @@ public class DeviceBridge { } } + /** + * Init the DeviceBridge with an existing {@link AndroidDebugBridge}. This loops until + * a bridge exists or a timeout is reached. + */ + public static boolean acquireBridge() { + int count = 10; + do { + sBridge = AndroidDebugBridge.getBridge(); + if (sBridge == null) { + try { + Thread.sleep(500); + count--; + if (count == 0) { + return false; + } + } catch (InterruptedException e) { + // pass + } + } + } while (sBridge == null); + + return true; + } + + /** + * Creates an {@link AndroidDebugBridge} connected to adb at the given location. + * + * If a bridge is already running, this disconnects it and creates a new one. + * + * @param adbLocation the location to adb. + */ public static void initDebugBridge(String adbLocation) { if (sBridge == null) { AndroidDebugBridge.init(false /* debugger support */); @@ -89,6 +120,7 @@ public class DeviceBridge { } } + /** Disconnects the current {@link AndroidDebugBridge}. */ public static void terminate() { AndroidDebugBridge.terminate(); } @@ -117,7 +149,7 @@ public class DeviceBridge { * <p/> * This starts a port forwarding between a local port and a port on the * device. - * + * * @param device */ public static void setupDeviceForward(IDevice device) { |