Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅在子活动中使用Monkey(android调试)_Android_Categories_Intentfilter_Subactivity_Monkey - Fatal编程技术网

仅在子活动中使用Monkey(android调试)

仅在子活动中使用Monkey(android调试),android,categories,intentfilter,subactivity,monkey,Android,Categories,Intentfilter,Subactivity,Monkey,我正在尝试使用Monkey debuggin工具(来自adb)对应用程序的一部分进行压力测试。 由于Monkey的行为完全是随机的,所以我希望它将注意力集中在可能包含我正在寻找的错误的代码部分(非常罕见的错误,我不知道如何复制它) 所以,在我的主要活动中,我有6个按钮,每个按钮启动一个新的活动。我想设置monkey只查看其中一个活动,并且每个活动都可以从中访问。我找不到一个合理的方法来做这件事 我已经试过了 adb shell monkey-p my.package.name-c android

我正在尝试使用Monkey debuggin工具(来自adb)对应用程序的一部分进行压力测试。 由于Monkey的行为完全是随机的,所以我希望它将注意力集中在可能包含我正在寻找的错误的代码部分(非常罕见的错误,我不知道如何复制它)

所以,在我的主要活动中,我有6个按钮,每个按钮启动一个新的活动。我想设置monkey只查看其中一个活动,并且每个活动都可以从中访问。我找不到一个合理的方法来做这件事

我已经试过了
adb shell monkey-p my.package.name-c android.intent.category.monkey 1000

在我的清单文件中,我加入了一些我感兴趣的活动:

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

但它不起作用。Monkey仍会激发未按此标记分类的活动。 Monkey在选定的子活动中工作是至关重要的,因为它浪费了大约95%的时间在我的应用程序中漫游,超出了我真正想要测试的子活动

我还尝试了一些简单的脚本来启动所需的子活动,但没有成功

正在寻求帮助,
干杯,

kajman

我在用类别约束猴子方面也遇到了一些问题。我认为它不打算像你想象的那样工作。那么它是如何工作的呢?我不清楚,只是在试验。文件很差

对于你的问题,你可以考虑以下方法

  • 将您的子活动放在一个子包下,并使用-p选项仅允许访问该子包
  • 在代码中添加一些限制,以防止在应用程序内导航。例如,当满足某些特定条件时,将onClickListeners设置为不执行任何操作或禁用测试中活动的后退按钮
  • 请注意,您可以使用以启动所需的子活动。同样糟糕的文档,没有示例,但action是您在AndroidManifest中为活动的意图过滤器中定义的action的名称。例如,Name是活动名称

    adb shell am start -a my.package.app.ACTION1 -n my.package.app/.sub.MyActivity
    

    我知道有点晚了,但这里有一种更健壮的方法-使用如下代码:

    ActivityManager activityManager;
    activityManager =  (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
    
    if(!activityManager.isUserAMonkey()) {
        //stuff you want to execute anywhere but monkey test
    });