adb 常用命令


 

原文地址:http://blog.csdn.net/lzx_bupt/article/details/5414741

 

adb 概述

SDK的Tools文件夾下包含着Android模擬器操作的重要命令adb,adb的全稱為(Android Debug Bridge就是調試橋的作用。通過adb我們可以在Eclipse中方面通過DDMS來調試Android程序。借助這個工具,我們可以管理設備或手機模擬器的狀態。還可以進行以下的操作:
  
1、快速更新設備或手機模擬器中的代碼,如應用或Android 系統升級;
2、在設備上運行shell命令;
3、管理設備或手機模擬器上的預定端口;
4、在設備或手機模擬器上復制或粘貼文件;

 

adb在集成開發環境中的工作 
   adb的工作方式比較特殊采用監聽Socket TCP 5554等端口的方式讓IDE和Qemu通訊,默認情況下adb會daemon相關的網絡端口,所以當我們運行Eclipse時adb進程就會自動運行。  
     1.通過adb可以輕松的執行Linux Shell命令,如adb shell dir 就是列舉目錄,在Linux中根目錄為/而不是Windows上的C盤、D盤。  
     2.安裝apk程序到模擬器則執行adb install android123.apk,這樣名為android123的安裝包就會安裝到Android模擬器中,前提是android123.apk文件需要放到SDK/Tools目錄下。  
     3.向emulator傳送文件, 使用adb push android123.txt /tmp/android123.txt命令可以把SDK/Tools下的android123.txt文件傳輸到模擬器的/tmp/文件夾中,需要注意的是/tmp/文件夾中內容會在Android模擬器重新啟動時清空。  
     4.從Android仿真器中回傳文件到電腦  
   通過adb pull /tmp/android123.txt android123.txt命令就會把仿真器的tmp文件夾下android123.txt文件回傳到電腦SDK/Tools目錄下。  
  
adb 常用命令
1、安裝應用到模擬器:
   adb install <path_to_apk></path_to_apk>  
    卸載命令

   adb uninstall com.***.***.****  卸載命令參數必須是總包名
2、進入設備或模擬器的shell:
   adb shell
    通過上面的命令,就可以進入設備或模擬器的shell環境中,在這個Linux Shell中,你可以執行各種Linux的命令,另外如果只想執行一條      shell命令,可以采用以下的方式:
   adb shell [command]
   如:adb shell dmesg會打印出內核的調試信息。
3、發布端口:
    你可以設置任意的端口號,做為主機向模擬器或設備的請求端口。如:
     adb forward tcp:5555 tcp:8000
4、復制文件:
    你可向一個設備或從一個設備中復制文件,
     復制一個文件或目錄到設備或模擬器上:
    adb push <source> <destination></destination></source>
      如:adb push test.txt /tmp/test.txt
     從設備或模擬器上復制一個文件或目錄:
     adb pull <source> <destination></destination></source>
     如:adb pull /addroid/lib/libwebcore.so .
5、搜索模擬器/設備的實例:
     取得當前運行的模擬器/設備的實例的列表及每個實例的狀態:
     adb devices
6、查看bug報告:
      adb bugreport
7、記錄無線通訊日志:
    一般來說,無線通訊的日志非常多,在運行時沒必要去記錄,但我們還是可以通過命令,設置記錄:
    adb shell
    logcat -b radio

8、獲取設備的ID和序列號:
     adb get-product
     adb get-serialno

9、訪問數據庫SQLite3
     adb shell
     sqlite3

 

------------------------------

一個窗口在adb shell里去重命名,

root@android:/sdcard/tencent/MicroMsg/Camera #

另一個窗口在adb shell里去復制

D:\Downloads>adb pull /sdcard/tencent/MicroMsg/Camera/1.jpg  .
50 KB/s (74524 bytes in 1.447s)

D:\Downloads>adb pull /sdcard/tencent/MicroMsg/Camera/*   .
remote object '/sdcard/tencent/MicroMsg/Camera/*' does not exist

D:\Downloads>adb pull /sdcard/tencent/MicroMsg/Camera/2.jpg   .
64 KB/s (25696 bytes in 0.391s)

D:\Downloads>adb pull /sdcard/tencent/MicroMsg/Camera/3.jpg   .
43 KB/s (33584 bytes in 0.749s)

 

 ----------------------------------------------------------

在Android開發中,有可能開多個模擬器,還有可能連着多台真實的開發機器。如果此時只用adb shell之類的命令是無法連接到任何設備上的。正確操作方法如下:

先用:adb devices命令查看所有設備的代號如命令結果如下:

emulator-5554
HTC91245667

此時只要用:adb -s emulator-5554 shell就可以連接到模擬器的shell環境。注意里面的-s參數。

 

 

----------------------------------------------------------------

adb(ubuntu平台)連接真實android設備

2012-03-24 補充內容

 
通過google搜索解決了adb連接不上真實android設備的問題。主要來自下面兩個網頁的知識:
http://forum.xda-developers.com/showthread.php?p=22067293
http://mjanja.co.ke/2012/02/using-adb-on-the-kindle-fire  
十分感謝!
 
我的環境是ubuntu 10.04 64bit,使用最新android SDK中的adb;要連接的真實android設備暫時是個非主流的平板電腦,運行android 4.0.3系統。
 
下面列出解決步驟:
 
1)先不連接android設備,用  lsusb 命令查看已經連接上的usb設備信息。
 
2)開啟android設備上的USB調試模式。方法:設備的android系統中選setting --> developer options --> 勾選USB debugging,然后連接上開發PC。
 
3)用  lsusb 命令查看已經連接上的usb設備情況,和第1步的結果比較找出剛連接上的android設備的vendor ID和product ID。如:
          Bus 003 Device 002: ID 2207:0000 
   其中,2207是vendor ID,0000是product ID。
 
4)新建或編輯 /etc/udev/rules.d/51-android.rules,增加一行下面的內容(注:jun是我電腦上的用戶名):
    SUBSYSTEM=="usb", ATTR{idVendor}=="2207", ATTR{idProduct}=="0000", MODE="0600", OWNER="jun"
    保存退出。要使得生效,也許要注銷后再登錄。
 
      20120614補:顯然不用注銷再登錄的。保存文件后,回到命令行,運行:
            sudo service udev restart
      然后拔掉USB,重新插USB。大部分情況下,不用第5步,直接到第6步。如果不行,可嘗試用第5步。
 
5)在~/.android目錄下新建或編輯文件 adb_usb.ini,把第3步得到的vendor ID寫入文件(前要加0x表示16進制數),並占一行。即:
      0x2207
 
6)進入SDK的platform-tools目錄,運行  ./adb kill-server,然后運行 ./adb devices,如果顯示出已經連接的android設備,那么運行 ./adb shell 就能進入android設備的shell。ok, enjoy it!
  注:如果還沒生效,可以嘗試下重啟系統。在我的電腦上,不用重啟,就ok了。
 
 
補:如果沒有進行上面的第4步,直接到第5步,在./adb devices時,也許會顯示??????? no permissions的問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM