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 中的网络监控工具)。 |
不难看出 ADM 是一个功能十分强大的工具,虽然有了新的替代方案,但是出于安全性等方面的考虑,阉割了一些功能。这也就是为什么我不用替代方案而是专门要在高版本的 Android Studio 中搞这个的原因。
安装 ADM
这里说明一下这个 ADM 怎么安装出来的,打开 Android Studio,打开 Android SDK 选项:
安装了 Android SDK Tools 就有 ADM 了。
踩坑记录
启动 ADM 一般需要执行 /Users/username/Library/Android/sdk/tools 目录下的 monitor 脚本:
在命令行运行指令或者直接点击都可以,会出现以下画面:
然后就会出现各种报错。
ADM 最大支持的 JDK 版本是 JDK 1.8 ,很坑的是我的电脑上安装了多个 JDK 版本,并且根据一些教程配置了 JDK 8 为全局变量:
/usr/libexec/java_home -V
配置多个版本的 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 :
配置全局路径 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,依旧报错:
为了解决这个问题找了不少文章和解答,都没有一个方案,一开始我以为是哪个 jar 包缺失,然而也没有。最后在朋友的指导下找到了这个问题的原因:需要设置 Android SDK 全局变量!
ANDROID_HOME=/Users/chunyu/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
因为之前一直没有配置这个,更新这个配置后终于能够正常运行了。