Skip to content

工具类

相关依赖

app/src/main/java/com/joker/kit/core/util 统一存放轻量工具类,当前包含 Toast、权限、存储、包信息四类封装。目录结构如下,后续若需要新增其他工具,只需沿用相同的包分类方式即可:

目录/文件功能
toast/ToastUtils.kt以 Toaster 为核心,封装成功/失败/警告等自定义样式及深浅色切换。
permission/PermissionUtils.kt基于 XXPermissions 的动态权限请求工具,统一处理拒绝、永久拒绝与回调。
storage/MMKVUtils.kt对腾讯 MMKV 的再封装,提供多实例、加密实例及常用 put/get 方法。
package/PackageUtils.kt获取 App 名称、版本号、签名、是否安装等信息。

现有工具概览

ToastUtils

  1. 初始化ToastUtils.init(application, isDarkTheme)Application 中调用,注册 Toaster 并根据主题指定默认样式。
  2. 主题切换setBlackStyle()/setWhiteStyle() 随系统切换;Application.onConfigurationChanged() 已演示用法。
  3. 常用方法show()/showSuccess()/showError()/showWarning() 支持直接传字符串或 @StringRes,个性化样式由 toast_success/toast_error/toast_warn 控制。

PermissionUtils

  1. 统一入口requestStoragePermissionrequestCameraPermissionrequestGalleryPermissionrequestNotificationPermissionrequestAudioPermission 等。
  2. 调用方式:传入 ActivityFragmentContext,并提供 (Boolean) -> Unit 回调即可,内部负责提取 Activity
  3. 失败处理:若勾选“不再询问”,会自动弹 Toast 并跳转系统设置页面;否则仅提示失败,不强行跳转。

MMKVUtils

  1. 初始化MMKVUtils.init(application)Application 中调用一次。
  2. 实例管理getInstance()/getMultiProcessInstance()/getEncryptedInstance() 根据需求返回命名实例,并做缓存避免重复创建。
  3. 读写 API:封装了 putBoolean/getBooleanputInt/getIntputParcelableputJson 等常用方法,默认使用 defaultMMKV;也可传入自定义实例。
  4. 序列化:内置 kotlinx.serializationputObject/getObject 可直接存取 @Serializable 数据类。

PackageUtils

提供读取 App 名称、版本号、签名(MD5/SHA1)以及判断其他应用是否安装等方法,常用于分享、调试或第三方 SDK 校验场景。

如何扩展新的工具类

  1. core/util 下新建子包(如 core/util/network)。
  2. 编写对应的工具类,保持 object + KDoc 说明的写法,必要时在类中附示例。
  3. 如需三方库,先在 gradle/libs.versions.toml 注册版本,再在 build.gradle.kts 中引用,继续在本文件的“相关依赖”列表中补充说明。

这样可以让所有通用工具保持统一出口,项目成员查阅或维护时只需打开 core/util 即可。