2017-07-27 19 views

回答

0

準備:

1)下載"Eclipse Memory Analyzer"

2)找到Android設備監視器。與Android SDK捆綁在一起,可在「Android-SKD/tools/monitor」中找到。您可以通過打開Xamarin,按CMD +並選擇SDK位置來找到該文件夾​​的位置。

enter image description here enter image description here

3)找到堆快照轉換器(在Android對Java)。捆綁了Android SDK,並可以在 「Android的SDK /平臺工具/ HPROF-CONV」 中找到

enter image description here

CAPTURE:

1)設備

安裝與調試模式下的應用

2)將設備連接到PC並啓動顯示器(準備2步)

3)啓動應用程序並通過設備中的應用程序ID找到它。

enter image description here

4)按更新堆,你認爲使泄漏

6)按保存堆(右邊的圖標(圖標從錯誤圖標右側)

5)做的東西的開始),並將其保存到驅動

獵犬結果:

1)轉換機器人堆到Java堆

1.1)啓動終端

1.2)定位堆Shanpshot轉換器(HPROF-CONV)(3步驟在製備)

1.3)滴HPROF-CONV到終端

1.4)放下Android堆,然後放下它並重新命名它。這將創建在同一位置正確副本與選擇的名稱

android-sdk-macosx/platform-tools/hprof-conv raw.hprof converted.hprof 

enter image description here

2)打開Eclipse內存分析器(1個步驟在製備)

3)導入獲取頭轉儲

enter image description here

3)選擇泄漏嫌疑人舉報

enter image description here

4)查看結果

enter image description here

+0

感謝。這些步驟僅列出犯罪嫌疑人。我們可以列出哪些類文件(具有C#類的名稱)佔用了內存。我可以在應用程序停止並從內存泄漏哪些類中識別內存泄漏。 –

+0

我認爲不是因爲android studio不知道C#運行時的任何信息。您可以嘗試Xamarin Profiler,但它需要Enterprise許可證。 – Taier

+0

有沒有其他工具來測試安卓應用程序在android移動內存泄漏? –