adb的全稱為android debug bridge,就是起到除錯橋的作用。adb的工作方式比較特殊,採用監聽socket tcp 5554等埠的方式讓ide和qemu通訊,預設情況下adb會daemon相關的網路埠,借助adb工具,我們可以管理裝置或手機模擬器的狀態。還可以進行很多手機操作,如安裝軟體、系統公升級、執行shell命令等等。其實簡而言說,adb就是連線android手機與pc端的橋梁,可以讓使用者在電腦上對手機進行全面的操作。
adb命令:
category
command
description
comments
options
-d
僅僅通過usb介面來管理abd.
如果不只是用usb介面來管理則返回錯誤.
-e
僅僅通過模擬器例項來管理adb.
如果不是僅僅通過模擬器例項管理則返回錯誤.
-s
通過模擬器/裝置的允許的命令號碼來傳送命令來管理adb (比如: "emulator-5556").
如果沒有指定號碼,則會報錯.
general
devices
檢視所有連線模擬器/裝置的設施的清單.
檢視 querying for emulator/device instances獲取更多相關資訊.
help
檢視adb所支援的所有命令。.
version
檢視adb的版本序列號.
debug
logcat
將日誌資料輸出到螢幕上.
bugreport
檢視bug的報告,如dumpsys
,dumpstate
,和logcat
資訊。
jdwp
檢視指定的設施的可用的jdwp資訊.
可以用forward jdwp:
埠對映資訊來連線指定的jdwp程序.例如:
adb forward tcp:8000 jdwp:472
jdb -attach localhost:8000
data
install
安裝android為(可以模擬器/設施的資料檔案.apk指定完整的路徑).
pull
將指定的檔案從模擬器/設施的拷貝到電腦上.
push
將指定的檔案從電腦上拷貝到模擬器/裝置中.
ports and networking
forward
用本地指定的埠通過socket方法遠端連線模擬器/設施
埠需要描述下列資訊:
ppp [parm]...
通過usb執行ppp:
需要提醒你的不能自動啟動pdp連線.
scripting
get-serialno
檢視adb例項的序列號.
檢視 querying for emulator/device instances可以獲得更多資訊.
get-state
檢視模擬器/設施的當前狀態.
wait-for-device
如果裝置不聯機就不讓執行,--也就是例項狀態是device
時.
server
start-server
選擇服務是否啟動adb服務程序.
kill-server
終止adb服務程序.
shell
shell
通過遠端shell命令來控制模擬器/裝置例項.
檢視 獲取更多資訊 for more information.
shell
連線模擬器/設施執行shell命令,執行完畢後退出遠端shell端l.
通過adb shell screencap -p 獲取手機螢幕
**如下:
#執行報錯:-*- coding: utf8 -*-
from pyqt4.qtgui import *
import
sys, os, time
from pyqt4.qtcore import *
class
myadb(qdialog):
def__init__
(self):
super(myadb, self).
__init__
() self.xsize = 480self.ysize = 850self.resize(self.xsize, self.ysize)
self.setwindowflags(qt.dialog |qt.customizewindowhint)
self.theading =mytheading()
self.connect(self.theading, signal(
"updatescreen
"), self.update)
self.theading.start()
#執行緒開始
defpaintevent(self, event):
painter =qpainter()
painter.begin(self)
painter.setrenderhint(qpainter.antialiasing)
painter.drawpixmap(0, 0, self.xsize, self.ysize, qpixmap(
"c:\\screen.png"))
painter.end()
class
mytheading(qthread):
def__init__
(self):
super(mytheading, self).
__init__
()
defrun(self):
while
true:
command = '
adb shell screencap -p /sdcard/screen.png
'os.system(command)
cmdpic = "
adb pull /sdcard/screen.png c:\\screen.png
"os.system(cmdpic)
self.emit(signal(
"updatescreen"))
if__name__ == '
__main__
':
adb server is out of date. killing....原因在於adb server沒有成功啟動,其埠被占用
首先查詢對應埠:
adb nodaemon server
cannot bind 'tcp:5037'繼續查詢此埠具體被哪個程序所占用了
netstat -ano | findstr "找到後將相應程序kill掉,(我的電腦是tadb.exe 占用)然後在執行指令碼5037
"
效果:
Windows系統下無線鏈結android
cmd console shell netsh wlan show drivers 顯示 支援的承載網路 是 則可以執行下面的步驟。檢視承載網路狀態 shell netsh wlan show hostednetwork 開啟承載網路 shell netsh wlan set hostednetwo...
HBuilder連線不上逍遙Android模擬器
一 hbuilder安裝目錄中tools資料夾下的三個檔案 adb.exe,adbwinapi.dll,adbwinusbapi.dll複製到到逍遙模擬器安裝目錄的memu的中 注 我的hbuilder目錄 e pheonix installpath hbuilder.7.5.1.windows h...
Mac中編譯FFmpeg教程 Android版
本篇文章主要介紹在mac環境中,編譯ffmpeg生成so庫。本次編譯的環境如下 export android ndk root users jiangshuaijie android ndk r14b build export path 然後在命令列中輸入ndk build測試環境是否配置成功。sl...