有時候程式執行出現死鎖或者訊號量卡死是很糾結的問題,單看**很難分析定位問題,這時候可以借助ddms來檢視threads的運**況,一目了然。
手機連線上usb,確保adb連通,然後啟動eclipse裡的ddms,這時候應該手機就正常連線上了
就如上圖中顯示的,只要連線上了就可以檢視某個程序裡的所有執行緒的活動了; 下面具體解釋下threads標籤頁裡給出的每個欄位的意思:
id: 虛擬機器分配的唯一的執行緒id,在dalvik裡,它們是從3開始的奇數。
tid:linux的執行緒id號
stauts:執行緒狀態,比較多,有下面的一些
running: 正在執行程式**
sleeping:執行了thread.sleep()
monitor:等待接受乙個監聽鎖。
wait::object.wait(),等待被其他執行緒喚醒
native:正在執行native**,
vmwait:等待虛擬機器,(這個不是很懂,高手指教,這個狀態在什麼情況下發生)
zombie:執行緒在垂死的程序
init:執行緒在初始化(我們不可能看到)
starting:執行緒正在啟動(我們不可能看到)
utime:執行使用者**的累計時間
stime:執行系統**的累計時間
name:執行緒的名字
另外,右側每個thread選中之後可以在下面看到refresh按鈕,這個點了之後,可以看到執行緒的函式執行,結合status可以知道目前情況;而出現問題時某個執行緒一般會變為monitor狀態,這時候就要特別留意他,並refresh下,檢查他的執**況 ,再回頭結合**,一般都能找到問題出在什麼地方;
DDMS檢視Threads情況
有時候程式執行出現死鎖或者訊號量卡死是很糾結的問題,單看 很難分析定位問題,這時候可以借助ddms來檢視threads的運 況,一目了然。手機連線上usb,確保adb連通,然後啟動eclipse裡的ddms,這時候應該手機就正常連線上了 就如上圖中顯示的,只要連線上了就可以檢視某個程序裡的所有執行緒...
DDMS檢視Threads情況
ddms檢視threads情況 有時候程式執行出現死鎖或者訊號量卡死是很糾結的問題,單看 很難分析定位問題,這時候可以借助ddms來檢視threads的運 況,一目了然。手機連線上usb,確保adb連通,然後啟動eclipse裡的ddms,這時候應該手機就正常連線上了 就如上圖中顯示的,只要連線上了...
解決DDMS無法檢視 data目錄問題
在使用android sqlite資料庫時,從ddms的fileexplore檢視資料庫檔案時會發現裡面是空的什麼也沒有。發現 data的檔案許可權是drwxrwx x這是linux的檔案許可權 第乙個代表檔案型別d是directory目錄 後面三個是建立者的許可權r讀w寫x執行 再後面三個是同組者...