一些设备隐藏了系统设置,甚至隐藏了关于项,此时需要命令行操作

打开设置主页

手机

标准手机设置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

春风花气馥,秋月寒江湛