標籤:模擬器 adb
● 前言
利用工作之餘的時間將Android測試相關知識進行一個整理,一來鞏固一下自己學到的東西;二來
可以讓想學習Android測試的同學多一份學習資料。
● 何為ADB
什麼是ADB呢?為什麼手機和電腦之間用usb串連後,就可以電腦上通過應用寶或者豌豆莢等手機助
手軟體對手機進行操作?
答案就是:因為這些都依賴於ADB。ADB就是串連手機和電腦通訊的橋樑,只要這個橋樑建立起了,
那麼你就可以通過電腦來控制你的手機了。
ADB全稱Android Debug Bridge,我把它解釋為“安卓調試的橋樑”,他是由三部分組成:
1、用戶端 client:運行在你的電腦上,你可以通過shell來調用起一個用戶端。其他Android
工具,例如ADT外掛程式、DDMS都可以建立出一個用戶端
2、伺服器 server:運行在你電腦的後台,負責管理client和daemon進行通訊。
3、守護進程 daemon:運行在模擬器或者Android裝置的後台。
但是它最終呈現給我們用的就是一個命令列的工具 ( command line tool ),通過它我們就可以
和模擬器或者是Android裝置進行通訊。它就在 <sdk>/platform-tools/ 這個目錄下:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/8A/30/wKiom1gqdRmRjo2NAAGz7xjZBUQ582.png" title="1.png" alt="wKiom1gqdRmRjo2NAAGz7xjZBUQ582.png" />
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/8A/2D/wKioL1gqdRqByuUPAAD5a5XOFss221.png" title="2.png" alt="wKioL1gqdRqByuUPAAD5a5XOFss221.png" />
每次啟動用戶端的時候,首先會檢查伺服器是否已經在後台運行了,如果沒有,他就會啟動server進程;
如果server是開啟的,server就會綁定在 TCP 的 5037 連接埠然後監聽用戶端發出來的命令;
所有的client都是通過 5037 連接埠和server進行通訊的。
USB調試
當我們通過USB資料線來使用ADB的時候,通常需要將 "設定"-"開發人員選項"-"USB調試" 這個框勾上。
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/8A/30/wKiom1gqddmDMFLHAAC28jab9gU265.png" title="3.png" alt="wKiom1gqddmDMFLHAAC28jab9gU265.png" />
需要注意的是:在有些 Android 4.2.2版本以上,是隱藏了“開發人員選項”的,因此需要在 “設
置”-“關於手機”-“Android版本” 在這裡連續點擊7次,然後“開發人員選項”就出現了。
● ADB 命令
連上手機,配置好了環境變數(直接搜尋“adb環境變數配置”會出一大堆)就可以使用命令了。下面列舉一下常用的命令
adb devices 查看當前串連裝置
顯示當前串連的一個序號和狀態:
650) this.width=650;" src="http://images0.cnblogs.com/blog2015/626346/201507/101154565646068.png" style="margin:0px;padding:0px;border:0px;" />
adb install <path_to_apk> 安裝apk檔案
給的Apk的路徑是當前PC端檔案所在的路徑:
650) this.width=650;" src="http://images0.cnblogs.com/blog2015/626346/201507/101200455333522.png" style="margin:0px;padding:0px;border:0px;" />
adb -s <serialNumber> <command> 指定裝置執行命令
serialNumber就是adb devices中的第一列的資訊
650) this.width=650;" src="http://images0.cnblogs.com/blog2015/626346/201507/101227050028818.png" style="margin:0px;padding:0px;border:0px;" />
adb pull <remote> <local> 將Android裝置上的檔案拉到本地
一般Android手機預設的儲存路徑是“/mnt/sdcard/”,我們把這裡面的一個檔案拉到C盤
650) this.width=650;" src="http://images0.cnblogs.com/blog2015/626346/201507/101338476435005.png" style="margin:0px;padding:0px;border:0px;" />
然後我們去電腦的C盤下去看一眼:
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/8A/2D/wKioL1gqdw7ypTbcAAGeTp-h2B0448.png" title="4.png" alt="wKioL1gqdw7ypTbcAAGeTp-h2B0448.png" />
通過Adb pull 命令複製出來的檔案
adb push <local> <remote> 把本地檔案複製到Android裝置上
和 adb pull 剛好是一對相反的命令。
650) this.width=650;" src="http://images0.cnblogs.com/blog2015/626346/201507/101344144553761.png" style="margin:0px;padding:0px;border:0px;" />
adb start-server 啟動adb的server
adb kill-server 關閉adb的server
有點時候adb在沒有響應的時候,我們需要重啟adb,不過這種情況一般較少。
650) this.width=650;" src="http://images0.cnblogs.com/blog2015/626346/201507/101348443937761.png" style="margin:0px;padding:0px;border:0px;" />
adb shell [shellCommand] 運行shell命令
眾所周知,Android是基於linux核心的,因此可以在Android的系統上運行shell命令
通過adb shell 可以進入手機的系統,然後執行一些linux的命令
650) this.width=650;" src="http://images0.cnblogs.com/blog2015/626346/201507/101353558778900.png" style="margin:0px;padding:0px;border:0px;" />
當然也可以不進入系統,直接使用命令
650) this.width=650;" src="http://images0.cnblogs.com/blog2015/626346/201507/101356227996848.png" style="margin:0px;padding:0px;border:0px;" />
例如adb shell下安裝和卸載命令是:
pm uninstall com.tencent.qq
pm install -r "/data/local/tmp/com.tencent.qq"
本文為個人使用的認知,知識點可能會有些偏差,希望大家能批評指正。
本文出自 “半醒半醉半浮生” 部落格,請務必保留此出處http://sweettesting.blog.51cto.com/12233355/1872918
【Android測試】【第一節】初識ADB