YukiHookPrefsBridge - class
class YukiHookPrefsBridge private constructor(private var context: Context?)
变更记录
v1.0 添加
v1.1.9 修改
更名为 YukiHookModulePrefsYukiHookPrefsBridge
功能描述
YukiHookAPI对SharedPreferences、XSharedPreferences的扩展存储桥实现。
在不同环境智能选择存取使用的对象。
特别注意
模块与宿主之前共享数据存储为实验性功能,仅在 LSPosed 环境测试通过,EdXposed 理论也可以使用但不再推荐。
使用 LSPosed 环境请在 AndroidManifests.xml 中将 xposedminversion 最低设置为 93。
若你在按照规定配置后依然无法使用或出现文件权限错误问题,可以参考 isEnableHookSharedPreferences。
未使用 LSPosed 环境请将你的模块 API 降至 26 以下,YukiHookAPI 将会尝试使用 makeWorldReadable 但仍有可能不成功。
太极请参阅 文件权限/配置/XSharedPreference。
对于在模块环境中使用 PreferenceFragmentCompat,YukiHookAPI 提供了 ModulePreferenceFragment 来实现同样的功能。
可选配置
若你不想将你的模块的 xposedminversion 最低设置为 93,你可以在 AndroidManifest.xml 中添加 xposedsharedprefs 来实现支持。
示例如下
<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 新增
功能描述
提交更改 (异步)。
