为什么 StrictMode 不捕获 SQLite 的 read/write 操作?

Why StrictMode does not catch read/write operations by SQLite?

在我的应用程序中,我对 StrictMode 进行了以下设置:

    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
            .detectDiskReads()
            .detectDiskWrites()
            .detectNetwork()
            .penaltyLog()
            .penaltyDeath()
            .build());

在某些时候,我注意到我很少有地方没有将 SQLite 操作放在单独的线程中,但它们不会触发 StrictMode 违规。 我已经在 Android 5.1.1 的真实设备上进行了测试,在 4.4.4 和 5.1.1 的 Genymotions 上进行了测试,结果相同。 我记得 SQLite 操作曾经触发 StrictMode 违规,但现在情况并非如此。知道为什么吗?

我在 documentation 中看到了以下内容:

Notably, disk or network access from JNI calls won't necessarily trigger it.

是这个原因吗?

SQLite 是一个用 C 编写的库,因此所有对数据库文件的访问确实隐藏在 JNI 调用中。