一、什么是ADB

Android Debug Bridge(adb)是一个命令行工具,可让您与模拟器或连接的Android设备进行通信。您可以在android sdk / platform-tools或下载ADB工具包中找到adb工具。

二、ADB命令的用法

  1. adb调试

l adb devices

l adb forward

l adb kill-server

 

A.adb devices

adb devices

执行命令, 返回序列号或模拟器设备号

e4b25377        device

emulator-5554  device

B.adb forward

正向连接

adb forward <local> <remote>

adb forward tcp:8000 tcp:9000 设置本地端口8000转发到设备或模拟器9000端口

前提条件:在设备上启用USB调试。

C.adb kill-server

终止adb进程

adb kill-server

注: 杀掉正在运行的进程. ( adb终端处理)

 

2.无线连接

l adb connect

l adb usb

A.adb connect

通过 Wi-Fi连接adb

adb connect <host>[:<port>]

步骤1.

通过USB连接设备.

步骤2.

adb devices

设备列表
######## device

注: 步骤1,2 是必需的

步骤3.

adb tcpip 5555

在TCP模式端口重新启动5555端口

步骤4.

找出Android设备的IP地址:设置 - >关于 - >状态 - > IP地址。记住 #.#.#.#.形式的IP地址

步骤5.

adb connect #.#.#.#

连接到 #.#.#.#:5555

STEP 6.

从设备上拔下USB线,确认您仍然可以访问设备:

adb devices

附加设备列表
#.#.#.#:5555 device

注意:确保您的主机仍然连接到Android设备所在的同一Wi-Fi网络.

B.adb usb

重新启动USB模式.

adb usb

参考: adb connect

 

3.安装管理

l adb install

l adb uninstall

l adb shell pm list packages

l adb shell pm path

l adb shell pm clear

A.adb install

push一个Android应用程序(指定完整路径的apk文件)安装到一个模拟器/设备。

adb install [option] <path>

adb install test.apk

adb install -l test.apk 转发锁定申请

adb install -r test.apk 覆盖现有应用

adb install -t test.apk 允许测试包

adb install -s test.apk 安装到sdcard

adb install -d test.apk 允许版本降级

adb install -p test.apk 部分应用安装

B.adb uninstall

从模拟/设备中卸载.

adb uninstall [options] <PACKAGE>

adb uninstall com.test.app

adb uninstall -k com.test.app 卸载APK后保存数据和缓存目录

C.adb shell pm list packages

打印所有安装APK, 可选择仅仅打印含<FILTER>文本的包名

adb shell pm list packages [options] <FILTER>

adb shell pm list packages

adb shell pm list packages -f 查看关联文件

adb shell pm list packages -d Filter仅显示已禁用的包

adb shell pm list packages -e 过滤器仅显示已启用的包

adb shell pm list packages -s 过滤器仅显示系统包。

adb shell pm list packages -3 过滤器仅显示第三方包.

adb shell pm list packages -i 请参阅软件包的安装程序.

adb shell pm list packages -u 还包括已卸载的软件包.

adb shell pm list packages --user <USER_ID> 要查询的用户空间.

D.adb shell pm path

打印指定包名APK的所在路径

adb shell pm path <PACKAGE>

adb shell pm path com.android.phone

package:/system/priv-app/TeleService/TeleService.apk

E.adb shell pm clear

清除指定包名APK的所有数据.

adb shell pm clear <PACKAGE>

adb shell pm clear com.test.abc

注: 清除APP数据,缓存

 

4.文件管理

l adb pull

l adb push

l adb shell ls

l adb shell cd

l adb shell rm

l adb shell mkdir

l adb shell touch

l adb shell pwd

l adb shell cp

l adb shell mv

| adb shell df   列出所有 dom 的使用情况,很有用

A.adb pull

下载一个文件从手机/模拟器到本地电脑.

adb pull <remote> [local]

adb pull /sdcard/demo.mp4

下载 /sdcard/demo.mp4  到 adb工具目录.

adb pull /sdcard/demo.mp4 e:\

下载 /sdcard/demo.mp4  到 E盘根目录.

 

B.adb push

从你的电脑上传一个文件到模拟器/设备

adb push <local> <remote>

adb push test.apk /sdcard

复制adb工具所在目录的test.apk到模拟器/设备的sdcard目录.

adb push d:\test.apk /sdcard

复制d:\test.apk 到/sdcard 目录.

C.adb shell ls

