當我們軟體中要使用大量資料,我們會選擇将這些資料存儲到一個資料庫中,然後通過資料庫的查詢修改操作來管理這些資料。大多數情況下我們都隻在程式中建立使用資料庫,但也有我們在程式中隻是使用的資料庫,并不在程式中建立它們,因為這種資料庫往往資料量比較大,我們在建立時如果不采用多線程和背景服務的話,很容易導緻前台界面的阻塞停滞,這樣往往會影響使用者體驗,造成不好的使用效果。這時我們可不可以直接建好資料庫并錄入資料,然後通過程式将資料庫正确導入進我們的軟體檔案夾裡面。這樣減少了讀取資料和建立資料庫的時間,可以在很大程度上提高軟體響應的速度。
還是結合之前做的一個軟體的天氣預報功能開發的執行個體來講解如何導入外部資料庫。首先我們通過ddms看一下資料庫的存放路徑,一般情況下資料庫的存放路徑為:/data/packagname/databases/(
packagname指的是我們所建立的工程的包名,例如這裡我的包名就是com.liuproject.reminder。有的資料庫就直接在packagname下面,有的則是在databases目錄下,大家可以打開ddms看一下。)如圖databases檔案夾下面有兩個資料庫:
其中city(上圖為導入成功後的截圖)就是我們即将要從外部導入的資料庫。我們将建好的city資料庫檔案拷貝到我們所建工程的assets檔案夾中,如下圖所示:
要注意我們所提供的外部資料要和我們設計的将在軟體中使用的資料庫保持一緻,及時每一條記錄的屬性值名稱和資料類型一緻。資料準備完成後我們就可以開始導入外部資料庫了。具體實作源碼如下:
在之後的程式中我們就可以通過new
citydb(this, name, null, version);來建立一個資料庫操作輔助對象,其中的name要與我們之間導入的外部資料庫名稱一緻,在我的例子裡面name=“city”,version為資料庫的版本号,盡量保持與前面建立時的一緻性。在程式合适的位置使用importdb類的copydatabase()方法将資料庫導入。如果資料庫比較大可以在背景開線程進行操作。