zoukankan      html  css  js  c++  java
  • ROM定制开发教程-Android adb命令用法与实例解析

     

    一、什么是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: est.apk /sdcard

    复制d: est.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

  • 相关阅读:
    chapter01
    2019.07.11
    系统进程
    Linex第五-第七章
    Linex第三章第四章
    Linux 系统管理 第二章第三章
    2019/7/24
    使用.htaccess进行浏览器图片文件缓存
    div+css3实现漂亮的多彩标签云,鼠标移动会有动画
    搜索排序的作弊与反作弊,面壁人与智子的巅峰对决
  • 原文地址:https://www.cnblogs.com/decode1234/p/12295471.html
Copyright © 2011-2022 走看看