Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> AndroidStudio應用調試技巧(下)

AndroidStudio應用調試技巧(下)

編輯:關於Android編程

Android Studio的Android Device Monitor(簡稱ADM)是我們動態調試安卓程序時重要的幫手。它提供了很多動態調試的工具和調試方法。上一章介紹的log調試,就需要通過ADM的logcat顯示調試內容;它還可以查看系統內存的占用情況,可以看到系統CPU的運行情況。

ADM可以在兩個地方工作:

在Android Studio集成窗口:在Android Studio下方的窗口中,點擊Android Monitor,就能在Android Studio中顯示;

 

\

 

在第一個框中,選中我們要調試的設備,第二個框中選中我們要調試的應用,

 

\

 

ADM單獨運行:通過Android Studio的菜單欄啟動;

 

\

 

獨立運行後,就像這樣,

 

\

2.1 Logcat功能

Logcat用來查看程序輸出的log。我們可以選擇log的類型(verbose debug info warning error)來過濾log。

開發者官網1

當選擇verbose時,logcat會輸出所有類型的log;
當選擇debug時,logcat會輸出debug info warning error等類型的log;
當選擇info時,logcat會輸出info warning error等類型的log;
當選擇warning時,logcat會輸出warning error等類型的log;
當選擇error時,logcat會輸出error等類型的log;

有時候log太多,會影響我們的判斷,可以自定義過濾器。

選擇編輯過濾器,

開發者官網1

指定過濾器的名字,輸入log中包含關鍵字的內容,

開發者官網1

以後logcat獲取的log,就只有匹配過濾器中關鍵字的log了。

還有一個非常有用的功能是重啟ADB。ADB有時候會因為種種原因而無法與設備相連,這時候通過下圖的按鈕重啟ADB就能解決問題。

開發者官網1

2.2 Android Studio中的ADM

 

在Android Studio集成界面,ADM還提供了方便的設備截屏、設備錄像帶功能。

設備截屏能將設備上正在顯示的內容以截取圖片或視頻的形式保存到電腦上。

 

開發者官網1

 

memory能夠實時監測當前被調試的應用內存使用大小,

 

\

 

- `CPU`能夠實時監測當前被調試的應用CPU占用大小,

 

\

 

- `Network`能夠實時監測當前被調試的應用網絡使用情況,

 

\

 

## 2.3 獨立運行的ADM 除了logcat,獨立運行的ADM提供了更多的調試工具。點擊菜單欄的`添加視圖`圖標,可以為ADM添加上`DDMS`、`Hierarchy View`、`Debug`、`Pixel Perfect`等高級的調試窗口。

 

\

 

`DDMS`是谷歌提供的一個非常全面的調試工具,它能和安卓虛擬機通信,獲取最原始的調試數據。 1. 選擇要調試的設備和應用; 2. 點擊`DDMS`的菜單欄,啟動不同的高級調試功能;

 

\

 

`DDMS`有很多高級的調試功能: * `Debug`功能:連接到`debug`版本的應用,可以使用打斷點、逐步跟蹤的靜態調試方式; * `heap`功能:監測當前內存的使用,手動發起內存回收,保存內存分配的所有狀態到電腦上,用其他高級工具做進一步分析,查找內存洩漏;

 

\

 

* `thread`功能:查看應用所有的線程,獲取線程當前的運行信息;

 

\

 

* `UI元素分析`功能:分析顯示界面指定窗口的UI元素布局信息,幫助開發者進行界面布局的調試;

 

\

 

* `OpenGL trace`功能:記錄應用中OpenGL調用的信息;

 

\

 

以上這些功能都是高級的調試功能,每一個都可以開設單獨的專題進行深入的講解。因為本文針對的同學是剛開始接觸調試的新手,所以這裡就不詳細的介紹用法了。我們將在調試的高級篇章中逐個詳細介紹。 # 第3節 ADB工具 ADB-Android Debug Bridge,是安卓系統調試的核心。它將設備與調試用的電腦在軟件層次上連接在了一起。第二章介紹的ADM中很多獲取設備上信息的功能,其實就是通過ADB得到的。 ADB工具位於`SDK目錄\platform-tools\adb`。如果在安裝的時候你采用默認目錄安裝,那麼它應該是`c:\Users\用戶名\AppData\Local\Android\sdk\platform-tools\adb` ## 3.1 為ADB添加環境變量 為了方便的使用ADB工具,我們最好為它添加一個`環境變量`。這樣,我們只要打開`cmd命令行終端`,就能馬上使用它了。 1. `我的電腦`點擊右鍵->`屬性`->`高級系統設置`->`環境變量`,選中`Path`這一項,進行編輯;

 

\

 

