2011-07-13 9 views

Respuesta

8

Bien, he estado tratando de hacer esto, aquí es lo que he encontrado (gracias a Google y algo de ayuda de los miembros en el Internet)

Aquí es un pequeño programa en Java que utiliza monkeyrunner para imprimir el nombre de la dispositivo

import com.android.monkeyrunner.MonkeyDevice; 
import com.android.monkeyrunner.adb.AdbBackend; 

public class Monk { 

public static void main(String[] args) { 
    // TODO code application logic here 
    Monk monk=new Monk(); 
    monk.demo(); 
} 
public void demo() 
{ 
    AdbBackend ab = new AdbBackend(); 
    MonkeyDevice device = ab.waitForConnection(); 
    //Print Device Name  
    System.out.println(device.getProperty("build.model")); 
    device.dispose(); 
} 

}

para el código anterior también funciona, que tenía que incluir los siguientes frascos monkeyrunner, ddmlib, Jython, guavalib, sdklib.

+1

Aparece un error con el device.getProperty. requerido: org.python.core.PyObject [], java.lang.String [] encontrado: java.lang.String –

+1

debe haber utilizado device.getProperty (PyObject [] de punto de venta, cadena cadenas) en lugar del dispositivo. getProperty (String string) es mi mejor estimación. Por favor, publique su código para que pueda echarle un vistazo – Harkish

+0

He usado SU código ... –

5

Aquí es una actualización de @ respuesta de Harkish que trabaja con lo que suponen que es la versión actual de MonkeyRunner:

import com.android.chimpchat.adb.AdbBackend; 
import com.android.chimpchat.core.IChimpDevice; 

public class MonkeyTest { 
    public static void main(String[] args) { 
     // sdk/platform-tools has to be in PATH env variable in order to find adb 
     IChimpDevice device = new AdbBackend().waitForConnection(); 

     // Print Device Name 
     System.out.println(device.getProperty("build.model")); 

     // Take a snapshot and save to out.png 
     device.takeSnapshot().writeToFile("out.png", null); 

     device.dispose(); 
    } 
} 

Las dependencias de bibliotecas son:

chimpchat.jar, common.jar, ddmlib.jar, guava-13.0.1.jar, sdklib.jar 

Todos ellos pueden ser encontrados en el subdirectorio sdk/tools/lib del paquete ADT.

3

Estoy brincando para proporcionar otra respuesta actualizada. Esto es lo que un desarrollador de Google también aconsejó. Creo que es una implementación más sólida y utiliza más métodos a prueba de fallas.

import java.util.Map; 
import java.util.TreeMap; 
import com.android.chimpchat.ChimpChat; 
import com.android.chimpchat.core.IChimpDevice; 


public class MonkeyRunnerTest { 

private static final String ADB = "/path-to-your-sdk/sdk/platform-tools/adb"; 
private static final long TIMEOUT = 5000; 

/** 
* @param args 
*/ 
public static void main(String[] args) { 

     Map<String, String> options = new TreeMap<String, String>(); 
     options.put("backend", "adb"); 
     //this is so you don't need to add adb or platform-tools to your system path 
     options.put("adbLocation", ADB); 
     ChimpChat chimpchat = ChimpChat.getInstance(options); 
     //Using this method is advised as to avoid hangs,as this would wait indefinitely 
     //Actually waitForConnection() doesn't wait indefinitely but for Integer.MAX_VALUE milliseconds, which still makes up for 596 hours 
     IChimpDevice device = chimpchat.waitForConnection(TIMEOUT, ".*"); 
     chimpchat.shutdown(); 
    } 
    } 

Puede ver todas las propiedades dispositivos con:

for (String prop: device.getPropertyList()) { 
    System.out.println(prop + ": " + device.getProperty(prop)); 
} 

Para obtener información sobre las API que puede buscar en la documentación aquí: monkey runner api classes

1

Sólo para complementar la gran respuesta de ValarDohaeris, aquí están las dependencias actuales en formato maven:

<properties> 
    <com.android.tools.version>24.3.1</com.android.tools.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>net.sf.sociaal</groupId> 
     <artifactId>chimpchat</artifactId> 
     <version>22.6.3</version> 
    </dependency> 

    <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>18.0</version> 
    </dependency> 

    <dependency> 
     <groupId>com.android.tools</groupId> 
     <artifactId>sdklib</artifactId> 
     <version>${com.android.tools.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>com.android.tools</groupId> 
     <artifactId>common</artifactId> 
     <version>${com.android.tools.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>com.android.tools</groupId> 
     <artifactId>sdk-common</artifactId> 
     <version>${com.android.tools.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>com.android.tools.ddms</groupId> 
     <artifactId>ddmlib</artifactId> 
     <version>${com.android.tools.version}</version> 
    </dependency> 
</dependencies> 
+0

? Actualmente, la lib más actualizada parece ser https://mvnrepository.com/artifact/net.sf.jali/jali-adm/1.0.7 – Ajax

Cuestiones relacionadas