vivo真机调试的坑 & adb无线调试及命令实例 & scrcpy 投屏启动失败

3,058 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

vivo真机调试的坑

  • 坑1:安装失败

    解决方案:在工程的gradle.properties中加上 android.injected.testOnly=false

  • 坑2:总是要输入密码才能安装

    解决方案: 1.开发者选项 > 2.默认USB配置 > 3.选择MIDI

scrcpy 投屏神器启动失败

报错:[server] ERROR: Encoding error: java.lang.IllegalStateException: null,如下图:

[server] ERROR: Encoding error: java.lang.IllegalStateException: null

解决方案:

  • 代参指定编码器启动

      scrcpy --encoder 'OMX.google.h264.encoder'
    
  • 降低投屏分辨率,并指定编码器启动

      scrcpy --encoder 'OMX.google.h264.encoder' -m 1024
    

adb无线调试

连接手机IP(默认端口5555):adb connect 192.168.1.4:5555

如果无线连接失败,USB连接手机后再执行:adb tcpip 5555 ,指令成功后就可以断开USB快乐地无线调试了。

近日发现,突然使用adb无线连接小米电视,发现adb tcpip 5555 失败,报错:error: no devices/emulators foundadb kill-server 也无效,重启电脑即可。但具体原因不知什么鬼,有知道的请告知,感谢!

  • 指令

    # connect.bat
    adb tcpip 5555 && adb connect 192.168.1.4:5555
    
    # con.bat
    REM 使用方法:con "4" 或 con 4 ,效果同上 (%~1 引号去掉,%1引号保留,均为批处理第一个参数含义)
    adb tcpip 5555 && adb connect 192.168.1.%~1:5555
    

常用 adb 命令

  • adb 设备

      adb devices
    
  • adb 服务启停

      adb start server
      adb kill server
    
  • 5037端口被占用

      adb shell netstat -ano | findstr LISTENING
      adb shell taskkill /PID 1548
    
  • 安装系统apk

      adb disconnect
      adb connect 192.168.16.23:5555
      adb remount
      adb push a.apk /system/app/a.apk
    
  • 屏幕截图

      新方法:
          adb exec-out screencap -p > sc.png
      老方法:
          adb shell screencap -p /sdcard/sc.png
          adb pull /sdcard/sc.png
      其他方法:
          adb shell screencap -p | sed "s/\r$//" > sc.png
    
  • 录制屏幕

      adb shell screenrecord /sdcard/filename.mp4
      adb pull /sdcard/filename.mp4
    
  • 点击

      echo adb shell input tap 100 200
    
  • 滑动 (滑动时长100ms,时间参数可省)

      adb shell input swipe 200 1200 300 400 100
    
  • HOME键

      adb shell input keyevent 3
    
  • 记录日志

      adb logcat > d:/a.log
    
  • 查看前台 Activity

      adb shell dumpsys activity activities | grep mResumedActivity
    
      在 Windows 下以上命令可能不可用,可以尝试:
    
      adb shell dumpsys activity activities | findstr mResumedActivity
    
      或
    
      adb shell "dumpsys activity activities | findstr mResumedActivity"
    
  • Android 系统版本

      adb shell getprop ro.build.version.release
    
  • monkey 测试

      adb shell monkey -p <packagename> -v 500
    
  • IP 地址

      adb shell ifconfig | grep Mask
    
  • 连接wifi后,查局域网IP

      adb shell ifconfig wlan0
    
  • 启动应用

    echo 小米电视机,打开我的应用页面
    adb shell am start com.mitv.tvhome/.NewMyAppActivity
    
  • 将批处理命令结果赋值给变量currentIsShow

      for /F %%i in ('adb shell settings get system pointer_location') do ( set currentIsShow=%%i)
    
  • 根据包名下载apk到当前路径

    @REM 1. 查询所有安装包包名
    adb shell pm list packages | findstr launcher
    @REM package:com.shafa.launcher
    
    @REM 2. 查询apk安装路径
    adb shell pm path com.shafa.launcher
    @REM package:/data/app/com.shafa.launcher-FaEuvqizjUykWX1O0HslMg==/base.apk
    
    @REM 3. 下载apk
    adb pull /data/app/com.shafa.launcher-FaEuvqizjUykWX1O0HslMg==/base.apk shafa.apk
    

参考