列出目录内容

ls [options] <directory>

步骤1.

adb shell

步骤2.

ls

ls -a 不隐藏开头的条目

ls -i 打印每个文件的索引号

ls -s 以块问单位打印每个文件的大小

ls -n 列出UID和 GID

ls -R list列出递归子目录

注: 按Ctrl-C 停止命令

D.adb shell cd

定位目录

cd <directory>

步骤1.

adb shell

步骤2.

cd /system

E.adb shell rm

移除文件或文件夹

rm [options] <files or directory>

步骤1.

adb shell

步骤2.

删除/sdcard/test.txt

rm -f /sdcard/test.txt 强制删除,无提示

rm -r /sdcard/tmp 以递归的方式删除目录内容

rm -d /sdcard/tmp 删除目录,即使是非空目录

注: rm -d 就是rmdir 命令

rm -i /sdcard/test.txt 在删除之前提示

F.adb shell mkdir

新建文件夹

mkdir [options] <directory name>

mkdir /sdcard/tmp

mkdir -m 777 /sdcard/tmp 设置权限的新建文件夹模式

mkdir -p /sdcard/tmp/sub1/sub2 按需生成对应路径的目录文件夹

G.adb shell touch

创建空文件或者更改时间戳

touch [options] <file>

步骤1.

adb shell

步骤2.

touch /sdcard/tmp/test.txt

ls /sdcard/tmp

H.adb shell pwd

打印当前工作目录的路径.

pwd

I.adb shell cp

复制文件或文件夹

cp [options] <source> <dest>

步骤1.

adb shell

步骤2.

复制/sdcard/test.txt到 /sdcard/demo.txt

J.adb shell mv

移动或者重命名文件

mv [options] <source> <dest>

步骤1.

adb shell

步骤2.

mv /sdcard/tmp /system/tmp 移动

mv /sdcard/tmp /sdcard/test 重命名

5.网络管理

l adb shell netstat

l adb shell ping

l adb shell netcfg

l adb shell ip

 

A.adb shell netstat

网络状态

Netstat

步骤1.

adb shell

步骤2.

netstat

 

B.adb shell ping

测试连接两个网络连接之间和延迟

ping [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]
[-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]
[-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
[-w deadline] [-W timeout] [hop1 ...] destination

步骤1.

adb shell

步骤2.

ping www.google.com

注: 按Ctrl-C to 终止ping

ping www.google.com -c 4

C.adb shell netcfg

通过配置文件配置和管理网络连接

netcfg [<interface> {dhcp|up|down}]

步骤1.

adb shell

步骤2.

netcfg

 

D.adb shell ip

显示当前设备连接的WLAN IP地址详情

ip [ OPTIONS ] OBJECT

OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm |netns | l2tp }

OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |-f[amily] { inet | inet6 | ipx | dnet | link } |-l[oops] { maximum-addr-flush-attempts } |-o[neline] | -t[imestamp] | -b[atch] [filename] |-rc[vbuf] [size]}

步骤1.

adb shell

步骤2.

ip -f inet addr show wlan0 展示WIFI IP地址

6.日志管理

l adb logcat

l adb shell dumpsys

l adb shell dumpstate

A.adb logcat

将日志数据打印到屏幕。

adb logcat [option] [filter-specs]

adb logcat

注意:按Ctrl-C可停止监视器

adb logcat *:V 最低优先级,过滤为仅显示详细级别

adb logcat *:D 过滤器只显示调试级别

adb logcat *:I过滤到只显示信息级别

adb logcat *:W 过滤器仅显示警告级别

adb logcat *:E 过滤器仅显示错误级别

adb logcat *:F 过滤器仅显示致命级别

adb logcat *:S 无声,最高优先级,无需打印任何内容

adb logcat -b <Buffer>

adb logcat -b radio 查看包含与无线电/电话相关的消息的缓冲区。

adb logcat -b event 查看包含与事件相关的消息的缓冲区。

adb logcat -b main 默认值

adb logcat -c 清除整个日志并退出。

adb logcat -d 将日志转储到屏幕并退出。

adb logcat -f test.logs 将日志消息输出写入test.logs。

adb logcat -g 打印指定日志缓冲区的大小并退出。

adb logcat -n <count> 将最大旋转日志数设置为<count>。

注意:默认值为4.需要-r选项。

adb logcat -r <kbytes> 每<kbytes>输出一次旋转日志文件。

注意:默认值为16.需要-f选项。

