Android应用开发之Android性能优化教程之SQLite数据库实例分析
凌雪 2018-09-21 来源 :网络 阅读 616 评论 0

摘要:本文将带你了解Android应用开发之Android性能优化教程之SQLite数据库实例分析,希望本文对大家学Android有所帮助。

本文将带你了解Android应用开发之Android性能优化教程之SQLite数据库实例分析,希望本文对大家学Android有所帮助。


Android中的优化可谓又是一重任,Android不足以像PC端具有很高的内存执行空间给我们用来重量级使用开销。有限的内存资源限制了我们的扩展方向。所以,在Android中的内存优化以及性能优化成为了一个攻城狮不可忽略的重点所在。本系列文章关于性能优化我会分为一下4个模块来和大家分享:
    (1)Android性能优化 一 SQLite数据库
    (2)Android性能优化一布局优化
    (3)Android性能优化 一 数据优化
    (4)Android性能优化一 网络优化
    今天我们先一起来了解下在Android中的SQLite数据库操作方面有哪些需要优化和注意的地方。
      Android中对于SQLite数据库的操作,系统为我们提供了很方便的实现。我们只需要创建自己的一个类继承SQLiteOpenHelper类并实现其中的onCreate方法和onUpgrade方法即可。在数据库优化方面,SQLite和其他数据库例如   Oracle、SQL Server、 My Sql等等,一样拥有相同的原理,只是SQLite是一种嵌入式的数据库,在移动端手机中使用比较合适。对于SQLite的优化,我们可以分为以下两类:
    1> 索引
    2>事务
      关于数据库创建索引想必大家都比较熟悉。索引给我们带来的好处是显而易见的。一个千万级的数据,索引的存在使查询数据的速度升华为一个更优的高度。同样,在查询速度提升的同时,创建索引所带来的开销也是不可忽视的。有利必有弊,所以适当的情况下创建索引,会给我们的数据查询带来质的变化。
    了解了创建索引的优点和缺点,我们看下在Android中的SQLite数据库创建索引的方式:
   
      从上面代码我们看到,在onCreate方法中只需要使用SQLiteDatabase实例db调用execSQL方法执行创建创建索引的SQL语句即可。索引的使用适合在当某个字段查询频率高,而更新操作频率低的情况下并且经常有范围的查询(>,<   >=,<=,=)已经对order by 和group   by的操作。对于SQLite创建索引我们先说到这里,对于索引还不太了解的童靴,可以看下这篇文章:SQLite 索引
    了解完了索引,下面我们继续探讨SQLite的事务。
      对于事务,就是数据库的一次原子性的执行操作。原子性的执行操作为数据的整体性执行带来的可靠安全性。在SQLite中,如果我们默认事务(会为每个插入和更新都创建一次事务,并且在每次插入和更新后会立刻提交本次操作),即没有手动创建事务,假设此时有1000条数据,那么数据的执行流程是   创建事务 -> 执行插入或更新操作 -> 提交事务,这样的流程会执行1000次。如果我们手动创建了事务,则执行流程为: 创建事务 ->   执行1000条SQL数据操作 ->   提交事务。很明显,我们在SQLite中使用事务可以为插入和更新操作带来很大的优化。下面来看在SQLite中如何使用事务:
   
    从上图我们看到,执行一次事务分为了四步,分别是:开始事务 -> 执行SQL ->设置事务执行成功 -> 结束事务
    ok,两个主要的模块我们已经介绍完毕,下面来看下对于SQLite的一些其他的优化细节:
    1> 少用cursor.getColumnIndex():使用cursor.getColumnIndex(),系统会根据列名来获取列所在的下标,比较耗时,所以我们可以使用static定义下标,直接通过下标来获取某列。
      2>使用StringBuilder或StringBuffer来拼接字符串:SQL语句字符串的拼接或创建多个临时变量,此时我们可以使用StringBuilder或StringBuffer来拼接字符串,减少不必要的资源占用,这个不多说,大家都懂的。
    3>查询时,只返回自己需要的值或结果:有些童靴可能为了简单,在查询数据时直接将全部数据获取出来,然后再get到自己想要的某列值。这样的操作同样会带来不必要的系统资源开销和浪费。所以,在查询时,我们只取自己需要的字段和结果。
    4>cursor使用后要及时关闭:即在查询完结果后,调用cursor.close()将资源关闭。
      关于Android中SQLite数据库的优化,就和大家分享到这里,有不妥的地方还望大神多多提醒。下一篇,我将和大家一起分享在Android优化系列的第二篇:Android性能优化-布局优化    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注移动开发之Android频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程