ADB(Android Debug Bridge)学习


个人blog-1: 拾忆生活
个人blog-2: 极简-拾忆生活
欢迎大家来踩,同步更新


adb介绍

ADB是一个C/S架构的应用程序,由三部分组成:

  • 运行在设备端的常驻进程adb demon (adbd):
    • 在Android设备或模拟器系统中运行
    • 作用:连接ADB服务器,并且为运行在主机上的客户端提供一些服务。
  • 运行在pc端的adb client:
    • 命令行程序,从shell或脚本中运行adb命令
    • 作用:当设备的adbd和pc端的adb server建立连接后,adb client就可以向ADB servcer发送服务请求
  • 运行在pc端的adb server:
    • 运行在主机上的一个后台进程。
    • 作用:检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止。
    • ADB Server还需要将adb client的请求通过usb或者tcp的方式发送到对应的adbd上。

adb目录

adb 包含在 Android SDK 平台工具软件包中。您可以使用 SDK 管理器下载此软件包,该管理器会将其安装在 android_sdk/platform-tools/ 下

  • D:\sdk\platform-tools

在设备上启用 adb 调试

在搭载 Android 4.2 及更高版本的设备上,“开发者选项”屏幕默认情况下处于隐藏状态。如需将其显示出来,请依次转到

  • 设置 > 关于手机,然后点按版本号七次。
  • 返回上一屏幕,在底部可以找到开发者选项。
  • 用cmd打开D:\sdk\platform-tools
    • adb devices
    • adb install xxx【adb安装应用】

adb常用命令

启动 adb server 命令:

  • adb start-server

停止 adb server 命令:

  • adb kill-server

查询已连接设备/模拟器:【★★★】

  • adb devices

adb状态:

offline —— 表示设备未连接成功或无响应;
device —— 设备已连接;
no device —— 没有设备/模拟器连接;
List of devices attached 设备/模拟器未连接到 adb 或无响应

查看应用列表

查看所有应用列表:

  • adb shell pm list packages

查看系统应用列表:

  • adb shell pm list packages -s

查看第三方应用列表:【★★★】

  • adb shell pm list packages -3

apk安装与卸载

  • 安装apk【★★★】
    • adb install “-lrtsdg” “path_to_apk”
  • 卸载apk【★★★】
    • adb uninstall -k “packagename”
  • 清除应用数据与缓存【★★★】
    • adb shell pm clear “packagename”
  • 查看应用包名
    • adb shell pm list packages

说明

“-lrtsdg”:

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

path_to_apk:apk的绝对路径。
packagename”:表示应用的包名。

针对Android四大组件

Activity活动,Service服务,Content Provider内容提供,BroadcastReceiver广播接收器

  • 查看前台 Activity
    • adb shell dumpsys activity activities | grep mFocusedActivity
  • 查看正在运行的 Services
    • adb shell dumpsys activity services “packagename”
  • 查看应用详细信息
    • adb shell dumpsys package “packagename”
  • 调起 Activity
    • adb shell am start [options]
  • 强制停止应用
    • adb shell am force-stop “packagename”

adb模拟按键/输入

  • adb shell input keyevent keycode

keycode如下:

xxx

其他设置

  • 滑动解锁:滑动手势解锁,那么可以通过 input swipe 来解锁

    • adb shell input swipe 300 1000 300 500
    • (其中参数 300 1000 300 500 分别表示起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标。)
  • 输入文本

    • adb shell input text ***
    • (***即为输入内容)
  • 打印日志

    • 暂时不写
  • 清空日志

    • adb logcat -c
  • 内核日志

    • adb shell dmesg

查看修改设备信息

  • 1、查看设备信息型号命令:
    • adb shell getprop ro.product.model
  • 2、电池状况命令:
    • adb shell dumpsys battery
  • 3、屏幕分辨率命令:
    • adb shell wm size
    • 修改分辨率:adb shell wm size 480x1024
    • 恢复原分辨率:adb shell wm size reset

注:
Physical size: 1080x1920
Override size: 480x1024
表明设备的屏幕分辨率原本是 1080px * 1920px,当前被修改为 480px * 1024px。

  • 4、界面屏幕密度缩放dpi命令:
    • adb shell wm sensity
    • 修改屏幕密度命令:adb shell wm density 160
    • 恢复原屏幕密度m命令:adb shell wm density reset
      • 注:原dpi:300
  • 5、修改显示区域
    • adb shell wm overscan 0,0,0,200
    • 注:四个数字分别表示距离左、上、右、下边缘的留白像素,以上命令表示将屏幕底部 200px 留白
  • 6、显示屏参数
    • adb shell dumpsys window displays

注:
mDisplayId 为 显示屏编号,init 是初始分辨率和屏幕密度,app 的高度比 init 里的要小,表示屏幕底部有虚拟按键

  • 7、查看Android 系统版本
    • adb shell getprop ro.build.version.release
  • 8、查看设备ip地址:【★★★】
    • adb shell ifconfig | grep Mask 或者 adb shell netcfg
  • 9、查看CPU 信息命令:
    • adb shell cat /proc/cpuinfo
  • 10、查看内存信息命令:
    • adb shell cat /proc/meminfo

实用功能

截图

  • 1、截图保存到电脑
    • adb exec-out screencap -p > sc.png
  • 2、将截好图的 png 文件导出到电脑
    • adb pull /sdcard/sc.png

录屏

  • 3、录制屏幕
    • adb shell screenrecord /sdcard/filename.mp4
    • 注:以 mp4 格式保存到 /sdcard;要停止时按 Ctrl-C,默认录制时间和最长录制时间都是 180 秒。
  • 4、将录好的 mp4 文件导出到电脑
    • adb pull /sdcard/filename.mp4

其他

  • 发布端口
    • adb forward tcp:5555
  • 从电脑上发送文件到设备
    • adb push <本地路径> <远程路径>
  • 从电脑上下载文件到设备
    • adb pull <远程路径> <本地路径>

adb remount
作用:挂载分区,可使系统分区重新可写【★★★】
adb reboot
作用:重启设备

实例:提取手表系统上的apk

  • adb devices
  • adb remount
  • adb pull /system/framework/framework-res.apk D:\adb watchApk

实例:推送给手表系统apk【推送不等于下载】

  • adb devices
  • adb remount
  • adb adb push D:\framework-res.apk /system/framework
  • adb shell chmod 644 /system/framework/framework-res.apk
    • 注:修改权限
  • adb reboot

下载aida64 apk

一款硬件检测软件

  • adb install "D:\adb watchApk\AIDA64_v1.71_apkpure.com-28129-14133-o_1e720av8p12co1rk7vsu9m3nvnr-uid-531994.apk"

下载geekbench4

一款跑分软件

  • adb install "D:\adb watchApk\geekbenchw.apk"

针对腕上应用助手

1、在手表开启无线连接

  • 查看设备连接情况
    • adb devices
  • USB接口连接,让设备在 5555 端口监听 TCP/IP 连接。
    • adb tcpip 5555(PS:5555是端口号,可以随意地指定)
  • 再拔掉数据线断开电脑和手机的连接。

2、通过WLAN将电脑和手表连接

  • 在电脑端执行连接命令(首先要查找到手机的IP地址,比如192.168.1.41)
    • adb connect 192.168.1.41:5555
  • 再次查看设备连接情况
    • adb devices

3、断开无线连接

  • adb disconnect 192.168.1.41:5555

注:大部分学习自adb下载安装及使用

你可能感兴趣的:(Android,android,adb)