有人成功地在Android Studio中设置了MonkeyTalk吗?
目前我的主要问题是我不知道如何将Java编译器设置为aspectj。
我相信在custom_rules.xml中有一些方法可以实现这一点,但我还没有找到如何实现。
这可能会导致一个不相关的问题,在我使用的最新版本的Android Studio(0.1.1)中,我无法在Android Studio内运行ant构建。
任何建议都将不胜感激!
有人成功地在Android Studio中设置了MonkeyTalk吗?
目前我的主要问题是我不知道如何将Java编译器设置为aspectj。
我相信在custom_rules.xml中有一些方法可以实现这一点,但我还没有找到如何实现。
这可能会导致一个不相关的问题,在我使用的最新版本的Android Studio(0.1.1)中,我无法在Android Studio内运行ant构建。
任何建议都将不胜感激!
我的一种有效方法是使用android-gradle-aspectj插件,在这里可以找到https://github.com/uPhyca/gradle-android-aspectj-plugin
我所做的是创建一个新的构建类型(monkeytalk),仅将monkey talk jar作为编译依赖项包含在此构建类型中,并应用上述提到的aspectj插件。这确保了monkey talk纺织品仅发生在monkey talk构建类型中。
以下是我的构建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"))
}
<?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.发出命令 ant instru -lib monkeytalkpro-ant-2.0.1.beta.jar
9.该命令应该运行,然后在您的 "example" 目录中生成一个兼容 monkeytalk 的 apk 文件,名为 "myapp-post-instrumented.apk"
警告:似乎存在一个错误,即检测过程还会在您的“example”目录中放置另一个名为“myapp-instrumented.apk”的文件,但是该文件将为空。因此,请确保您的目标文件不要在 build.xml 文件中命名为“myapp-instrumented.apk”,否则该空文件将覆盖您的兼容 monkeytalk 的文件。
Android Studio是基于Intellij社区版构建的,据我所知,它没有内置AspectJ支持。
您可以尝试添加Intellij AspectJ插件 - 看起来这应该使在Android Studio中设置AspectJ成为可能,尽管我尚未尝试使用它来使MonkeyTalk工作。
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>
<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(这里)连接你的应用程序。