Android:在Monkey中使用类别

时间:2011-10-29 14:08:21

标签: android

如何使用monkey工具的“类别”选项?

我的清单文件的相关部分如下所示:

   <application android:icon="@drawable/icon" android:label="@string/app_name" android:name="MyApp" android:debuggable="true" android:allowBackup="false" android:testOnly="false">
        <activity android:name="MyLauncherActivity" android:label="@string/app_name" android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="MyMainActivity" android:label="@string/app_name" android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="none" />
                <category android:name="android.intent.category.MONKEY" />
            </intent-filter>
        </activity>

我在手机上运行应用程序以确保它正常工作然后我在命令行输入:

adb shell monkey -p my.full.package.path -vvv 3

它运作得很好。

但这不起作用:

adb shell monkey -p my.full.package.path -c intent.CATEGORY_LAUNCHER -vvv 3

并产生以下输出:

:Monkey: seed=0 count=3

:AllowPackage: myapp.full.package.path

:IncludeCategory: intent.CATEGORY_LAUNCHER

// Warning: no activities found for category intent.CATEGORY_LAUNCHER

** No activities found to run, monkey aborted.

尝试某些变体也不起作用:

    :Monkey: seed=0 count=3

:AllowPackage: my.full.package.path

:IncludeCategory: CATEGORY_MONKEY

:IncludeCategory: intent.CATEGORY_MONKEY

:IncludeCategory: android.intent.MONKEY

:IncludeCategory: android.intent.category.MONKEY

:IncludeCategory: MONKEY

// Warning: no activities found for category CATEGORY_MONKEY

// Warning: no activities found for category intent.CATEGORY_MONKEY

// Warning: no activities found for category android.intent.MONKEY

// Warning: no activities found for category MONKEY

** No activities found to run, monkey aborted.

如何指定类别

2 个答案:

答案 0 :(得分:8)

你真的很亲密。这对我有用:

adb shell monkey -p com.JamesBecwar.test -c android.intent.category.LAUNCHER -vvv 3
我认为问题是你需要包含Launcher,因为如果你没有猴子无法启动该程序。不要担心你可以放一个-c param。例如,您可以这样做:

adb shell monkey -p com.JamesBecwar.test -c android.intent.category.LAUNCHER -c android.intent.category.MONKEY -vvv 3

它应该有用。

答案 1 :(得分:0)

据我了解到Monkey源代码可以理解,-c参数代表“ main-category”,它将仅与main-action结合使用。 -c / main-categories条件仅在猴子尝试使用应用程序中的“隐式意图”而非“显式意图”启动应用程序时有效。

<intent-filter>
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.MONKEY" />
</intent-filter>

https://android.googlesource.com/platform/development/+/master/cmds/monkey/src/com/android/commands/monkey/Monkey.java