一些设备隐藏了系统设置,甚至隐藏了关于项,此时需要命令行操作
打开设置主页
手机
标准手机设置app
adb shell am start com.android.settings/com.android.settings.Settings 车机
adb shell am start -a android.settings.SETTINGS打开关于我
adb shell am start -a android.settings.DEVICE_INFO_SETTINGS
启用布局边界
英文名称 “show layout bounds”
# 打开
adb shell setprop debug.layout true && adb shell service call activity 1599295570
//adb shell service check SurfaceFlinger
// 关闭
adb shell setprop debug.layout false && adb shell service call activity 1599295570 打开开发者选项Activity
adb shell am start -a com.android.settings.APPLICATION_DEVELOPMENT_SETTINGS 开发者选项如果没有激活,
激活开发者选项
打开关于我
连续点击build number启用开发者选项
配置WIFI
打开wifi设置页
adb shell am start -a android.settings.WIFI_SETTINGS 关闭wifi
adb shell svc wifi disable 打开wifi
adb shell svc wifi enable 卸载app
卸载普通应用
adb uninstall com.demo.app 删除系统应用
需要root权限,需要remount
adb root && adb remount && adb shell
rm -rf `pm list package -f |grep com.demo.app | awk -v FS="/" -v OFS="/" '{print "/"$2,$3,$4}'` && stop && start 开启adb
命令行开启tcp端口
重启失效
adb tcpip 5555 持久开启
修改配置文件
后缀为prop的系统配置,也可能是system.prop或者default.prop, 一般位于/etc/目录下边
# 后缀为`prop`的系统配置,也可能是`system.prop`或者`default.prop`
adb pull /etc/build.prop
#增加一行
service.adb.tcp.port=5555
#adb push 到系统,重启生效
adb reboot 设置输入法
设置默认输入法
adb shell ime set com.google.android.inputmethod.pinyin/.PinyinIME 可选输入法列表
前提是输入法已安装
Android键盘(AOSP) ~ 系统默认
com.android.inputmethod.latin/.LatinIME
谷歌拼音输入法
com.google.android.inputmethod.pinyin/.PinyinIME
谷歌Gboard输入法
com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME
触宝输入法国际版
com.cootek.smartinputv5/com.cootek.smartinput5.TouchPalIME
Go 输入法
com.jb.emoji.gokeyboard/com.jb.gokeyboard.GoKeyboard
SwiftKey Keyboard 输入法
com.touchtype.swiftkey/com.touchtype.KeyboardService
搜狗输入法:
com.sohu.inputmethod.sogou/.SogouIME
微软必应输入法
com.bingime.ime/.BingIme
显示系统安装的输入法列表
adb shell ime list -s
获取系统默认输入法
adb shell settings get secure default_input_method
设置系统默认输入法
adb shell settings put secure default_input_method com.touchtype.swiftkey/com.touchtype.KeyboardService
抓布局/截图
uiautomatorviewer抓取布局, 依赖jdk8
adb shell uiautomator dump /sdcard/app.uix
adb shell screencap -p /sdcard/app.png
查看Wakelock锁
打印系统PowerManager锁持有详情,可以分析锁占用导致休眠失败问题
#App层
adb shell dumpsys power
#Linux层
adb shell cat /sys/power/wake_lock
后台执行adb shell
准备脚本
写一个脚本文件 dumppower.sh
i=0
while (( i<60))
do
echo $i
((i++))
sleep 1
done
dumpsys power
运行脚本
在Android 8.0上测试过
#push脚本到设备上
#进入终端
adb shell
#不能用nohup挂起,nohup执行dumpsys没有任何输出
sh path/to/dumppower.sh > path/to/output.dump 2>&1 &
#手动退出终端,然后拔掉usb,否则后台进程会被杀死
exit 一分钟后导出 output.dump查看输出
控制媒体音乐
通过MediaSession控制音乐播放.暂停,上下首
#暂停
adb shell media dispatch pause
#播放
adb shell media dispatch play
adb shell media dispatch play-pause
adb shell media dispatch fast-forward
adb shell media dispatch rewind
Log控制
开启输出protoLog到logcat
ProtoLog 支持的字段: base/core/java/com/android/internal/protolog/ProtoLogGroup.java
窗口动画AppTransition
wm logging enable-text WM_DEBUG_APP_TRANSITIONS_ANIM