SkillAgentSearch skills...

AndroidUtilsKt

基于Kotlin语言编写的Android工具类。

Install / Use

/learn @lindroy/AndroidUtilsKt
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

AndroidUtilsKt

暂停维护 由于本人疏忽,个别类丢失了,所以建议需要使用的朋友直接参考复制里面的代码。

使用kotlin编写的Android工具类,主要采用扩展函数的方式。目前还在不断补充中。

本说明文档遵循如下的规则:

  1. 根据工具类文件名的英文字母顺序排序。
  2. 接收类一栏为“/”的表示该方法或属性为全局成员,可在任意地方调用;接收类有具体类名(如Any、String?等)的表示采用扩展成员的写法;放在包“extension”中;
  3. 接收类一栏为“—”的表示采用静态类的写法,需要使用类名的形式调用里面的函数或属性,放在包“statics”中;
  4. 成员包含函数和属性,函数名称后面需要加“()”,属性则不用;
  5. “JvmName”表示该成员在Java中调用的名称;
  6. 常量另外写一个表格。

配置方法

1、在工程gradle中添加:

    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

2、添加如下依赖:

dependencies {
    implementation 'com.github.lindroy:AndroidUtilsKt:latest-version'
}

latest-version参见图标jitpack后面的版本号。

3、在Application中初始化

        AndUtil.init(this)
            .setDefaultSpFile()     //设置SharePreferences的默认表名,默认为“sp_util”
            .setServerTimeFormat()  //设置时间格式化中服务器时间格式,默认为“yyyy-MM-dd'T'HH:mm:ss.SSS”
			.setLogGlobalConfig {   //配置日志打印工具类
				……
            }

工具类文档

ActivityUtil:Activity工具类

| 成员名称 | 作用 | 接收类 | 备注 | | ------------ | ------------ | :------------: | ------------ | | launchActivity() | 启动一个Activity | Context | 启动的Activity作为泛型传入 |


AppManager:App管理器

| 成员名称 | 作用 | 接收类 | 备注 | | ------------ | ------------ | :------------: | :------------: | | addActivity() | Activity入栈 | — | / | | removeActivity() | Activity出栈 | — | / | | finishActivity() | 关闭一个Activity | — | / | | currentActivity() | 获取当前栈顶Activity | — | 如果栈内元素为空,则返回null | | finishAllActivity() | 清理栈中所有的Activity | — | / | | exitApp() | 退出应用程序 | — | / |


AppUtil:应用信息工具类

| 成员名称 | 作用 | 接收类 | 备注 | | ------------ | ------------ | :------------: | :------------: | | getAppVersionName() | 获取应用版本名称,默认为本应用 | Context | / | | getAppVersionCode() | 获取应用版本号,默认为本应用 | Context | / | | getAppSize() | 获取应用大小,默认为本应用 | Context | 返回值单位为b | | getAppIcon() |获取应用图标,默认为本应用| Context | 失败时返回null |


BarUtil:栏工具类

状态栏(StatusBar)

文件名为StatusBarUtil,在Java中调用时使用BarUtil即可。

| 成员名称 | 作用 | 接收类 | 备注 | | ------------ | ------------ | :------------: | :------------: | | statusBarHeight | 获取状态栏高度 | / | 单位为px | | setStatusBarColor | 设置纯颜色状态栏 | Activity | 参数为ColorInt | | setStatusBarColorRes() | 设置纯颜色状态栏 | Activity | 参数为ColorRes | | setTransParentStatusBar() | 设置透明状态栏 | Activity | 在界面创建时调用才能生效 | | setGradientStatusBar() | 设置渐变色状态栏 | Activity | 参数为Drawable或DrawableRes | | setStatusBarDarkMode() | 设置状态栏白色字体图标(深色模式) | Activity | / | | setStatusBarLightMode() | 设置状态栏黑色字体图标(浅色模式) | Activity | / |

导航栏(NavigationBar)

