Android Studio中对应Xcode Target Output的控制台是什么?
先给你明确结论:Xcode里的Target Output本质是你的App直接输出的标准输出(stdout)和标准错误(stderr)内容——也就是App自己打印的日志,而非调试器或系统框架的输出。在Android Studio里,这些内容默认会流向几个地方,结合你的蓝牙场景,我给你拆解排查方法:
优先调整Logcat过滤规则查找
如果你在Android代码里用System.out.println()或System.err.println()输出内容(和iOS端直接打印到标准输出的逻辑对应),这些内容会被Logcat捕获,标签固定是System.out或System.err。你可以直接在Logcat的搜索框输入这两个关键词,或者创建自定义过滤器只显示这两个标签的内容,就能精准定位到和Xcode Target Output对应的输出。要是你用的是Android官方推荐的
Log类(比如Log.d("TAG", "蓝牙响应消息")),那这些日志会带着你自定义的TAG,需要在Logcat里过滤对应的标签名,这部分也属于App自身的输出,和Target Output的定位一致。切换到Run标签页查看
Android Studio底部的Run标签(就在Logcat旁边),有时候会直接显示App的标准输出内容,尤其是应用启动阶段的一些打印。你可以切换过来看看,说不定蓝牙设备的响应消息在这里能找到。排查蓝牙相关系统日志
既然是蓝牙设备的响应,还有可能是Android系统蓝牙服务输出的日志——这部分不属于你的App直接输出,但Xcode里可能把这类系统级相关输出也纳入了Target Output。这时候你需要在Logcat里过滤蓝牙相关的系统标签,比如BluetoothGatt、BluetoothAdapter、BluetoothService这些,说不定能找到你要的消息。
最后提醒下:如果以上都没找到,还是要确认下Android端的蓝牙回调逻辑里有没有正确添加打印语句——毕竟有时候我们会在iOS端加了日志,但Android端漏加了,这种情况也很常见。
内容的提问来源于stack exchange,提问作者user2638180