adb logcat -s 将默认过滤器规范设置为silent。

adb logcat -v <format>

adb logcat -v brief 显示发出消息的进程的优先级/标记和PID(默认格式)。

adb logcat -v process 仅显示PID。)

adb logcat -v tag 仅显示优先级/标记。

adb logcat -v raw 显示原始日志消息,没有其他元数据字段。

adb logcat -v time 显示发出消息的进程的日期,调用时间,优先级/标记和PID。

adb logcat -v threadtime 显示发出消息的线程的日期,调用时间,优先级,标记以及PID和TID。

adb logcat -v long 使用空行显示所有元数据字段和单独的消息。

 

 

B.adb shell dumpsys

转储系统数据

adb shell dumpsys [options]

adb shell dumpsys

adb shell dumpsys meminfo

adb shell dumpsys battery

注:移动设备打开开发者选项运行,适用Android 5.0或更高版本。

adb shell dumpsys batterystats 从您的设备中收集电池数据

注意: Battery Historian将该数据转换为HTML可视化。步骤1 adb shell dumpsys batterystats> batterystats.txt STEP 2 python historian.py batterystats.txt> batterystats.html

adb shell dumpsys batterystats --reset 删除旧的收集数据

adb shell dumpsys activity

adb shell dumpsys gfxinfo com.android.phone measuring com.android.phone ui performance

C.adb shell dumpstate

状态转储

adb shell dumpstate

adb shell dumpstate > state.logs dump日志输出到指定文件

7.屏幕抓取操作

l adb shell screencap

l adb shell screenrecord [4.4+]

A.adb shell screencap

抓取正在显示的截图.

adb shell screencap <filename>

adb shell screencap /sdcard/screen.png

从设备下载截图到本地

adb pull /sdcard/screen.png

B.adb shell screenrecord

视频录制支持Android 4.4(API级别19)及更高版本的设备

adb shell screenrecord [options] <filename>

adb shell screenrecord /sdcard/demo.mp4

(按Ctrl-C停止录制)

从设备下载

adb pull /sdcard/demo.mp4

注意:按Ctrl-C停止屏幕录制,否则录制将在三分钟或--time-limit设置的时间限制内自动停止。

adb shell screenrecord --size <WIDTHxHEIGHT>

设置视频大小:1280x720。默认值是设备的本机显示分辨率(如果支持),否则为1280x720。为获得最佳效果,请使用设备的高级视频编码(AVC)编码器支持的尺寸。

adb shell screenrecord --bit-rate <RATE>

设置视频的视频比特率,以每秒兆比特为单位。默认值为4Mbps。您可以提高比特率以提高视频质量,但这样做会导致更大的电影文件。以下示例将记录比特率设置为5Mbps:adb shell screenrecord --bit-rate 5000000 /sdcard/demo.mp4

adb shell screenrecord --time-limit <TIME>

设置最长录制时间,以秒为单位。默认值和最大值为180(3分钟)。

adb shell screenrecord --rotate

将输出旋转90度。此功能是实验性的。

adb shell screenrecord --verbose

在命令行界面显示日志信息。如果未设置此选项,则实用程序在运行时不会显示任何信息。

8.系统命令

l adb root

l adb sideload

l adb shell ps

l adb shell top

l adb shell getprop

l adb shell setprop

 

A.adb root

以ROOT权限重启adbd

adb root

注: 重启adbd守护进程与根权限

B.adb sideload

写入/恢复的Android update.zip包。

adb sideload <update.zip>

注: adb reboot sideload [适用Android M+]

C.adb shell ps

打印进程状态

ps [options]

步骤1.

adb shell

步骤2.

ps

ps -p

D.adb shell top

显示CPU占用最多的进程

top [options]

步骤1.

adb shell

步骤2.

top

注: (按Ctrl-C to 终止进程监视器)

top -t 显示线程而不是进程.

E.adb shell getprop

通过android属性服务获取属性

getprop [options]

步骤1.

adb shell

步骤2.

getprop

getprop ro.build.version.sdk

getprop ro.chipname

getprop | grep adb

 

F.adb shell setprop

设置属性

setprop <key> <value>

步骤1.

adb shell

步骤2.

setprop service.adb.tcp.port 5555