文件名为NavigationBarUtil,在Java中调用时使用BarUtil即可。

| 成员名称 | 作用 | 接收类 | 备注 | | ------------ | ------------ | :------------: | :------------: | | hasNavBar | 手机是否有虚拟导航栏 | / | / | | isNavBarShowed | 当前虚拟导航栏是否显示 | Activity/Window | / | | isNavBarHidden | 当前虚拟导航栏是否隐藏 | Activity/Window | / | | navBarHeight | 获取虚拟导航栏的高度 | / | 必须在布局绘制完成之后调用 | | navBarColor | 获取/设置虚拟导航栏颜色 | Activity/Window | 颜色值为ColorInt | | setNavBarColorRes() | 获取/设置导航栏颜色 | Activity/Window | 参数为资源ID |


BitmapUtil

| 成员名称 | 作用 | 接收类 | 备注 | | ------------ | ------------ | :------------: | :------------: | | createBitmapSafely() | 获取应用版本名称,默认为本应用 | / | / | | viewToBitmap() | 将View转换为Bitmap | / | / |


BrightnessUtil:屏幕亮度工具类

设置系统屏幕亮度时需要动态申请系统设置权限:

    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            //如果当前平台版本大于23平台
            if (!Settings.System.canWrite(mContext)) {
                //未获取权限
                val intent = with(Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS)) {
                    data = Uri.parse("package:$packageName")
                    this
                }
                startActivityForResult(intent, 100)
            } else {
               //已经获得了权限
            }
        }

| 成员名称 | 作用 | 接收类 | 备注 | | ------------ | ------------ | :------------: | :------------: | | isAutoBrightness | 是否开启了自动亮度 | / | / | | setAutoBrightness() | 设置是否开启自动亮度 | / | 设置成功返回true | | systemBrightness | 获取/设置系统屏幕宽度 | / | 亮度范围为0~255 | | windowBrightness | 获取/设置当前窗口亮度 | Activity | 亮度范围为0~1.0,1为最亮,默认为-1 |


ClipboardUtil: 剪贴板工具类

| 成员名称 | 作用 | 接收类 | 备注 | | ------------ | ------------ | ------------ | :------------: | | clipPlainText() | 复制纯文本 | / | / |


DensityUtil:像素单位转换工具类

| 成员名称 | 作用 | 接收类 | 备注 | | ------------ | ------------ | :------------: | :------------: | | dp2px() | dp转px | / | / | | px2dp() | px转dp | / | / | | sp2px() | sp转px | / | / | | px2sp() | px转sp | / | / |


IntentUtil:意图工具类

| 成员名称 | 作用 | 接收类 | 备注 | | ------------ | ------------ | :------------: | :------------: | | launchSystemSetting() | 打开系统设置界面 | — | / | | launchWifiSetting() | 打开wifi设置界面 | — | / | | launchDialPage() | 打开拨号面板 | — | / | | callPhone() | 直接拨打电话 | — | 动态权限 | | launchBrowse() | 调用浏览器并打开一个网页 | — | / | | launchCamera() | 启动系统相机 | — | 动态权限 | | sendSMS() | 发送短信 | — | 动态权限 |


KeyboardUtil:软键盘工具类

| 成员名称 | 作用 | 接收类 | 备注 | | ------------ | ------------ | :------------: | :------------: | | showKeyboard() | 打开软键盘 | View | / | | hideKeyboard() | 关闭软键盘 | View | / | | toggleKeyboard() | 根据当前软键盘的状态做取反操作 | View | / |

监听软键盘的状态

