2011-07-13 19 views

Odpowiedz

8

Więc staram się to zrobić, oto co znalazłem (dzięki Google i pomocy ze strony członków w Internecie)

Oto mały program Java, który używa monkeyrunner wydrukować nazwę urządzenie

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(); 
} 

}

w powyższym kodu za działa, musi uwzględniać następujące słoiki monkeyrunner, ddmlib, jython, guavalib, sdklib.

+1

Otrzymuję błąd z device.getProperty. wymagane: org.python.core.PyObject [], java.lang.String [] znalezione: java.lang.String –

+1

musisz użyć device.getProperty (PyObject [] pos, ciągi znaków) zamiast urządzenia. getProperty (String string) to moje najlepsze przypuszczenie. Proszę napisać kod ur, żeby móc go obejrzeć – Harkish

+0

Użyłem twojego kodu ... –

5

Oto aktualizacja @ odpowiedź Harkish, która współpracuje z co zakładam być obecna wersja 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(); 
    } 
} 

Zależności bibliotek są:

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

Mogą je znaleźć w podkatalogu pakietu ADT o numerze sdk/tools/lib.

3

Wskakuję, aby zapewnić kolejną zaktualizowaną odpowiedź. To jest to, co polecił również programista google. Myślę, że jest to bardziej solidna implementacja i używa bardziej odpornych na awarie metod.

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(); 
    } 
    } 

można zobaczyć wszystkie właściwości urządzeń z:

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

Więcej informacji na temat API Możesz zajrzeć tutaj docs: monkey runner api classes

1

Wystarczy uzupełnić wielką odpowiedź od ValarDohaeris, tutaj są obecne zależności w formacie 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

Obecnie najbardziej aktualną biblioteką wydaje się być https://mvnrepository.com/artifact/net.sf.jali/jali-adm/1.0.7 – Ajax

Powiązane problemy