Android:HOST END:ddmlib:如何通过ddmlib.jar在设备上运行应用程序

时间:2012-04-29 17:34:23

标签: android

package com.android.ddmlib.use;

import com.android.ddmlib.AndroidDebugBridge;
import com.android.ddmlib.Client;
import com.android.ddmlib.IDevice;
import com.android.hierarchyviewer.device.DeviceBridge;

public class DDMlibUse implements AndroidDebugBridge.IDeviceChangeListener, AndroidDebugBridge.IClientChangeListener{

 public static void main(String args[]) {

       DDMlibUse mlibUse = new DDMlibUse();

       AndroidDebugBridge.init(true);
       AndroidDebugBridge adb = AndroidDebugBridge.createBridge("adb",
                                false);
       adb.addClientChangeListener(mlibUse);
       adb.addDeviceChangeListener(mlibUse);
       for (;;) {

       }
 }

@Override
public void deviceConnected(IDevice dev) {
    // TODO Auto-generated method stub
    System.out.print("deviceConnected ... \n");
    System.out.print(dev.toString() + "\n");
    System.out.print(dev.getState() + "\n");
    System.out.println(dev.getClients().length);

}

@Override
public void deviceDisconnected(IDevice dev) {
    // TODO Auto-generated method stub
    System.out.print("deviceDisconnected ... \n");
    DeviceBridge.removeDeviceForward(dev);

}

@Override
public void deviceChanged(IDevice dev, int changeMask) {
    // TODO Auto-generated method stub
    System.out.print("deviceChanged ... \n");
    System.out.print(dev.toString() + "\n");
    System.out.print(dev.getState() + "\n");
    System.out.println(dev.getClients().length + "\n");
    System.out.println("changeMask " + changeMask + "\n");

}

@Override
public void clientChanged(Client client, int change_code) {
    // TODO Auto-generated method stub
    System.out.print("clientChanged ... \n");

}

}

结果是Device是ON_LINE但是调用getClients方法只返回Client的数组[0]。我无法得到任何客户 另一件事是当我在设备上启动一个新的应用程序时,我永远不会将“changeMask”变为IDevice.CHANGE_CLIENT_LIST

你能帮帮我吗?多谢 我的目的是让设备上的哪个活动就像Hierarchyviewer和DDMS那样。

0 个答案:

没有答案
相关问题