通过终端命令查看所有连接的设备/模拟器的ID: $adb devices
根据设备ID显示logcat,例如:
$adb -s
在Android Studio的logcat窗口中选择需要查看的设备,如图所示:
当同时连接多个设备,并从每个设备获取日志时,需要在Build Variants菜单中选择合适的设备:
利用代码在指定设备上显示logcat,例如: String deviceId = "your-device-id"; String[] cmd = {"logcat", "-s", "your-tag"}; Process process = Runtime.getRuntime().exec(cmd); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { Log.d(TAG, line); }
在代码中设置logcat过滤器来限制输出的日志,例如: ProcessBuilder pb = new ProcessBuilder("logcat", "-v", "time", "-s", "MyAppTag:V"); pb.redirectErrorStream(true); Process p = pb.start(); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = br.readLine()) != null) { Log.d(TAG, line); }
如果多个设备的logcat混杂在一起,可以通过在logcat中使用过滤器来分离它们。如下所示的过滤器命令将logcat输出限制为仅显示指定设备的日志:
$adb -s
注意:以上命令均在命令行中执行。