Беги обезьяна из явы - PullRequest
       8

Беги обезьяна из явы

3 голосов
/ 29 декабря 2011

У меня есть этот скрипт в файле script.txt

И я запускаю это так

monkeyrunner /home/user/script.txt

это мой скрипт.txt

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
import time

device = MonkeyRunner.waitForConnection("wait forever","emulator-5554")

package = 'com.pak.pak1'

activity = 'com.pak.pak1.MyActivity'

runComponent = package + '/' + activity

#     Runs the component
device.startActivity(component=runComponent)

time.sleep(1)

Что я хочу сделать, это запустить скрипт из Java

Этот код запускает команду оболочки, например, для srart скрипта

 try {
        new Thread() {
            public void run() {
                Process p;
                try {
                    p = Runtime.getRuntime().exec("monkeyrunner /home/user/script.txt");

                    BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
                    String line;
                    while ((line = br.readLine()) != null) {

                        System.out.println(line);

                    }
                    br.close();

                    p.waitFor();
                } catch (Exception e) {
                    //e.printStackTrace();
                }
            }
        }.start();
    } catch (Exception ie) {

    }

И, наконец, вопрос в том, как я могу напрямую из java запускать команды бегуна обезьян, я не хочу иметь файл script.txt. Это возможно ? Моя цель - запустить бегуна обезьян, но я не хочу иметь файл script.txt

Ответы [ 2 ]

1 голос
/ 21 июля 2012

Очевидно, что если вы включите MonkeyRunner chimpchat.jar (и его jar-зависимости) в ваш путь к классам, то вы можете вызывать Java-классы бегуна-обезьяны прямо внутри вашего Java-приложения.Посмотрите этот класс и этот класс , которые составляют пример:

Другой поток на эту тему

0 голосов
/ 06 февраля 2012

Это выглядит очень сложно, но все же .. monkeyrunner может работать в интерактивном режиме, поэтому пишите напрямую в stdin (получите его из p.getOutputStream()) все строки, которые вы хотите, чтобы он запускал.stdout перед выполнением какой-либо команды, но я не думаю, что это будет так.

...