解決在Android Studio 3.2找不到Android Device Monitor工具

草帽Jack發表於2019-02-02

升級到AndroidStudio最新版本(>3.2)朋友們都會遇到一個問題,找不到DDMS [Android Device Monitor], 只能從SDK目錄下找到 monitor 啟動DDMS [Android Device Monitor],所以寫了一個外掛快速啟動Android Device Monitor

原始碼及使用方式

開發工具:IntelliJ IDEA PS: 如果有需要的朋友歡迎留言

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
解決在Android Studio 3.2找不到Android Device Monitor工具

如何啟動:

  • 開啟AndroidStudio
  • 選單欄tools -> 單擊DeviceMonitor
解決在Android Studio 3.2找不到Android Device Monitor工具

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

相關文章