我的安卓数据库框架使用踩坑流程以及推荐

首次接触数据库框架时间

    我是从2015年(刚毕业)开始接触的关系型数据库框架,在此之前都是使用的原生的那种,使用之后发现写数据库挺容易的,
    之前一直比较不喜欢使用数据库,认为很难。

接触过哪些数据库以及个人使用契合度(就是觉得这框架用起来怎么样)

数据库名称开源地址个人使用契合度
DbFlowhttps://github.com/agrosner/DBFlow入门级别数据库,简单使用认为可以,遇到复杂情况的时候,相应功能对应的API不好找,需要调用各种奇怪的API ,比如 保存后不能马上读取
LitePalhttps://github.com/guolindev/LitePal这个使用印象不深了,只有两个方面比较印象深刻,一个是实体类需要在assets下声明文件,另外设计奇怪,关系型数据库要往里写数据库语句,有点几句话蹦几个外语一样,不适合我
GreenDaohttps://github.com/greenrobot/greenDAO这个是我以前使用最多的,各方面都比较完善,比较可惜的是没有继续更新了,不推荐使用了,不然这个可以
ObjectBoxhttps://github.com/objectbox/objectbox-java这个是我目前使用最多的,也是给我感触最大的 。它的API非常简洁,使用也非常简单,甚至不需要关心数据库升级。但是直到前几天,我的世界观崩溃了:1.它占用内存非常大,有多大?你手机剩余多少内存它能占到多少 2.它有默认数据库容量限制,容量多大?1个G数据库超过1个G直接崩溃
ROOMhttps://developer.android.google.cn/training/data-storage/room#kotlin这个我以前用得不多,因为它需要写数据库语句,个人对这个不熟悉,所以一直抵触,但是现在,不得不面对它了,哪怕它有再多问题,恐怕也是以后不得不选择的了

开发时如何选择

如果需要快速开发,那么ObjectBox我认为是首选,在不熟悉ROOM的前提下,但是它有几点需要注意:

  • 生成的default.json一定要注意保存,不然覆盖安装会崩溃的
  • 保存的数据不要太多了,默认超过1个G会崩溃的,如果超过,需要配置maxSizeInKByte​(long maxSizeInKByte),但是问题来了,你知道你的数据库会存到多大么
  • 占用内存非常大,如果应用在后台使用,那么经常会提示 LOW_MEMORY_KILLER

除此之外,那么我建议使用ROOM

这里有两个非常重要的建议,

  • 不要在非常重要的事情上使用个人开发者提供的开源库,今天维护明天不维护的,发现问题好几天搞不定
  • 尽量不要使用突然间搞了很多开源库人的框架,因为这种情况往往代表他要换工作了,不知道在哪东拼西凑了很多代码,入职(KPI)之后,那这些库可能就再不会更新了
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值