玩一玩MMKV存儲利器(Android篇)

使用原因:SharedPreferences多線程取值失效冕香,有位熊兄弟推薦使用香飄飄MMKV存儲利器,不香賠錢镣奋。然而我抱著賠錢的心態(tài)玩了一下币呵,真香!侨颈!

MMKV優(yōu)勢

  • 使用零拷貝技術(shù)之一mmap內(nèi)存映射的key-value組件余赢,用戶空間可以共享內(nèi)核空間的數(shù)據(jù),減少內(nèi)核空間到用戶空間的拷貝次數(shù)
  • 采用性能最佳的protobuf協(xié)議
  • 穩(wěn)定哈垢,最先使用在iOS中妻柒,后續(xù)Android也可以使用這真香利器
  • 性能比SharedPreferences香多了


    真香性能

那就開始玩耍吧~~~

添加依賴

build.gradle加上依賴,具體版本可訪問github項目網(wǎng)址:https://github.com/Tencent/MMKV

dependencies {
    implementation 'com.tencent:mmkv-static:1.2.8'
}

初始化MMKV

可在onCreate初始化MMKV

@Override
public void onCreate() {
    super.onCreate();
    MMKV.initialize(this);
}

真香使用

import com.tencent.mmkv.MMKV;

// 創(chuàng)建默認(rèn)實例
MMKV kv = MMKV.defaultMMKV();

// 創(chuàng)建自己的實例
// param1:庫的key
// param2:庫的模式(多進(jìn)程或單進(jìn)程)
MMKV kv2 = MMKV.mmkvWithID("test", MMKV.MULTI_PROCESS_MODE);

// set值 布爾值
kv.encode("bool", true);
// get值 布爾值
boolean bValue = kv.decodeBool("bool");

// set值 整形
kv.encode("int", Integer.MIN_VALUE);
// get值 整形
int iValue = kv.decodeInt("int");

// set值 字符串
kv.encode("string", "Hello from mmkv");
// get值 字符串
String str = kv.decodeString("string");

// set值 float
kv.encode("float",30f);
// get值 float
float floatValue = kv.decodeFloat("float");

// set值bytes
kv.encode("bytes", bytes);
// get值bytes
byte[] b = kv.decodeBytes("bytes");

// set值double
kv.encode("double", Double.MIN_VALUE);
// get值double
Double d = kv.decodeDouble("double");

// set值long
kv.encode("long", Long.MAX_VALUE);
// get值long
Long l = kv.decodeLong("long");

// set值 set集合
kv.encode("set", new HashSet<String>(2) {{
    add("1");
    add("2");
}});
// get值 set集合
Set<String> set =  kv.decodeStringSet("1");

// 獲取所有keys
String[] strArray = kv.allKeys();

// 獲取kv總數(shù)
long lo = kv.totalSize();

// 是否存在key
boolean hasBool = kv.containsKey("bool");

// 刪除單個
kv.removeValueForKey("test");

// 刪除多個
kv.removeValuesForKeys(new String[]{"test1", "test2"});

// 刪除緩存值蛤奢,后續(xù)調(diào)用將從磁盤中加載所有鍵值
kv.clearMemoryCache();

// 刪除所有數(shù)據(jù)
// 底層調(diào)用clearAl()
kv.clearAll();

// 刪除所有數(shù)據(jù)
// 刪除磁盤中加載所有鍵值
kv.clearAll();

iOS 篇請?zhí)D(zhuǎn)此地址:http://www.reibang.com/p/57734e33da8d

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市啤贩,隨后出現(xiàn)的幾起案子待秃,更是在濱河造成了極大的恐慌痹屹,老刑警劉巖章郁,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異志衍,居然都是意外死亡暖庄,警方通過查閱死者的電腦和手機楼肪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來春叫,“玉大人肩钠,你說我怎么就攤上這事≡葜常” “怎么了价匠?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長呛每。 經(jīng)常有香客問我,道長晨横,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任颓遏,我火速辦了婚禮,結(jié)果婚禮上叁幢,老公的妹妹穿的比我還像新娘坪稽。我一直安慰自己曼玩,他們只是感情好窒百,可當(dāng)我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布黍判。 她就那樣靜靜地躺著篙梢,像睡著了一般顷帖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上贬墩,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天,我揣著相機與錄音陶舞,去河邊找鬼。 笑死肿孵,一個胖子當(dāng)著我的面吹牛唠粥,可吹牛的內(nèi)容都是我干的停做。 我是一名探鬼主播晤愧,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼蛉腌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了眉抬?” 一聲冷哼從身側(cè)響起贯吓,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤蜀变,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后库北,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爬舰,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡寒瓦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了杂腰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡喂很,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出少辣,到底是詐尸還是另有隱情凌摄,我是刑警寧澤漓帅,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布痴怨,位于F島的核電站,受9級特大地震影響器予,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜劣摇,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望末融。 院中可真熱鬧,春花似錦勾习、人聲如沸浓瞪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽艺栈。三九已至英岭,卻和暖如春湿右,著一層夾襖步出監(jiān)牢的瞬間诅妹,已是汗流浹背毅人。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工吭狡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留丈莺,地道東北人划煮。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓缔俄,卻偏偏與公主長得像弛秋,于是被迫代替她去往敵國和親俐载。 傳聞我的和親對象是個殘疾皇子铐懊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容