为什么 StrictMode 日志记录不会在 Marshmallow 设备上输出?
Why is StrictMode logging not being output on a Marshmallow device?
代码,调用自Application.onCreate()
:
private fun enableOnStrictMode() {
StrictMode.setThreadPolicy(
StrictMode
.ThreadPolicy
.Builder()
.detectAll()
.penaltyLog()
.build())
StrictMode.setVmPolicy(
StrictMode
.VmPolicy
.Builder()
.detectAll()
.penaltyLog()
.build())
}
这在 Android 9.0 Pie 设备上工作得很好,并输出几乎一打违反政策的行为,包括未标记的网络请求和磁盘读取。但是当 运行 Marshmallow 设备(Samsung J5 Android 6.0)上的相同代码时 StrictMode 不输出任何日志记录,即使假设违规行为仍在发生似乎是合理的。
StrictMode 配置是否有可能导致 Android 6.0 Marshmallow 无输出?
某些检测仅适用于更高的 API 版本。
例如,API 26 级 (Android O) added detectUntaggedSockets
和 detectUnbufferedIo
.
但是,detectDiskReads
应该可用 starting with API level 9。
代码,调用自Application.onCreate()
:
private fun enableOnStrictMode() {
StrictMode.setThreadPolicy(
StrictMode
.ThreadPolicy
.Builder()
.detectAll()
.penaltyLog()
.build())
StrictMode.setVmPolicy(
StrictMode
.VmPolicy
.Builder()
.detectAll()
.penaltyLog()
.build())
}
这在 Android 9.0 Pie 设备上工作得很好,并输出几乎一打违反政策的行为,包括未标记的网络请求和磁盘读取。但是当 运行 Marshmallow 设备(Samsung J5 Android 6.0)上的相同代码时 StrictMode 不输出任何日志记录,即使假设违规行为仍在发生似乎是合理的。
StrictMode 配置是否有可能导致 Android 6.0 Marshmallow 无输出?
某些检测仅适用于更高的 API 版本。
例如,API 26 级 (Android O) added detectUntaggedSockets
和 detectUnbufferedIo
.
但是,detectDiskReads
应该可用 starting with API level 9。