編輯:關於Android編程
MAT(Memory Analyzer Tool), 是著名的Android內存分析工具, 雖然LeakCanary更加便捷, 但是MAT可以清楚地獲知整體內存使用情況, 還是必須要掌握的. 我來講解一下如何使用.
使用Android Studio底部的AndroidMonitor, 獲取內存片段.
點擊Initial GC回收內存, 使用應用, Dump Java Heap, 再次點擊停止.
在Android的SDK中的platform-tools文件夾內, hprof-conv腳本把AS的內存格式轉換為MAT的內存格式. 之後, 使用MAT打開文件.
使用命令
./hprof-conv path/file.hprof exitPath/heap-converted.hprof
下載Eclipse的MAT工具.
雖然是Eclipse的工具, 但是可以單獨運行, 並不需要安裝Eclipse.
打開內存片段, 選擇內存報告.
內存整體情況.
vc280fnKvSwgzO2807D8w/u5/cLLLjwvcD4NCjxwPjxpbWcgYWx0PQ=="對象引用" src="/uploadfile/Collfiles/20160202/2016020209142463.png" title="\" />
Activity或View大於1個對象, 都有可能發生內存洩露.
顯示內存的所有引用情況
逐個判斷即可, 有些對象的引用較多, 可能是使用了數組, 並不一定是內存洩露.
顯示單個類的內存情況
使用搜索功能, 輸入SQL語句, 並執行. 紅色歎號執行搜索.
通過觀察, 我們發現微信mWXApi傳入了錯誤的Context, 導致內存洩露.
代碼
mFriendsPlatform = new WXSharePlatform(mActivity, title, content,
bitmap, pageUrl, SendMessageToWX.Req.WXSceneTimeline);
直接傳入Activity導致內存洩露, 修改為getApplicationContext即可.
日志可以在幫我們開發中調試程序,下面看看Android自帶日志的作用先聲明一個字符串 private static final String TAG = &qu
前一篇文章講述了Android拍照、截圖、保存並顯示在ImageView控件中,該篇文章繼續講述Android圖像處理技術,主要操作包括:通過打開相冊裡的圖片,使用Mat
Android Studio目前已經更新到1.4版本,它作為Google官方推薦的IDE,功能非常強大,其中提供了一套靜態代碼分析工具,它可以幫助我們檢查項目中存在的問題
前言:Android自定義View對於剛入門乃至工作幾年的程序員來說都是非常恐懼的,但也是Android進階學習的必經之路,平時項目中經常會有一些苛刻的需求,