Android 工具:ADB 使用總結(jié)

ADB全稱Android Debug Bridge,Android 開發(fā)中筑累, 我們在開發(fā)過程中經(jīng)常使用這個工具來操作Android系統(tǒng)袱蜡,是 Android 開發(fā)者必須掌握的。

功能介紹

ADB主要功能有:

  1. 在Android設(shè)備上運行Shell(命令行)

  2. 管理模擬器或設(shè)備的端口映射

  3. 在計算機(jī)和設(shè)備之間上傳/下載文件

  4. 將電腦上的本地APK軟件安裝至Android模擬器或設(shè)備上

使用配置

一個這么常用工具慢宗, Google 早就在 Android SDK 中幫我們集成了坪蚁,就放在\android-sdk-windows\platform-tools這個目錄下面,我們只需要配置一下環(huán)境變量就可以使用了镜沽。作為開發(fā)者敏晤,配置環(huán)境變量這種小兒科我就不贅述了......

ADB 用法

查詢模擬器或手機(jī)狀態(tài)

查看 adb 服務(wù)端連接的模擬器或手機(jī)可以幫助更好的使用 adb 命令,這可以通過 devices 命令來列舉當(dāng)前連接的設(shè)備:

adb devices

執(zhí)行結(jié)果是 adb 為每一個設(shè)備輸出以下狀態(tài)信息:

序列號(serialNumber):由 adb 創(chuàng)建用于唯一標(biāo)識設(shè)備的字符串缅茉,格式是 <設(shè)備類型>-<端口號>嘴脾,例如: emulator-5554

連接狀態(tài)(state),其值是可能是下面的任意一種:

offline — 未連接或未響應(yīng)

device — 表示設(shè)備已經(jīng)連接到服務(wù)端蔬墩。但需要注意的是译打,這個狀態(tài)并不表示 Android 系統(tǒng)已經(jīng)完全啟動起來并且可操作,因為系統(tǒng)在啟動的過程中就已經(jīng)連接 adb 拇颅,但這個狀態(tài)是正常的可操作狀態(tài)奏司。

no device – 表示沒有任何設(shè)備連接(樓主測試過程中沒有碰到過 no device 的情況,沒連接設(shè)備就沒任何輸出)

操作指定模擬器或手機(jī)

如果有多個模擬器或手機(jī)正在運行樟插,當(dāng)使用 adb 命令的時候就需要指定目標(biāo)設(shè)備韵洋,這可以通過使用 -s 選項參數(shù)實現(xiàn),用法如下:

adb -s < serialNumber > < command >

// 例如在 emulator-5556 設(shè)備上安裝應(yīng)用:

adb -s emulator-5556 install xxxx.apk

這里補(bǔ)充一點黄锤, Google 官方給出在多設(shè)備的情況下搪缨,不用 -s 參數(shù)指定目標(biāo)設(shè)備的快捷方式。

adb -e install xxxx.apk

//同理鸵熟,如果有多個設(shè)備副编,但只有一個真機(jī),可以使用如下命令快速發(fā)送命令

adb -d install xxxx.apk

安裝應(yīng)用

使用 adb install 命令可以從開發(fā)用電腦中復(fù)制應(yīng)用程序并且安裝到模擬器或手機(jī)上旅赢, adb install 命令必須指定待安裝的.apk文件的路徑齿桃。

adb install [-lrtsdg] < path_to_apk >

(-l : 鎖定該程序)

(-r : 重新安裝該程序惑惶,保留應(yīng)用數(shù)據(jù))

(-t : allow test packages)

(-s : 將應(yīng)用安裝到 SD卡煮盼,不過現(xiàn)在手機(jī)好像都沒有 SD卡 了吧)

(-d : 允許降版本號安裝,當(dāng)然只有 debug 包才能使用)

(-g : 安裝完默認(rèn)授予所有運行時權(quán)限)

卸載應(yīng)用

上面介紹了安裝應(yīng)用命令带污,既然有安裝應(yīng)用的命令僵控,那當(dāng)然有卸載應(yīng)用的命令。卸載應(yīng)用命令的格式如下:

