Android NDK本机库,如何处理现有的stdio?

Android NDK本机库,如何处理现有的stdio?,android,android-ndk,native-code,Android,Android Ndk,Native Code,我有现有的本机C/C++代码,我目前正在通过NDK构建到本机lib和Android应用程序中。本机代码充满了对stdout和stderr的打印语句。这样的事情有最佳实践吗?我可以忽略它们吗?还是我需要检查并将它们重定向到Android日志系统 我将现有代码构建为一个独立的本机二进制代码,并通过adb运行它,我看到了从printf(到stdout)到控制台的所有输出 问这个问题似乎很愚蠢,但对于Android应用程序,stdio去了哪里?默认情况下,对于Android应用程序,stdout和std

我有现有的本机C/C++代码,我目前正在通过NDK构建到本机lib和Android应用程序中。本机代码充满了对stdout和stderr的打印语句。这样的事情有最佳实践吗?我可以忽略它们吗?还是我需要检查并将它们重定向到Android日志系统

我将现有代码构建为一个独立的本机二进制代码,并通过adb运行它,我看到了从printf(到stdout)到控制台的所有输出


问这个问题似乎很愚蠢,但对于Android应用程序,stdio去了哪里?

默认情况下,对于Android应用程序,stdout和stderr被发送到/dev/null(无处可用)

您可以使用adb setprop将log.redirect-stdio设置为true,或将“log.redirect stdio=true”放在/data/local.prop中(您可能需要root访问才能创建,但更可靠)。这样做会将其输出发送到logcat日志


请参阅“查看stdout和stderr”:

注意,“查看stdout和stderr”一节也移动到了“查看stdout和stderr”的注释中,说明这是Dalvik VM的工作方式,如果您尝试此操作,新的ART报告了一个
无法识别的选项-Xlog stdio
。这是