1,為什麼使用leakcanary。
因為他簡單,方便,及時,易檢視。
2,使用教程。
leakcanary是自動檢測activity的,不用再任何activity裡新增**。
如果需要檢測fragment,那必須自己寫方法,使用它是refwatcher
具體用法如下:
新增依賴:
dependencies
初始化物件:
public
class
extends
private refwatcher refwatcher;
@override
public
void
oncreate
()}
做完這兩部就可以實現activity的檢測了。
如果需要檢測fragment:
則加入:
public
abstract
class
basefragment
extends
fragment
}
加在ondestroy()方法裡的原因是:
當fragment.ondestroy()
被呼叫之後,如果這個 fragment 例項沒有被銷毀,那麼就會從 logcat 裡看到相應的洩漏資訊。
ok,現在就可以執行試試看了。
-----end
記憶體管理之記憶體定址
記憶體定址 三種記憶體位址 邏輯位址 logical address 包含機器語言指令中用來指定乙個運算元或一條指令的位址 線性位址 linear address 線性位址也稱為虛擬位址 virtual address 實體地址 physical address 用於記憶體晶元級記憶體單元定址,他們...
C 之記憶體分配
很多人都覺得學習 c 是特別困難的事情。c 學習是比較複雜的 它的記憶體分配 指標 以及物件導向思想的實現等等,確實需要一定的技術積累。我們將以專題的形式,為大家逐一剖析 c 的技術重點和難點。本專題討論的就是記憶體分配。學習 c 如果不了解記憶體分配是一件非常可悲的事情。而且,可以這樣講,乙個 c...
c 之記憶體管理
c 使用3 種不同解決方案儲存資料,區別是資料保留在記憶體中的時間 兩種儲存持續性為自動 自動變數和暫存器變數 register 沒有記憶體位址 堆疊 在函式外定義的變數和使用關鍵字static定義的變數的儲存持續性都為靜態.分為 3 外部鏈結性,內部鏈結性和無鏈結性 所有靜態變數都有下面的兩個初始...