Appium基礎知識(一)

來源:互聯網
上載者:User

標籤:serial   filter   不能   cells   未在   調試   str   多個   2.3   

一.   Adb命令

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使用
 

類別

命令

說明

備忘

可選項

-d

命令僅對USB裝置有效

如果有多個USB裝置就會返回錯誤

-e

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

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

-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 <檔案名稱> 查看檔案內容

Appium基礎知識(一)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.