平時開發android應用 的時候,我們都會用到包含在android sdk中一系列的工具,或許我們通過eclipse去呼叫,又或許,我們自己通過開啟終端進行手動輸入並且執行,下面我們來一起學習下這些工具的開發使用吧。
android debug bridge,我們一般簡稱為adb,主要存放在sdk安裝目錄下的platform-tools資料夾中,它是乙個非常強大的命令列工具,通過這個工具你能夠與你的android裝置進行互動。同時這是乙個包含了以下三部分的cs模式的程式:
1) adb client
從圖中,我們知道client是執行在pc端的,每當我們發起乙個adb命令的時候,就會開啟乙個client程式。當然,當我們開啟ddms或者adt的時候,也會自動建立client。
當我們開啟乙個client的時候,它首先會去檢測後台是否已經有乙個server程式在執行著,否則會開啟乙個adb-server程序。
所有的client都是通過5037埠與adb-server進行通訊的。
2)adb daemon(adbd)
從圖中,我們知道daemon是作為乙個後台程序執行在模擬器/真實android裝置中的。
daemon使用埠的範圍是5554-5585,每個模擬器/裝置連線到pc端時,總會開啟這麼乙個後台程序,並且為其分配了兩個連續的埠,比如:
emulator 1, console: 5554
emulator 1, adb: 5555
也正因為每個裝置都分一組兩個埠,也已adb連線手機的最大數量為16。
說回埠的作用,在這兩個埠中,其中偶數埠是用於server 與裝置進行互動的,可以讓server直接從裝置中讀取資料,而奇數埠是用來與裝置的adbd進行連線通訊的。
2) adb server
從圖中,我們同樣可以知道,server也是作為乙個後台的程式執行在pc端的,他負責管理client程序以及adb daemon之間的通訊。
當乙個server開啟的時候,他會自動繫結並且監聽5037埠,接收client通過該埠傳送過來的命令。同時server還會對5555-5585間的奇數埠進行掃瞄,進行對已連線裝置的定位。
首先我們先來介紹一下,adb命令的使用格式吧:
adb [-d|-e|-s ]
adb是必須的,接下來方括號裡面的內容不是必須的,最後才是我們需要執行的命令操作,例如 adb -s emulator-5554 install ucbrowser.apk (這是安裝uc瀏覽器的意思)
下面先介紹下,前面幾個引數的含義吧:
-d: 讓唯一連線到該pc端的真實安卓裝置執行命令,如果發現usb中連線有多部裝置,將會報錯
-e: 讓唯一連線到該pc端的模擬器執行命令,如果發現開啟了多個模擬器,將會報錯
-s:通過裝置的序列號進行指定裝置執行命令
如果裝置只連線有乙個裝置或者乙個模擬器的時候,可以不用宣告這三個引數,adb缺省會讓這部唯一連線到的裝置進行命令執行。
ok,下面開始講解常用的命令吧:
1) 檢視當前pc端連線有多少裝置:
adb devices
終端中的執行結果為:
從上圖中,我們看到了裝置有的兩種狀態,其實執行該命令,可能返回的狀態有三種:
i. device 裝置已經成功連線到了adb-server
ii. offline 裝置並沒有連線到adb或者沒有響應
iii. no device 並沒有裝置/模擬器連線
2) 檢視adb的版本
adb version
終端中的執行結果為:
3) 給裝置進行軟體的安裝
adb -s install eg:adb -s 99eb07a9 install d://
test.apk
終端中的執行結果為:
除了上面這種方法,我們還有另外乙個命令:
adb -s shell pm install [options]
其中[options]中最常用的選項是-r,代表著本次安裝是重新安裝,會保留使用者資料。
4) 解除安裝裝置中已經安裝的軟體
adb -s uninstall eg:adb -s 99eb07a9 uninstall cn.uc.test
終端中的執行結果為:
除了上面這種方法,我們還有另外乙個命令:
adb -s uninstall [options]
這裡的options是-k,加上該引數表明解除安裝軟體後依舊保留使用者資料
5) 將資料從裝置複製到pc中
adb -s pull eg:adb -s 99eb07a9 pull /sdcard/stericson-ls d://
終端的執行結果:
在d://盤中我們也可以發現stericson-ls檔案
6) 講資料從pc端複製到裝置中
adb -s push eg:adb -s 99eb07a9 push d://
stericson-ls /sdcard/
終端的執行結果:
7) 獲取連線到的手機的序列號
adb get-serialno
終端的執行結果:
8)獲取裝置的連線狀態
adb -s get-stateeg:adb -s 99eb07a9 get-stat
終端的執行結果:
9) 等待裝置連線成功
adb wait-for-device
該命令將會阻塞一直到預設連線的那部機器狀態變為device,也就是連線成功。
10) adb-server 的開啟與關閉
adb kill-serveradb start-server
終端的執行結果:
有時候我們開啟server會失敗,這是因為我們裝了的手機助手,豌豆莢或者其他軟體自帶有自己的adb,導致埠衝突開啟失敗。主要關掉那些軟體並且殺掉那些軟體自帶的adb程序重來即可。
眾所周知,android的核心本身就是linux,所以android本身也支援linux命令,但是因為是手機系統,所以進行了一定的刪減,部分命令不支援,而不支援的部分,我們可以通過安裝busybox這個軟體進行
填補。下面我們講解下如何在手機中執行shell命令:
1) 每次都加上adb shell來進行命令的傳送與執行
adb shell
2) 先通過adb shell進入手機shell執行狀態,然後直接輸入linux命令,如圖:
adb shell am start -a android.intent.action.view -n cn.uc.test/.mainactivity -d
詳情的可以參考:
在這裡就不做太過詳細和重複的說明了
1) 使乙個apk處於禁用狀態,相當於解除安裝了:
disable其中 package_or_component的格式是 package/class, 如 com.ucmobile/.main.ucmobile
eg:adb shell su disable com.ucmobile/.main.ucmobile
終端執行結果:
同時我們在手機上發現,uc瀏覽器的圖示不見了
2) 讓乙個apk從禁用狀態恢復過來
enable
其中 package_or_component的格式是 package/class, 如 com.ucmobile/.main.ucmobileeg:adb shell su enable com.ucmobile/.main.ucmobile
終端執行結果:
同時我們從手機上發現,uc瀏覽器的圖示又回來啦。
3) 檢視乙個apk所在的路徑
pm path eg:adb shell pm path com.ucmobile
終端執行結果:
4) 檢視手機中裝的所有的包
pm list packages
具體更多的詳情,可以參考:
再次不做過多的說明
1) 螢幕錄影
例如,螢幕開始錄影並且儲存到/sdcard中,同時名字為demo.mp4
adb shell screenrecord /sdcard/demo.mp4
2) 關閉裝置請求,開啟裝置
adb shell stopadb shell start
3)裝置關機以及重啟
adb rebootadb shutdown
android基礎 第一天
一 android體系結構 密碼 d7g8 二 兩種虛擬機器的比較 密碼 8gyf 三 sdk介紹 密碼 xqam 四 eclipse環境搭建 密碼 yt4z 五 模擬器的介紹 密碼 j7wg 六 第乙個android專案 上 密碼 jnz1 七 第乙個android專案 下 密碼 i6td 八 a...
學習第一天
知識是學會的,不是教會的 程式設計 驗證性或體驗性 創造性 學程式設計的4個階段 1.能看懂別人的 除錯別人的 2.能修改別人的 3.能拷貝別人的 做自己的事 4.能自己設計編寫 方法 多讀 做記錄 執行 修改 執行 練習,光說不練假把式 刷oj總結 寫部落格或許是個不錯的選擇 學生和已經工作的程式...
php學習第一天
第一章 安裝 php語言的核心特性是強大的字串和資料處理工具,還提供物件導向的支援。可以用c寫自己的php擴充套件模組。php能做什麼?伺服器指令碼,命令列指令碼,客戶端gui應用,安裝php環境 www.php.net,www.apache.org 2解壓後放在同一目錄下 3對apache和php...