編輯:關於Android編程
Android Studio的Android Device Monitor(簡稱ADM)是我們動態調試安卓程序時重要的幫手。它提供了很多動態調試的工具和調試方法。上一章介紹的log調試,就需要通過ADM的logcat顯示調試內容;它還可以查看系統內存的占用情況,可以看到系統CPU的運行情況。
ADM可以在兩個地方工作:
在Android Studio集成窗口:在Android Studio下方的窗口中,點擊Android Monitor,就能在Android Studio中顯示;
在第一個框中,選中我們要調試的設備,第二個框中選中我們要調試的應用,
ADM單獨運行:通過Android Studio的菜單欄啟動;
獨立運行後,就像這樣,
Logcat用來查看程序輸出的log。我們可以選擇log的類型(verbose debug info warning error)來過濾log。
當選擇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太多,會影響我們的判斷,可以自定義過濾器。
選擇編輯過濾器,
指定過濾器的名字,輸入log中包含關鍵字的內容,
以後logcat獲取的log,就只有匹配過濾器中關鍵字的log了。
還有一個非常有用的功能是重啟ADB。ADB有時候會因為種種原因而無法與設備相連,這時候通過下圖的按鈕重啟ADB就能解決問題。
在Android Studio集成界面,ADM還提供了方便的設備截屏、設備錄像帶功能。
設備截屏能將設備上正在顯示的內容以截取圖片或視頻的形式保存到電腦上。
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,啟動命令行窗口;
ADB提供了很多使用的命令,這裡列出最為常用的幾個命令的用法。
列出當前連接到電腦上的所有安卓設備
$ adb devices
List of devices attached
192.168.56.101:5555 device
356BCJMDUV48 device
輸出安卓設備上的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的幫助信息,供使用者參考。
啟動ADB工具,
$ adb start-server
停止ADB工具,
$ adb start-server
從電腦登錄到安卓設備上,
$ adb shell
root@vbox86p:/ #
登錄到設備上後,就可以直接操作設備了。
輸出設備上所有系統模塊的狀態信息,這個輸出會非常的長,
$ 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形式。
安裝應用,
$ adb install -r /Users/User/Desktop/app.apk
5474 KB/s (1182939 bytes in 0.211s)
pkg: /data/local/tmp/app.apk
Success
-r
選項表示強制安裝-如果這個應用以前安裝過,就把它卸載了重新安裝,可以不使用;後面跟的是安裝文件在電腦上的位置。
卸載應用,
$ adb uninstall com.anddle.calculator
Success
uninstall
後面跟的是要卸載的程序的包名字。
ADB工具還有很多別的功能,可以通過這個命令查詢它們的深入的詳細的用法。
$ adb help
我們通常都是使用USB線連接設備和電腦進行的程序調試。
有的程序本身就要使用USB口,例如一個文件浏覽器,它可以列出通過USB接口接入的U盤。
在調試這樣的應用的時候,USB接口被占用了,但設備也只有一個USB接口,就可以考慮使用WiFi來進行ADB調試了。
通過WiFi代替數據線進行程序調試,利用了ADB工具的adb tcpip
和adb 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各種功能的詳細用法。
在你的手機更多設置或者高級設置中,我們會發現有個無障礙的功能,很多人不知道這個功能具體是干嘛的,其實這個功能是為了增強用戶界面以幫助殘障人士,或者可能暫時無法與設備充分交
GridView跟ListView都是比較常用的多控件布局,而GridView更是實現九宮圖的首選!本文就是介紹如何使用GridView實現九宮圖。GridView的用法
1.Animation 動畫類型Android的animation由四種類型組成:XML中 alph 漸變透明度動畫效果 scale 漸變尺寸伸縮動畫效果 tr
引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式來開發移動手機APP,因此當頁面需要獲取手機內部某些信息時(例如:聯系人信息,坐