新聞中心
對于安卓應(yīng)用來說,數(shù)據(jù)存儲一直是一個非常重要的問題。在應(yīng)用程序中需要進行數(shù)據(jù)的存儲和管理,而數(shù)據(jù)庫的應(yīng)用范圍非常廣泛,無論是小型的本地數(shù)據(jù)庫還是較大規(guī)模的云數(shù)據(jù)庫,都需要進行一些合理的配置。在安卓系統(tǒng)中,數(shù)據(jù)庫的存儲路徑也是需要進行配置的。本文將就安卓數(shù)據(jù)庫存儲路徑進行詳細的講解。

創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站制作、成都網(wǎng)站建設(shè)與策劃設(shè)計,向陽網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:向陽等地區(qū)。向陽做網(wǎng)站價格咨詢:13518219792
一、安卓數(shù)據(jù)庫存儲路徑的概述
對于開發(fā)人員而言,需要了解安卓系統(tǒng)中數(shù)據(jù)庫的存儲路徑,以此來進行數(shù)據(jù)庫的創(chuàng)建、訪問以及備份等相關(guān)操作。而安卓系統(tǒng)中的數(shù)據(jù)庫存儲路徑默認是在/data/data//databases/下,其中“包名”是應(yīng)用程序的包名。 這個路徑是一個應(yīng)用程序私有的文件存儲路徑,只有應(yīng)用程序本身才能訪問這些文件。
對于一些需要對數(shù)據(jù)庫進行備份操作的應(yīng)用程序,要注意備份文件存放路徑的選擇,以免數(shù)據(jù)被誤刪除。在備份文件存放路徑選擇時,可以考慮將備份文件存放在應(yīng)用程序外部的存儲介質(zhì)中,例如SD卡等。
二、安卓數(shù)據(jù)庫存儲路徑的具體實現(xiàn)
1.創(chuàng)建數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫時需要指定數(shù)據(jù)庫文件存放的路徑,如果不指定,則默認生成的數(shù)據(jù)庫存放路徑為/data/data//databases/。創(chuàng)建數(shù)據(jù)庫的方式有兩種,一種是使用SQLiteOpenHelper輔助類中的構(gòu)造函數(shù),另一種是直接通過SQLiteDatabase的openDatabase方法打開已經(jīng)存在的數(shù)據(jù)庫。
下面以SQLiteOpenHelper為例,代碼如下:
//聲明帶有參數(shù)的構(gòu)造函數(shù)
public DBHelper(Context context, int version){
super(context, “myDatabase.db”, null, version);
}
//創(chuàng)建數(shù)據(jù)庫方法
public void onCreate(SQLiteDatabase db) {
//創(chuàng)建數(shù)據(jù)表
db.execSQL(“create table user(id integer primary key autoincrement, name varchar(20))”);
}
接下來就可以在應(yīng)用程序中使用這個數(shù)據(jù)庫了。當(dāng)然,可以在實例化SQLiteOpenHelper時指定數(shù)據(jù)存放路徑。
2.備份數(shù)據(jù)庫
在應(yīng)用程序備份數(shù)據(jù)庫時,需要將數(shù)據(jù)庫文件復(fù)制到指定存儲介質(zhì)中。下面是一個例子:
public boolean backupDatabase(String destPath) {
FileInputStream fis = null;
FileOutputStream fos = null;
File source = new File(“/data/data//databases/myDatabase.db”);
File dest = new File(destPath);
try {
if (!dest.exists()) {
dest.createNewFile();
}
fis = new FileInputStream(source);
fos = new FileOutputStream(dest);
int len = 0;
byte[] buffer = new byte[1024];
while ((len = fis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
fis.close();
fos.close();
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
在上述代碼中,將數(shù)據(jù)庫文件復(fù)制到外部存儲介質(zhì)中,所以需要WRITE_EXTERNAL_STORAGE權(quán)限。這種方式備份的數(shù)據(jù)庫可以被其他應(yīng)用程序讀取和操作。在備份數(shù)據(jù)庫時,要注意文件夾是否存在,文件名是否正確等問題。
3.還原數(shù)據(jù)庫
還原數(shù)據(jù)庫與備份數(shù)據(jù)庫類似,只是將存儲介質(zhì)中的數(shù)據(jù)庫文件復(fù)制回應(yīng)用程序的數(shù)據(jù)庫存儲路徑中。下面是一個例子:
public boolean restoreDatabase(String srcPath) {
FileInputStream fis = null;
FileOutputStream fos = null;
File dest = new File(“/data/data//databases/myDatabase.db”);
File source = new File(srcPath);
try {
if (!dest.exists()) {
dest.createNewFile();
}
fis = new FileInputStream(source);
fos = new FileOutputStream(dest);
int len = 0;
byte[] buffer = new byte[1024];
while ((len = fis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
fis.close();
fos.close();
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
需要注意的是,在還原數(shù)據(jù)庫時,要保證存儲介質(zhì)中存在備份文件,文件名和路徑是否正確,以及是否有相應(yīng)的權(quán)限。
三、
相關(guān)問題拓展閱讀:
- 安卓手機開發(fā),創(chuàng)建SQlite數(shù)據(jù)庫后,默認路徑是存
安卓手機開發(fā),創(chuàng)建SQlite數(shù)據(jù)庫后,默認路徑是存
要找的sqlite數(shù)據(jù)叢盯做庫 文件,默認情況下存儲在這個位則租置 C:Documents and SettingsAdministratorandroidavd 虛擬機名字avd/userdataimg這個鏡像文件中。 如果想不打開虛擬機就找到你的數(shù)據(jù)庫文件,已滲衡經(jīng)試過ultraiso無法識別這種鏡像格式。
關(guān)于安卓生成的數(shù)據(jù)庫在哪里的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都服務(wù)器租用選創(chuàng)新互聯(lián),先試用再開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務(wù)器和獨立服務(wù)器。物理服務(wù)器托管租用:四川成都、綿陽、重慶、貴陽機房服務(wù)器托管租用。
文章標(biāo)題:安卓數(shù)據(jù)庫存儲路徑詳解 (安卓生成的數(shù)據(jù)庫在哪里)
鏈接地址:http://www.5511xx.com/article/djicedc.html


咨詢
建站咨詢
