zoukankan      html  css  js  c++  java
  • 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的问题。
  • 相关阅读:
    4
    3
    iOS常用的三种支付方式
    iOS开发技术之银联支付
    iOS开发技术之支付宝支付
    iOS开发技术之微信支付
    Subversion使用总结
    如何在已有 Xcode 项目中 加入Cordova框架(或者称PhoneGap框架)进行iOS移动跨平台开发
    iOS开发中Masonry的使用总结:
    iOS开发中的权限适配问题总结
  • 原文地址:https://www.cnblogs.com/xilifeng/p/2961235.html
Copyright © 2011-2022 走看看