日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

安卓Hawk数据库

發(fā)布時(shí)間:2024/4/13 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 安卓Hawk数据库 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

安卓Hawk數(shù)據(jù)庫

Hawk數(shù)據(jù)存儲(chǔ)工具,使用超簡單,可以替代SharePreference。

Hawk 是一個(gè)非常便捷的數(shù)據(jù)庫 ?. 操作數(shù)據(jù)庫只需一行代碼 , 能存任何數(shù)據(jù)類型 .

github 地址:?https://github.com/orhanobut/hawk

Hawk 是一個(gè)簡單的??key-value ?數(shù)據(jù)庫

它使用:?AES 加密,能選擇使用SharedPreferences ?或者 ?SQLite,?Gson解析? (文章下方的Simple中有替換fastJson的版本)

提供:安全數(shù)據(jù)持久化,能存儲(chǔ)任何類型

先看看例子 ?符合項(xiàng)目的需要之后往下看。存儲(chǔ)例子:

Hawk.put("key", "something"); // Save string Hawk.put("key", true); // save boolean Hawk.put("key", new Foo()); // save an object Hawk.put("key", List<String>); // save list Hawk.put("key", List<Foo>); // save list Hawk.put("key", Map<Foo,Foo>); // save map Hawk.put("key", Set<Foo>); // save set Hawk.put("key", 1234); // save numbers

?獲取的例子:

String value = Hawk.get(key); int value = Hawk.get(key); Foo value = Hawk.get(key); boolean value = Hawk.get(key); List<String> value = Hawk.get(key); List<Foo> value = Hawk.get(key); Map<String,Foo> value = Hawk.get(key); Set<Foo> value = Hawk.get(key);

(一) 添加進(jìn)項(xiàng)目

android studio 在gradle中進(jìn)行配置

repositories { // ... maven { url "https://jitpack.io" } } dependencies { compile 'com.github.orhanobut:hawk:1.21' }

(二) 初始化Hawk

初始化只需要一次就行了 ?放在你最開始執(zhí)行的activity里面 或者 application

Hawk.init(this) .setEncryptionMethod(HawkBuilder.EncryptionMethod.MEDIUM) .setStorage(HawkBuilder.newSqliteStorage(this)) .setLogLevel(LogLevel.FULL) .build();

能使用高安全級(jí)別 ?初始化可能需要 36-400ms 并且需要你提供密碼 ?

Hawk.init(this) .setEncryptionMethod(HawkBuilder.EncryptionMethod.HIGHEST) .setStorage(HawkBuilder.newSqliteStorage(this)) .setLogLevel(LogLevel.FULL) .build();

初始化可以選擇 SQLite 或者 SharePreference

.setStorage(HawkBuilder.newSqliteStorage(this))

or

.setStorage(HawkBuilder.newSharedPrefStorage(this))

(三) 存數(shù)據(jù)

Hawk.put(key, T); // Returns the result as boolean

您還可以通過使用鏈功能存儲(chǔ)多個(gè)項(xiàng)目。記得在最后使用commit()。

// Returns the result as boolean Hawk.chain() .put(KEY_LIST, List<T>) .put(KEY_ANOTHER,"test") .commit();

(四) 取數(shù)據(jù)

T result = Hawk.get(key);

or ?當(dāng)為null的時(shí)候設(shè)置 默認(rèn)值

T result = Hawk.get(key, T);

(五) 移除數(shù)據(jù)

Hawk.remove(key); // Returns the result as boolean

or同時(shí)移除多個(gè)

Hawk.remove(KEY_LIST, KEY_NAME); // Returns the result as boolean

(六) 判斷是否包含某個(gè)key?

boolean contains = Hawk.contains(key);

(七) 設(shè)置密碼

Hawk.init(this) .setEncryptionMethod(HawkBuilder.EncryptionMethod.HIGHEST) .setPassword("password") .setStorage(HawkBuilder.newSqliteStorage(this)) .setLogLevel(LogLevel.FULL) .setCallback(new HawkBuilder.Callback() { @Override public void onSuccess() { } @Override public void onFail(Exception e) { } }) .build();

(八) 注意事項(xiàng)

Hawk log 輸出:

Hawk.init(context,PASSWORD, LogLevel.FULL); // as default it is NONE

Hawk 支持 ?buildRx ?最近非?;鸬腞xJava ?

如果使用也請導(dǎo)入 ?如果不需要Rx的功能 移除掉相應(yīng)源碼不會(huì)有影響

混淆:

#Gson -keep class com.google.gson.** { *; } -keepattributes Signature

注意:Hawk ?使用Json 進(jìn)行數(shù)據(jù)的存儲(chǔ)

?

原文地址https://blog.csdn.net/fengyeNom1/article/details/81204986

總結(jié)

以上是生活随笔為你收集整理的安卓Hawk数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。