为什么在Android中执行MacroBenchmark时无法启动特定活动?

mwg9r5ms  于 2023-06-04  发布在  Android
关注(0)|答案(1)|浏览(213)

我写了一个基准测试方法来获得特定活动的基准测试报告。我的计划是先把这部分做好。然后添加其他操作,如单击按钮,并测试帧定时度量如何工作。由于我已经将代码转换为MVVM模式,因此主要目标是与以前的代码进行比较。
书写方法:

@get:Rule
    val benchmarkRule = MacrobenchmarkRule()

    @Test
    fun startupEntryActivity() = benchmarkRule.measureRepeated(
        packageName = "io.demo",
        metrics = listOf(FrameTimingMetric()),
        iterations = 5,
        startupMode = StartupMode.COLD,
    ) {

        pressHome()

        val intent = Intent()
        intent.setPackage("io.demo")
        intent.action = "io.demo.views.splash.SplashIntroSelectionActivity"
        startActivityAndWait(intent)
    }

但在测试中出现了错误。它让我没有任何线索
Error: Activity not started, unable to resolve Intent { act=io.demo.views.splash.SplashIntroSelectionActivity flg=0x10008000 pkg=io.demo }
需要知道哪里做错了或者我做错了

afdcj2ne

afdcj2ne1#

我解决了这个问题,我已经启动了我的browsable deeplink活动,下面的代码片段。您必须设置动作、类别、包和组件(如果不可浏览,则为Intent.CATEGORY_DEFAULT)。希望对你有帮助。

val intent = Intent().apply {
            action = Intent.ACTION_VIEW
            addCategory(Intent.CATEGORY_BROWSABLE)
            setPackage("<package name>")
            component = ComponentName("<package name>","<package>.activity.XYZActivity")
            data = Uri.parse("https://example.com")
        }
        startActivityAndWait(intent)

相关问题