常用的adb 命令及常见问题

adb 命令非常多,不过常用的就只有十几个,只要学好常用的十几个adb命令,就可以应付几乎百分百的工作。由于篇幅原因,本文先介绍其中的8个命令和命令使用过程中常见问题解决方案,还有8个命令在下文中介绍。

1. adb devices

连接Android设备到电脑上,用这个命令检查设备连接状态,有device、offline和没有device三种状态。

1) device:正常运行状态,如下图,可以获取到设备的序列号。如果连接了多个设备,可以根据序列号,使用”-s + 序列号”只对某个设备操作。例如:

adb -s 2aa1c436 shell df

adb -s 2aa1c436 install xxx.apk

2) offline:未连接到 adb 或不响应。

3) 没有device:未连接模拟器/设备。

2. adb root

意义:切换adb服务使用对象为root用户。

常见问题:商用机上adb root命令无效。

解决方案:这个命令只有工程机(测试机)上有用,对商用机无效。对于商用机,想切换成root用户,必须先root设备,然后在adb shell下使用命令“su”切换成root账户。

3. adb push <PC机上的文件> <Android设备路径>

意义:将PC机上的文件拷贝一份到Android设备路径下。注意PC机上文件路径和Android设备路径的路径分隔符可能是不同的。

示例:

adb push D:\android\test\test.sh /data/local/tmp/

常见问题:push文件到设备里某些路径失败,比如/system/, /etc/等路径。

解决方案:先使用以下两个命令,再用adb push命令。

adb root

adb remount

4. adb pull <Android设备上的文件> <PC机路径>

意义:将Android设备上的文件拷贝一份到PC机路径下。注意Android设备路径和PC机路径的路径分隔符可能是不同的。

示例:

adb pull /data/local/tmp/logcat.txt D:\android\test

常见问题:没有成功将文件pull出来。这种情况在商用机上出现的比较多。有时候因为pull一个文件夹下所有文件,而其中的某几个文件没有pull出来,不仔细看,可能还发现不了问题。

解决方案:1)先用adb root命令切换成root用户,再使用adb pull命令;2)如果无法切换成root用户,就请先用以下命令给需要pull的文件或文件夹加上可读的权限。

adb shell

chmod 777 <文件>

chmod 777 <文件夹> -R

5. adb install xx.apk

意义: 安装xx.apk到设备中,xx.apk前可以加上apk所在路径,注意这个路径是PC机的路径。

示例:

常见问题:安装失败。

解决方案:安装失败有不同的原因,必须仔细分析有针对性地解决。小编后续会发文详细总结。

6. adb uninstall package

意义: 卸载package所对应的apk。

示例: 如下图。

常见问题:不知道apk对应的package是什么。

解决方案:有很多的方法可以获取到package,小编后续会发文详细介绍。这里提供其中的一种,首先打开要卸载的apk,输入adb shell dumpsys window windows | findstr "Current"命令,如下图所示“/”之前红色区域的字符串就是当前apk的package。

7. adb shell + shell_cmd

意义: shell_cmd二进制文件存储在模拟器或设备的文件系统中,其路径为 /system/bin/ 和/system/xbin/。adb shell 后面可以直接跟上shell_cmd,也可以按下Enter键后,再输入shell_cmd。

示例:如下图。

8. adb remount

意义:remount /system/, /etc/等路径的读写权限,使当前用户有权限读写设备中/system/, /etc/等路径下的文件。使用先必须先用adb root命令。

常见问题: remount失败。

解决方案: 如果adb remount 命令提示remount失败,则可以先运行adb disable-verity命令,然后重启设备,最后再使用root和remount命令。

adb disable-verity

adb reboot

adb root

adb remount

通过adb命令查看data目录下的文件

步骤

1.手机需要先root,我的手机是魅蓝note5

2.root成功以后执行adb shell,然后通过su命令获取权限,如果看到$符号变为#的话,说明我们就有权限查看目录中的文件了

3.ls -al列出所有的目录,然后我们依次进入到data/anr目录下,通过ls -al查看文件

此时可以看到文件确实存在,然后我们新开一个命令窗口,通过下面的命令把traces.txt文件弄到电脑上

adb pull /data/anr/traces.txt d:/app


有时候pull文件的时候会报下面的错

解决办法是先调用adb remount命令再pull~
 

猜你喜欢

转载自blog.csdn.net/litrainy/article/details/84560010