解决Android Studio版本大于3.2找不到Android Device Monitor工具

14,774

升级到 AndroidStudio 最新版本( >3.2 )朋友们都会遇到一个问题,找不到 DDMS [Android Device Monitor], 只能从 SDK 目录下找到 monitor 启动 DDMS [Android Device Monitor],所以写了一个插件快速启动 Android Device Monitor

源码及使用方式

开发工具:IntelliJ IDEA

Github地址:https://github.com/hi-dhl/DeviceMonitorPlugin

插件下载地址:https://github.com/hi-dhl/DeviceMonitorPlugin/releases/download/1.0/DeviceMonitorPlugin.jar

安装方式:

  • 打开 AndroidStudio
  • 选择 Preference -> Plugins-> install plugin from disk
  • 选择下载好的插件 [DeviceMonitorPlugin.jar] -> 重启 AndroidStudio

如何启动:

  • 打开 AndroidStudio
  • 菜单栏 tools -> 单击 DeviceMonitor

PS: Google 虽然删除了 AdnroidStudio 启动入口,但是本地 SDK 中还是存在,插件通过动态获取本地 SDK 路径启动 AndroidDeviceMonitor, 由于电脑性能不同,启动速度会有不同

Google 为什么弃用 Android Device Monitor

Android Developers官网上的原文链接

Google

Android Device Monitor 是一个 Android 应用调试和分析工具提供了一个 UI 工具,但是大部分组件在 Android Studio 3.1 已经弃用了, 并且会在 Android Studio 3.2 中移除,将会用新的工具帮助开发人员调试和分析 Android 应用 详情戳这里

插件核心代码

public class Monitor extends AnAction {

    @Override
    public void actionPerformed(AnActionEvent anActionEvent) {

        try {

            Project project = anActionEvent.getData(PlatformDataKeys.PROJECT);

            String os = AndroidUtils.getPlatformName();
            String sdkPath = AndroidUtils.getApkLocalProperties(project);
            if (os.toLowerCase().startsWith("win")) {
                sdkPath += File.separator + "tools" + File.separator + "monitor.bat";
            } else {
                sdkPath += File.separator + "tools" + File.separator + "monitor";
            }

            Runtime.getRuntime().exec(sdkPath);
        } catch (Exception e) {

        }

    }
}
/**
 * 动态获取本地Android SDK的路径
 *
 * @param project
 * @return
 */
public static String getApkLocalProperties(Project project) {

    String sdkPath = "";

    try {

        String path = project.getBasePath() + File.separator + "local.properties";

        Properties properties = new Properties();
        InputStream inputStream = new FileInputStream(path);
        properties.load(inputStream);

        sdkPath = properties.getProperty("sdk.dir");
    } catch (Exception e) {

    }
    return sdkPath;
}

Github地址:https://github.com/hi-dhl/DeviceMonitorPlugin

结语

致力于分享一系列 Android 系统源码、逆向分析、算法、翻译、Jetpack 源码相关的文章,如果你喜欢这篇文章欢迎 Star 一起来学习,期待与你一起成长

文章列表

Android 10 源码系列

Android 应用系列

工具系列

逆向系列