diff --git a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.kt b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.kt index f4cd3fc2..755f624c 100644 --- a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.kt +++ b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.kt @@ -29,6 +29,7 @@ package com.highcapable.yukihookapi.hook.core +import android.util.ArrayMap import com.highcapable.yukihookapi.YukiHookAPI import com.highcapable.yukihookapi.annotation.CauseProblemsApi import com.highcapable.yukihookapi.hook.bean.HookClass @@ -96,7 +97,7 @@ class YukiMemberHookCreator @PublishedApi internal constructor( /** 设置要 Hook 的 [Method]、[Constructor] */ @PublishedApi - internal var preHookMembers = HashMap() + internal var preHookMembers = ArrayMap() /** * 更新当前 [YukiMemberHookCreator] 禁止执行 Hook 操作的条件 diff --git a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/YukiResourcesHookCreator.kt b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/YukiResourcesHookCreator.kt index bd9a3891..1244fee9 100644 --- a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/YukiResourcesHookCreator.kt +++ b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/YukiResourcesHookCreator.kt @@ -30,6 +30,7 @@ package com.highcapable.yukihookapi.hook.core import android.content.res.Resources +import android.util.ArrayMap import com.highcapable.yukihookapi.YukiHookAPI import com.highcapable.yukihookapi.hook.bean.HookResources import com.highcapable.yukihookapi.hook.core.api.compat.HookApiCategoryHelper @@ -53,7 +54,7 @@ class YukiResourcesHookCreator @PublishedApi internal constructor( /** 设置要 Hook 的 Resources */ @PublishedApi - internal var preHookResources = HashMap() + internal var preHookResources = ArrayMap() /** * 注入要 Hook 的 Resources diff --git a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/finder/base/rules/ModifierRules.kt b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/finder/base/rules/ModifierRules.kt index bb5abb84..8a09c16e 100644 --- a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/finder/base/rules/ModifierRules.kt +++ b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/finder/base/rules/ModifierRules.kt @@ -30,6 +30,7 @@ package com.highcapable.yukihookapi.hook.core.finder.base.rules +import android.util.ArrayMap import java.lang.reflect.Field import java.lang.reflect.Member import java.lang.reflect.Method @@ -47,7 +48,7 @@ class ModifierRules private constructor(private val instance: Any) { internal companion object { /** 当前实例数组 */ - private val instances = HashMap() + private val instances = ArrayMap() /** * 获取模板字符串数组 diff --git a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/finder/store/ReflectsCacheStore.kt b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/finder/store/ReflectsCacheStore.kt index 315cc052..c8a11b60 100644 --- a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/finder/store/ReflectsCacheStore.kt +++ b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/core/finder/store/ReflectsCacheStore.kt @@ -27,6 +27,7 @@ */ package com.highcapable.yukihookapi.hook.core.finder.store +import android.util.ArrayMap import com.highcapable.yukihookapi.YukiHookAPI import java.lang.reflect.Constructor import java.lang.reflect.Field @@ -45,22 +46,22 @@ import java.lang.reflect.Method internal object ReflectsCacheStore { /** 缓存的 [Class] 列表 */ - private val dexClassListData = HashMap>() + private val dexClassListData = ArrayMap>() /** 缓存的 [Class] 对象 */ - private val classData = HashMap?>() + private val classData = ArrayMap?>() /** 缓存的 [Class] 数组 */ - private val classesData = HashMap>>() + private val classesData = ArrayMap>>() /** 缓存的 [Method] 数组 */ - private val methodsData = HashMap>() + private val methodsData = ArrayMap>() /** 缓存的 [Constructor] 数组 */ - private val constructorsData = HashMap>>() + private val constructorsData = ArrayMap>>() /** 缓存的 [Field] 数组 */ - private val fieldsData = HashMap>() + private val fieldsData = ArrayMap>() /** * 查找缓存中的 [Class] 列表 diff --git a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/param/HookParam.kt b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/param/HookParam.kt index acc3e37b..32888e9d 100644 --- a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/param/HookParam.kt +++ b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/param/HookParam.kt @@ -30,6 +30,7 @@ package com.highcapable.yukihookapi.hook.param import android.os.Bundle +import android.util.ArrayMap import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreator import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreator.MemberHookCreator import com.highcapable.yukihookapi.hook.core.api.helper.YukiHookHelper @@ -55,7 +56,7 @@ class HookParam internal constructor( internal companion object { /** 每个回调方法体的数据存储实例数据 */ - private val dataExtras = HashMap() + private val dataExtras = ArrayMap() /** [HookParam] 是否已经执行首次回调事件 */ internal var isCallbackCalled = false diff --git a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/xposed/bridge/YukiXposedModule.kt b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/xposed/bridge/YukiXposedModule.kt index aa813e0f..7fa9cc8a 100644 --- a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/xposed/bridge/YukiXposedModule.kt +++ b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/xposed/bridge/YukiXposedModule.kt @@ -30,6 +30,7 @@ package com.highcapable.yukihookapi.hook.xposed.bridge import android.content.pm.ApplicationInfo import android.content.res.Resources +import android.util.ArrayMap import com.highcapable.yukihookapi.YukiHookAPI import com.highcapable.yukihookapi.hook.core.api.compat.HookApiCategoryHelper import com.highcapable.yukihookapi.hook.factory.hasClass @@ -58,13 +59,13 @@ internal object YukiXposedModule : IYukiXposedModuleLifecycle { private var isInitializingZygote = false /** 当前 [PackageParam] 实例数组 */ - private val packageParams = HashMap() + private val packageParams = ArrayMap() /** 已在 [PackageParam] 中被装载的 APP 包名 */ private val loadedPackageNames = HashSet() /** 当前 [PackageParamWrapper] 实例数组 */ - private val packageParamWrappers = HashMap() + private val packageParamWrappers = ArrayMap() /** 当前 [PackageParam] 方法体回调 */ internal var packageParamCallback: (PackageParam.() -> Unit)? = null diff --git a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/xposed/parasitic/AppParasitics.kt b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/xposed/parasitic/AppParasitics.kt index 32d51324..c58ef5d2 100644 --- a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/xposed/parasitic/AppParasitics.kt +++ b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/xposed/parasitic/AppParasitics.kt @@ -38,6 +38,7 @@ import android.content.res.Configuration import android.content.res.Resources import android.os.Build import android.os.Handler +import android.util.ArrayMap import androidx.annotation.RequiresApi import com.highcapable.yukihookapi.YukiHookAPI import com.highcapable.yukihookapi.hook.core.api.compat.HookApiProperty @@ -79,7 +80,7 @@ internal object AppParasitics { private var isClassLoaderHooked = false /** [ClassLoader] 监听回调数组 */ - private var classLoaderCallbacks = HashMap) -> Unit>() + private var classLoaderCallbacks = ArrayMap) -> Unit>() /** * 当前 Hook APP (宿主) 的全局生命周期 [Application] @@ -435,9 +436,9 @@ internal object AppParasitics { internal var onConfigurationChangedCallback: ((Application, Configuration) -> Unit)? = null /** 系统广播监听回调 */ - internal val onReceiverActionsCallbacks = HashMap, (Context, Intent) -> Unit>>() + internal val onReceiverActionsCallbacks = ArrayMap, (Context, Intent) -> Unit>>() /** 系统广播监听回调 */ - internal val onReceiverFiltersCallbacks = HashMap Unit>>() + internal val onReceiverFiltersCallbacks = ArrayMap Unit>>() } } \ No newline at end of file diff --git a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookPrefsBridge.kt b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookPrefsBridge.kt index 89f6c825..13483702 100644 --- a/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookPrefsBridge.kt +++ b/yukihookapi/src/main/java/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookPrefsBridge.kt @@ -31,6 +31,7 @@ package com.highcapable.yukihookapi.hook.xposed.prefs import android.content.Context import android.content.SharedPreferences +import android.util.ArrayMap import androidx.preference.PreferenceFragmentCompat import com.highcapable.yukihookapi.YukiHookAPI import com.highcapable.yukihookapi.hook.log.yLoggerE @@ -65,10 +66,10 @@ class YukiHookPrefsBridge private constructor(private var context: Context? = nu private val isXposedEnvironment = YukiXposedModule.isXposedEnvironment /** 当前缓存的 [XSharedPreferencesDelegate] 实例数组 */ - private val xPrefs = HashMap() + private val xPrefs = ArrayMap() /** 当前缓存的 [SharedPreferences] 实例数组 */ - private val sPrefs = HashMap() + private val sPrefs = ArrayMap() /** * 创建 [YukiHookPrefsBridge] 对象 @@ -122,22 +123,22 @@ class YukiHookPrefsBridge private constructor(private var context: Context? = nu private object XSharedPreferencesCaches { /** 缓存的 [String] 键值数据 */ - var stringData = HashMap() + var stringData = ArrayMap() /** 缓存的 [Set]<[String]> 键值数据 */ - var stringSetData = HashMap>() + var stringSetData = ArrayMap>() /** 缓存的 [Boolean] 键值数据 */ - var booleanData = HashMap() + var booleanData = ArrayMap() /** 缓存的 [Int] 键值数据 */ - var intData = HashMap() + var intData = ArrayMap() /** 缓存的 [Long] 键值数据 */ - var longData = HashMap() + var longData = ArrayMap() /** 缓存的 [Float] 键值数据 */ - var floatData = HashMap() + var floatData = ArrayMap() /** 清除所有缓存的键值数据 */ fun clear() {