你應該知道的Android調試神器adb

xdfwbbk 8年前發布 | 15K 次閱讀 數據庫 Android開發 移動開發

最近跟著一個前輩在做TV應用,因為不能通過usb連接調試,接觸到了adb,突然間覺得自己似乎發現了另外一個世界,借助adb shell命令對應用進行調試,簡直方便得不行。更重要的是,這是命令行操作啊!!!裝逼神器啊,還沒學的趕緊來試試看吧。

效果

老規矩,先上幾張截圖看看效果,這是查看xml文件數據,和sqlite數據庫數據的效果

介紹

adb,網上介紹其實很多,就是用來對安卓系統進行一些命令操作的工具。如果你的應用需要經常查看 sharePreference文件數據Sqlite 數據庫數據 ,以及 本地的各種數據 的話,那么使用adb將會非常方便。

如果你需要從電腦上發送一些文件到手機里,或者從手機獲取一些文件到電腦上(比如視頻之類的應用,需要經常把應用存在手機里的視頻文件發送到電腦),那么借助adb也可以很方便實現。

如果你想做一些TV應用的話,那么就應該要學學ADB了,學學如何通過wifi連接調試,如果pull,push文件等等了。

使用

好了,現在就來看看一些常用的命令了,adb 的命令其實很多,不用特意去記,平常要用時上網搜下,等用熟悉了,自然就把一些常用的命令給記住了。下面,稍微介紹一些我經常使用到的命令:

基本命令:ls、cd、cat、rm、cp、mkdir

這些命令是linux系統上的一些基本命令,至少要對 lscdcat 這幾個命令熟悉點,才能很流暢的使用adb工具,如果你還不熟悉,建議先去了解下這幾個命令吧。

①adb shell

這個是進入手機shell操作的一個命令。通常情況下,你調試用的模擬器或者手機通過usb連接電腦后,在win上通過 Ctrl + R ,輸入 cmd ,在dos窗口內執行該命令即可進入手機的shell操作。

如果你連接當前電腦的手機不止一部時,這時就需要借助參數來進行選擇指定的設備了。如下圖:

②借助ls、cd命令進入應用數據地址:/data/data/{包名如:coder.dasu.meizi}/

該目錄下就是存放該應用的 xml數據,cache數據,file數據,以及sqlite數據庫數據了,如下:

③cat命令查看SharePreference的xml數據

xml中經常保存一些應用的配置數據,比如用戶是否首次啟動app,用戶賬戶,用戶對應用操作的一些設置啊,比如關閉消息推送等等。

這些數據在開發時,都可以通過log方式打印出來,查看效果是否正確。但有時,如果想要查看較多的xml數據時,又懶得一個個的敲代碼,或者log信息太雜,忘記以前寫的過濾條件時,這時就可以借助adb來實現了。

你應該知道的Android調試神器adb

④神器: sqlite3 * .db命令查看數據庫

以上介紹的一些功能其實就算不借助adb,也可以使用打印log等方式實現。但如果我們開發過程中,需要經常查看一些數據庫內的數據時,也可以使用ddms,把db文件導出來借助工具查看,但這樣總會麻煩了點,需要每次都進行導出db文件。所以,這時候,如果借助 sqlite3 這個命令,將會非常方便。

執行完 sqlite3 meizi.db 后,會進入一個sqlite命令狀態,在這里可以使用sql語言來進行查詢,也可以使用.help來查看sqlite3提供的一些快速命令.

如,執行 .table 可以查看當前數據庫所有的表,執行 .schema 可以查看創建數據庫的sql命令

上面那圖中有兩張表,我們看看USER表中有什么數據,可以使用sql命令查詢

你應該知道的Android調試神器adb

ps:查詢結果默認是一個記錄一行的,也可以設置成list、或上圖等各種顯示方式,通過 .mode .header 命令來執行,這些命令都可以通過 .help 來查看說明。

雖然需要執行sql命令才能查詢,但其實也就 select 一下,并不會很復雜,而且還可以借機多接觸一下sql語言,學習一下。更重要的是,這很裝逼,有沒有O(∩_∩)O。不管在同學面前操作,還是操作給不懂這個的老板看,都會讓對方覺得你很吊的。

哈哈,反正我是喜歡上用這個工具就是了,因為最近開發負責的部分很多跟數據庫操作相關,而且還經常出現一些bug,需要經常查看數據庫內容來定位以及解決bug,所以這個用著是特別方便,相比于以前用導出db文件的方式來的話。

如果你也有調試數據庫這方面的需求,建議你也可以使用這個工具試試看。

其他功能

我使用adb工具更多的是用它來查看應用的一些數據。但其實,它還是有很多其他實用的功能的。

wifi連接調試 adb connect {ip}

如果你不想用usb連接調試,可以選擇使用adb 連接調試,命令是 adb connect {ip} ,需要在同一個局域網內。這個功能也比較實用,但首次連接時,需要另外一些配置,建議可以網上搜索下 adb wifi連接手機 等關鍵字看看。

屏幕截屏 screencap -p {圖片存儲地址}

這個其實直接通過手機截屏再發送到電腦就可以了,但我開發的是TV應用,在盒子上沒法截屏,所以這個命令對我來說還是較實用的。

獲取或推送文件 adb pull/push

這個也挺實用的,獲取手機指定位置的文件到電腦上,或者從電腦發送文件到手機上

如果上面有什么錯誤,歡迎指正一下。如果你還知道其他更實用的功能,也歡迎告知一下,題主也是個新手,一起好好學習學習。

 

來自:http://www.jianshu.com/p/a6dcdb2c74c3

 

 本文由用戶 xdfwbbk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!