Android Studio and MonkeyTalk?



是否有人成功设置MonkeyTalk与Android Studio?

我在这一点上的主要问题是我没有看到一个方法来设置java编译器为aspectj

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

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

感谢任何建议!

我发现一个很好的方法是使用android- grad- 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"))
}

我还为monkey talk构建类型添加了AndroidManifest.xml文件,其中添加了所需的权限,即GET_TASKS和INTERNET

要获得完整的示例应用程序,请查看这个github repohttps://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。在桌面上新建一个名为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放入"example"目录

8。发布命令ant instru -lib monkeytalkpro-ant-2.0.1.beta.jar

9。该命令应该运行,然后在您的"example"目录下生成一个monkeytalk兼容的apk,标题为"myapp-post-instrumented.apk"

警告:似乎有一个错误,检测过程也会在你的"示例"目录下放置另一个名为"myapp-instrumented.apk"的文件,但这个文件将是空的。因此,请确保您的目标文件在build.xml文件中标题不是"myapp-instrumented.apk",否则此空文件将覆盖您的monkeytalk兼容文件。

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

你可以尝试添加Intellij AspectJ插件-看起来这应该可以在Android Studio中设置AspectJ,尽管我还没有真正尝试让MonkeyTalk使用这个工作

如果你的Android Studio项目是Maven类型的,那么你所需要做的就是添加一些AspectJ依赖项,MonkeyTalk-Agent依赖项,并为这些依赖项创建Maven配置文件。

首先,你需要部署之前下载的jar文件MonkeyTalk-Agent for 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连接您的应用程序。

相关内容

  • 没有找到相关文章

最新更新