Android 免安装应用:如何调试免安装应用?
Android Instant Apps: How to debug an instant app?
当我在 Android Studio 上调试即时应用程序时,调试器附加到即时应用程序进程并在大多数断点处暂停执行。然而,它似乎忽略了我的主要 activity 的 onCreate 方法中的断点。我试过 "Debug" 和 "Attach Debugger to Android Process" 选项。我错过了什么?
有关如何使用 Android Studio 调试器调试 Android 应用程序的基本信息,请访问 Developer Documentation Debug Your App
.
Android Studio 调试器在调试免安装应用程序时大部分时间 正常工作。但是,您会注意到调试器将无法在设备 运行 Android N 及以下的应用程序生命周期早期的断点处停止(例如 Application.onCreate
或 Activity.onCreate
)。
当您的免安装应用启动并且 运行 时,它会在您应用的程序包名称下运行。但是,在应用程序启动过程中有一小段时间以临时包名运行,形式如下:
com.google.android.instantapps.supervisor.isolated[0-9]+
此临时名称由运行时分配。因为 Android Studio 不知道这个名称,所以调试器不会附加到这个进程。
解决方法是找出这个临时名称并使用 adb
将应用程序设置为调试。这可以通过 运行 在终端中 运行 您的应用程序之前的以下命令来完成。它会在您的应用启动时打印出名称。
=> adb shell 'while true; do ps | grep com.google.android.instantapps.supervisor.isolated; sleep 1; done'
u0_i6 31908 630 1121664 29888 0 00ea57eed4 R com.google.android.instantapps.supervisor.isolated15
确定包名称后,使用以下命令暂停并使您的免安装应用进程等待调试器。然后正常附加调试器,但通过单击“显示所有进程”在选择进程 window 中选择临时进程名称。
=> adb shell am set-debug-app -w --persistent com.google.android.instantapps.supervisor.isolated15
我最近在调试即时应用程序时也遇到了问题。
有多个日志消息
"Waiting for application to start debug server"
在调试中window并经过多次重试
"Could not connect to remote process. Aborting debug session."
我解决问题的方法是
通过使用 Android studio "Run" 菜单中的“Attach To Process” 选项。
当我在 Android Studio 上调试即时应用程序时,调试器附加到即时应用程序进程并在大多数断点处暂停执行。然而,它似乎忽略了我的主要 activity 的 onCreate 方法中的断点。我试过 "Debug" 和 "Attach Debugger to Android Process" 选项。我错过了什么?
有关如何使用 Android Studio 调试器调试 Android 应用程序的基本信息,请访问 Developer Documentation Debug Your App .
Android Studio 调试器在调试免安装应用程序时大部分时间 正常工作。但是,您会注意到调试器将无法在设备 运行 Android N 及以下的应用程序生命周期早期的断点处停止(例如 Application.onCreate
或 Activity.onCreate
)。
当您的免安装应用启动并且 运行 时,它会在您应用的程序包名称下运行。但是,在应用程序启动过程中有一小段时间以临时包名运行,形式如下:
com.google.android.instantapps.supervisor.isolated[0-9]+
此临时名称由运行时分配。因为 Android Studio 不知道这个名称,所以调试器不会附加到这个进程。
解决方法是找出这个临时名称并使用 adb
将应用程序设置为调试。这可以通过 运行 在终端中 运行 您的应用程序之前的以下命令来完成。它会在您的应用启动时打印出名称。
=> adb shell 'while true; do ps | grep com.google.android.instantapps.supervisor.isolated; sleep 1; done'
u0_i6 31908 630 1121664 29888 0 00ea57eed4 R com.google.android.instantapps.supervisor.isolated15
确定包名称后,使用以下命令暂停并使您的免安装应用进程等待调试器。然后正常附加调试器,但通过单击“显示所有进程”在选择进程 window 中选择临时进程名称。
=> adb shell am set-debug-app -w --persistent com.google.android.instantapps.supervisor.isolated15
我最近在调试即时应用程序时也遇到了问题。 有多个日志消息
"Waiting for application to start debug server"
在调试中window并经过多次重试
"Could not connect to remote process. Aborting debug session."
我解决问题的方法是 通过使用 Android studio "Run" 菜单中的“Attach To Process” 选项。