YukiHookPrefsBridge - class

class YukiHookPrefsBridge private constructor(private var context: Context?)

变更记录

v1.0 添加

v1.1.9 修改

YukiHookModulePrefs 更名为 YukiHookPrefsBridge

功能描述

YukiHookAPISharedPreferencesXSharedPreferences 的扩展存储桥实现。

在不同环境智能选择存取使用的对象。

特别注意

模块与宿主之前共享数据存储为实验性功能,仅在 LSPosed 环境测试通过,EdXposed 理论也可以使用但不再推荐。

使用 LSPosed 环境请在 AndroidManifests.xml 中将 xposedminversion 最低设置为 93

详见 New XSharedPreferences在新窗口中打开

若你在按照规定配置后依然无法使用或出现文件权限错误问题,可以参考 isEnableHookSharedPreferences

未使用 LSPosed 环境请将你的模块 API 降至 26 以下,YukiHookAPI 将会尝试使用 makeWorldReadable 但仍有可能不成功。

太极请参阅 文件权限/配置/XSharedPreference在新窗口中打开

对于在模块环境中使用 PreferenceFragmentCompatYukiHookAPI 提供了 ModulePreferenceFragment 来实现同样的功能。

可选配置

若你不想将你的模块的 xposedminversion 最低设置为 93,你可以在 AndroidManifest.xml 中添加 xposedsharedprefs 来实现支持。

详见 New XSharedPreferences在新窗口中打开

示例如下

<meta-data
    android:name="xposedsharedprefs"
    android:value="true"/>

isXSharePrefsReadable - field

变更记录

v1.0.90 新增

v1.1.5 作废

请迁移到 isPreferencesAvailable

isRunInNewXShareMode - field

变更记录

v1.0.78 新增

v1.1.5 作废

请迁移到 isPreferencesAvailable

isPreferencesAvailable - field

val isPreferencesAvailable: Boolean

变更记录

v1.1.5 新增

功能描述

获取当前 YukiHookPrefsBridge 的可用状态。

在 (Xposed) 宿主环境中返回 XSharedPreferences 可用状态 (可读)。

在模块环境中返回当前是否处于 New XSharedPreferences 模式 (可读可写)。

name - method

fun name(name: String): YukiHookPrefsBridge

变更记录

v1.0 添加

功能描述

自定义 Sp 存储名称。

功能示例

Activity 中的使用方法。

示例如下

prefs("custom_name").getString("custom_key")

在 (Xposed) 宿主环境 PackageParam 中的使用方法。

示例如下

prefs("custom_name").getString("custom_key")

direct - method

变更记录

v1.0.5 新增

v1.1.11 作废

键值的直接缓存功能已被移除,因为其存在内存溢出 (OOM) 问题

native - method

fun native(): YukiHookPrefsBridge

变更记录

v1.1.9 新增

功能描述

忽略当前环境直接使用 Context.getSharedPreferences 存取数据。

getString - method

fun getString(key: String, value: String): String

变更记录

v1.0 添加

功能描述

获取 String 键值。

getStringSet - method

fun getStringSet(key: String, value: Set<String>): Set<String>

变更记录

v1.0.77 新增

功能描述

获取 Set<String> 键值。

getBoolean - method

fun getBoolean(key: String, value: Boolean): Boolean

变更记录

v1.0 添加

功能描述

获取 Boolean 键值。

getInt - method

fun getInt(key: String, value: Int): Int

变更记录

v1.0 添加

功能描述

获取 Int 键值。

getLong - method

fun getLong(key: String, value: Long): Long

变更记录

v1.0 添加

功能描述

获取 Long 键值。

getFloat - method

fun getFloat(key: String, value: Float): Float

变更记录

v1.0 添加

功能描述

获取 Float 键值。

contains - method

fun contains(key: String): Boolean

变更记录

v1.1.9 新增

功能描述

判断当前是否包含 key 键值的数据。

智能识别对应环境读取键值数据。

all - method

fun all(): MutableMap<String, Any?>

变更记录

v1.0.77 新增

功能描述

