|
|
@@ -5,12 +5,16 @@ import android.content.Intent;
|
|
|
import android.os.Build;
|
|
|
import android.provider.AlarmClock;
|
|
|
|
|
|
+import com.bumptech.glide.load.engine.cache.InternalCacheDiskCacheFactory;
|
|
|
import com.kfzs.duanduan.utils.ApkUtils;
|
|
|
import com.sheep.jiuyan.samllsheep.BuildConfig;
|
|
|
import com.sheep.jiuyan.samllsheep.R;
|
|
|
import com.sheep.jiuyan.samllsheep.SheepApp;
|
|
|
+import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
|
|
|
import com.sheep.jiuyan.samllsheep.utils.G;
|
|
|
|
|
|
+import java.io.File;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Calendar;
|
|
|
|
|
|
@@ -64,4 +68,78 @@ public class SysAppUtil {
|
|
|
// || BuildConfig.DEBUG
|
|
|
;
|
|
|
}
|
|
|
+
|
|
|
+ public static String getAppCacheSize() {
|
|
|
+ try {
|
|
|
+// File filesDir = SheepApp.getInstance().getExternalFilesDir(null);
|
|
|
+// File cacheDir = SheepApp.getInstance().getExternalCacheDir();
|
|
|
+// long filesDirSize = getFolderSize(filesDir);
|
|
|
+// long cacheSize = getFolderSize(cacheDir);
|
|
|
+ long apkSize = getFolderSize(new File(ClassFileHelper.DIR));
|
|
|
+ File cacheDirPath = SheepApp.getInstance().getCacheDir();
|
|
|
+ long glideSize = getFolderSize(new File( cacheDirPath, InternalCacheDiskCacheFactory.DEFAULT_DISK_CACHE_DIR));
|
|
|
+ return getFormatSize(//filesDirSize+cacheSize+
|
|
|
+ apkSize+glideSize);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ // 获取文件大小
|
|
|
+ //Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
|
|
|
+ //Context.getExternalCacheDir() --> SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
|
|
|
+ public static long getFolderSize(File file){
|
|
|
+ long size = 0;
|
|
|
+ try {
|
|
|
+ File[] fileList = file.listFiles();
|
|
|
+ for (int i = 0; i < fileList.length; i++) {
|
|
|
+ // 如果下面还有文件
|
|
|
+ if (fileList[i].isDirectory()) {
|
|
|
+ size = size + getFolderSize(fileList[i]);
|
|
|
+ } else {
|
|
|
+ size = size + fileList[i].length();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return size;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 格式化单位
|
|
|
+ * @param size
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String getFormatSize(double size) {
|
|
|
+ double kiloByte = size / 1024;
|
|
|
+ if (kiloByte < 1) {
|
|
|
+// return size + "Byte";
|
|
|
+ return "0K";
|
|
|
+ }
|
|
|
+
|
|
|
+ double megaByte = kiloByte / 1024;
|
|
|
+ if (megaByte < 1) {
|
|
|
+ BigDecimal result1 = new BigDecimal(Double.toString(kiloByte));
|
|
|
+ return result1.setScale(2, BigDecimal.ROUND_HALF_UP)
|
|
|
+ .toPlainString() + "K";
|
|
|
+ }
|
|
|
+
|
|
|
+ double gigaByte = megaByte / 1024;
|
|
|
+ if (gigaByte < 1) {
|
|
|
+ BigDecimal result2 = new BigDecimal(Double.toString(megaByte));
|
|
|
+ return result2.setScale(2, BigDecimal.ROUND_HALF_UP)
|
|
|
+ .toPlainString() + "M";
|
|
|
+ }
|
|
|
+
|
|
|
+ double teraBytes = gigaByte / 1024;
|
|
|
+ if (teraBytes < 1) {
|
|
|
+ BigDecimal result3 = new BigDecimal(Double.toString(gigaByte));
|
|
|
+ return result3.setScale(2, BigDecimal.ROUND_HALF_UP)
|
|
|
+ .toPlainString() + "GB";
|
|
|
+ }
|
|
|
+ BigDecimal result4 = new BigDecimal(teraBytes);
|
|
|
+ return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString()
|
|
|
+ + "TB";
|
|
|
+ }
|
|
|
}
|