2. 在編輯欄最後輸入ADB所在的路徑`c:\Users\用戶名\AppData\Local\Android\sdk\platform-tools\`;如果該項之前還有別的路徑,請用`;`分隔開;

 

\

 

3. 重啟電腦->連接上手機->啟動`cmd命令行終端`,輸入`adb version`,如果得到類似下面的結果,說明ADB已經設置好了;

$adb version

Android Debug Bridge version 1.0.32

Revision eac51f2bb6a8-android

cmd命令行終端的啟動方法:

 

通過Win+R啟動Windows操作系統的運行面板; 在面板中輸入cmd,啟動命令行窗口;

3.2 ADB常用命令

ADB提供了很多使用的命令,這裡列出最為常用的幾個命令的用法。

3.2.1 adb devices

列出當前連接到電腦上的所有安卓設備

$ adb devices
List of devices attached
192.168.56.101:5555 device
356BCJMDUV48    device

3.2.2 adb logcat

輸出安卓設備上的log信息。功能和Android Device Manager中的logcat完全一樣。後者實際上就是利用了ADB工具。

清除設備上已有的log,

$ adb logcat -c

開始輸出log,

$ adb logcat -v time

logcat的-v的輸出選項,可以控制輸出數據的顯示格式。它提供brief process tag raw time threadtime long等參數。大多數情況下,我們使用-v time這個參數項就好了。

獲取幫助,

$ adb logcat -h

其實adb logcat並沒有h命令選項,不過當logcat沒有找到正確的命令時,就會輸出logcat的幫助信息,供使用者參考。

3.2.3 adb start-server

啟動ADB工具,

$ adb start-server

3.2.4 adb kill-server

停止ADB工具,

$ adb start-server

3.2.5 adb shell

從電腦登錄到安卓設備上,

$ adb shell
root@vbox86p:/ # 

登錄到設備上後,就可以直接操作設備了。

3.2.6 adb shell dumpsys

輸出設備上所有系統模塊的狀態信息,這個輸出會非常的長,

$ adb shell dumpsys

為了讓我們關注我們需要的模塊,可以進一步設置要dump的模塊名稱,例如:

$ ./adb shell dumpsys window

甚至更進一步:

$ ./adb shell dumpsys window windows

這些模塊的名稱和更進一步的關鍵字(window windows等等),可以從adb shell dumpsys返回的結果中找到,它們的表現形式大概如下:

......
WINDOW MANAGER LAST ANR (dumpsys window lastanr)
......
WINDOW MANAGER POLICY STATE (dumpsys window policy)
......

括號中的就是可以使用的dump形式。

3.2.7 adb install

安裝應用,

$ adb install -r /Users/User/Desktop/app.apk 
5474 KB/s (1182939 bytes in 0.211s)
    pkg: /data/local/tmp/app.apk
Success

-r選項表示強制安裝-如果這個應用以前安裝過,就把它卸載了重新安裝,可以不使用;後面跟的是安裝文件在電腦上的位置。

3.2.8 adb uninstall

卸載應用,

$ adb uninstall com.anddle.calculator
Success

uninstall後面跟的是要卸載的程序的包名字。

3.2.9 adb help

ADB工具還有很多別的功能,可以通過這個命令查詢它們的深入的詳細的用法。

$ adb help

第4節 Wifi代替數據線調試

我們通常都是使用USB線連接設備和電腦進行的程序調試。
有的程序本身就要使用USB口,例如一個文件浏覽器,它可以列出通過USB接口接入的U盤。
在調試這樣的應用的時候,USB接口被占用了,但設備也只有一個USB接口,就可以考慮使用WiFi來進行ADB調試了。

通過WiFi代替數據線進行程序調試,利用了ADB工具的adb tcpipadb connect命令。

使用USB數據線連接設備和電腦,輸入如下命令

adb tcpip 5555 //5555表示指定的端口號碼,可以修改成別的不知名端口

斷開USB線,將電腦的ADB通過IP地址連接到設備上

adb connect 192.168.1.101 //192.168.1.101為android設備在Wifi網絡上的IP地址

這樣通過命令行就完成了Wifi調試的設置。


不過這裡還有一個更簡單的方案,使用Android Studio的第三方插件ADB WIFI

Preferences->Plugins->Browse repositories...; 在搜索欄中輸入ADB WIFI; 選擇安裝plugin; 重啟Android Studio就可以了;

以後在要使用Wifi調試的時候,

使用USB數據線連接設備和電腦; Tools->Android->ADB WIFI->ADB USB to WIFI; 拔出USB連接線;

此時,就可以像之前使用USB數據線調試那樣,通過Wifi對程序進行調試了。

結束

現在,大家對安卓應用調試需要使用的技術有了一個整體的認識,目前這些知識已經能夠解決大部分應用需要的調試問題了。

在後面,我們會對調試的高級用法做詳細的講述,例如DDMS各種功能的詳細用法。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved