Appium基礎知識(一)

一.   Adb命令html

Adb全稱是Android Debug Bridge,翻譯過來就是安卓調試橋,一種多用途的命令行工具,能夠鏈接模擬器或者真實的安卓設備進行通訊,他是一個包括三個組成的客戶端-服務端程序
1.1 客戶端是運行在咱們的開發機器上,經過adb命令能夠從shell調用客戶端,其餘Android工具,如ADT插件和DDMS也能夠建立adb命令的客戶端。
1.2 服務端是在開發機器後臺運行的進程。服務器管理客戶端和運行在模擬器或者真實設備上的adb守護(adb daemon)進程之間的通訊
1.3 adb daemon是一個運行在模擬器或者真實安卓設備後臺的而守護進程
Adb命令文件所在路徑<sdk>/platform-tools/
當你運行一個adb的客戶端的時候,首先會檢查adb的服務端是否在運行,若是沒有運行,那麼會自動開啓一個服務端進程。當服務端開啓後,他會綁定本地的tcp端口5037,而且經過5037端口監聽全部客戶端發過來的命令
Adb使用
 

類別android

命令shell

說明服務器

備註網絡

可選項app

-ddom

命令僅對USB設備有效socket

若是有多個USB設備就會返回錯誤tcp

-eide

命令僅對運行中的模擬器有效

若是有多個運行中的模擬器就會返回錯誤

-s <serialNumber>

命令僅對adb關聯的特定序列號的模擬器或手機有效(例如 "emulator-5556").

若是不指定設備就會返回錯誤

通常項

devices

輸出全部關聯的模擬器或手機設備列表

參見 Querying for Emulator/Device Instances以得到更多信息。

help

輸出adb支持的命令

 

version

輸出adb的版本號

 

調試項

logcat [<option>] [<filter-specs>]

在屏幕上輸出日誌信息

 

bugreport

爲報告bug,在屏幕上輸出dumpsys,dumpstate和 logcat數據

 

jdwp

輸出有效的JDWP進程信息

可使用 forward jdwp:<pid> 轉換端口以鏈接到指定的 JDWP 進程,例如:

adb forward tcp:8000 jdwp:472

jdb -attach localhost:8000

數據項

install <path-to-apk>

安裝應用程序(用完整路徑指定.apk文件)

 

pull <remote> <local>

從模擬器或手機COPY文件到開發機

 

push <local> <remote>

從開發機COPY指定的文件到模擬器或手機

 

端口和網絡項

forward <local> <remote>

從本地端口轉換鏈接到模擬器或手機的指定端口

端口可使用如下格式表示:

  tcp:<portnum>

 local:<UNIX domain socket name>

 dev:<character device name>

 jdwp:<pid>

ppp <tty> [parm]...

經過USB運行UPP

  <tty> —PPP流中的tty。例如:/dev/omap_csmi_ttyl。

  [parm]... — 0到多個PPP/PPPD 選項,例如 defaultroute, local, notty等等。

注意不用自動啓動PPP鏈接

 

腳本項

get-serialno

輸出adb對象的序列號

參見 Querying for Emulator/Device Instances以得到更多信息。

get-state

輸出adb設備的狀態

wait-for-device

阻塞執行直到設備已經鏈接,即設備狀態是 device.

能夠在其餘命令前加上此項,那樣的話adb就會等到模擬器或手機設備已經鏈接纔會執行命令,例如:

注意該命令並不等待系統徹底啓動,所以不能追加須要在系統徹底啓動才能執行的命令,例如install 命令須要Android包管理器支持,但它必須在系統徹底啓動後纔有效。下面的命令

 

會在模擬器或手機與adb發生鏈接後就執行install,但系統尚未徹底啓動,因此會引發錯誤。

服務端項

start-server

檢測adb服務進程是否啓動,若是沒啓動則啓動它。

 

kill-server

終止服務端進程

 

Shell

shell

在目標模擬器或手機上啓動遠程SHELL

參見 Issuing Shell Commands以得到更多信息。

shell [<shellCommand>]

在目標模擬器或手機上執行shellCommand而後退出遠程SHELL

使用實例
1.      –d 參數

-e 參數

-s < serialNumber > 參數,尖括號裏的內容是必須的

2.      devices命令

 注意設備的狀態包含三種:

Offline(不能調試僅是鏈接,緣由極可能是adb與安卓系統不匹配)  device(正常狀態可調試)  unauthorized(鏈接後不能調試,緣由是未在手機上贊成調試)
加上-l 參數會列出設備的詳細信息,若是報錯是error:protocol fault(no status),那從任務管理器殺掉各類手機助手的進程

help 命令,詳細列出adb命令及參數的幫助文檔
version 命令,顯示adb版本
3. logcat 命令,查看設備日誌
若是隻有一臺設備直接執行adb logcat就能夠,
若是有多臺,那麼須要指定某一個設備執行adb –s 192.168.56.101 logcat
可是這個命令刷新日誌會很快,咱們的dos窗口很差查看,因此咱們能夠將結果重定向到一個文件,而後打開文件方便查看

 

 
查看logcat.txt文件內容以下:

 

 
logcat 的-f參數是將日誌保存到文件,這個文件是在設備上,使用以下

 

 
logcat 自己會顯示出不少日誌來,那麼咱們能夠經過篩選來得到咱們想要的應用的日誌,直接使用adb  logcat時的用法

 

 
先使用adb shell進入shell環境再logcat
 
 

 

 
 
bugreport命令,會將dumpsys,dumpstate以及logcat的信息所有顯示
dumpsys:安卓系統命令,獲取android服務進程的各個信息
dumpstate:安卓系統命令,系統狀態信息,裏面比較全,包括手機當前的內存信息、cpu信息等等
使用和以前的同樣,能夠重定向到文件
adb bugreport>Desktop\bugreport.log
單獨顯示dumpsys和dumpstate的信息,使用以下:
adb shell dumpsys>Desktop\dumpsys.log
adb shell dumpstate>Desktop\dumpstate.log
4.      install 命令,安裝app文件到設備

 

 
若是已經安裝了,須要再次安裝須要加參數-r,不然會失敗

 

 
有安裝就會有卸載uninstall

 

 
 
pull命令,從手機設備COPY指定的文件到開發機

 

 
push命令,從開發機copy指定文件到設備

 

 
5.      start-server命令,檢查服務狀態,若是沒啓動那就啓動

 

 
kill-server 命令,殺死全部adb進程
一般當咱們在執行adb時碰到error或者設備狀態不對,能夠嘗試重啓adb服務,也就是使用這兩命令,就猶如網管的重啓電腦大殺器同樣
6.      shell命令,進入安卓shell環境,這裏的shell環境就是指安卓系統
 
shell <command> 命令,直接執行shell環境下的命令,例子以下:

 

 

 
這裏用的vmstat命令會顯示服務器的狀態值,包括服務器的CPU使用率,內存使用,虛擬內存交換狀況,IO讀寫狀況
7.      root 命令,以root身份重啓adbd守護進程,對於未得到root權限的手機,這個命令執行時會報錯的

 

 
usb 命令,在usb上重啓守護進程的監聽

 

 
tcpip <port> 命令,在特定端口上以tcpip協議重啓守護進程的監聽

 

 
 
下面實例演示手機wifi鏈接電腦
先使用usb鏈接手機和電腦,查看

 

 
再使用adb tcpip 8787 重啓守護進程

 

 
   而後查看手機設備的ip,這裏個人是192.168.1.109,注意這裏須要保持電腦ip和手機ip可以互相ping通,使用adb connect 192.168.1.109:8787 鏈接設備

 

 
再次查看鏈接的設備

 

 
這裏顯示兩個,一個是usb的鏈接,一個是wifi鏈接,拔掉數據線,咱們依然能夠針對該設備進行調試操做

 

 
斷開wifi鏈接命令

 

 
再次轉換爲usb,使用命令adb usb便可
二. Dos命令
   
   2.1 cd命令,切換目錄
      注意切換盤符不能使用cd e:這樣的形式,必須直接使用e:就能夠切換
      

 

 
cd  workspace 進入e盤workspace目錄
 
      cd ..返回上一級目錄,cd ..\..\ 返回上兩級目錄
      

 

 
      2.2 dir 查看當前目錄都有哪些文件
      

 

 
2.3 md 建立目錄

 

 
   rd /s /q testdir 刪除testdir這個目錄及其如下的全部文件
       type test.txt 查看文件內容
   del test.txt刪除文件
2.4 netstat –ano|findstr 4723 查看端口占用狀況,下面截圖表示該端口已佔用,最後一列的數字是該進程的id

 

 
taskkill -F -pid 7812  按照進程號強殺某進程

 

 
taskkill -F -im name 按照進程名稱強殺進程

 

 
三.安卓shell命令
   3.1 cd命令,切換目錄
       cd ..返回上一級
       cd –返回上次的目錄
       cd ~返回當前用戶的家目錄
      pwd 命令,顯示當前所在目錄路徑

 

 
  3.2 ls 命令顯示當前目錄下的全部文件(不包括隱藏文件)
     

 

 
     ll 命令是以上列表的形式顯示全部文件(不包括隱藏文件),注意第一列的第一個字符,-表示是文件,d表示是目錄,ll其實是ls –l的簡寫

   3.3 rm –rf  <文件或者目錄>表示強制刪除文件或者目錄,-r表示遞歸刪除 –f表示強制不用詢問

   mkdir <目錄名稱> 建立目錄3.4 cat <文件名稱> 查看文件內容
相關文章
相關標籤/搜索