hello world!
分类: Android平台
2013-05-24 10:10:33
adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在中方便通过DDMS来调试Android程序,说白了就是工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。
adb是里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机)。它的主要功能有:
* 运行设备的shell(命令行)
* 管理模拟器或设备的端口映射
* 计算机和设备之间上传/下载文件
* 将本地apk软件安装至或android设备
adb是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备。
首先需要下载adb for linux的工具包
解压到任何地方,不要删除掉就是了
配置USB访问:
新建并编辑一个文件
sudo vi /etc/udev/rules.d/70-android.rules
在里面写入:
如果你的系统是10.10,或者11.04(11.10没有测试),则写入下面这句
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="
# adb protocol on crespo/crespo4g(Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="
# fastboot protocol on crespo/crespo4g(Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="
# adb protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="
# fastboot protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="
# adb protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="
# fastboot protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="
如果你的系统版本是10.04 就改为下面一句
SUBSYSTEM==”usb”, SYSFS{idVendor}==”04e8“, MODE=”0666″
其中红色字体未设别标识,不同厂商的标识不一样,请按照自己的手机更改,参照表如下
Manufacturer |
USB Vendor ID |
Acer |
0502 |
Dell |
413c |
Foxconn |
0489 |
Garmin-Asus |
091E |
HTC (Older Phones) |
0bb4 |
HTC (Newer phones) |
18d1 |
Huawei |
12d1 |
Kyocera |
0482 |
LG |
1004 |
Motorola |
22b8 |
Nexus One/S |
18d1 |
Nvidia |
0955 |
Pantech |
10A9 |
Samsung |
04e8 |
Sharp |
04dd |
Sony Ericsson |
0fce |
ZTE |
19D2 |
具体可参考:
然后保存退出,再设置一下权限
sudo chmod a+rx /etc/udev/rules.d/70-android.rules
这时候还需要编辑一下 ~/.bashrc 文件加入adb tool的路径
vi ~/.bashrc
在末尾加入,其中红色部分就是刚下载的工具包解压的路径
export PATH=${PATH}:/home/rabbit/Documents/platform-tools
现在需要重启一下你的Ubuntu,然后USB连接手机,确保usb调试已打开,在终端下输入
adb start-server 打开服务
如果一切正常的话
输入
adb devices
就能显示出当前连接到电脑的android设备。
试试这个命令
adb shell
就能在Ubuntu上的终端执行android的shell命令了!
1、设置手机
点击“设置(Settings)”-->“应用程序(Applications)”-->“开发(Development)”-->勾选“USB 调试(USB Debugging)”
2、安装驱动
用数据线将手机和电脑连接起来,但千万不要选择“挂载(装载)”!
当电脑发现新硬件后,安装好USB驱动。
如果你使用的Android SDK包,驱动在SDK包下的usb_driver目录下。
3、安装ADB
将Android SDK包中tools目录下的 adb.exe 和 AdbWinApi.dll 复制到 Windows下的 system32 目录下。
如果你使用ADB工具包,可直接解压缩至 system32 目录。
4、常用命令
adb shell - 登录设备shell,后面也可直接跟运行命令。如:adb shell rm -r /system/sd/app
adb pull - 从手机中下载文件到电脑上。如:adb pull /data/app_s/Stock.apk C:\\Stock.apk
adb push - 从电脑中上传文件到手机上。如:adb push C:\\Stock.apk /data/app_s/Stock.apk
adb install - 安装软件到手机上。如:adb install C:\\apps2sd.apk
adb uninstall - 卸载手机上的软件。如:adb uninstall linda.apk