获取全部存储的键值数据。

智能识别对应环境读取键值数据。

特别注意

每次调用都会获取实时的数据,不受缓存控制,请勿在高并发场景中使用。

remove - method

变更记录

v1.0 添加

v1.1.9 作废

请迁移到 edit 方法

clear - method

变更记录

v1.0.77 新增

v1.1.9 作废

请迁移到 edit 方法

putString - method

变更记录

v1.0 添加

v1.1.9 作废

请迁移到 edit 方法

putStringSet - method

变更记录

v1.0.77 新增

v1.1.9 作废

请迁移到 edit 方法

putBoolean - method

变更记录

v1.0 添加

v1.1.9 作废

请迁移到 edit 方法

putInt - method

变更记录

v1.0 添加

v1.1.9 作废

请迁移到 edit 方法

putLong - method

变更记录

v1.0 添加

v1.1.9 作废

请迁移到 edit 方法

putFloat - method

变更记录

v1.0 添加

v1.1.9 作废

请迁移到 edit 方法

get - method

inline fun <reified T> get(prefs: PrefsData<T>, value: T): T

变更记录

v1.0.67 新增

功能描述

智能获取指定类型的键值。

put - method

变更记录

v1.0.67 新增

v1.1.9 作废

请迁移到 edit 方法

edit - method

fun edit(): Editor

变更记录

v1.1.9 新增

功能描述

创建新的 Editor

在模块环境中或启用了 isUsingNativeStorage 后使用。

注意

在 (Xposed) 宿主环境下只读,无法使用。

edit - method

fun edit(initiate: Editor.() -> Unit)

变更记录

v1.1.9 新增

功能描述

创建新的 Editor

自动调用 Editor.apply 方法。

在模块环境中或启用了 isUsingNativeStorage 后使用。

注意

在 (Xposed) 宿主环境下只读,无法使用。

clearCache - method

变更记录

v1.0.5 新增

v1.1.11 作废

键值的直接缓存功能已被移除,因为其存在内存溢出 (OOM) 问题

Editor - class

inner class Editor internal constructor()

变更记录

v1.1.9 新增

功能描述

YukiHookPrefsBridge 的存储代理类。

请使用 edit 方法来获取 Editor

在模块环境中或启用了 isUsingNativeStorage 后使用。

注意

在 (Xposed) 宿主环境下只读,无法使用。

remove - method

fun remove(key: String): Editor

变更记录

v1.1.9 新增

功能描述

移除全部包含 key 的存储数据。

remove - method

inline fun <reified T> remove(prefs: PrefsData<T>): Editor

变更记录

v1.1.9 新增

功能描述

移除 PrefsData.key 的存储数据。

clear - method

fun clear(): Editor

变更记录

v1.1.9 新增

功能描述

移除全部存储数据。

putString - method

fun putString(key: String, value: String): Editor

变更记录

v1.1.9 新增

功能描述

存储 String 键值。

putStringSet - method

fun putStringSet(key: String, value: Set<String>): Editor

变更记录

v1.1.9 新增

功能描述

存储 Set<String> 键值。

putBoolean - method

fun putBoolean(key: String, value: Boolean): Editor

变更记录

v1.1.9 新增

功能描述

存储 Boolean 键值。

putInt - method

fun putInt(key: String, value: Int): Editor

变更记录

v1.1.9 新增

功能描述

存储 Int 键值。

putLong - method

fun putLong(key: String, value: Long): Editor

变更记录

v1.1.9 新增

功能描述

存储 Long 键值。

putFloat - method

fun putFloat(key: String, value: Float): Editor

变更记录

v1.1.9 新增

功能描述

存储 Float 键值。

put - method

inline fun <reified T> put(prefs: PrefsData<T>, value: T): Editor

变更记录

v1.1.9 新增

功能描述

智能存储指定类型的键值。

commit - method

fun commit(): Boolean

变更记录

v1.1.9 新增

功能描述

提交更改 (同步)。

apply - method

fun apply()

变更记录

v1.1.9 新增

功能描述

提交更改 (异步)。