Android Device Monitor 踩坑记录

1,191 阅读3分钟

Android Device Monitor 排雷记录

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第13天,点击查看活动详情

Android Device Monitor 已经在 Android Studio 3.1 中弃用,并已从 Android Studio 3.2 中移除。官方提供了各个功能的替代方案。

Android Device Monitor 组件应采用的功能
Dalvik 调试监控服务器 (DDMS)此工具已弃用。请改为使用 Android Studio 3.0 及更高版本中的 Android Profiler 分析应用的 CPU、内存和网络使用情况。如需执行其他调试任务(例如向连接的设备发送命令以设置端口转发、传输文件或截取屏幕截图),请使用 Android 调试桥 (adb)Android 模拟器设备文件浏览器Debugger 窗口
Traceview此工具已弃用。如需检查通过使用 Debug检测您的应用而捕获的 .trace 文件、记录新方法跟踪、导出 .trace 文件以及检查应用进程的实时 CPU 使用情况,请使用 Android Studio CPU 性能剖析器 (Profiler 中的 CPU 分析工具)。
Systrace如需检查原生系统进程并解决帧丢失导致的界面卡顿问题,请在命令行中使用 systrace 或在 CPU 性能剖析器中使用经过简化的系统跟踪CPU 性能剖析器提供了许多用于分析应用进程的功能。
OpenGL ES 跟踪器使用 Android GPU 检查器
Hierarchy Viewer如需在运行时检查应用的视图层次结构,请使用布局检查器 (Layout Inspector)。如需分析应用布局的渲染速度,请使用 Window.OnFrameMetricsAvailableListener,如此博文中所述。
Pixel Perfect使用 Layout Inspector
网络流量工具如需查看应用通过网络传输数据的方式和时间,请使用网络性能剖析器 (Profiler 中的网络监控工具)。

官方链接:developer.android.com/studio/prof…

不难看出 ADM 是一个功能十分强大的工具,虽然有了新的替代方案,但是出于安全性等方面的考虑,阉割了一些功能。这也就是为什么我不用替代方案而是专门要在高版本的 Android Studio 中搞这个的原因。

安装 ADM

这里说明一下这个 ADM 怎么安装出来的,打开 Android Studio,打开 Android SDK 选项:

image-20220629120804380.png

安装了 Android SDK Tools 就有 ADM 了。

踩坑记录

启动 ADM 一般需要执行 /Users/username/Library/Android/sdk/tools 目录下的 monitor 脚本:

image-20220629113326578.png

在命令行运行指令或者直接点击都可以,会出现以下画面:

image-20220629113400794.png

然后就会出现各种报错。

image-20220629113441629.png

ADM 最大支持的 JDK 版本是 JDK 1.8 ,很坑的是我的电脑上安装了多个 JDK 版本,并且根据一些教程配置了 JDK 8 为全局变量:

 /usr/libexec/java_home -V

image-20220629113706001.png

配置多个版本的 JDK,更新 bash_profile 文件

JAVA_HOME_8=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
JAVA_HOME_11=/User/chunyu/Library/Java/JavaVirtualMachines/corretto-11.0.5.jdk/Contents/Home
PATH=$JAVA_8_HOME/bin:$PATH:.

然后运行,依旧报错,这个时候就要去看它的日志分析原因了,它的错误日志在/Users/username/Library/Android/sdk/tools/lib/monitor-x86_64/configuration/ 中的 log 文件,然后打开发现 ADM 依旧在使用 JDK 11 :

image-20220629115831450.png

配置全局路径 JDK8 的效果并不能让 ADM 去主动选择 JDK8,为了解决这个问题,我选择把 JDK11 卸载了,并且重新安装 JDK 8 :

➜  ~ /usr/libexec/java_home -V

Matching Java Virtual Machines (2):
    1.8.144.01 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_144 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
➜  ~

然后再尝试打开 ADM,依旧报错:

image-20220629120057141.png

为了解决这个问题找了不少文章和解答,都没有一个方案,一开始我以为是哪个 jar 包缺失,然而也没有。最后在朋友的指导下找到了这个问题的原因:需要设置 Android SDK 全局变量!

ANDROID_HOME=/Users/chunyu/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools

因为之前一直没有配置这个,更新这个配置后终于能够正常运行了。