解决新版本android studio断点调试debug卡慢问题

1、本人使用的是以下android studio版本

Android Studio Koala Feature Drop | 2024.1.2
Build #AI-241.18034.62.2412.12266719, built on August 23, 2024
Runtime version: 17.0.11+0--11852314 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 5120M
Cores: 12
Registry:
  ide.instant.shutdown=false


2、问题:在使用默认断点调试功能时,发现严重卡顿,甚至无法连接上手机。

卡顿原因是debug默认模式是整个APP包括dual(java+native) ,如果你的项目里有C++代码,会自动选择这个混合模式,调试java+native会导致非常严重的卡顿,这个是android studio高版本的bug,目前没看到解决。因此我们平时开发只需要用java,没必要调试native,所以我们需要修改配置

3、解决办法,修改配置 use android debugger setttings from

3.1  从默认的app修改为use default settings

3.2 再选择debugType,选择 java only

最终配置如下,这样最终解决问题。

4、解决原理

来自谷歌官方文档的解决文案  https://developer.android.com/studio/debug?hl=zh-cn

配置选项解释如下

  • Detect Automatically

如果您希望 Android Studio 自动为您要调试的代码选择最合适的选项,请选择此调试类型。例如,如果您的项目包含任何 C 或 C++ 代码,Android Studio 会自动使用“Dual”调试类型。否则,Android Studio 会使用“Java-Only”调试类型。

  • Java Only

如果您只想调试使用 Java 或 Kotlin 编写的代码,请选择此调试类型。Java-Only 调试程序会忽略您在原生代码中设置的任何断点或监视点。

  • Native Only(仅适用于 C/C++ 代码)

如果您只想使用 LLDB 来调试代码,请选择此调试类型。使用此调试类型时,Java 调试程序会话视图不可用。默认情况下,LLDB 只检查原生代码,而会忽略 Java 代码中的断点。如果您还想调试 Java 代码,则应切换到“Detect Automatically”或“Dual”调试类型。

  • Dual (Java + Native) - 仅适用于 C/C++ 代码

如果您想在同时调试 Java 代码和原生代码与不同时调试这两种代码之间切换,请选择此调试类型。Android Studio 会将 Java 调试程序和 LLDB 都连接到您的应用进程,这样一来,您不必重启应用或更改调试配置,便可同时对 Java 代码和原生代码中的断点进行检查。

5、避免每次修改配置,直接到Edit Configurations修改的app的debug默认选择

debugType下拉框选择java only

猜你喜欢

转载自blog.csdn.net/baidu_24392053/article/details/142514907