Android(安卓)SQLite 是否开启了 shared-cache 模式?
16lz
2021-01-26
没有默认开启
并且也未提供相关控制API
--------------------------------------
shared-cache 模式:同一线程或同一进程对同一数据库的多个连接(connection)可以以共享缓存的方式呈现,实际上对于数据库只有一个连接。
http://www.sqlite.org/sharedcache.html
关注到这个模式是因为,在SQLite3.7.17中修复了一个SQLITE_CORRUPT bug。在该模式下,如果一个连接有写事务,另一个连接有读事务,当读事务结束时关闭了连接,则当写事务commit时会返回SQLITE_CORRUPT错误。
http://www.sqlite.org/changes.html
-------------------------------------
Android中采用SQLiteOpenHelper.getWritableDatabase()打开数据库,最终到达 nativeOpen 时,flag为CREATE_IF_NECESSARY
native层打开时转换为 OPEN_READWRITE | OPEN_CREATE
sqlite原生库最终打开时,会与sqlite3GlobalConfig.sharedCacheEnabled进行与操作,而sharedCacheEnabled默认为 0。也就是说sqlite3中若不通过函数打开shared-cache,将不会启用该模式。
更多相关文章
- SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
- Android(安卓)IPC之Binder连接池BinderPool
- Android(安卓)Studio使用技巧系列教程(三)
- 2020年中高级Android大厂面试秘籍,为你保驾护航,直通大厂
- Androd studio无线调试及镜像投屏
- unity3d android真机测试的2种方法
- linux下android的开发正确识别真机调试
- Android(安卓)对手机网络的检测和监听
- Android(安卓)Studio插件开发利器Exynap