8

有人用 Android Studio 成功设置了 MonkeyTalk 吗?

此时我的主要问题是我没有看到将java编译器设置为aspectj的方法

我相信在 custom_rules.xml 中有一些方法可以做到这一点,但我还没有看到如何做到这一点。

这会导致一个可能不相关的问题,但是在我使用的最新版本的 Android Studio (0.1.1) 中,我看不到从 Android Studio 内部运行 ant 构建的方法。

任何建议表示赞赏!

4

4 回答 4

6

我发现一个很好的方法是使用这里找到的 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/

于 2014-07-13T07:40:18.453 回答
3

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 兼容文件。

于 2014-02-07T20:46:43.013 回答
1

Android Studio 是基于 Intellij 社区版构建的,据我所知,它没有内置 AspectJ 支持。

您可以尝试添加Intellij AspectJ 插件- 看起来这应该可以在 Android Studio 中设置 AspectJ,尽管我实际上还没有尝试让 MonkeyTalk 使用它。

于 2013-05-30T16:25:12.497 回答
0

如果您的 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 与您的应用程序连接。

于 2014-05-08T14:55:04.887 回答