Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android開發實例:如何優化SQLite

Android開發實例:如何優化SQLite

編輯:Android開發實例

       SQLite是一個開源的嵌入式關系數據庫,由D. Richard Hipp於2000年發布,它能減少應用程序管理數據的開銷,可移植性好,很容易使用,高效而且可靠。本文是關於SQLite的優化方法,是比較重要的內容。

       SQLite的數據庫本質是文件讀寫操作,頻繁操作打開和關閉是很耗時和浪費資源的,有必要進行相關優化。

       優化方法事務機制:

       這裡要注意一點:事務的開啟是要鎖定DB的,其他對DB的寫入操作都是無法成功的。

Java代碼
  1. db.beginTransaction(); //手動設置開始事務   
  2. try {   
  3. //這裡寫你數據操作   
  4. db.setTransactionSuccessful();   
  5.     //設置事務處理成功,不設置會自動回滾不提交   
  6. } catch (Exception e) {   
  7. } finaly {   
  8. db.endTransaction(); //提交   
  9. }  

       項目中不會把項目上萬條數據存SQL裡的,盡管android有SQLite。

       那樣處理起來非常慢,而且程序經常出現ANR。

       打個比方:有200個城市,每個城市500條城市信息,你怎麼創建表?

       A:我創建一張表存10000條數據。

       B:200張表,每張存500條數據。

       C:我創建兩張表:

       一張存city,其實這張表只有1條數據。

       Id(編號),
       Version(這200個城市更新版本用)
       CityDate(200個城市xml格式字符串數據)。

       另一張表存城市信息表:200條數據,每個城市一條數據。

       id(CityDate解析出城市對象對應的id)
       Version(這500條城市信息更新版本用)
       CityMessage(500條城市信息xml格式字符串數據)。

       首先你給用戶展示200城市(你只取了一條數據 200個城市xml格式字符串數據進行解析)

       用戶點擊一個城市你顯示500條記錄(通過城市解析ID,取出城市信息表中對應500數據xml格式字符串數據進行解析)

       這樣做的好處:

      (1)統一數據接口,無論你從網絡上直接去數據,還是讀本地緩存統一數據接口,xml

      (2)數據進行排序,內存操作要快一些;

      (3)其實這和自己寫文件沒什麼區別,為什麼還要用數據庫那,這麼做有利於程序版本更新升級數據維護!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved