Android 9 Pie 在 phone 上创建 SQLite 数据库文件的变化(?)

Changes on Android 9 Pie creating SQLite database files on phone (?)

我正在创建一个应用程序,但是当我开始创建数据库类 (sqlite) 并且它可以工作时,现在 android9 中的 sqlite 文件不同,在其他版本中,您转到 /data/data/packageapp/databases你找到了 database.sqlite 和 database.sqlite-journal,现在我发现这个和这个文件无法在 sqlite 管理员或类似人员上打开......但是数据库工作我不知道发生了什么,我想创建最后一个文件

查看照片

https://imgur.com/oSiiGqZ

对于 Android 9 SQLite,它现在默认使用预写日志记录模式 (WAL) 而不是日志模式,因为它有可能提高性能。这就是为什么您看到 -shm(共享内存文件)和 -wal(预写日志文件)文件的原因。

Temporary Files Used By SQLite

但是,您应该可以在其他支持打开的工具中打开实际的数据库文件(yonuncafrases.sqlite) SQLite 数据库。 Compatibility WAL (Write-Ahead Logging) for Apps

i want to create the last files

如果需要,您可以通过使用 SQLite disableWriteAheadLogging 方法强制使用日志模式,注意这必须在事务之外完成,然后将使用日志模式并且 -journal 文件将根据需要创建。

  • 我建议覆盖 onConfigure method and calling disableWriteAheadLogging in that overridden method. Alternatively you could use the journal_mode pragma(我相信这是 disableWriteAheadLogging 所做的)

您不妨阅读Write-Ahead Logging