// < package > 表示要卸載應(yīng)用的包名

adb uninstall [-k] < package > (-k:不刪除程序運行所產(chǎn)生的數(shù)據(jù)和緩存目錄)

與模擬器或手機(jī)傳輸文件

使用 adb 命令 pull 和 push 能從 Android 設(shè)備拷貝或復(fù)制文件到 Android 設(shè)備鱼冀。跟 install 命令不同报破,pull 和 push 命令允許拷貝和復(fù)制文件到任何位置悠就。

  • pull

adb pull [-a] < remote_path > < local_path > (-a:保留文件時間戳及屬性)

舉個栗子,我想把應(yīng)用中的數(shù)據(jù)庫文件復(fù)制到本地目錄下:

adb pull sdcard/contacts_app.db

  • push

adb push < local_path > < remote_path >

舉個栗子充易,我想把桌面的 log.txt 復(fù)制到手機(jī)的 dev 目錄下:

adb push .../log.txt /dev

無線調(diào)試

平時我們都是使用 USB調(diào)試梗脾,但是有時候設(shè)備老化或者數(shù)據(jù)線連接不穩(wěn)定, USB 調(diào)試就不好使了盹靴。這時我們就想能不能拋開這根數(shù)據(jù)線呢炸茧?當(dāng)然可以,adb 也是支持通過 WIFI 進(jìn)行調(diào)試了稿静,使用方式如下:

  • 首先梭冠,你要將 Android 設(shè)備和 裝有 adb 的電腦連接到同一 Wi-Fi 網(wǎng)絡(luò)。其次改备,你需要配置好防火墻控漠,否則很有可能導(dǎo)致 Wi-Fi 調(diào)試不能使用。

  • 使用 USB數(shù)據(jù)線 將手機(jī)連接到電腦悬钳。

  • 設(shè)置目標(biāo)設(shè)備監(jiān)聽 5555端口 的 TCP/IP 連接盐捷。

    adb tcpip 5555

  • 斷開手機(jī)與電腦的 USB 連接。

  • 查看手機(jī)的 IP地址 他去。

  • 通過 IP 連接手機(jī)

    adb connect < device_ip_address >

這時就可以使用 adb devices 確認(rèn)手機(jī)是否連接到電腦上了毙驯。

通過以上步驟,就可以開心的享用 WiFi 調(diào)試了灾测。如果沒有正常連接爆价,可以按照下面的步驟檢查:

  1. 檢查電腦和手機(jī)是否還在同一個 WiFi 網(wǎng)絡(luò)下
  2. 重新執(zhí)行一次 adb connect <device_ip_address> 命令
  3. 重啟 adb 服務(wù),然后重頭再來
  4. 檢查是否是防火墻的設(shè)置問題

查看設(shè)備的 log

在日常開發(fā)中媳搪,我們經(jīng)常要查看日志進(jìn)行調(diào)試我們的app铭段,adb 提供了強(qiáng)大的日志查看命令。 adb logcat 命令格式是這樣的:

adb logcat [選項] [過濾項]

(-s : 設(shè)置輸出日志的標(biāo)簽, 只顯示該標(biāo)簽的日志)

(-f : 將日志輸出到文件, 默認(rèn)輸出到標(biāo)準(zhǔn)輸出流中, -f 參數(shù)執(zhí)行不成功)

(-r : 按照每千字節(jié)輸出日志, 需要 -f 參數(shù), 不過這個命令沒有執(zhí)行成功)

(-n : 設(shè)置日志輸出的最大數(shù)目, 需要 -r 參數(shù), 這個執(zhí)行 感覺 跟 adb logcat 效果一樣)

(-v : 設(shè)置日志的輸出格式, 注意只能設(shè)置一項)

(-c : 清空所有的日志緩存信息)

(-d : 將緩存的日志輸出到屏幕上, 并且不會阻塞)

(-t : 輸出最近的幾行日志, 輸出完退出, 不阻塞)

