0
アンドロイドインストールされたアプリケーションのキャッシュディレクトリの正確なサイズを取得したい。私はこれを試しました。アンドロイドにインストールされているすべてのアプリケーションのキャッシュディレクトリを取得
List<ApplicationInfo> listOfApps = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
for(ApplicationInfo applicationInfo : listOfApps) {
try {
Context context = createPackageContext(applicationInfo.packageName,CONTEXT_IGNORE_SECURITY);
File file = context.getCacheDir();
if(file!=null){
String path = file.getAbsolutePath();
long dir = file.length();
Log.d("All_Package", applicationInfo.packageName + "\t\t" + MemoryFreedPredication.formatFileSize(String.valueOf(dir)) + " \t\t"+path);}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
にサイズをフォーマットする方法は
public static String formatFileSize(String fileSize) {
String[] sizes = {"B", "KB", "MB", "GB"};
double len = Double.parseDouble(fileSize);
int order = 0;
if (len < 1024) {
return String.format("%s %s", 1, sizes[1]);
} else {
while (len >= 1024 && order + 1 < sizes.length) {
order++;
len = len/1024;
}
}
len = Math.round(len * 100.0)/100.0;
return String.format("%s %s", len, sizes[order]);
}
ですが、それは常に私がこの目的のためにAIDLを使用4Kbの
が参照http://stackoverflow.com/questions/28407799/how-to-プログラムで計算するすべてのキャッシュサイズのインストール済みアプリケーション – sasikumar