美文网首页
Android数据库代码优化(1) - 从Google的数据库g

Android数据库代码优化(1) - 从Google的数据库g

作者: Jtag特工 | 来源:发表于2017-04-25 14:22 被阅读30次

    假如我们没有任何在Android上使用SQLite的经验,现在要开始在工作中用SQLite存储一些数据。OK, 我们去看google的官方培训文档吧,http://developer.android.com/training/basics/data-storage/databases.html
    差不多有个5分钟到15分钟吧,这篇官方培训文档就看完了,然后就可以在应用中使用了,它提示的几个Note我们也都注意到了,没犯任何错误。这时候写出来的代码是什么下场呢?
    首先是内存泄漏吧,教程没有教用try...finally关Cursor的好习惯,甚至都没提关Cursor这事儿。
    其次crash肯定不少,教程里对于execSQL,getWritableDatabase这些容易出exception的语句,没给要加try...catch的提示。
    第三你会习惯用getColumnIndexOrThrow吧?会想到其实直接传个常数进去就可以了么?

    long itemId = cursor.getLong(cursor.getColumnIndexOrThrow(FeedEntry._ID));
    

    第四,你能想到SQLite的特色功能自动解决冲突有个insertWithOnConflict方法可以调么?自己写select多查一次性能受影响吧?insert出exception会影响性能吧?
    第五,update和delete用ID的时候还用LIKE语句?SQLite的索引是不支持LIKE的,生怕能用上索引加快点速度么。。。

    String selection =FeedEntry.COLUMN_NAME_ENTRY_ID +" LIKE ?";
    

    看了很多讲优化的书和网上的文章,似乎针对于Android上的SQLite部分关注得都比较少. 下面我们就来共同探讨一下这些问题.

    相关文章

      网友评论

          本文标题:Android数据库代码优化(1) - 从Google的数据库g

          本文链接:https://www.haomeiwen.com/subject/smsvzttx.html