[TOC]
概述 SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb。adb的全称为(Android Debug Bridge)就是调试桥的作用。通过adb我们可以在Android Studio中方面通过DDMS来调试Android程序。借助这个工具,我们可以管理设备或手机模拟器的状态。还可以进行以下的操作:
快速更新设备或手机模拟器中的代码,如应用或Android 系统升级;
在设备上运行shell命令;
管理设备或手机模拟器上的预定端口;
在设备或手机模拟器上复制或粘贴文件;
基础命令 查看ADB版本号
1 2 3 4 (py36) baiduiov@FreweniUbuntuBaidu:~$ adb --version Android Debug Bridge version 1.0.39 Version 1:8.1.0+r23-5~18.04 Installed as /usr/lib/android-sdk/platform-tools/adb
下面我们来看一下,我们常用的ADB命令,主要如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 // 1. 显示系统中全部Android平台: $ android list targets // 2.取得当前运行的模拟器/设备的实例的列表及每个实例的状态: $ adb devices // 3.对某一模设备执行shell命令: $ adb -s 192.168.199.110 shell //adb -s 模拟器编号(IP) shell 后面跟shell命令 // 4.获取管理员权限 $ adb root // 5.ADB命令安装与卸载应用 $ adb install [-lrtsdg] <path_to_apk> // adb install 后面可以跟一些可选参数来控制安装 APK 的行为,可用参数及含义如下: //-l 将应用安装到保护目录 /mnt/asec //-r 允许覆盖安装 //-t 允许安装 AndroidManifest.xml 里 application 指定android:testOnly="true" 的应用 //-s 将应用安装到 sdcard //-d 允许降级覆盖安装 //-g 授予所有运行时权限 // ADB卸载应用的命令 $ adb uninstall <package> //例如:adb uninstall com.frewen.demo $ adb uninstall -k <package> //卸载app但保留数据和缓存文件 例如:$ adb uninstall -k com.frewen.demo // 6.查看adb命令帮助信息: $ adb help # 8.展示下面的这份目录下列表 $ adb shell ls [目录绝对路径和相对路径] // 显示/system/app目录下所有文件: $ adb shell ls /system/app # 9.终止adb服务进程 $ adb kill-server # 10.重启adb服务进程 $ adb start-server # 11.重启机器 $ adb reboot # 12、发布端口: 你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如: adb forward tcp:5555 tcp:8000
ADB的高级命令 logcat命令 文章转自:https://developer.android.com/studio/command-line/logcat?hl=zh-cn
Logcat 是一个命令行工具,用于转储系统消息日志,其中包括设备引发错误时的堆叠追踪以及从您的应用使用 Log 类编写的消息。
本页介绍命令行 logcat 工具,但在 Android Studio 中,您也可以从 Logcat 窗口查看日志消息。有关从 Android Studio 查看和过滤日志的信息,请参阅使用 Logcat 编写和查看日志。
命令行语法:
1 [adb] logcat [<option>] ... [<filter-spec>] ...
您可以 adb 命令的形式运行 logcat,或在模拟器或所连接设备的 shell 提示符中直接运行。
下面我们来看看Logcat的各种命令参数:
常用logcat命令的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $ adb logcat --help adb logcat -v time -s MyTAG adb logcat -v time -s MyTAG |grep uid adb logcat -f /sdcard/log.txt adb logcat -v time > /Users/frewen/log.txt
install命令 文档参考:https://developer.android.com/studio/command-line/adb?hl=zh-cn
文档参考:https://blog.csdn.net/shift_wwx/article/details/78468397
adb install命令的相关详解。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 adb install [options] <apk path> options选项的相关 -l:将应用安装到保护目录 /mnt/asec -r:允许覆盖安装现有应用,保留其数据。 -t:允许安装测试 APK。AndroidManifest.xml 里 application 指定android:testOnly="true" 的应用 -i installer_package_name:指定安装程序软件包名称。 -s:在共享的大容量存储(如 sdcard)上安装软件包。 -f:在内部系统内存上安装软件包。 -d:允许版本降级覆盖安装。 -g:授予应用清单中列出的所有权限。
ADB卸载应用的命令
1 2 $ adb uninstall <package> //例如:adb uninstall com.frewen.demo $ adb uninstall -k <package> //卸载app但保留数据和缓存文件 例如:$ adb uninstall -k com.frewen.demo
我们平时在安装的时候。总会出现各种莫名奇妙的问题。现将所有的问题总结如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES INSTALL_FAILED_ALREADY_EXISTS INSTALL_FAILED_DUPLICATE_PACKAGE INSTALL_FAILED_UPDATE_INCOMPATIBLE 以上报错,只要卸载掉之前的已安装的应用即可,一定要确保卸载干净!不然可能会出现下面这种报错: INSTALL_FAILED_UID_CHANGED 对于已经root过的测试机,可以进入/data/data中,把对应的包名文件夹删了,就可以正常安装了。 INSTALL_FAILED_INSUFFICIENT_STORAGE 这个情况就多删点手机的东西就行了 INSTALL_FAILED_CONFLICTING_PROVIDER INSTALL_FAILED_TEST_ONLY INSTALL_FAILED_INVALID_APK INSTALL_FAILED_INVALID_URI INSTALL_FAILED_NO_SHARED_USER INSTALL_FAILED_SHARED_USER_INCOMPATIBLE INSTALL_FAILED_MISSING_SHARED_LIBRARY INSTALL_FAILED_REPLACE_COULDNT_DELETE INSTALL_FAILED_DEXOPT INSTALL_FAILED_OLDER_SDK INSTALL_FAILED_NEWER_SDK INSTALL_FAILED_CPU_ABI_INCOMPATIBLE CPU_ABIINSTALL_FAILED_MISSING_FEATURE INSTALL_FAILED_CONTAINER_ERROR INSTALL_FAILED_INVALID_INSTALL_LOCATION INSTALL_FAILED_MEDIA_UNAVAILABLE INSTALL_FAILED_INTERNAL_ERROR INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION