FireFlyKV使用指南
基本使用
配置 FireFlyKV 根目錄
在(zài) App 啓動時(shí)初始化 FireFlyKV,默認設定 FireFlyKV 的(de)根目錄(files/ffkv/ff),例如在(zài) MainActivity 裏:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FireFlyKV fireFlyKV = FireFlyKV.init(this); }
CRUD 操作
使用FireFlyKV初始化後返回的(de)對象,操作相關的(de)API:
import com.cmbc.storage.ffkv.FireFlyKV; ... FireFlyKV fireFlyKV = FireFlyKV.init(this); fireFlyKV.putInt("int", 300); int iRet = fireFlyKV.getInt("int"); fireFlyKV.putString("key", "value"); String str = fireFlyKV.getString("key");
可以(yǐ)看到(dào),FireFlyKV 在(zài)使用上(shàng)還是(shì)比較簡單的(de)。
删除 & 查詢:
fireFlyKV.removeValueForKey("boolean"); boolean containsKey = fireFlyKV.containsKey("key");
如果業務需要(yào / yāo)多進程訪問,隻需在(zài)初始化時(shí)指定多進程模式即可。
public static final int SINGLE_PROCESS_MODE = 0; public static final int MULTI_PROCESS_MODE = 1; FireFlyKV fireFlyKV = FireFlyKV.init(this, FireFlyKV.MULTI_PROCESS_MODE); fireFlyKV.putString("key", "value"); String str = fireFlyKV.getString("key");
支持的(de)數據類型
支持以(yǐ)下 Java 語言基礎類型:
byte、short、int、long、float、double、char、boolean
- 支持以(yǐ)下 Java 類:
String
使用進階
FireFlyKV 有一(yī / yì /yí)些高級設置,可以(yǐ)使得更符合你的(de)需求。
自定義根目錄
FireFlyKV 默認把文件存放在(zài)
$(FilesDir)/ffkv/ff
目錄。你可以(yǐ)在(zài) App 啓動時(shí)自定義根目錄:String dir = getFilesDir().getAbsolutePath() + "/ffkv2"; FireFlyKV.init(dir);
加密
FireFlyKV 默認明文存儲所有 key-value,依賴 Android 系統的(de)沙盒機制保證文件加密。如果你擔心信息洩露,你可以(yǐ)選擇加密 FireFlyKV,隻需在(zài)初始化FireFlyKV時(shí)指定加密方式即可。
public static final int NONE_ENCRYPT = 0; public static final int CC20_ENCRYPT = 1; FireFlyKV fireFlyKV = FireFlyKV.init(this, FireFlyKV.CC20_ENCRYPT, "chacha20"); fireFlyKV.putInt("int", 300); int iRet = fireFlyKV.getInt("int");
目前暫提供chacha20加密,後續會進行适當擴展
文件整理
在(zài)數據的(de)增删改查過程中,我們會記錄無效數據的(de)比例,一(yī / yì /yí)旦這(zhè)個(gè)比例超過總數據量的(de)50%,并且數據文件的(de)大(dà)小超過500kb,才會觸發重整理的(de)工作。當達不(bù)到(dào)這(zhè)個(gè)條件時(shí),失效的(de)數據不(bù)會對性能造成太大(dà)的(de)影響,當達到(dào)這(zhè)個(gè)條件時(shí),我們會觸發重整理的(de)工作,删除失效數據,從而(ér)達到(dào)節省磁盤空間,增加文件打開和(hé / huò)讀寫的(de)效率。