android資料庫sd
1. 獲取android手機的自帶存儲路徑和sdcard存儲路徑
android手機獲取自帶存儲路徑和sd卡存儲路徑的方式是:
調用Environment.getExternalStorageDirectory,返回的存儲目錄並不是系統內置的SD卡目錄。
1、手機將eMC存儲掛載到/mnt/external_sd、/mnt/sdcard2等節點,而將外置的SD卡掛載到Environment.getExternalStorgeDirectory這個結點。
2、而另一部分手機直接將eMMC存儲掛載在Environment.getExternalStorageDirectory這個節點,而將真正的外置SD卡掛載到/mnt/external_sd、/mnt/sdcard2等節點。調用Environment.getExternalStorgeDirectory,則返回內置的SD的路徑。
(1)android資料庫sd擴展閱讀:
Android在正式發行之前,最開始擁有兩個內部測試版本,並且以著名的機器人名稱來對其進行命名,它們分別是:阿童木(AndroidBeta),發條機器人(Android1.0)。後來由於涉及到版權問題,谷歌將其命名規則變更為用甜點作為它們系統版本的代號的命名方法。
Android的系統架構和其操作系統一樣,採用了分層的架構。從架構圖看,Android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和Linux內核層。
2. Android的緩存機制是怎樣的
【答案】:客戶端緩存機制是android應用開發中非常重要的一項工作,使用緩存機制不僅僅可以為用戶節省3G流量,同時在用戶體驗方面也是非常好的選擇,比如有些新聞客戶端支持離線模式,也是通過緩存機制實現的.緩存機制分為兩部分,一部分是文字緩存,另指廳一部分是多媒體文件緩存.
文字緩存有兩種實現:
1)可以將與伺服器交互得到的json數據或者xml數據存入sd卡中,並在資料庫添加該數橋裂據的記錄.添加資料庫記錄時,提供兩個關鍵欄位,一個是請求的URL,另一個則是本地保存後的文件地址,每次載入敏逗閉數據之前都會根據URL在資料庫中檢索
2)將JSON數據解析後裝入List對象中,然後遍歷List,將數據統統寫入相應的資料庫表結構中,以後每次向伺服器發起請求之前可以先在資料庫中檢索,如果有直接返回.
多媒體文件緩存:主要指圖片緩存
圖片的緩存可以根據當前日期,時間為名字緩存到SD卡中的指定圖片緩存目錄,同時資料庫中做相應記錄,記錄辦法可以採用兩個關鍵欄位控制,一個欄位是該圖片的URL地址,另一個欄位是該圖片的本機地址.取圖片時根據URL在數據中檢索,如果沒有則連接伺服器下載,下載之後再伺服器中作出相應記錄
緩存文件刪除策略:
1. 每一個模塊在每次客戶端自動或者用戶手動更新的時候刪除相應模塊的緩存文件,並重新下載新的緩存文件.
2. 在設置界面中提供刪除緩存的功能,點擊後刪除本機所有緩存.
3. android中數據只能存儲到sd卡上
題主是否想詢問「android中數據只能存儲胡辯租到sd卡上嗎?」android中數據不是只能存儲到sd卡上。
1、內部存儲:灶檔每個應用程序都有自己的私有內部存儲空間,可以將數據存儲在該空間中,其他應用程序無法訪問。
2、外部存褲兆儲:可以將數據存儲在SD卡或其他外部存儲設備上,該存儲空間可以被多個應用程序訪問。
4. android怎麼在手機SD卡上創建SQLite資料庫
在SD卡上創建資料庫
通過android的SQLiteOpenHelper類的源碼,可以看到SQLiteOpenHelper類的getWritableDatabase
這個介面實際上調用的是Context的openOrCreateDatabase方法,而這個方法是不支持帶路徑的資料庫名
稱的,也就是說,用這個方法創建的資料庫只能放在/data/data/包名稱/ 目錄下;要想在SD卡上創建資料庫
,我們可以調用SQLiteDatabase類的openOrCreateDatabase方法,這個方法是支持帶路徑的資料庫名稱的。
那麼下面的問題就是如何判斷是否存在SD卡,已經如何獲取SD卡的路徑了?
判斷是否存在SD卡:
android.os.Environment.MEDIA_MOUNTED.equals(
android.os.Environment.getExternalStorageState());
獲取SD卡路徑:String dbPath=android.os.Environment.getExternalStorageDirectory()
.getAbsolutePath();
在SD卡上創建資料庫方法如下:
String dbPath=android.os.Environment.getExternalStorageDirectory()
.getAbsolutePath()+"/database";
File dbp=new File(dbPath);
File dbf=new File(dbPath+"/"+"test.db");
if(!dbp.exists()){
dbp.mkdir();
}
//資料庫文件是否創建成功
boolean isFileCreateSuccess=false;
if(!dbf.exists()){
try{
isFileCreateSuccess=dbf.createNewFile();
}
catch(IOException ioex){
}
}
else{
isFileCreateSuccess=true;
}
if(isFileCreateSuccess)
db = SQLiteDatabase.openOrCreateDatabase(dbf, mFactory);
為了簡便起見,我們可以用上述方法重寫SQLiteOpenHelper類的getWritableDatabase方法,
其他邏輯參照SQLiteOpenHelper類即可。最後別忘了,加入SD卡的讀寫許可權:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>。
5. 獲取android手機的自帶存儲路徑和sdcard存儲路徑
android手機獲取自帶存儲來路徑和sd卡存儲路徑的方式是:調用Environment.getExternalStorageDirectory(),返回的存儲源目錄並不是系統內置的SD卡目錄。
1.一部分手機將eMMC存儲掛載到
/mnt/external_sd
、/mnt/sdcard2
等節點知,而將外置的SD卡掛載到
Environment.getExternalStorageDirectory()這個結點。
此時,調用Environment.getExternalStorageDirectory(),則返回外置的SD的路徑。
2.而另一部分手機直接道將eMMC存儲掛載在Environment.getExternalStorageDirectory()這個節點,而將真正的外置SD卡掛載到/mnt/external_sd、/mnt/sdcard2
等節點。
此時,調用Environment.getExternalStorageDirectory(),則返回內置的SD的路徑。