Android 內存優化Android Profiler 工具常用功能 ( 監測內存 | 內存快照 )

      網友投稿 2141 2025-04-03

      文章目錄


      一、 內存泄漏排查 ( Android Profiler 工具 )

      二、 Android Profiler 內存監測相關功能

      三、內存快照分析

      內存泄漏原理 :

      長生命周期對象 , 持有短生命周期對象的引用 , 并且是強引用持有 ,

      GC 無法釋放該短生命周期對象引用 , 造成 OOM ;

      Android Profiler 工具參考官方文檔 : 使用 Memory Profiler 查看 Java 堆和內存分配

      一、 內存泄漏排查 ( Android Profiler 工具 )

      1. 內存泄漏排查 : 開發過程中 , 應該每隔一段時間都要檢查下內存情況 , 連上手機 ,

      從 Android Studio 中安裝應用到手機中

      【Android 內存優化】Android Profiler 工具常用功能 ( 監測內存 | 內存快照 )

      ,

      打開 Android Profiler 工具 , 查看 MEMORY 一欄

      , 每個界面 , 每個功能都使用一下 , 查看內存使用情況 ;

      2. Android Profiler 工具使用前提 :

      只有從當前 Android Studio 中通過 adb 工具安裝運行的應用 ,

      才能再 Android Studio 底部顯示 Android Profile 選項卡 ,

      才能在 Android Profiler 工具 中查看 ;

      3. 打開 Android Profiler 面板 :

      應用通過 adb 安裝運行后 ,

      界面如下圖所示 ,

      此時還沒有添加要監控的進程 ;

      選擇監控進程 :

      點擊 SESSIONS 面板的加號按鈕 , 選擇對應手機運行的可監控進程 ;

      也可以點擊運行按鈕右側的 Profile ‘app’ 按鈕 , 進入如下界面 , 前提是該應用時通過 Android Studio 安裝的 ;

      此時就可以監控該應用的內存情況了 ;

      點擊上圖中的 Memory 區域 , 紅框框起來的區域 , 即可進入如下內存監控界面 ;

      二、 Android Profiler 內存監測相關功能

      請求執行 GC 垃圾回收操作 ( 重要功能能 ) :

      垃圾桶按鈕 , 強制執行 GC 操作 ( Force garbage collection ) , 也可以使用 Ctrl + G 快捷鍵 ;

      保存快照 ( 重要功能能 ) :

      保存一份當前 Java 內存快照 ( Dump Java Heap ) , 保存某個時刻的內存運行情況 ;

      時間縮放 : 右側的加號 , 減號 , 用于縮放時間 ;

      三、內存快照分析

      1. 保存內存快照 : 查看內存泄漏 , 首先強制 GC 回收一下內存 , 然后 Dump 一份內存快照 ;

      上圖中的內存快照中 , 反射了當前運行的所有內存對象 ;

      2. 選擇根據包查看對象 : 在類排列選項中 , 選擇 “

      Arrange by package

      ” 選項 , 這樣就可以比較有條理的查找內存中有哪些對象 ;

      3 . Heap Dum 內存信息 : 打開我們自己寫的代碼 , 在下面的 Heap Dum 信息面板中 , 查看如下內容 ;

      ① Allocations :

      對象個數

      , 一般情況下一個對象只有一個 ,

      如果出現多個 ,

      就要考慮是否有內存泄漏問題 ;

      ② Shallow Size :

      對象占用內存大小 ;

      ③ Retained Set : 對象引用組的內存 ;

      4. 保存內存快照 : 在

      點擊 Dump Java Heap 按鈕后 ,

      會保存一份內存快照 ,

      被保存的起始時間和結束時間之間會變成灰色 ,

      右鍵點擊灰色部分 , 選擇 “Export” , 即可將本內存快照保存到文件中 ;

      在彈出的界面中保存到桌面即可 ;

      5. 自動檢測 Activity / Fragment 的內存泄漏 :

      選中 Activity / Fragment Leaks 復選框 ,

      該工具會自動分析 Activity / Fragment 的內存泄漏問題 ;

      Activity 中沒有內存泄漏 ;

      參考官方文檔 : 使用 Memory Profiler 查看 Java 堆和內存分配

      Android

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何在讓Excel表格背景不平鋪?(wps表格背景圖片怎么設置不平鋪?)
      下一篇:如何利用WPS表格檢測輸入數據的正確性
      相關文章
      中文字幕亚洲一区二区三区 | 久久精品亚洲AV久久久无码| 久久久久亚洲AV无码专区网站| 亚洲乱亚洲乱妇24p| 亚洲国产人成在线观看| 亚洲国产精品综合久久网各| 久久久久亚洲精品无码蜜桃| 亚洲AV人无码综合在线观看| 亚洲VA中文字幕无码毛片| 亚洲精品无码专区在线在线播放| 中文字幕中韩乱码亚洲大片| 久久精品国产亚洲Aⅴ香蕉| 亚洲色欲久久久久综合网| 亚洲欧洲日本在线| 久久精品国产亚洲一区二区三区| 亚洲综合亚洲综合网成人| 国产精品亚洲综合一区| 激情97综合亚洲色婷婷五| 亚洲中文字幕无码一区二区三区| 国产亚洲精品拍拍拍拍拍| 久久久久亚洲AV无码专区桃色| 国产成人亚洲综合| 自拍偷自拍亚洲精品被多人伦好爽 | 国产青草亚洲香蕉精品久久 | 亚洲一本综合久久| 日木av无码专区亚洲av毛片| 亚洲综合色一区二区三区小说| 亚洲精品自拍视频| 亚洲一卡二卡三卡四卡无卡麻豆| va天堂va亚洲va影视中文字幕| 亚洲国产最大av| 亚洲欧美日韩综合俺去了| 亚洲日本VA午夜在线影院| 豆国产96在线|亚洲| 爱情岛论坛网亚洲品质自拍| 亚洲精品国产电影| 亚洲亚洲人成综合网络| 亚洲第一区香蕉_国产a| 亚洲婷婷综合色高清在线| 亚洲综合av一区二区三区| 色欲aⅴ亚洲情无码AV|