Android Studio и MonkeyTalk?

Кто-нибудь успешно настроил MonkeyTalk с Android Studio?

Моя главная проблема на данный момент заключается в том, что я не вижу способа установить компилятор Java в аспект

Я считаю, что есть какой-то способ сделать это в custom_rules.xml, но я еще не видел, как это сделать.

Это может привести к, возможно, несвязанной проблеме, но в последней версии Android Studio, которую я использую (0.1.1), я не вижу способа запустить сборку муравьев из Android Studio.

Любые предложения приветствуются!

4 ответа

Подход, который я нашел, работает хорошо для использования плагина android-gradle-aspject-j, найденного здесь https://github.com/uPhyca/gradle-android-aspectj-plugin

Что я сделал, так это создал новый тип сборки (monkeytalk), включил jark talk jar в качестве зависимости компиляции только для этого типа сборки и применил вышеупомянутый плагин aspectj. Это гарантирует, что переплетение разговоров обезьян происходит для типа сборки разговоров обезьян.

Вот фрагмент того, как выглядит моя сборка xml

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.uphyca.gradle:gradle-android-aspectj-plugin:0.9.5'
  }
}
apply plugin: 'com.android.application'
apply plugin: 'android-aspectj'

android {
  buildTypes {
    monkeytalk.initWith(buildTypes.debug)
    monkeytalk {
      applicationIdSuffix ".monkey"
    }
  }
}

dependencies {
  monkeytalkCompile(files("monkey-talk/monkeytalk-agent-2.0.5.jar"))
}

Я также добавил файл AndroidManifest.xml для типов сборки Monkey Talk, который добавляет необходимые разрешения, например, GET_TASKS и INTERNET.

Чтобы ознакомиться с полным примером приложения, посмотрите этот репозиторий на github https://github.com/georgepapas/android-gradle-monkey-talk-demo/

MonkeyTalk (начиная с версии 2.0.1) выпустил инструменты для "инструментов" вашего уже построенного обычного apk с MonkeyTalk независимо от какой-либо IDE. Шаги для завершения этого процесса инструментария в OS X:

1. Загрузите MonkeyTalk 2.0.1 Pro Beta

2. Создайте новую пустую папку на рабочем столе под названием "пример" или что угодно.

3. Скопируйте monkeytalkpro/agents/android/monkeytalk-agent-2.0.1.jar в каталог "example"

4. Скопируйте monkeytalkpro/ant/monkeytalkpro-ant-2.0.1.beta.jar в каталог "example"

5. Скопируйте ваш apk-файл в каталог "example" (в данном примере с именем myapp.apk).

6. Создайте новый файл с именем build.xml в каталоге "example" и заполните его следующим текстом:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:mt="antlib:com.gorillalogic.monkeytalk.ant">

    <target name="instru">
        <mt:instrument
            srcfile="myapp.apk"
            destfile="myapp-post-instrumented.apk"
            agent="monkeytalk-agent-2.0.1.jar"
            androidsdk="/path/to/your/sdk"
            androidtarget="android-17"
            log="log.txt"
            verbose="true" />
        </target>

</project>

7. Откройте терминал и перейдите в каталог "example"

Команда 8.Issue ant instru -lib monkeytalkpro-ant-2.0.1.beta.jar

9. Команда должна запуститься, а затем создать совместимый с monkeytalk apk в вашем каталоге "example" с названием "myapp-post-instrumented.apk"

ВНИМАНИЕ: Кажется, есть ошибка, когда процесс инструментария также поместит другой файл в ваш каталог "example" под названием "myapp-instrumented.apk", но этот файл будет пустым. Поэтому убедитесь, что ваш файл назначения не называется "myapp-instrumented.apk" в вашем файле build.xml, иначе этот пустой файл перезапишет ваш файл, совместимый с monkeytalk.

Android-студия построена из версии сообщества Intellij, которая, насколько мне известно, не имеет встроенной поддержки AspectJ.

Вы можете попробовать добавить плагин Intellij AspectJ - похоже, это должно позволить установить AspectJ в Android Studio, хотя на самом деле я еще не пытался заставить MonkeyTalk работать с этим.

Если ваш проект Android Studio имеет тип Maven, то все, что вам нужно сделать, это добавить некоторые зависимости AspectJ, зависимость MonkeyTalk-Agent и создать профиль maven с настройкой для этих зависимостей.

Сначала вам нужно будет развернуть загруженный ранее (доступный здесь) файл jar с MonkeyTalk-Agent для Android на локальное хранилище Maven. Если у вас есть правильная конфигурация maven, вы можете сделать это с помощью следующей команды:

mvn install:install-file -Dfile=monkeytalk-agent-2.0.4.jar -DgroupId="com.gorillalogic.monkeytalk" -DartifactId="monkeytalk-agent" -Dversion="2.0.4" -Dpackaging="jar" 

Когда вы успешно завершите эту часть, вы можете отредактировать существующий POM-файл вашего проекта и добавить следующее в зависимости вашего проекта:

        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.6.2</version>
        </dependency>

        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
            <version>1.6.2</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>com.gorillalogic.monkeytalk</groupId>
            <artifactId>monkeytalk-agent</artifactId>
            <version>2.0.4</version>
        </dependency>

Следующим шагом является создание профиля maven, который может добавить MonekyTalk во время сборки:

<profile>
        <id>monkeytalk</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>aspectj-maven-plugin</artifactId>
                    <version>1.4</version>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                        <aspectLibraries>
                            <aspectLibrary>
                                <groupId>com.gorillalogic.monkeytalk</groupId>
                                <artifactId>monkeytalk-agent</artifactId>
                            </aspectLibrary>
                        </aspectLibraries>
                        <showWeaveInfo>true</showWeaveInfo>
                        <verbose>true</verbose>
                        <Xlint>ignore</Xlint>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>compile</goal>
                                <goal>test-compile</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>

Следующим шагом является редактирование файла манифеста вашего приложения, дающего следующее разрешение:

<!-- Monkeytalk permission -->
<uses-permission android:name="android.permission.GET_TASKS"/>

Теперь ваш проект настроен и готов к сборке приложения MonkeyTalk. Для этого вам просто нужно использовать во время процесса сборки проекта maven ваш новый профиль monkeytalk. Пример использования в командной строке:

clean install android:deploy android:run -Pmonkeytalk

Теперь вы можете подключиться к приложению через MonkeyTalk IDE, которое доступно здесь.

Другие вопросы по тегам