ROM定制开发教程-Android adb命令用法与实例解析的更多相关文章

  1. Android ADB命令教程二——ADB命令详解

    Android ADB命令教程二——ADB命令详解 转载▼ 原文链接:http://www.tbk.ren/article/249.html       我们使用 adb -h 来看看,adb命令里面 ...

  2. MacBook下配置android adb命令使用环境

    想在Mac下使用android adb命令,常用的两种配置方式: 在MacBook下配置adb命令环境(方法一) 1.下载并安装IDE (android studio) 人性化的安装,直接点击下一步下 ...

  3. Android 开发中常用 ADB 命令总结

    adb 的全称为 Android Debug Bridge,就是起到调试桥的作用.通过 adb 我们可以在 Eclipse 中方便通过 DDMS 来调试 Android 程序,说白了就是 debug ...

  4. Android adb命令,linux中各种命令

    常用的ADB命令 1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器 ...

  5. Android adb 命令图解

    做了这么长时间的开发与管理,在命令上总是自见则过,往往却忽视了在其命令上的分享过程,所以现在稍微有点时间就把 其命令的相关操作来简单的扫盲一番吧,也系统通过这种方式去授之以渔而不是鱼,好了,我以图解的 ...

  6. mac终端配置Android ADB命令

    不得不说mac是一款开发利器,不仅可以开发ios,而且对于Android开发也是不错的选择,下面我就对mac配置adb命令,进行简要的说明.下面我将一下mac环境下的配置步骤:1.在自己的目录(hom ...

  7. ADB命令用法大全

    ​ 一.ADB简介 Android Debug Bridge,安卓调试桥,它借助adb.exe(Android SDK安装目录platform-tools下),用于电脑端与模拟器或者真实设备交互:使用 ...

  8. Android adb 命令使用总结

    adb原理 参考文档 How ADB works        http://www.cnblogs.com/ifantastic/p/5186362.html http://blog.csdn.ne ...

  9. 【转】android adb命令

      1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器): andr ...

随机推荐

  1. 动态规划-Minimum Distance to Type a Word Using Two Fingers

    2020-01-12 18:28:13 问题描述: 问题求解: 本题还是非常困难的,至少我在看到这个题目的时候是没有想到怎么解决的.我当时联想到的题目是那条grid走两遍的题目,那条题目也很麻烦,使用 ...

  2. CodeForces 196B Infinite Maze

    Infinite Maze time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  3. Python中的数值类型总结

    本文参考书:<Learning Python>中文版--<Python 学习手册>第四版 Python中包含大量的数值类型,他们中的大部分与其他编程语言保持一致,因此学习他们就 ...

  4. 说说自己为什么用Mac不用Win系统?

    原本Mac和Win系统各有优劣,但偏偏最近有人误导身边的朋友说"学编程肯定是Windows系统呀,Mac不行的",又不给出有说服力的理由,于是我心有愤懑,正好趁机总结一下自己对于两 ...

  5. Linux下段错误(C语言)

    问题描述:在Linux下编程有时会出现段错误的提醒,出现这种错误有可能是因为以下几种原因 1.数组越界:如果在初始化或者接收输入时内容超过了定义好的数组元素个数时会出现段错误,Linux的数组越界检查 ...

  6. WeChat-SmallProgram:组件的业务 slot 的使用

    1.调用组件向自定义组件插入内容,使用  slot 在自定义模板中有一对 <view><slot></slot></view> 这里是干什么用的呢? 在 ...

  7. 教你用Cobra开发类似docker的命令行

    目录 前言 一.安装 二.初始化应用 gomod初始化 创建入口文件cmd/root.go 创建主程序main.go 三.生成Command 创建hello子命令 创建version子命令 四.如何设 ...

  8. 听说你还搞不定java中的==和equals?

    相信很多读者关于==和equals懂了又懵,懵了又懂,如此循环,事实上可能是因为看到的博客文章之类的太多了,长篇大论,加上一段时间的洗礼之后就迷路了.本篇文章再一次理清楚.当然如果觉得本文太啰嗦的话, ...

  9. what the fuck!(二分查找 / 暴力模拟)

    what the fuck! Description 现在有一家公司有nnn个员工(nnn为奇数),他们的工资发放是基本工资+提成,现在这家公司计划再招一批人.要写一篇招聘启事,但是对于这个招聘启事中 ...

  10. 使用IDEA编写JDBC

    省去下载MySQL的过程,创建数据库demo 首先在下载的Java服务中将此jar包复制到项目中的一个空文件夹中 在当前工程下新建目录lib(名字可自定) 找到MySQL的Java服务的jar包 打开 ...