监听软键盘的显示和隐藏可以使用KeyboardStatusWatcher类,使用方法见下面代码。但要注意:软键盘的状态和高度必须在设置了监听事件之后才能获取,且

        val keyboardStatus = KeyboardStatusWatcher(llRoot)
        //监听软键盘状态
        keyboardStatus.addKeyboardStatusWatcher { isShowed, keyboardHeight ->
            val status = if (isShowed) "软键盘显示,高度为${px2dp(keyboardStatus.keyboardHeight)}" else "软键盘收起"
            shortToast(status)
        }
        //软键盘高度
        keyboardStatus.keyboardHeight
        //软键盘是否显示
        keyboardStatus.isKeyboardShowed
        //软键盘是否隐藏
        keyboardStatus.isKeyboardHidden

LogUtil:日志工具类

初始配置

LogUtil具有默认的配置,你也可以根据自己的需要自行配置。建议在Application中调用setLogGlobalConfig()做全局配置:

        AndUtil.init(this)
            .setLogGlobalConfig {
               ……
            }

配置如下:

| 方法名称 | 作用 | 默认值 | 备注 | | :------------: | :------------: | :------------: | :------------: | | setLogEnable() | 设置是否显示日志 | true | / | | setMethodCount() | 设置显示的方法数 | 1 | / | | setMethodOffset() | 设置栈偏移量 | 0 | / | | setShowThread() | 设置是否显示线程 | true | / | | setShowGlobalTag() | 设置是否在临时Tag前面显示全局Tag | false | / | | setLogStrategy() | 自定义日志打印策略 | / | / | | setShowBorder() | 设置是否显示边框 | true | 为了美观,建议显示 | | setTag() | 自定义日志打印策略 | LogUtil | / |

对外API

| 成员名称 | 作用 | 接收类 | 备注 | | :------------: | ------------ | :------------: | :------------: | | d() | 打印Debug日志 | String? | 仅支持可空String,为null时打印“null” | | d() | 打印Debug日志 | Any? | 支持如下类型:List、Array、Set和Map | | dt() | 打印带临时性tag的Debug日志 | String? | 仅支持可空String,为null时打印“null” | | dt() | 打印带临时性tag的Debug日志 | Any? | 支持如下类型:List、Array、Set和Map | | v() | 打印Verbose日志 | String? | 仅支持可空String,为null时打印“null” | | vt() | 打印带临时性tag的Verbose日志 | String? | 仅支持可空String,为null时打印“null” | | i() | 打印Verbose日志 | String? | 仅支持可空String,为null时打印“null” | | it() | 打印带临时性tag的Verbose日志 | String? | 仅支持可空String,为null时打印“null” | | w() | 打印Verbose日志 | String? | 仅支持可空String,为null时打印“null” | | wt() | 打印带临时性tag的Verbose日志 | String? | 仅支持可空String,为null时打印“null” | | e() | 打印Error日志 | String? | 仅支持可空String,可抛出异常 | | et() | 打印带临时性tag的Error日志 | String? | 仅支持可空String,可抛出异常 | | wtf() | 打印wtf日志 | String? | 仅支持可空String,为null时打印“null” | | wtft() | 打印带临时性tag的wtf日志 | String? | 仅支持可空String,为null时打印“null” | | json() | 打印格式化的json | String? | 等级为Debug,仅支持可空String | | xml() | 打印格式化的xml | String? | 等级为Debug,仅支持可空String | | buildLogConfig() | 设置LogUtil配置 | Any? | 会优先于AndUtil.setLogGlobalConfig()的全局设置,但不会覆盖它 | | buildLogTempConfig() | 设置临时性的LogUtil配置 | Any? | 打印一次之后就会失效 | | clearLogConfigs() | 清除所有的配置 | Any? | 清除后需要重新配置才能打印 | | resetLogConfig() | 重置LogUtil配置为全局配置 | Any? | / |

buildLogConfig()buildLogTempConfig()有两种书写形式,分别是DSL和链式调用: DSL:

    buildLogConfig {
        setShowThread(false)
    }

链式调用(主要供Java代码使用):

View on GitHub
GitHub Stars47
CategoryDevelopment
Updated8d ago
Forks19

Languages

Kotlin

Security Score

90/100

Audited on Mar 30, 2026

No findings