我想将printf()类型的输出写入Android应用程序的日志(log)文件. 对于在我的最终用户手机上运行的发布的APK文件,应该会发生这种情况. 来自谷歌的大量例子是开发人员正在测试的调试apk文件,这不是我所要求的. 一些例子还建议写入SD卡,但如今Pixel设备没有外部存储,只有内部存储. 所以我问这个问题是因为10年前的答案不再有效. 如何在Android手机上使用Kotlin编程写入logfile.txt? 这个文件应该放在哪里,以免Android自动删除?

推荐答案

我想将printf()类型的输出写入Android应用程序的日志(log)文件.对于在我的最终用户手机上运行的发布的APK文件,应该会发生这种情况.

您可能更喜欢托管日志(log)记录解决方案.

一些例子还建议写入SD卡,但如今Pixel设备没有外部存储,只有内部存储

所有Android设备都有外部存储,at least as the Android SDK uses the term.

如何在Android手机上使用Kotlin编程写入logfile.txt?这个文件应该放在哪里,以免Android自动删除?

使用标准的Java文件I/O.如果你只需要你的应用程序访问日志(log),在Context上使用getFilesDir()可以获得一个好的目录来使用.如果您希望您的用户拥有访问日志(log)的选项,那么可以使用getExternalFilesDir()onContext来获得一个好的目录来使用.

Android相关问答推荐

以编程方式更改Android应用程序上的文件许可

无法安装后重新编译android代码'

Android Gradle/Groovy,如何将文件复制到APK

如何在Android Studio的LinearLayout中禁用阴影

为什么Kotlin允许将非空值类型化为可空类型,但又将其视为非空值?

如何使用react native下载android中/data/data/[应用程序包名称文件夹]/files中的文件

Android 不在后台更新位置

如何避免多次调用 Jetpack Compose 的 onClick 回调

@Immutable 对数据类有什么好处?

Jetpack Compose:如何绘制异形边框?

如何在 android compose 中将具有渐变边缘的透明圆圈绘制到阴影覆盖层中?

PullRefreshIndicator 与 ScrollableTabRow 重叠

在事件中使用 Context/Toast 时不需要的重组 - Jetpack Compose

如何修复 api 调用在浏览器中工作但在 android studio 中为 403

并行运行两个挂起函数并在第一个返回时返回

Android Studio:如何添加应用程序质量洞察窗口以查看 Android Studio 中的 Crashlytics 数据?

Android Material Date Range Picker - 如何仅更改所选范围日期的文本 colored颜色 ?

Firebase Crashlytics 缩小 R8 Android

Android YouTube SDK - 视频无法在某些 Android 设备中播放

Android:如何获取具有纬度和经度的位置的图像