第4天:
adb是什么?(Android Debug Bridge)说白了就是debug工具。
adb有什么用?:借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。
adb怎么用?
1.eclipse 与手机连接时出现问题之一:
[2014-01-08 14:00:07 - adb] ADB server didn't ACK
[2014-01-08 14:00:07 - adb] * failed to start daemon *
[2014-01-08 14:07:24 - adb] ADB server didn't ACK
[2014-01-08 14:07:24 - adb] * failed to start daemon *
ADB server didn't ACK (ADB服务器没有应答)
failed to start daemon * (未能启动守护进程)
当出现这个问题时解决的方法有:
第一步: Resert adb (若是操作后还是问题没有解决,则进行第二步)
第二步:这时你就应该考虑是不是adb的端口号被占用了,应该是这个 问题。
1.进入cmd窗口,切换目录到 xxx.platform-tools,我们来查看一下端口绑定信息,如图所示,真的是端口绑定出了问题。
D:\Android\adt-bundle-windows-x86_64-20140702_ok\adt-bundle-windows-x86_64-20140702\sdk\platform-tools>adb nodaemon server
cannot bind 'tcp:5037'
2.我们接下来看看哪个服务占用了这个端口(5037为adb默认端口)
D:\Android\adt-bundle-windows-x86_64-20140702_ok\adt-bundle-windows-x86_64-20140702\sdk\platform-tools>netstat -ano | findstr "5037"
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 7506
TCP 127.0.0.1:5037 127.0.0.1:1221 TIME_WAIT 0
TCP 127.0.0.1:5037 127.0.0.1:1222 TIME_WAIT 0
3.我们可以看到是 PID 为7506的这个进程占用了端口号,所以我们要在控制台下杀死这个进程。
D:\Android\adt-bundle-windows-x86_64-20140702_ok\adt-bundle-windows-x86_64-20140702\sdk\platform-tools>taskkill /pid 7506
错误: 无法终止 PID 为 5456 的进程。
原因: 只能强行终止这个进程(带 /F 选项)。
D:\Android\adt-bundle-windows-x86_64-20140702_ok\adt-bundle-windows-x86_64-20140702\sdk\platform-tools>taskkill /pid 7506 /f
成功: 已终止 PID 为 7506 的进程。
4.杀死占用端口号的进程后,再进行前面的操作。
D:\Android\adt-bundle-windows-x86_64-20140702_ok\adt-bundle-windows-x86_64-20140702\sdk\platform-tools>netstat -ano | findstr "5037"
5.如果这时没有问题了,则进行下一步,如果端口还是被占用,则要再次杀死进程,知道端口号没有被占用。(电脑管家,360啥的一些软件,有可能会占用端口号,可以把它们关闭)
D:\Android\adt-bundle-windows-x86_64-20140702_ok\adt-bundle-windows-x86_64-20140702\sdk\platform-tools>adb nodaemon server
6.问题已解决。over!!!
1.查看连接手机的情况: adb devices
2.安装一个软件到手机上:adb install+软件所在的位置
3.卸载一个软件:adb uninstall+ src下面的包名
4.进入模拟器的shell模式: adb shell
# 代表超级管理员权限,可以对手机的所有数据进行操作。$为非超级管理员 su可以把$切换为#
-
-5. 回退上次目录 exit
-
后续添加更多的adb指令。