如何通过 adb "warm start" 深度 link 访问
How to "warm start" a deep link visit through adb
我正在编写一个服务,它通过 adb 向 Android 应用程序打开深度 links,如下所示:
adb shell am start -W -a android.intent.action.VIEW -d http://www.example.com/deeplinktest com.example.mjohnst.deeplinktest
以上命令正确运行:
Starting: Intent { act=android.intent.action.VIEW dat=http://www.example.com/... pkg=com.example.mjohnst.deeplinktest }
Status: ok
Activity: com.example.mjohnst.deeplinktest/.MainActivity
ThisTime: 606
TotalTime: 606
WaitTime: 731
Complete
我想做的是让应用程序已经 open/warm 到 任何 视图,并且仍然能够访问深层 link。
如果我在模拟器上打开应用程序并尝试此操作,我会收到此警告:
Warning: Activity not started, its current task has been brought to the front
并且未访问深层 link(应用程序的当前非 link 视图被带到前台)。
有什么方法可以让我通过adb或其他接口在已经打开的应用程序上访问深度link吗?
编辑: 我知道有一个 -s
标志可以在访问之前终止应用程序,但这不是我想要的。我希望热启动能够提高性能
我发现如果您通过非深层链接 activity 启动应用程序,深层链接 "warm" 将起作用。
使用此 adb 命令启动应用程序:
shell am start -a android.intent.action.VIEW -n {packageName}/{activityName}
我正在编写一个服务,它通过 adb 向 Android 应用程序打开深度 links,如下所示:
adb shell am start -W -a android.intent.action.VIEW -d http://www.example.com/deeplinktest com.example.mjohnst.deeplinktest
以上命令正确运行:
Starting: Intent { act=android.intent.action.VIEW dat=http://www.example.com/... pkg=com.example.mjohnst.deeplinktest }
Status: ok
Activity: com.example.mjohnst.deeplinktest/.MainActivity
ThisTime: 606
TotalTime: 606
WaitTime: 731
Complete
我想做的是让应用程序已经 open/warm 到 任何 视图,并且仍然能够访问深层 link。
如果我在模拟器上打开应用程序并尝试此操作,我会收到此警告:
Warning: Activity not started, its current task has been brought to the front
并且未访问深层 link(应用程序的当前非 link 视图被带到前台)。
有什么方法可以让我通过adb或其他接口在已经打开的应用程序上访问深度link吗?
编辑: 我知道有一个 -s
标志可以在访问之前终止应用程序,但这不是我想要的。我希望热启动能够提高性能
我发现如果您通过非深层链接 activity 启动应用程序,深层链接 "warm" 将起作用。
使用此 adb 命令启动应用程序:
shell am start -a android.intent.action.VIEW -n {packageName}/{activityName}