本系列博文我想围绕在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 bygroup 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性能优化-布局优化

更多相关文章

  1. windows 下adb不能找到Android设备
  2. Android(安卓)创建与解析XML(一)—— 概述
  3. [置顶] Android(安卓)Studio 配置优化
  4. android应用程序快速启动秘诀
  5. Android(安卓)Develop Training——创建你的第一个android应用程
  6. Android应用启动后自动创建桌面快捷方式
  7. 【Android】Android(安卓)Emulator初探
  8. Android(安卓)Service创建USB HOST通信
  9. Android(安卓)关于Activity的四种启动模式的简单介绍

随机推荐

  1. mediaplayer实现音乐播放
  2. Android(安卓)studio 原生自带下拉加载控
  3. Android下查询系统源码看短信的显示
  4. Android中 Webview中js与Activity的交互
  5. Xamarin Mono For Android(安卓)4.12 安
  6. Android(安卓)单元测试: 首先,从是什么开
  7. Genimotion 解决 INSTALL_FAILED_CPU_ABI
  8. Android中测量控件的内部文字内容的宽、
  9. Android(安卓)productFlavors多环境配置
  10. Android的国际化与本地化