調試本機記憶體使用情況
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
地址消毒:HWASan/ASan
Android 平台開發人員使用HWAddressSanitizer (HWASan) 來尋找 C/C++ 中的記憶體錯誤。
您可以從ci.android.com將預先建置的 HWASan 映像刷新到支援的 Pixel 裝置(詳細設定說明)。
從 Android 8.0 (Oreo) 開始,也可以使用 ASan 在非 root 生產裝置上偵錯應用程式。您可以在
ASan wiki上找到說明。
希普羅夫德
Android 10 支援 heapprofd,這是一種低開銷的採樣堆分析器。 heapprofd 可讓您將本機記憶體使用歸因於程式中的呼叫堆疊。有關更多信息,請參閱Perfetto 文件網站上的heapprofd - Android Heap Profiler 。
Malloc調試
有關可用於本機記憶體問題的偵錯選項的完整說明,請參閱 使用 libc 回呼進行Malloc 偵錯和本機記憶體追蹤。
libmeunreachable
Android 的 libmemunreachable 是一個零開銷的本機記憶體洩漏偵測器。它使用不精確的標記和清除垃圾收集器來遍歷所有本機內存,將任何無法訪問的區塊報告為洩漏。有關使用說明,請參閱libmemunreachable 文件。
Malloc 掛鉤
如果您想建立自己的工具,Android 的 libc 也支援攔截程式執行期間發生的所有分配/釋放呼叫。有關使用說明,請參閱malloc_hooks 文件。
Malloc統計
Android 支援<malloc.h>
的mallinfo(3)
和malloc_info(3)
擴充。 malloc_info
函數在 Android 6.0 (Marshmallow) 及更高版本中可用,其 XML 架構記錄在 Bionic 的<malloc.h>
中。
Dalvik 調試監控伺服器
您也可以使用Dalvik 調試監視器伺服器(DDMS) 來取得 Malloc 偵錯輸出的圖形視圖。
若要使用 DDMS,請先開啟其本機記憶體 UI:
- 打開
~/.android/ddms.cfg
- 新增行:
native=true
重新啟動 DDMS 並選擇進程後,您可以切換到新的本機指派標籤並使用指派清單填入它。這對於調試記憶體洩漏特別有用。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2024-04-29 (世界標準時間)。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"缺少我需要的資訊"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"過於複雜/步驟過多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"過時"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻譯問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/程式碼問題"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"容易理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"確實解決了我的問題"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u4e0a\u6b21\u66f4\u65b0\u6642\u9593\uff1a2024-04-29 (\u4e16\u754c\u6a19\u6e96\u6642\u9593)\u3002"}
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2024-04-29 (世界標準時間)。"]]