ROM定制开发教程-Android adb命令用法与实例解析
一、什么是ADB
Android Debug Bridge(adb)是一个命令行工具,可让您与模拟器或连接的Android设备进行通信。您可以在android sdk / platform-tools或下载ADB工具包中找到adb工具。
二、ADB命令的用法
- 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命令用法与实例解析的更多相关文章
- Android ADB命令教程二——ADB命令详解
Android ADB命令教程二——ADB命令详解 转载▼ 原文链接:http://www.tbk.ren/article/249.html 我们使用 adb -h 来看看,adb命令里面 ...
- MacBook下配置android adb命令使用环境
想在Mac下使用android adb命令,常用的两种配置方式: 在MacBook下配置adb命令环境(方法一) 1.下载并安装IDE (android studio) 人性化的安装,直接点击下一步下 ...
- Android 开发中常用 ADB 命令总结
adb 的全称为 Android Debug Bridge,就是起到调试桥的作用.通过 adb 我们可以在 Eclipse 中方便通过 DDMS 来调试 Android 程序,说白了就是 debug ...
- Android adb命令,linux中各种命令
常用的ADB命令 1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器 ...
- Android adb 命令图解
做了这么长时间的开发与管理,在命令上总是自见则过,往往却忽视了在其命令上的分享过程,所以现在稍微有点时间就把 其命令的相关操作来简单的扫盲一番吧,也系统通过这种方式去授之以渔而不是鱼,好了,我以图解的 ...
- mac终端配置Android ADB命令
不得不说mac是一款开发利器,不仅可以开发ios,而且对于Android开发也是不错的选择,下面我就对mac配置adb命令,进行简要的说明.下面我将一下mac环境下的配置步骤:1.在自己的目录(hom ...
- ADB命令用法大全
一.ADB简介 Android Debug Bridge,安卓调试桥,它借助adb.exe(Android SDK安装目录platform-tools下),用于电脑端与模拟器或者真实设备交互:使用 ...
- Android adb 命令使用总结
adb原理 参考文档 How ADB works http://www.cnblogs.com/ifantastic/p/5186362.html http://blog.csdn.ne ...
- 【转】android adb命令
1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器): andr ...
随机推荐
- upload-labs学习笔记
项目地址:https://github.com/c0ny1/upload-labs 运行环境 操作系统:windows.Linux php版本:推荐5.2.17(其他版本可能会导致部分Pass无法 ...
- Grid Illumination
2019-07-07 16:53:31 问题描述: 问题求解: 本题和n后问题很类似,所以最初的时候就直接套了n后的板子,MLE. public int[] gridIllumination(int ...
- 为什么你的程序配了classpath还是找不到类
classpath简介 classpath是java程序时拥有的一个系统变量,这个变量可以通过如下方式获取 System.out.println(System.getProperty("ja ...
- (数据科学学习手札81)conda+jupyter玩转数据科学环境搭建
本文示例yaml文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 我们在使用Python进行数据分析时,很 ...
- 使用TensorFlow v2.0构建卷积神经网络
使用TensorFlow v2.0构建卷积神经网络. 这个例子使用低级方法来更好地理解构建卷积神经网络和训练过程背后的所有机制. CNN 概述 MNIST 数据集概述 此示例使用手写数字的MNIST数 ...
- 使用SlimYOLOv3框架实现实时目标检测
介绍 人类可以在几毫秒内在我们的视线中挑选出物体.事实上,你现在就环顾四周,你将观察到周围环境并快速检测到存在的物体,并且把目光回到我们这篇文章来.大概需要多长时间? 这就是实时目标检测.如果我们能让 ...
- Go深入学习之select
select的用法 1)select只能用于channel的操作(写入.读出),而switch则更通用一些 2)select的case是随机的,而switch里的case是顺序执行 3)select要 ...
- 2020.4.4号全国疫情哀悼日网页变灰色前端是如何实现的?-pink老师
今天是4.4疫情哀悼日,纪念疫情期间牺牲的烈士和逝世同胞,因此大部分网站颜色都变灰色了,我们前端是如何实现的呢? 核心原理,使用css3的滤镜效果即可,filter grayscale 将整个界面变为 ...
- Django]models中定义的choices 字典在页面中显示值
在django的models.py 中,我们定义了一些choices的元组,类似一些字典值,一般都是下拉框或者单多选框,例如 0对应男 1对应女等 class Area(models.Model): ...
- localStorage应用(写的时间缓存在本地浏览器)
最近用了下localStorage,于是想记录加深下映象: 有关更详细的介绍,可以去看https://www.cnblogs.com/st-leslie/p/5617130.html: 我这引用了这个 ...