GT库
最新版本: v1.4.4.9
发布时间:2023.8.10
GT库官方教程
此次版本更新:切换到github
* CSDN 博客/官网教程:https://blog.csdn.net/qq_39799899
* GitHub https://github.com/1079374315/GT
* 更新内容如下:
* 1.优化 GT_Fragment 类,API,修改 GT_Fragment 类 返回策略
* 2.新增 指纹验证工具类 FingerprintUtils 和 封装好的指纹验证对话框 FingerprintDialogFragment 使用教程清参考官网
* 3.新增 选择图片 功能
* 4.GT.Glide 图片加载框架优化内容:
* (1).优化内存缓存策略
* (2).提升加载动态图性能 提升透明动画稳定性
* (3).解决断网时读取本地缓存图片失败的问题
* (4).解决 加载动态图后,View事件丢失的问题
* (5).解决 在复杂布局中,加载动态图,动态图错位的问题
* 5.去掉 U盘工具 API
* 6.ApplicationUtils 类 增加获取 软键盘高度 API
* 7.ImageViewUtils 类 增加 生成、解析二维码
* 8.去掉 GT.ApplicationUtils 封装类中的所有分享api方法, 新增分享工具类 ShareUtils ,支持一键分享文件、网图、GIF图、支持万能渠道分享
* 9.新增 手电筒 FlashlightUtils 封装类,五行代码 搞定
* 10.新增 声音分贝 AudioRecordUtils 封装类,三行代码 搞定
* 11.磁场传感器 MagneticFieldUtils 封装类,四行代码 搞定
* 12.光源传感器 LightSourceUtils 封装类,四步搞定
* 13.水平仪传感器 GradienterUtils 封装类,四步搞定
* 14.新增壁纸管理器 WallpaperManagerUtils,两步搞定
* 15.新增跳转封装类 SkipUtils,跳转各种系统页面
* 16.GT.EventBus 新增局部 发布事件 和 订阅事件,灵活多变,支持事件拦截,结果返回等。(具体请参考博客教程)
GT包依赖:依赖库详情
Java版 依赖
第一步 1. 将以下存储库将其添加到根构建中。存储库末尾的gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
第二步 2. 添加依赖关系
dependencies {
//如果只需要基础功能,可以只依赖GT基础功能库
implementation 'com.github.1079374315:GSLS_Tool:v1.4.4.9'//基础功能
//如需要使用 gt-DataBinding 才需要加这个,否则可不加
annotationProcessor 'com.github.1079374315:GSLS_Tool:v1.4.4.9'//注册 gt-DataBinding 功能
}
kotlin版 依赖
第一步 1. 将以下存储库将其添加到根构建中。存储库末尾的gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
第二步 2. 添加依赖关系
dependencies {
//如果只需要基础功能,可以只依赖GT基础功能库
implementation 'com.github.1079374315:GSLS_Tool:v1.4.4.9'//基础功能
//如需要使用 gt-DataBinding 才需要加这个,否则可不加
kapt'com.github.1079374315:GSLS_Tool:v1.4.4.9'//注册 gt-DataBinding 功能
}
注意:如需要使用 gt-DataBinding 才需要加上第三步,否则可不加
第三步 3. 在 build.gradle(app模块中) 引入 'kotlin-kapt'
plugins {
...
...
id 'kotlin-kapt'
}
注意:如果运行编译出现 "task (current target is 1.8) and 'kaptGenerateStubsDebugKotlin' task (current target is 17) jvm" 问题,
可直接在 build.gradle(app模块中) 添加以下关系来解决:
android {
...
...
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile.class){
kotlinOptions {
jvmTarget = "1.8"
}
}
}
注意事项:
1.最新版Android Studio Arctic Fox | 2020.3.1的引用库的地方在另外的一个文件夹上:
2.在 build.gradle(app模块中) 引入 'kotlin-kapt'
3.在 build.gradle(app模块中) 添加以下关系来解决:
4.如果出现 注解ID 资源爆红,就参考这个解决办法:
注解ID爆红解决办法:
提供复制粘贴:
android.nonFinalResIds=false
5.同步后如果出现 :The number of method references in a .dex file cannot exceed 64K. 错误,解决办法:
multiDexEnabled true //只需要将此设置为 true 即可
如需要使用GT库里的 GT-DataBinding功能,才需要参考下面教程:
在GT库,v1.4.2.2版本以及之后的版本均不需要外加 jar 包,直接添加依赖即可~
分功能使用到的权限:(权限参考)
<!-- U盘操作 -->
<uses-permission
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
tools:ignore="ProtectedPermissions" />
<!-- 悬浮窗 -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<!-- 网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application ...
<!-- 自动安装APK -->
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.gsls.gt.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
</application>
GT混淆:
#不混淆GT库
-keep public class com.gsls.gt.GT { *; }
#不混淆 继承GT类 或 继承GT内部类 的类
-keep public class * extends com.gsls.gt.GT { *; }
-keep public class * extends com.gsls.gt.GT$* { *; }