有人用 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-aspject-j 插件https://github.com/uPhyca/gradle-android-aspectj-plugin
我所做的是创建一个新的构建类型(monkeytalk),将monkeytalk 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"))
}
我还为猴子谈话构建类型添加了一个 AndroidManifest.xml 文件,它添加了所需的权限,即 GET_TASKS 和 INTERNET
有关完整的示例应用程序,请查看此 github 存储库 https://github.com/georgepapas/android-gradle-monkey-talk-demo/
MonkeyTalk(从 2.0.1 版开始)现在已经发布了工具,可以使用独立于任何 IDE 的 MonkeyTalk “检测”您已经构建的常规 apk。在 OS X 中完成此检测过程的步骤:
1.下载MonkeyTalk 2.0.1 Pro Beta
2.在桌面上创建一个新的空文件夹,标题为“example”或任何你喜欢的
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. 在“example”目录中创建一个名为 build.xml 的新文件,并填写以下内容:
<?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.打开终端并 cd 进入您的“示例”目录
8.发出指令ant instru -lib monkeytalkpro-ant-2.0.1.beta.jar
9.该命令应该运行,然后在您的“示例”目录中生成一个与monkeytalk兼容的apk,标题为“myapp-post-instrumented.apk”
警告:似乎存在一个错误,检测过程还将在您的“示例”目录中放置另一个文件,标题为“myapp-instrumented.apk”,但该文件将为空。因此,请确保您的目标文件在您的 build.xml 文件中没有标题为“myapp-instrumented.apk”,否则这个空文件将覆盖您的 monkeytalk 兼容文件。
Android Studio 是基于 Intellij 社区版构建的,据我所知,它没有内置 AspectJ 支持。
您可以尝试添加Intellij AspectJ 插件- 看起来这应该可以在 Android Studio 中设置 AspectJ,尽管我实际上还没有尝试让 MonkeyTalk 使用它。
如果您的 Android Studio 项目是 Maven 类型,那么您需要做的就是添加一些 AspectJ 依赖项、MonkeyTalk-Agent 依赖项并使用这些依赖项的配置制作 maven 配置文件。
首先,您需要使用 MonkeyTalk-Agent for Android 将之前下载的(可在此处获得)jar 文件部署到本地 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>
下一步是创建可以在构建期间添加 MonekyTalk 的 maven 配置文件:
<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 与您的应用程序连接。