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的问题。
  • 相关阅读:
    Serialization and deserialization are bottlenecks in parallel and distributed computing, especially in machine learning applications with large objects and large quantities of data.
    Introduction to the Standard Directory Layout
    import 原理 及 导入 自定义、第三方 包
    403 'Forbidden'
    https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
    These interactions can be expressed as complicated, large scale graphs. Mining data requires a distributed data processing engine
    mysqldump --flush-logs
    mysql dump 参数
    mysql dump 参数
    如果是在有master上开启了该参数,记得在slave端也要开启这个参数(salve需要stop后再重新start),否则在master上创建函数会导致replaction中断。
  • 原文地址:https://www.cnblogs.com/xilifeng/p/2961235.html
Copyright © 2011-2022 走看看