一、什么是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. Prism 源码解读3-Modules加载

    介绍 在软件开发过程中,总想组件式的开发方式,各个组件之间最好互不影响,独立测试.Prism的Modules很好的满足了这一点. 这个架构图很好了讲解了Prism的Modules的概念 Prism支持 ...

  2. 基于arduino、百度云、采用django、redis鱼缸在线监控

    大家好,今天我给大家分享一下之前做的一个鱼缸远程监控的案例,希望有人喜欢 首先给大家看一下结构框架,由于我之前买的arduino开发板不带wifi功能,所有是通过pc机转发一下上的百度云,最近我刚购买 ...

  3. 干货|漫画算法:LRU从实现到应用层层剖析(第一讲)

    今天为大家分享很出名的LRU算法,第一讲共包括4节. LRU概述 LRU使用 LRU实现 Redis近LRU概述 第一部分:LRU概述 LRU是Least Recently Used的缩写,译为最近最 ...

  4. iphone ios app互相调用

    正好要做这个,记录一下 1.ios应用程序间互相启动 2.网页如何调用自己的app http://www.dotblogs.com.tw/yang5664/archive/2012/11/24/850 ...

  5. Thread --三大特性 原子性,可见性,有序性

    原子性.可见性.有序性 什么是原子性 即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行. 一个很经典的例子就是银行账户转账问题: 比如从账户A向账户B转1000元, ...

  6. NSArray、NSDictionary

    一.NSDictionary 1.1 使用自定义对象 key Dictionaries manage pairs of keys and values. A key-value pair within ...

  7. Python中类型的概念(一)

    本课程主要介绍6种Python语言中的类型:数字类型.字符串类型.元组类型.列表类型文件类型.字典类型 1.数字类型 Python语言包括三种数字类型:整数类型.浮点数类型.复数类型 (1)整数类型 ...

  8. IE,Google Chrome等浏览器,调试模式在控制台可以手动调用页面的方法来调试

    IE,Google Chrome等浏览器,调试模式在控制台可以手动调用页面的方法来调试,这种方式也可以进断点.

  9. python学习第二节 数据类型、字符编码、文件处理

    标准数据类型 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) 数字 #整型 ...

  10. eclipse报错:problems during content assist

    自动提示出错: 解决办法:Windows->preferences->java->editor->content assist->advanced 取消java prop ...