ADB基本使用

weixin_34290000發表於2018-11-23
ADB是android debug bridge的縮寫,負責計算機與Android裝置的幾乎所有通訊和協作,可以認為是連線兩者的橋樑。

原文連結傳送:你確定已經掌握了adb的使用?
ADB命令分類
詳細使用可檢視:
http://adbshell.com/commands/adb-forward

ADB Debugging

  • adb devices
  • adb forward
  • adb kill-server

Package Manger

adb install
adb uninstall
adb shell pm list packages
adb shell pm path
adb shell pm clear

Wireless

adb connect
adb usb
File Manager
adb pull
adb push
adb shell ls
adb shell cd
adb shell rm
adb shell mkdir
adb shell touch
adb shell pwd
adb shell cp
adb shell mv

Network

adb shell netstat
adb shell ping
adb shell netcfg
adb shell ip

Logcat

adb logcat
adb shell dumpsys
adb shell dumpstate

Screenshot

adb shell screencap
adb shell screenrecord [4.4+]

System

adb root
adb sideload
adb shell ps
adb shell top
adb shell getprop
adb shell setprop

ADB命令的常見使用場景

01
某日產品經理小李找到你說:“小王,給我來幾張我們的APP截圖。” ,只聽見小王麻溜敲打著鍵盤,使用adb shell screencap /sdcard/xiaoli/001.png和adb pull /sdcard/xiaoli/001.png。

在這個場景裡小王使用到adb shell screencap截圖和adb pull檔案傳輸兩個命令。

02
我們的APP要上線了,但是因為專案十分龐大,說不準我們的小王寫的程式碼沒有把Log關閉,怎麼辦呢?來吧,在命令列裡看一下

adb logcat | grep com.xxx.xxx

接下來你就在APP裡亂點把,看看有沒有一些尚未關閉的Log。

在Android逆向工程中,我們也可以通過這種方式,利用那些大意而留下來的Log資訊進行相關的邏輯分析。

03
某日,那個叫做小李的產品經理又找到你說:“小王,你幫我在電腦上下載了一個APP裝到手機上”

二話不說,小王下載好app使用adb install xxx.apk進行安裝。

But,出問題了,需要指定手機。原來,小王的電腦上連線了兩個手機。

adb devices大顯身手,原來小李的手機編號是"Sx1xxx2xxxx"。

接下來,小王使用adb -s Sx1xxx2xxxx install xxx.apk

04
短平快的教你通過區域網WIFI連線手機。

前提需要USB連線手機。

adb tcpip 5555

adb connect #.#.#.#(你手機的IP地址)

拔掉USB,你已經成功通過WIFI連線了。(其實背後是通過TCP協議來實現的)

05
沒法編故事了……

安裝APK
adb install xxx.apk

清除已經安裝的APK並安裝新的APK
adb install -r test.apk

解除安裝APK
adb uninstall package_name

清除指定APP的快取
adb shell pm clear package_name

輸出指定包名APP的安裝位置
adb shell pm path package_name

輸出手機中所有的包名
adb shell pm list packages

檢視指定包名的記憶體資訊
adb shell dumpsys meminfo package_name

相關文章