文章目录

  • ​​重启adb​​
  • ​​安装&卸载apk​​
  • ​​传送文件​​
  • ​​与app相关​​
  • ​​安装&设置输入法​​
  • ​​与设备相关​​
  • ​​多设备选择​​
  • ​​与屏幕相关​​
  • ​​截屏&录屏​​
  • ​​开闭wifi连接​​
  • ​​系统应用​​
  • ​​使用sdk下platform-tools的sqlite3查看数据库​​

重启adb

  • 杀adb服务
adb kill-server
  • 杀adb进程
taskkill /f /im adb.exe

安装&卸载apk

  • 安装
// 普通安装
adb install 包名
// 安装debug版本的apk
adb install -t 包名
  • 卸载
adb uninstall 包名

传送文件

  • 传文件至设备
adb push xxx.txt sdcard/temp_dir
  • 从设备拉取文件
adb pull sdcard/temp_dir/xxx.txt d:/catfcae

与app相关

  • 关闭apk
// 案例
adb shell am force-stop cc.catface.app
  • 打开app指定activity页面[开启apk]
// 案例1
adb shell am start -n com.eiot.mic/c.mic.mic.MainActivity
// 案例2(Starting: Intent { cmp=me.jessyan.mvparms.demo/.mvp.ui.activity.UserActivity })
adb shell am start -n me.jessyan.mvparms.demo/me.jessyan.mvparms.demo.mvp.ui.activity.UserActivity
  • 查看apk的包名
aapt dump badging apk路径
  • 查看当前显示的app包名及activity包类路径
adb shell dumpsys window windows | findstr "Current"
  • 列出设备安装的所有app
adb shell pm list package
  • 查看某app所有信息
adb shell dumpsys package 包名
// 可以使用管道符号grep[linux]/findstr[win]过滤信息,如下查看版本号和版本名
adb shell dumpsys package 包名 | findstr versionCode
adb shell dumpsys package 包名 | findstr versionName
  • 查看设备当前heap使用情况
    可以在进入某activity前和退出后分别打印对比查看在该activity堆的使用情况,分析有无内存泄漏
adb shell dumpsys meminfo 包名 -d

adb命令调试的收集_sqlite

安装&设置输入法

  1. adb安装输入法apk
adb install -t 某输入法apk的绝对路径.apk
  1. 进设备系统设置页设置输入法
adb shell am start -n com.android.settings/.Settings
  1. 查看设备已安装输入法列表
adb shell ime list

adb命令调试的收集_输入法_02

  1. 设置默认输入法
adb shell ime set com.iflytek.inputmethod/.FlyIME

adb命令调试的收集_sqlite_03

与设备相关

  • 查看设备型号
adb shell getprop ro.product.model
  • 查看设备详细信息
adb shell

cat system/build.prop
  • 获取手机系统信息(CPU,厂商名称等)
adb shell "cat /system/build.prop | grep "product"
  • cpu位数
adb shell getprop ro.product.cpu.abi
  • 获取手机系统版本
adb shell getprop ro.build.version.release
  • 获取手机系统api版本
adb shell getprop ro.build.version.sdk
  • 获取手机设备型号
adb -d shell getprop ro.product.model
  • 获取手机厂商名称
adb -d shell getprop ro.product.brand
  • 获取手机的序列号
// 方式一
adb get-serialno
// 方式二
adb shell getprop ro.serialno
  • 获取手机的IMEI(三种方式但因手机和系统限制不一定能获取)
// 方式一
adb shell dumpsys iphonesubinfo
// 方式二(其中Device ID即为IMEI号)
adb shell getprop gsm.baseband.imei
// 方式三(该方式需处理获取到的信息)
adb shell service call iphonesubinfo 1
  • 获取手机mac地址
adb shell cat /sys/class/net/wlan0/address
  • 获取手机内存信息
adb shell cat /proc/meminfo
  • 获取手机存储信息
adb shell df
  • 获取手机内部存储信息
// 魅族手机
adb shell df /mnt/shell/emulated
// 其他手机
adb shell df /data
  • 获取sdcard存储信息
adb shell df /sdcard
  • 查看heap size伐值
adb shell getprop | findstr dalvik.vm.heapgrowthlimit

多设备选择

  • adb devices列出设备
C:\Users\catface>adb devices
List of devices attached
0123456789ABCDEF device
311904300101401 device
  • 对指定设备进行操作
adb -s 311904300101401 shell
  • 当同时连模拟器和真实设备时
// 操作模拟器
adb -e

// 操作真实设备
adb -d

与屏幕相关

  • 获取手机分辨率
adb shell "dumpsys window | grep mUnrestrictedScreen"
  • 获取手机物理密度
adb shell wm density
  • 禁用自动旋转
adb shell content insert --uri content://settings/system --bind name:s:accelerometer_rotation --bind value:i:0
  • 旋转屏幕(i代表旋转方向,取值范围为0,1,2,3)
adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:1

截屏&录屏

  • 截屏
adb shell screencap -p /sdcard/xxx.png
  • 录屏
// 普通录制
adb shell screenrecord /sdcard/xxx.mp4
// 指定时长(如不指定默认录制180s)
adb shell screenrecord --time-limit 10 /sdcard/xxx.mp4
// 指定分辨率
adb shell screenrecord --size 1280*720 /sdcard/xxx.mp4

开闭wifi连接

  • 开启wifi
adb shell svc wifi enable
  • 关闭wifi
adb shell svc wifi disable

系统应用

  • 打开系统设置页
adb shell am start -n com.android.settings/.Settings
adb shell am start -n com.android.settings/.SubSettings
  • 点击返回按钮
adb shell input keyevent KEYCODE_BACK
adb shell input keyevent 4

使用sdk下platform-tools的sqlite3查看数据库

​菜鸟sqlite教程​

// 打开数据库
sqlite3 .db数据库文件绝对路径

// 格式化查看结果
sqlite> .header on
sqlite> .mode column
sqlite> .timer on

// 查看数据库数据
sqlite> select * from 表名;

// 查看表结构
sqlite> .schema 表名

// 更多sqlite语法
sqlite> .help