在我的應用程序中,我有一個選項來捕獲hprof轉儲。我 使用從應用程序代碼獲取其他進程的Hprof轉儲
android.os.Debug.dumpHprofData(字符串文件名)
最初我雖然通過上述方法產生的HPROF數據是 整個裝置,這是並非如此。生成的hprof數據對於我的過程只有 。
現在我正在嘗試爲其他進程生成hprof數據。 I 需要從 應用程序代碼獲取所有正在運行的進程的Hprof轉儲。
來自adb shell我試過了「kill -10」,這個命令會在data/misc文件夾中產生對應進程的hprof文件 。
現在的問題是這個命令從adb shell提示符運行完美,但我無法將命令嵌入mycode。
我的代碼是像
調用Runtime.getRuntime()。EXEC( 「搭配chmod 777 /數據/雜項」) 調用Runtime.getRuntime()。EXEC( 「殺-10」)
沒有例外被拋出,但不知何故,它不工作。上面的代碼與我的流程捕獲Hprof轉儲時相同,當我給我的 進程ID。
我試着用「android.os.Process.sendSignal(int pid, android.os.Process.SIGNAL_USR1);」同樣的問題。 爲我的程序捕獲Hprof dump。對於其他進程,它不是 工作。
我們是否需要特別許可從我們的流程中銷燬 其他流程?或者它是一個內置的問題?你可以請建議一些 可能的方式獲得Hprof轉儲從應用程序 代碼的其他進程?
感謝