android调试工具adb

adb 全称 Android Debug Bridge(调试桥)。
一,adb的作用
adb是一个多用途工具,用来管理模拟器或设备。
二,组成结构
adb是C/S模式的程序,它包含三个组件:client,server,deamon。
1,Client是运行在我们自己的电脑上。可以通过adb命令来启动Client。其他的android工具,如ADT插件和DDMS也可以创建client。
2,Server作为后台程序也是运行在我们自己的电脑上。它的作用是负责Client与Deamon之间的通信。
3,Deamon也是作为后太程序运行的,不过是运行在模拟器实例或设备实例。
三,端口问题
1,Server端启动绑定的是本机的5037端口。Client端用5037与服务器端对话。
2,任何Deamon都会取5555到5585之间两个连续的端口,其中奇数端口是负责与adb链接,偶数端口是负责与控制台链接。服务器端通过扫描5555到5585之间的奇数端口来寻找模拟器或设备实例并与找到的建立链接。
四,启动和终止adb服务器
1,adb start-server    启动adb服务器。
2,adb kill-server    终止adb服务器。
3,在linux系统下,有时候会涉及到权限问题而需要以root用户来运行adb服务器。
五,查看模拟器或设备
1,有时候需要确定当前有那些可用的设备或模拟器,可使用命令:adb devices 。
例如:
~$ sudo /opt/android/android-sdk/tools/adb devices
List of devices       attached
emulator-5554      device
HT95LKF00945    device
这里就列出了两个设备,第一个是模拟器,第二个是手机。
注意:这里是用root用户来启动adb服务器和执行adb命令,不然就会出现“no permissions”
2,如果有多个设备在运行的话,发送命令时必须用上-s,-e或-d这几个参数指定目标设备。
adb -e  发送命令到模拟器。
adb -d  发送命令到到USB设备,比如手机。
adb -s  指定一个目标。adb -s <serialNumber> <command>install <path-to-apk>
例如:adb -s emulator-5554 install helloWorld.apk
六,执行shell命令
adb  shell  或  adb shell [<shellCommand>]
后者在执行完命令后会退出,两个命令的区别一测试便知了。
七,安装apk程序
adb  install <path-to-apk>
八,上传下载文件
adb  pull <remote> <local>   从设备上下载文件
adb   push <local>  <remote>   上传文件到设备
九,其他功能
help  查看adb所支持的所有命令
version    查看adb的版本序列号
logcat  打印日志到屏幕
bugreport 打印dumpsys,dumpstate和logcat数据到屏幕
jdwp       查看指定的设施的可用的JDWP信息.
forward    forward <local> <remote>
 
get-serialno 查看adb实例的序列号.
get-state 查看模拟器/设施的当前状态.
ppp 通过use设备运行PPP
wait-for-device  如果设备不联机就不让执行。
===========================================================================================================

  adb(Android Debug Bridge)是Android 提供的一个通用的调试工具,借助这个工具,可以管理设备模拟器的状态。还可以进行以下的操作:

  1、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;

  2、在设备上运行shell命令;

  3、管理设备或手机模拟器上的预定端口;

  4、在设备或手机模拟器上上传下载文件

  adb的工作方式比较特殊采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以

  当我们运行Eclipse时adb进程就会自动运行。 ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是

  android设备.

  adb shell的一些常见命令

  1.adb shell

  通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux 的命令,如果只想执行一条命令,可以输入adb shell cmd

  eg:adb shell dmesg会打印出内核的调试信息

  adb shell logcat v会打印出log信息

  adb shell ls列出设备的目录列表

  2.上传文件: adb push

  下载文件: adb pull

  /tmp/...指的是在设备linux环境中要操作文件的路径

  eg: adb push key data/app 就是将key文件上传到用户目录中

  3.安装程序: adb install <*.apk>

  卸载软件: adb unistall apk(注意卸载的时候和安装的时候的文件名是不一样的,例如安装的时候adb shellGPSStatus2b2.apk,这个apk文件就被安装在data/app目录下,但是使用uninstall的时候,首先要到、data/app目录下查看安装的apk文件在linux目录下的文件名,发现是com.eclipsim.gpsstatus.apk,使用adb uninstallcom.eclipsim.gpsstatus.注意不要加apk后缀。返回success结果证明文件卸载成功)。

  补充一点,通过adb安装的软件(*.apk)都在"/data/app/"目录下,所以安装时不必制定路径。

  卸载的时候当然也可以直接到目录下使用rm命令也可。

  4.显示android模拟器状态:

  adb devices 列出所有连接的设备

  adb get-serialno 打印设备序列号

  adb version 列出ADB的版本号

  adb get-state 打印出的结果一般是offline | bootloader | device

  5.等待正在运行的设备: adb wait-for-device

  6.adb start-server

  adb kill-server 一般在键入adb shell命令后显示device offline或者是显示有多个设备的情况下使用

  7.adb remount 重新挂载系统分区,就是将系统分区重新挂载为可写。

  8. adb root使用管理员权限

  9. adb bugreport打印除所有的bug信息

  10.adb shell logcat -b radio 记录无线通讯日志:一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:

  11.adb emu

  12.端口转发: adb forward adb forward tcp:5555 tcp:1234

  (将默认端口TCP 5555转发到1234端口上)


你可能感兴趣的:(android,linux,shell,服务器,工具,permissions)