Android Studio y Monkey Talk?
ant aspectj (4)
¿Alguien ha configurado con éxito MonkeyTalk con Android Studio?
Mi principal problema en este momento es que no veo una manera de configurar el compilador java en aspectj
Creo que hay alguna forma de hacerlo en custom_rules.xml, pero todavía no he visto cómo hacerlo.
Esto lleva a un problema tal vez no relacionado, pero en la versión más reciente de Android Studio que estoy usando (0.1.1), no veo una manera de ejecutar una compilación de ant desde Android Studio.
Cualquier sugerencia apreciada!
El estudio de Android se basa en la edición de comunidad Intellij, que, hasta donde sé, no tiene integrado el soporte de AspectJ.
Podría intentar agregar el complemento Intellij AspectJ : parece que esto debería permitir configurar AspectJ en Android Studio, aunque todavía no he intentado que MonkeyTalk trabaje con esto.
MonkeyTalk (a partir de la versión 2.0.1) ahora ha lanzado herramientas para "instrumentar" tu apk normal ya construida con MonkeyTalk independientemente de cualquier IDE. Pasos para completar este proceso de instrumentación en OS X:
1. Descargar MonkeyTalk 2.0.1 Pro Beta
2. Crea una nueva carpeta vacía en el escritorio titulada "ejemplo" o lo que quieras
3.Copie monkeytalkpro / agents / android / monkeytalk-agent-2.0.1.jar en el directorio "ejemplo"
4.Copie monkeytalkpro / ant / monkeytalkpro-ant-2.0.1.beta.jar en el directorio "ejemplo"
5. Copie su archivo apk en el directorio "ejemplo" (llamado myapp.apk para este ejemplo)
6. Cree un nuevo archivo llamado build.xml en el directorio "ejemplo" y llénelo con lo siguiente:
<?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. Abre el terminal y el cd en tu directorio "de ejemplo"
8.Issue command ant instru -lib monkeytalkpro-ant-2.0.1.beta.jar
9. El comando debería ejecutarse y luego producir una aplicación compatible con monkeytalk en su directorio "ejemplo" titulado "myapp-post-instrumented.apk"
ADVERTENCIA: Parece haber un error donde el proceso de instrumentación también colocará otro archivo en su directorio "ejemplo" titulado "myapp-instrumented.apk", pero este archivo estará vacío. Así que asegúrese de que su archivo de destino no tenga el título "myapp-instrumented.apk" en su archivo build.xml o este archivo vacío sobrescribirá su archivo compatible con monkeytalk.
Si su proyecto de Android Studio es de tipo Maven, entonces todo lo que necesita hacer es agregar algunas dependencias de AspectJ, dependencia de MonkeyTalk-Agent y crear un perfil de administrador con la configuración para esas dependencias.
Al principio deberá desplegar previamente el archivo jar descargado (disponible aquí ) con MonkeyTalk-Agent para Android a su repositorio Maven local. Si tienes la configuración adecuada de maven, puedes hacerlo con el siguiente comando:
mvn install:install-file -Dfile=monkeytalk-agent-2.0.4.jar -DgroupId="com.gorillalogic.monkeytalk" -DartifactId="monkeytalk-agent" -Dversion="2.0.4" -Dpackaging="jar"
Cuando completa con éxito esta parte, puede editar el archivo POM existente de su proyecto y agregar lo siguiente a las dependencias de su proyecto:
<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>
El siguiente paso es crear un perfil de administrador que pueda agregar MonekyTalk durante la compilación:
<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>
El siguiente paso es editar el archivo de manifiesto de su aplicación con el siguiente permiso:
<!-- Monkeytalk permission -->
<uses-permission android:name="android.permission.GET_TASKS"/>
Ahora tu proyecto está configurado y listo para hacer que la aplicación MonkeyTalk se construya. Para esto solo debes usar durante el proceso de construcción del proyecto tu nuevo perfil de monkeytalk . Ejemplo de uso en línea de comando:
clean install android:deploy android:run -Pmonkeytalk
Ahora puede conectarse con su aplicación a través de MonkeyTalk IDE disponible aquí .
Un enfoque que he encontrado que funciona bien es usar el complemento android-gradle-aspject-j que se encuentra aquí https://github.com/uPhyca/gradle-android-aspectj-plugin
Lo que he hecho es crear un nuevo tipo de compilación (monkeytalk), incluido el jar de mono hablar como una dependencia de compilación para solo este tipo de compilación y he aplicado el complemento aspectj mencionado anteriormente. Esto asegura que el tejido de habla mono se produce para el tipo de construcción de mono habla.
Aquí hay un fragmento de cómo se ve mi build 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"))
}
También agregué un archivo AndroidManifest.xml para los tipos de compilación de mono que agrega los permisos necesarios, es decir, GET_TASKS e INTERNET
Para ver una aplicación de muestra completa, eche un vistazo a este repositorio de github https://github.com/georgepapas/android-gradle-monkey-talk-demo/