Realm数据库框架使用
来源:互联网 发布:云数据 编辑:程序博客网 时间:2024/05/29 19:28
Realm数据库有着不错的性能,使用方便,但同时也有着恼人的缺点:
不能跨线程调用,就是说,你在A线程创建了Realm对象R,那么你不能在B线程去使用这个R,解决方法:
1. copy出一个R的副本,以便在其他线程读取。
2. 使用Handler切换到A线程,然后调用R执行存储数据操作,并及时更新相关数据。
3. 在其他线程创建新的Realm对象R2,利用R2存储数据,然后通知其他线程重新去数据库获取最新数据。
一些参考资料:
http://www.jianshu.com/p/52a9f84b158f
http://www.cnblogs.com/RaphetS/p/5996265.html
http://www.jianshu.com/p/fdc9492b714a
https://www.zhihu.com/question/30298585
ndk冲突:
http://blog.csdn.net/u010134293/article/details/53375137
http://blog.csdn.net/jabony/article/details/65441297
方法数量超过限制:
http://blog.csdn.net/hjz19921130/article/details/73610238
过滤掉不支持的平台,那么打包成APK之后体积就不会那么大了:
// We don't use these .so files of Realm, remove theme to reduce the size of APK file. packagingOptions { exclude "lib/arm64-v8a/librealm-jni.so" exclude "lib/mips/librealm-jni.so" exclude "lib/x86/librealm-jni.so" exclude "lib/x86_64/librealm-jni.so" } defaultConfig { ndk { abiFilters "armeabi", 'armeabi-v7a' } }
NDK so库冲突(找不到)的问题:
现在场景是这样的:Realm不支持armeabi,而我的项目只支持armeabi,编译的时候,报找不到so库的错误。
解决方法:
1. gradle(Module:app)中增加:
defaultConfig { ndk { abiFilters "armeabi", 'armeabi-v7a' } }
以支持armeabi和armeabi-v7a两种架构。
2. 在项目的app/libs路径下,也就是armeabi文件夹所在路径,新建一个armeabi-v7a文件夹,并把armeabi里的so全部拷贝到armeabi-v7a文件夹里。
对于一般的项目而言,上面两步就解决了,然后我这个项目最坑的地方就是:引用了一个aar文件,这个aar文件里居然也有so库!刚开始的时候,我一直纳闷,为什么明明没有问题啊,原来是这个aar里只支持armeabi,好吧,那我就把aar解压,取出里面的so库,拷贝到我们在步骤2新建的文件夹里。编译,终于通过了。
Tips:如果你确定你的项目只需要支持的armeabi-v7a的话,甚至可以把armeabi全删了,这样体积缩减得更多。
- Realm数据库框架使用
- 在android中使用Realm数据库框架
- Realm数据库框架的使用例子
- 数据库框架Realm Java
- Android框架之路——Realm数据库使用
- Realm数据库使用
- 数据库Realm的使用
- Android Realm数据库使用
- Realm数据库使用总结
- android realm数据库基本使用
- Realm 数据库的简单使用
- Android Realm数据库的使用
- Android-->Realm数据库使用注意事项
- android之Realm数据库使用
- Android realm数据库使用笔记
- Realm数据库的简单使用
- IOS Realm数据库的使用
- Android数据库框架GreenDao&Realm实战分析
- 解决:scripts/kconfig/zconf.tab.c:199:24: fatal error: zconf.hash.c: No such file or directory
- 注册登录测试用例—祭我所踩过的那些坑
- Leetcode 算法题04
- 棋牌游戏网站支付接口那些事儿
- Spring之FactoryBean
- Realm数据库框架使用
- Sycode.DWG.DXF.Converter.v2.0 1CD
- 1.JavaScript 简介
- 513[Medium]:Find Bottom Left Tree Value
- 非编程人学Python,要注意哪些隐秘的错误认知?
- Selenium webdriver 处理alert、confirm弹出框
- 列表滚动改变Toolbar透明度
- 观点:有关DevOps的7个趋势
- redux小例子分析