os儲存方式
特點描述
android
sqlite
容量大,記憶體占用小,併發高,訪問複雜
輕型資料庫系統
android
sharedpreferences
輕量資料,結構簡單,訪問便捷
基於xml檔案儲存的key-value鍵值對資料
android
檔案儲存
圖形、動態演算法等檔案儲存,訪問複雜
檔案io流
android
contentprovider、網路儲存
共享資料、訪問簡單
跨應用、雲儲存
二、主流框架
主流框架
android:sqliteormlite(jdbc);sqlite、active android 、 greendao;realm、sugarorm;
效能mvcc資料庫,api呼叫方法簡化,相較傳統db(鏈結 - 查詢 - 命中 - 記憶體拷貝 - 物件序列化)的複雜過程,不是在sqlite基礎上的orm,資料查詢引擎,realm速度快乙個量級(基於記憶體對映的zero-copy技術)。而且內部採用了類似git的物件版本管理機制,多執行緒併發操作,自動化處理儲存衝突。易於移植,支援json,資料變更通知等高階特性。
視覺化1)android:stetho+chrome:build.gradle中新增repositories 和 compile新增依賴包->initialize初始化->chrome瀏覽器輸入chrome://inspect/#device->inspect->resources
安全性安全性,支援加密,格式化查詢,流式api
三、android應用整合realm
/**
*增*/
//(1)子執行緒事務操作
mrealm.executetransaction(new realm.transaction()
});//(2)子執行緒事務操作
final slidecat cat= realm.createobject(slidecat.class);
cat.setindex(1);
cat.setuv("blackcat.png");
cat.sound("angry.ogg");
mrealm.executetransaction(new realm.transaction()
});//(3)子執行緒事務操作
mrealm.begintransaction();//開啟事務
slidecat cat= realm.createobject(slidecat.class);
cat.setindex(1);
cat.setuv("blackcat.png");
cat.sound("angry.ogg");
mrealm.committransaction();//提交事務
/**
*查*/
//(1)遍歷
realmresultscatlist = mrealm.where(slidecat.class).findall();
//(2)非同步任務
//查詢第一只黑貓
realmresultscatlist = mrealm.where(slidecat.class)
.equalto("1","blackcat")
.findallasync();
//(3)排序
realmresultscatlist = mrealm.where(slidecat.class) .findall();
catlist = result.sort("index"); //根據索引,正序排列
catlist = result.sort("index", sort.descending);//逆序排列
/**
*刪*/
//(1)deletefromrealm()
//先查找到資料
final realmresultscatlist = mrealm.where(slidecat.class).findall();
mrealm.executetransaction(new realm.transaction()
});//(2)deletefromrealm(int index)
//先查找到資料
final realmresultscatlist = mrealm.where(slidecat.class).findall();
mrealm.executetransaction(new realm.transaction()
});//(3)更多
catlist.deletefirstfromrealm(); //刪除user表的第一條資料
catlist.deletelastfromrealm();//刪除user表的最後一條資料
realmresultscats = realm.where(slidecat.class).findall();
cats.deleteallfromrealm();//刪除user表的全部資料
/**
*改*/
//(1)
mrealm.executetransaction(new realm.transaction()
});//(2)先查找到資料
final realmresultscatlist = mrealm.where(slidecat.class).findall();
mrealm.executetransaction(new realm.transaction() );
Kotlin引入Realm資料庫
kotlin引入realm資料庫 1.在module的build.gradle中配置外掛程式 realm 資料庫新增kapt引入需要2.在module的build.gradle中引入依賴 compile io.realm realm android 0.87.5 kapt io.realm real...
資料儲存之Realm資料庫
realm官網 realm速度 比 sqlite 和 core data 更好更快的資料庫支援 realm範圍 支援 ios swift 和 objective c 語言都支援 和 android realm我喜歡的原因 相對於fmdb等資料庫,realm讀取資料非常快,可構建大型應用,語言通俗易懂...
Realm資料庫拾遺
支援資料庫加密 產生隨機金鑰 nsmutabledata key nsmutabledata datawithlength 64 secrandomcopybytes ksecrandomdefault,key.length,uint8 t key.mutablebytes 開啟加密檔案 rlmre...