个人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下载安装及使用