zoukankan      html  css  js  c++  java
  • adb 常用命令

    Android SDK(Software Development Kit,软件开发工具包)被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。它提供了Android API 库和开发工具构建,测试和调试应用程序。简单来讲,Android SDK 可以看做用于开发和运行 Android 应用的一个软件。
    当下载完成之后我们会发现,会多一个build-tools目录,以及platform-tools。platform-tools下面会有一个adb,它就是我们做Android的专项测试必须的工具,这就是我们的一个最简化的安装。
    ADK是Android Open Accessory Development Kit 的缩写。使用ADK使得不支持USB Host功能的Android设备也可以和其它USB设备交互。比如使用Android手机来控制步进电机,条码扫描仪,机器人等。
    ADB的全称为Android Debug Bridge,字面意思就是安卓调试桥接,简单点说,它是Android系统提供的一套工具,可让您与设备进行通信。通过它,我们可以在电脑上建立一个连接到手机的通道,然后可以在电脑上向手机发送一些指令,完成一些我们需要做的工作 。

    adb 基础命令

    adb 基础语法

    adb [-d|-e|-s <serialNumber>] <command>
    

    命令行参数

    • -d:指定当前唯一通过 USB 连接 的 Android 设备为命令目标
    • -e:指定当前唯一运行的 模拟器为 命令目标
    • -s <serialNumber>:指定相应 serialNumber 号的设备/模拟器为命令目标

    重点

    • 如果只有连了一台设备,那就不需要 -d、-e、-s 参数了
    • 多个设备/模拟器连接的情况下较常用的是 -s <serialNumber> 参数,serialNumber 为设备到序列号,设备连接上电脑后可以通过 adb devices 命令获取
    • serialNumber 可能是序列号也可能是 IP

    查看当前 adb 连接上的设备列表

    adb devices
    

    杀掉 adb 服务

    adb kill-server
    

    开启 adb 服务

    adb start-server
    

    adb 安装 app

    adb install 包地址
    

    adb 卸载 app

    adb uninstall 包名
    

    把文件从手机中复制到电脑

    adb pull <手机路径> <电脑路径>
    

    把文件从电脑复制到手机上

    adb push <电脑路径> <手机路径>
    

    以 root 权限运行 adb

    adb root
    

    存在一些需要 root 权限才能执行的命令

    取消 root 权限

    adb unroot
    

    指定 adb server 的网络端口

    # 默认端口为 5037
    adb -P <port> start-server
    

    指定设备 ID

    adb -s 09091JEC212986 logcat -v time
    

    查看手机设备信息

    查看手机型号

    adb shell getprop ro.product.model
    

    查看电池状况

    adb shell dumpsys battery
    

    其中 scale 代表最大电量,level 代表当前电量。上面的输出表示还剩下 68% 的电量。

    查看分辨率

    adb shell wm size
    

    查看屏幕密度(ppi)

    adb shell wm density
    

    查看显示屏参数

    adb shell dumpsys window displays
    

    查看android_id

    adb shell settings get secure android_id
    

    查看 Android 系统版本

    adb shell getprop ro.build.version.release
    

    查看IP地址,网卡相关

    adb shell ifconfig
    
    adb shell ifconfig wlan0  # 指定网卡
    

    查看Mac地址

    adb shell cat /sys/class/net/网卡/address
    
    adb shell cat /sys/class/net/eth0/address
    adb shell cat /sys/class/net/wlan0/address
    

    或者

    adb shell netcfg
    

    或者直接手机上看

    查看CPU信息

    adb shell cat /proc/cpuinfo
    

    查看内存信息

    adb shell cat /proc/meminfo
    

    查看硬件与系统属性

    查看所有属性

    adb shell getprop
    

    单独查看属性

    adb shell getprop <属性名>
    

    常用属性列表

    属性名 含义
    ro.build.version.sdk SDK 版本
    ro.build.version.release Android 系统版本
    ro.build.version.security_patch Android 安全补丁程序级别
    ro.product.model 型号
    ro.product.brand 品牌
    ro.product.name 设备名
    ro.product.board 处理器型号
    ro.product.cpu.abilist CPU 支持的 abi 列表[节注一]
    persist.sys.isUsbOtgEnabled 是否支持 OTG
    dalvik.vm.heapsize 每个应用程序的内存上限
    ro.sf.lcd_density 屏幕密度

    应用管理

    查看应用列表

    adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]
    
    

    命令行参数列表

    参数 显示列表
    所有应用
    -f 显示应用关联的 apk 文件
    -d 只显示 disabled 的应用
    -e 只显示 enabled 的应用
    -s 只显示系统应用
    -3 只显示第三方应用
    -i 显示应用的 installer
    -u 包含已卸载应用
    包名包含的字符串

    查看系统应用

    adb shell pm list packages -s
    

    查看第三方应用

    adb shell pm list packages -3
    

    查看某个包名中包含指定字符的应用

    # 比如要查看包名包含字符串 java 的应用列表 
    adb shell pm list packages java 
    
    # 也可以使用 grep 来过滤
    adb shell pm list packages | grep java 
    

    安装应用

    adb install [-lrtsdg] <path_to_apk>
    

    命令行参数列表

    参数 含义
    -l 将应用安装到保护目录 /mnt/asec
    -r 允许覆盖安装
    -t 允许安装 AndroidManifest.xml 里 application 指定android:testOnly="true"的应用
    -s 将应用安装到 sdcard
    -d 允许降级覆盖安装
    -g 授予所有运行时权限

    卸载应用

    adb uninstall [-k] <packagename>
    
    • 表示应用的包名
    • -k 参数可选,表示卸载应用但保留数据和缓存目录。

    清除应用数据和缓存

    adb shell pm clear <packagename>
    

    这条命令的效果相当于在设置里的应用信息界面点击了清除缓存清除数据

    查看当前运行的 APP 的页面 Activity 信息

    两条命令差不多效果

    adb shell "dumpsys window | grep mCurrentFocus"
    
    adb shell "dumpsys activity activities | grep mFocusedActivity"
    

    查看某个包的版本号

    adb shell dumpsys package 包名 | findstr versionName
    

    查看应用安装路径

    adb shell pm path <PACKAGE>
    

    杀死一个应用进程

    adb shell kill [pid]
    

    不过一般先要获得 PID

    # 查看所有进程信息的命令
    adb shell ps
    
    # 可以通过 grep 筛选进程名称来查 PID
    adb shell "ps |grep water"
    
    # 结束进程
    adb shell kill pid
    

    日志相关

    Android 系统的日志分为两部分

    1. 底层的 Linux 内核日志输出到 /proc/kmsg
    2. Android 的日志输出到 /dev/log
    adb logcat [<option>] ... [<filter-spec>] ...
    

    按优先级过滤日志

    Android 的日志分为如下几个优先级

    • V —— Verbose(最低,输出得最多)
    • D —— Debug
    • I —— Info
    • W —— Warning
    • E —— Error
    • F —— Fatal
    • S —— Silent(最高,啥也不输出)
    adb logcat *:W
    
    • 该命令会将 Warning、Error、Fatal 和 Silent 日志输出。
    • 记得固定写法哦 *:W

    指定日志格式

    adb logcat -v <format>
    

    brief

    <priority>/<tag>(<pid>): <message>
    
    # 示例
    
    adb logcat -v brief
    D/AF::TrackHandle(  983): OpPlayAudio: track:14431 usage:13 muted
    

    process

    ──  (<tag>)
    <priority>(<pid>) <message> 
    
    # 示例 
    
    adb logcat -v process
    
    ──  (MAXHUB-PostBonjourInfoRunnable)
    D( 1785) Disconnected process message: 10, size: 0 (HeadsetStateMachine)
    

    tag

    <priority>/<tag>: <message>  
    
    # 示例 
    
    adb logcat -v tag
    D/HeadsetStateMachine: Disconnected process message: 10, size: 0
    

    raw

    <message>
    
    # 示例
    
    Disconnected process message: 10, size: 0
    

    time

    <datetime> <priority>/<tag>(<pid>): <message>
    
    # 示例
    
    08-28 22:39:39.974 D/HeadsetStateMachine( 1785): Disconnected process message: 10, size: 0
    

    threadtime

    <datetime> <pid> <tid> <priority> <tag>: <message> 
    
    # 示例
    
    08-28 22:39:39.974 1785 1832 D HeadsetStateMachine: Disconnected process message: 10, size: 0
    

    long

    [ <datetime> <pid>:<tid> <priority>/<tag> ]
    <message>
    
    # 示例
    
    [ 08-28 22:39:39.974  1785: 1832 D/HeadsetStateMachine ]
    Disconnected process message: 10, size: 0
    

    清空日志

    adb logcat -c
    

    查看内核日志

    adb shell dmesg
    

    模拟按键输入

    input [<source>] <command> [<arg>...]
    

    物理键

    # 电源键
    adb shell input keyevent 26
    
    # 菜单键
    adb shell input keyevent 82
    
    # HOME 键
    adb shell input keyevent 3
    
    # 返回键
    adb shell input keyevent 4 
    
    # 音量+
    adb shell input keyevent 24 
    
    # 音量-
    adb shell input keyevent 25 
    
    # 静音
    adb shell input keyevent 164
    

    媒体控制

    # 播放/暂停
    adb shell input keyevent 85 
    
    # 停止播放
    adb shell input keyevent 86 
    
    # 播放下一首
    adb shell input keyevent 87 
    
    # 播放上一首
    adb shell input keyevent 88 
    
    # 恢复播放
    adb shell input keyevent 126 
    
    # 暂停播放
    adb shell input keyevent 127 
    

    点亮/熄灭屏幕

    # 点亮屏幕
    adb shell input keyevent 224 
    
    # 熄灭屏幕
    adb shell input keyevent 223 
    

    触击屏幕

    手机左上角坐标为 0 0

    # x,y为坐标位置
    adb shell input tap <X> <Y> 
    

    滑动屏幕

    四个参数:起始点 x 坐标 起始点 y 坐标 结束点 x 坐标 结束点 y 坐标

    # 向上滑动
    adb shell input swipe 300 1000 300 500 
    
    # 向下滑动
    adb shell input swipe 300 100 300 1000 
    
    # 向左滑动
    adb shell input swipe 1000 500 200 500 
    
    # 向右滑动
    adb shell input swipe 200 500 1000 500 
    

    其他实用功能

    屏幕截图

    adb exec-out screencap -p > sc.png
    
    • 截图保存到电脑执行该命令的目录下
    • 如果指定文件名以 .png 结尾时可以省略 -p 参数

    注意

    如果 adb 版本较老,无法使用 exec-out 命令,建议更新 adb 版本

    也可以用下面的步骤来完成

    # 先截图保存到设备里
    adb shell screencap -p /sdcard/sc.png 
    
    # 然后将 png 文件导出到电脑
    adb pull /sdcard/sc.png 
    

    录制屏幕

    # 录制屏幕以 mp4 格式保存到 /sdcard
    adb shell screenrecord /sdcard/filename.mp4 
    
    # 导出到电脑
    adb pull /sdcard/filename.mp4 
    

    需要停止时按 Ctrl-C,默认录制时间和最长录制时间都是 180 秒

    查看wifi密码

    adb shell cat /data/misc/wifi/*.conf
    

    删除系统默认APP

    找到要删除的包名

    adb shell pm list packages -s 
    

    获取包名的地址

    adb shell pm path 包名 
    

    【如:adb shell pm path com.seewo.rainbow.pro】

    获取root权限

    adb root adb remount
    

    挂载系统读写权限

    adb shell rm 包名地址
    

    删除包

    adb shell rm -r /data/app/com.seewo.rainbow.pro-1
    

    重启

    adb reboot 
    
  • 相关阅读:
    GPU
    Windows系统之hosts文件
    条形码定位算法
    entity framework extended library , bulk execute,deleting and updating ,opensource
    sharepoint 2013 sp1
    windows azure programing
    windows azure tools for mac
    online web design tool
    toastr
    sharepoint online
  • 原文地址:https://www.cnblogs.com/dongye95/p/15003187.html
Copyright © 2011-2022 走看看