# GtUtils **Repository Path**: gt50/GtUtils ## Basic Information - **Project Name**: GtUtils - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-20 - **Last Updated**: 2025-06-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [![](https://jitpack.io/v/com.gitee.gt50/GtUtils.svg)](https://jitpack.io/#com.gitee.gt50/GtUtils) [![API](https://img.shields.io/badge/API-15%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=15) [![作者](https://img.shields.io/badge/%E4%BD%9C%E8%80%85-gt50-brightgreen.svg)](https://gitee.com/gt50) ## 自定义工具库 * [PermissionUtils:请求权限](#permissionutils) * [DataCleanManager:本应用数据清除管理器](#datacleanmanager) * [MuchThreadDown:多线程下载,支持断点续传](#muchthreaddown) * [FileUtils:文件处理工具类](#FileUtils) * [ComputeUtils:计算工具类](#computeutils) * [ClassesReader:类读取器,可以获取所有的类](#classesreader) * [RetrofitHelper: Retrofit网络请求工具类](#retrofithelper) #### 依赖 将其添加到根build.gradle文件(而不是模块build.gradle文件)中: ```Xml allprojects { repositories { maven { url "https://jitpack.io" } } } ``` 然后,将库添加到模块中 build.gradle ```Xml dependencies { implementation 'com.gitee.gt50:GtUtils:Tag' } ``` ## PermissionUtils ```Java new PermissionUtils.Builder(this) .permission(Manifest.permission.RECORD_AUDIO, Manifest.permission.CAMERA) .onGranted(() -> { Toast.makeText(this, "允许", Toast.LENGTH_LONG).show(); }) .onDenied(requestPermissions -> { Toast.makeText(this, requestPermissions + " : 拒绝", Toast.LENGTH_LONG).show(); }) .start(); ``` #### 设置拒绝后的弹窗提示语 默认提示语:没有此权限,无法开启这个功能,请开启权限:摄像头 ````Java PermissionUtils.permissionsHintHead = "没有此权限,无法开启这个功能,请开启权限:"; ```` ## DataCleanManager ##### 获取缓存大小 ````Java static String getTotalCacheSize(Context context) throws Exception; ```` ##### 清除缓存 ````Java static void clearAllCache(Context context); ```` ## MuchThreadDown ###### 线程的数量根据文件的大小自动分配,每个线程下载的数据量最多3M; ````Java new MuchThreadDown("http://img1.kuaimashi.com/69_1526641455014.mp4", "D:/video/").download(new OnDownloadListener() { @Override protected void onDownloadComplete(String name, String url, String filePath) { System.out.println("下载成功==" + "url:" + url); } @Override protected void onDownloadError(String url, Exception e) { System.out.println("下载失败==" + "url:" + url); } @Override protected void onDownloads(String url, int completed, int endIndex) { System.out.println("下载中==" + "url:" + url + ":(" + completed + "||" + endIndex + ")"); } }); //是否显示日志 public MuchThreadDown isShowLog(boolean showLog); //是否单线程下载 public MuchThreadDown isAlone(boolean alone); //是否覆盖下载 public MuchThreadDown isCover(boolean cover); ```` ## ComputeUtils #### api详见源码 ## ClassesReader #### 类读取器,可以获取所有的类,用于实现获取某一个接口或者类的所有子类,或者获取指定注解的类 ```java ** * 获取应用程序下的所有Dex文件 * * @param context 上下文 * @return Set */ public static Set applicationDexFile(Context context); public static Set applicationDexFile(String packageCodePath); public static List> reader(Context context); /** * 读取类路径下的所有类 * * @param packageName 包名 * @param packageCodePath 包路径 * @return List */ public static List> reader(String packageName, String packageCodePath); /** * 删除集合中没有指定注解的类 * * @param classes * @param annotationType */ public static List> deleteNotAnnotationClass(List> classes, Class annotationType) ``` ## RetrofitHelper ```java ApiService apiService = RetrofitHelper.create(this, ApiService.ApiUrl.BASE_URL, ApiService.class); RetrofitHelper.execute(apiService.userLogin(params), new DefaultObserver() { @Override public void onSuccess(Object response) { Toast.makeText(MainActivity.this, "请求成功", Toast.LENGTH_LONG).show(); } }); ```