(-g : 查看日志緩沖區(qū)信息)

(-b : 加載一個日志緩沖區(qū), 默認(rèn)是 main, 下面詳解)

(-B : 以二進(jìn)制形式輸出日志)

舉幾個常用的栗子秦爆,場景如下:

  • 應(yīng)用調(diào)試過程中序愚,我想看全部日志,并想看日志輸出時間。

adb logcat -v time

  • 日志輸出后發(fā)現(xiàn)在終端控制臺里查看不太方面等限,想輸出到文件中查看爸吮。

adb logcat -v time >xxx.txt

  • 應(yīng)用崩潰了,我現(xiàn)在只關(guān)心崩潰日志望门。

adb logcat -v time *:e

  • 崩潰解決了形娇,心安了,現(xiàn)在想看某一個邏輯完整的執(zhí)行過程(日志TAG:######)筹误。

adb logcat -s ######

  • 前面打了很多日志了桐早,這時我想清空一下緩存區(qū)的日志,開始打新的日志。

adb logcat -c

這里就介紹這些基本且常用的命令的使用哄酝,如果你想深入了解一下友存,可以到 Android調(diào)試橋 具體學(xué)習(xí)。

重啟手機(jī)

有時候陶衅,手動關(guān)機(jī)太麻煩屡立,那就來個命令行吧~

adb reboot

以 root 權(quán)限開啟 adb 守護(hù)進(jìn)程

很多時候我們需要 root 手機(jī)以獲得高權(quán)限操作手機(jī),此時就需要下面的命令了:

// 此命令會重啟守護(hù)進(jìn)程

adb root

// root 成功后需要重新掛在磁盤
adb remount

開啟或關(guān)閉 adb 服務(wù)

在某些情況下需要重啟 adb 服務(wù)來解決問題搀军,比如 adb 無響應(yīng)侠驯。這時你可以通過 adb kill-server 來實現(xiàn)這一操作。

adb kill-server

kill 之后奕巍,通過 adb start-server 或者任意 adb 命令來重啟 adb 服務(wù)吟策。

adb start-server

總結(jié)

以上就是 adb 命令的常見用法,都是本人日常開發(fā)中使用頻率高的的止。有些不常用的 adb 命令沒有介紹檩坚,更多 adb 用法請見:Android調(diào)試橋。文中如有紕漏诅福,歡迎大家留言指出匾委。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市氓润,隨后出現(xiàn)的幾起案子赂乐,更是在濱河造成了極大的恐慌,老刑警劉巖咖气,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挨措,死亡現(xiàn)場離奇詭異,居然都是意外死亡崩溪,警方通過查閱死者的電腦和手機(jī)浅役,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伶唯,“玉大人觉既,你說我怎么就攤上這事∪樾遥” “怎么了瞪讼?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長粹断。 經(jīng)常有香客問我符欠,道長,這世上最難降的妖魔是什么姿染? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任背亥,我火速辦了婚禮,結(jié)果婚禮上悬赏,老公的妹妹穿的比我還像新娘狡汉。我一直安慰自己,他們只是感情好闽颇,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布盾戴。 她就那樣靜靜地躺著,像睡著了一般兵多。 火紅的嫁衣襯著肌膚如雪尖啡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天剩膘,我揣著相機(jī)與錄音衅斩,去河邊找鬼。 笑死怠褐,一個胖子當(dāng)著我的面吹牛畏梆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播奈懒,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼奠涌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了磷杏?” 一聲冷哼從身側(cè)響起溜畅,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎极祸,沒想到半個月后慈格,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡遥金,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年峦椰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汰规。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡汤功,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出溜哮,到底是詐尸還是另有隱情滔金,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布茂嗓,位于F島的核電站餐茵,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏述吸。R本人自食惡果不足惜忿族,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一锣笨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧道批,春花似錦错英、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至璃赡,卻和暖如春判哥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背碉考。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工塌计, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人侯谁。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓夺荒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親良蒸。 傳聞我的和親對象是個殘疾皇子技扼,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容