adb 常用命令

核能气质少年 提交于 2020-01-21 15:36:49

 

原文地址: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的问题。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!