日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

[转】:Android调试工具及方法

發布時間:2025/3/15 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转】:Android调试工具及方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://www.cnblogs.com/feisky/archive/2010/01/01/1637566.html
--

Logcat


Dump一份系統消息的日志。這些消息包括模擬器拋出錯誤時的堆棧跟蹤。


Android Log


一個記錄日志的類,用來將消息寫入模擬器上的日志文件中。如果你在DDMS上運行logcat的話你可以就實時查看消息。在你的代碼中加入幾個寫日志方法的調用。
為了使用Log類,你只需要調用Log.v()(詳細),Log.d()(debug),Log.i()(information),Log.w()(warning)
或者 Log.e()(error),根據你想獲得的日志信息來選擇相應的方法

Log.i("MyActivity", "MyClass.getView() — Requesting item number " + position) 你可以用logcat來讀取這些信息

Traceview

Android可以保存一個日志用來記錄被調用的方法以及該方法被調用的次數,通過Traceview你可以在一個圖形化的界面中查看這個日志文件。

adb


Android 調試橋(adb)是多種用途的工具,該工具可以幫助你你管理設備或模擬器的狀態。

發出Android命令: 你可以在你的開發機上的命令行或腳本上發布Android命令,使用方法:

adb [-d|-e|-s <serialNumber>] <command>

進入Shell:adb shell

查詢模擬器/設備實例
adb devices 列出模擬器的序列號和狀態

給特定的模擬器/設備實例發送命令
如果有多個模擬器/設備實例在運行,在發布adb命令時需要指定一個目標實例。 這樣做,請使用-s
選項的命令。在使用的-s 選項是
adb -s <serialNumber> <command>
如:db -s
emulator-5556 install helloWorld.apk

安裝軟件:
adb install <path_to_apk>

從模擬器/設備中拷入或拷出文件
可以使用adbpull ,push
命令將文件復制到一個模擬器/設備實例的數據文件或是從數據文件中復制。install 命令只將一個.apk文件復制到一個特定的位置,與其不同的是,pull 和
push 命令可令你復制任意的目錄和文件到一個模擬器/設備實例的任何位置。
從模擬器或者設備中復制文件或目錄,使用(如下命):
adb pull
<remote> <local>
將文件或目錄復制到模擬器或者設備,使用(如下命令)
adb push
<local> <remote>
在這些命令中, <local> 和<remote>
分別指通向自己的發展機(本地)和模擬器/設備實例(遠程)上的目標文件/目錄的路徑
下面是一個例子::
adb push foo.txt
/sdcard/foo.txt

查詢日志 adb logcat

Stopping the adb Server
在某些情況下,你可能需要終止Android 調試系統的運行,然后再重新啟動它。
例如,如果Android 調試系統不響應命令,你可以先終止服務器然后再重啟,這樣就可能解決這個問題.
用kill-server 可以終止adb
server。你可以用adb發出start-server命令來重新啟動服務器.

設備上調試和測試的設置


Android提供了眾多的設置使你可以更容易的調試和測試程序。要進入開發設置頁面,在模擬器中轉到Dev Tools > Development
Settings
。在該設置頁面有以下選項:


  • Debug app:選擇要調試的程序。你不需要設定其關聯至調試器,但是設定這個值有兩個效果:

  • 在調試的時候,如果你在一個斷點處暫停了過長的時間,這個設定會防止Android拋出一個錯誤
  • 這個設定使你可以選擇“等待調試器”選項,使程序只有在調試器關聯上之后才啟動

Wait for
Debugger
:阻塞所選的程序的加載直到有調試器關聯上,這樣你就可以在onCreate()中設置斷點,這對于調試一個Activity的啟動進程是非常重要的。當你對該選項進行了更改,任何正在運行的程序的實例都會被終止。你只有在上面的選項中選擇了一個調試程序才能夠選中該選項。你也可以在代碼中添加waitForDebugger()來實現同樣的功能。

Immediately destroy
activities
:告訴系統一旦一個activity停止了就銷毀該activity(例如當Android釋放內存的時候)。這對于測試代碼onFreeze(Bundle)/onCreate(android.os.Bundle)是非常有用的,否則會比較困難。如果你的程序沒有保存狀態,那么選擇這個選項很可能會引發很多問題。

Show screen updates:對于任何正在被重繪的screen
sections都會在其上閃現一個粉紅色的矩形。這對于發現不必要的screen繪制是很有必要的。
Show CPU
usage
:在屏幕上方顯示CPU信息,顯示有多少CPU資源正在被使用。上方紅色條顯示總的CPU使用率,它下方綠色的條顯示CPU用在compositing
the screen上的時間。注意:在沒有重啟模擬器之前,一旦你開啟了該功能就不能關閉。
Show screen
FPS
:顯示當前的幀率。這對于查看游戲達到的總的幀率是非常有用的。注意:在沒有重啟模擬器之前,一旦你開啟了該功能就不能關閉。
Show background:當沒有activity
screens可見時,顯示一個背景模式。一般是不會出現的,僅僅在Debug的時候會出現。

設定的選項在模擬器重啟之后仍然有效,如果要取消設定的選項,在取消設定以后還要重啟模擬器,才能生效。

重要的調試小提示


快速的堆棧dump

要在模擬器上獲得一個堆棧dump,你可以通過adb shell登入,用“ps”找到你想要的進程,然后“kill -3”,堆棧跟蹤信息就會記錄到日志文件中了。

在模擬器屏幕上顯示有用信息

設備上可以顯示諸如CPU利用率或者對重繪區域的邊緣高亮顯示等有用信息,在開發設置窗口可以打開或者關閉這些功能。

從模擬器上獲取系統狀態信息(dumpstate)

你可以通過Dalvik Debug Monitor Service工具來獲得dumpstate信息。

從模擬器上獲取程序狀態信息(dumpsys)

你可以通過Dalvik Debug Monitor Service工具來獲得dumpsys信息。

獲取無線連接信息

你可以通過Dalvik Debug Monitor Service工具來獲得無線連接信息。在Device菜單,選擇“Dump radio state”

日志記錄跟蹤數據

你可以在一個activity中通過調用android.os.Debug.startMethodTracing()來用日志來記錄方法調用和其他跟蹤數據。

日志記錄Radio Data

默認情況下,radio信息是不會記錄在系統中的(因為數據量巨大)。然而,你可以通過下面的命令來開啟radio記錄 adb shell logcat -b radio

運行adb

Andoid中自帶了一個叫adb的工具,該工具功能強大,可以移動并同步文件到模擬器,轉發端口。在模擬器上運行一個UNIX shell。

從模擬器上獲取屏幕截圖

Dalvik Debug Monitor Server (DDMS)可以從模擬器上獲取屏幕截圖

利用調試幫助類

???? Android為了開發者的方便提供了諸如util.LogDebug等幫助類


命令行運行程序的方法


參考:http://www.javaeye.com/topic/201856?
http://www.javaeye.com/topic/149227


進入shell


引用
C:\Documents and Settings\mawenjian>adb
shell
看一下命令的幫助

引用

# am -help
am
-help
Error: Unknown command:
-help
usage: am
[start|instrument]
?????? am start
[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
??????????????? [-c <CATEGORY> [-c
<CATEGORY>] ...]
??????????????? [-e <EXTRA_KEY>
<EXTRA_VALUE> [-e <EXTRA_KEY> <EXTRA_VALUE> ...]
??????????????? [-n <COMPONENT>]
[-D] [<URI>]
?????? am
instrument [-e <ARG_NAME> <ARG_VALUE>] [-p <PROF_FILE>]
??????????????? [-w]
<COMPONENT>
好了,試一下啟動瀏覽器

引用
# am start -n
com.google.android.browser/com.google.android.browser.BrowserActivity
am start -n
com.google.android.browser/com.google.android.browser.BrowserActivity
Starting: Intent {
comp={com.google.android.browser/com.google.android.browser.BrowserActivity}
}
ok,成功了
大家試試下面的命令吧:

引用

# am start -a android.intent.action.VIEW -d
http://mwjian.javaeye.com
am start
-a android.intent.action.VIEW -d http://mwjian.javaeye.com
Starting: Intent {
action=android.intent.action.VIEW data=http://mwjian.javaeye.com }

# am start -a
android.intent.action.CALL -d tel:88888888
am start -a android.intent.action.CALL
-d tel:88888888
Starting: Intent {
action=android.intent.action.CALL data=tel:88888888 }

# am start -a
android.intent.action.ALL_APPS
am
start -a android.intent.action.ALL_APPS
Starting: Intent {
action=android.intent.action.ALL_APPS }

# am start -a
android.intent.action.VIEW geo:0,0?q=shanghai
am start -a android.intent.action.VIEW
geo:0,0?q=shanghai
Starting: Intent
{ action=android.intent.action.VIEW data=geo:0,0?q=shanghai
}

?

本文參考:Android手冊 www.cnblogs.com/jacktu
萬能的G.cn

轉載于:https://www.cnblogs.com/Jessy/archive/2012/01/17/2324414.html

總結

以上是生活随笔為你收集整理的[转】:Android调试工具及方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。