Merge "Update diskstats to break out code & data." into oc-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ca589a064e
@@ -47,7 +47,7 @@ message DiskStatsServiceDumpProto {
|
|||||||
}
|
}
|
||||||
|
|
||||||
message DiskStatsCachedValuesProto {
|
message DiskStatsCachedValuesProto {
|
||||||
// Total app data size, in kilobytes
|
// Total app code size, in kilobytes
|
||||||
int64 agg_apps_size = 1;
|
int64 agg_apps_size = 1;
|
||||||
// Total app cache size, in kilobytes
|
// Total app cache size, in kilobytes
|
||||||
int64 agg_apps_cache_size = 2;
|
int64 agg_apps_cache_size = 2;
|
||||||
@@ -65,15 +65,19 @@ message DiskStatsCachedValuesProto {
|
|||||||
int64 other_size = 8;
|
int64 other_size = 8;
|
||||||
// Sizes of individual packages
|
// Sizes of individual packages
|
||||||
repeated DiskStatsAppSizesProto app_sizes = 9;
|
repeated DiskStatsAppSizesProto app_sizes = 9;
|
||||||
|
// Total app data size, in kilobytes
|
||||||
|
int64 agg_apps_data_size = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
message DiskStatsAppSizesProto {
|
message DiskStatsAppSizesProto {
|
||||||
// Name of the package
|
// Name of the package
|
||||||
string package_name = 1;
|
string package_name = 1;
|
||||||
// App's data size in kilobytes
|
// App's code size in kilobytes
|
||||||
int64 app_size = 2;
|
int64 app_size = 2;
|
||||||
// App's cache size in kilobytes
|
// App's cache size in kilobytes
|
||||||
int64 cache_size = 3;
|
int64 cache_size = 3;
|
||||||
|
// App's data size in kilobytes
|
||||||
|
int64 app_data_size = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
message DiskStatsFreeSpaceProto {
|
message DiskStatsFreeSpaceProto {
|
||||||
|
|||||||
@@ -202,6 +202,8 @@ public class DiskStatsService extends Binder {
|
|||||||
JSONObject json = new JSONObject(jsonString);
|
JSONObject json = new JSONObject(jsonString);
|
||||||
pw.print("App Size: ");
|
pw.print("App Size: ");
|
||||||
pw.println(json.getLong(DiskStatsFileLogger.APP_SIZE_AGG_KEY));
|
pw.println(json.getLong(DiskStatsFileLogger.APP_SIZE_AGG_KEY));
|
||||||
|
pw.print("App Data Size: ");
|
||||||
|
pw.println(json.getLong(DiskStatsFileLogger.APP_DATA_SIZE_AGG_KEY));
|
||||||
pw.print("App Cache Size: ");
|
pw.print("App Cache Size: ");
|
||||||
pw.println(json.getLong(DiskStatsFileLogger.APP_CACHE_AGG_KEY));
|
pw.println(json.getLong(DiskStatsFileLogger.APP_CACHE_AGG_KEY));
|
||||||
pw.print("Photos Size: ");
|
pw.print("Photos Size: ");
|
||||||
@@ -220,6 +222,8 @@ public class DiskStatsService extends Binder {
|
|||||||
pw.println(json.getJSONArray(DiskStatsFileLogger.PACKAGE_NAMES_KEY));
|
pw.println(json.getJSONArray(DiskStatsFileLogger.PACKAGE_NAMES_KEY));
|
||||||
pw.print("App Sizes: ");
|
pw.print("App Sizes: ");
|
||||||
pw.println(json.getJSONArray(DiskStatsFileLogger.APP_SIZES_KEY));
|
pw.println(json.getJSONArray(DiskStatsFileLogger.APP_SIZES_KEY));
|
||||||
|
pw.print("App Data Sizes: ");
|
||||||
|
pw.println(json.getJSONArray(DiskStatsFileLogger.APP_DATA_KEY));
|
||||||
pw.print("Cache Sizes: ");
|
pw.print("Cache Sizes: ");
|
||||||
pw.println(json.getJSONArray(DiskStatsFileLogger.APP_CACHES_KEY));
|
pw.println(json.getJSONArray(DiskStatsFileLogger.APP_CACHES_KEY));
|
||||||
} catch (IOException | JSONException e) {
|
} catch (IOException | JSONException e) {
|
||||||
@@ -235,6 +239,8 @@ public class DiskStatsService extends Binder {
|
|||||||
|
|
||||||
proto.write(DiskStatsCachedValuesProto.AGG_APPS_SIZE,
|
proto.write(DiskStatsCachedValuesProto.AGG_APPS_SIZE,
|
||||||
json.getLong(DiskStatsFileLogger.APP_SIZE_AGG_KEY));
|
json.getLong(DiskStatsFileLogger.APP_SIZE_AGG_KEY));
|
||||||
|
proto.write(DiskStatsCachedValuesProto.AGG_APPS_DATA_SIZE,
|
||||||
|
json.getLong(DiskStatsFileLogger.APP_DATA_SIZE_AGG_KEY));
|
||||||
proto.write(DiskStatsCachedValuesProto.AGG_APPS_CACHE_SIZE,
|
proto.write(DiskStatsCachedValuesProto.AGG_APPS_CACHE_SIZE,
|
||||||
json.getLong(DiskStatsFileLogger.APP_CACHE_AGG_KEY));
|
json.getLong(DiskStatsFileLogger.APP_CACHE_AGG_KEY));
|
||||||
proto.write(DiskStatsCachedValuesProto.PHOTOS_SIZE,
|
proto.write(DiskStatsCachedValuesProto.PHOTOS_SIZE,
|
||||||
@@ -252,22 +258,26 @@ public class DiskStatsService extends Binder {
|
|||||||
|
|
||||||
JSONArray packageNamesArray = json.getJSONArray(DiskStatsFileLogger.PACKAGE_NAMES_KEY);
|
JSONArray packageNamesArray = json.getJSONArray(DiskStatsFileLogger.PACKAGE_NAMES_KEY);
|
||||||
JSONArray appSizesArray = json.getJSONArray(DiskStatsFileLogger.APP_SIZES_KEY);
|
JSONArray appSizesArray = json.getJSONArray(DiskStatsFileLogger.APP_SIZES_KEY);
|
||||||
|
JSONArray appDataSizesArray = json.getJSONArray(DiskStatsFileLogger.APP_DATA_KEY);
|
||||||
JSONArray cacheSizesArray = json.getJSONArray(DiskStatsFileLogger.APP_CACHES_KEY);
|
JSONArray cacheSizesArray = json.getJSONArray(DiskStatsFileLogger.APP_CACHES_KEY);
|
||||||
final int len = packageNamesArray.length();
|
final int len = packageNamesArray.length();
|
||||||
if (len == appSizesArray.length() && len == cacheSizesArray.length()) {
|
if (len == appSizesArray.length()
|
||||||
|
&& len == appDataSizesArray.length()
|
||||||
|
&& len == cacheSizesArray.length()) {
|
||||||
for (int i = 0; i < len; i++) {
|
for (int i = 0; i < len; i++) {
|
||||||
long packageToken = proto.start(DiskStatsCachedValuesProto.APP_SIZES);
|
long packageToken = proto.start(DiskStatsCachedValuesProto.APP_SIZES);
|
||||||
|
|
||||||
proto.write(DiskStatsAppSizesProto.PACKAGE_NAME,
|
proto.write(DiskStatsAppSizesProto.PACKAGE_NAME,
|
||||||
packageNamesArray.getString(i));
|
packageNamesArray.getString(i));
|
||||||
proto.write(DiskStatsAppSizesProto.APP_SIZE, appSizesArray.getLong(i));
|
proto.write(DiskStatsAppSizesProto.APP_SIZE, appSizesArray.getLong(i));
|
||||||
|
proto.write(DiskStatsAppSizesProto.APP_DATA_SIZE, appDataSizesArray.getLong(i));
|
||||||
proto.write(DiskStatsAppSizesProto.CACHE_SIZE, cacheSizesArray.getLong(i));
|
proto.write(DiskStatsAppSizesProto.CACHE_SIZE, cacheSizesArray.getLong(i));
|
||||||
|
|
||||||
proto.end(packageToken);
|
proto.end(packageToken);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Slog.wtf(TAG, "Sizes of packageNamesArray, appSizesArray and cacheSizesArray "
|
Slog.wtf(TAG, "Sizes of packageNamesArray, appSizesArray, appDataSizesArray "
|
||||||
+ "are not the same");
|
+ " and cacheSizesArray are not the same");
|
||||||
}
|
}
|
||||||
|
|
||||||
proto.end(cachedValuesToken);
|
proto.end(cachedValuesToken);
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ public class AppCollector {
|
|||||||
PackageStats packageStats = new PackageStats(app.packageName,
|
PackageStats packageStats = new PackageStats(app.packageName,
|
||||||
user.id);
|
user.id);
|
||||||
packageStats.cacheSize = storageStats.getCacheBytes();
|
packageStats.cacheSize = storageStats.getCacheBytes();
|
||||||
packageStats.codeSize = storageStats.getCodeBytes();
|
packageStats.codeSize = storageStats.getAppBytes();
|
||||||
packageStats.dataSize = storageStats.getDataBytes();
|
packageStats.dataSize = storageStats.getDataBytes();
|
||||||
stats.add(packageStats);
|
stats.add(packageStats);
|
||||||
} catch (NameNotFoundException | IOException e) {
|
} catch (NameNotFoundException | IOException e) {
|
||||||
|
|||||||
@@ -56,10 +56,12 @@ public class DiskStatsFileLogger {
|
|||||||
public static final String SYSTEM_KEY = "systemSize";
|
public static final String SYSTEM_KEY = "systemSize";
|
||||||
public static final String MISC_KEY = "otherSize";
|
public static final String MISC_KEY = "otherSize";
|
||||||
public static final String APP_SIZE_AGG_KEY = "appSize";
|
public static final String APP_SIZE_AGG_KEY = "appSize";
|
||||||
|
public static final String APP_DATA_SIZE_AGG_KEY = "appDataSize";
|
||||||
public static final String APP_CACHE_AGG_KEY = "cacheSize";
|
public static final String APP_CACHE_AGG_KEY = "cacheSize";
|
||||||
public static final String PACKAGE_NAMES_KEY = "packageNames";
|
public static final String PACKAGE_NAMES_KEY = "packageNames";
|
||||||
public static final String APP_SIZES_KEY = "appSizes";
|
public static final String APP_SIZES_KEY = "appSizes";
|
||||||
public static final String APP_CACHES_KEY = "cacheSizes";
|
public static final String APP_CACHES_KEY = "cacheSizes";
|
||||||
|
public static final String APP_DATA_KEY = "appDataSizes";
|
||||||
public static final String LAST_QUERY_TIMESTAMP_KEY = "queryTime";
|
public static final String LAST_QUERY_TIMESTAMP_KEY = "queryTime";
|
||||||
|
|
||||||
private MeasurementResult mResult;
|
private MeasurementResult mResult;
|
||||||
@@ -114,31 +116,39 @@ public class DiskStatsFileLogger {
|
|||||||
private void addAppsToJson(JSONObject json) throws JSONException {
|
private void addAppsToJson(JSONObject json) throws JSONException {
|
||||||
JSONArray names = new JSONArray();
|
JSONArray names = new JSONArray();
|
||||||
JSONArray appSizeList = new JSONArray();
|
JSONArray appSizeList = new JSONArray();
|
||||||
|
JSONArray appDataSizeList = new JSONArray();
|
||||||
JSONArray cacheSizeList = new JSONArray();
|
JSONArray cacheSizeList = new JSONArray();
|
||||||
|
|
||||||
long appSizeSum = 0L;
|
long appSizeSum = 0L;
|
||||||
|
long appDataSizeSum = 0L;
|
||||||
long cacheSizeSum = 0L;
|
long cacheSizeSum = 0L;
|
||||||
boolean isExternal = Environment.isExternalStorageEmulated();
|
boolean isExternal = Environment.isExternalStorageEmulated();
|
||||||
for (Map.Entry<String, PackageStats> entry : filterOnlyPrimaryUser().entrySet()) {
|
for (Map.Entry<String, PackageStats> entry : filterOnlyPrimaryUser().entrySet()) {
|
||||||
PackageStats stat = entry.getValue();
|
PackageStats stat = entry.getValue();
|
||||||
long appSize = stat.codeSize + stat.dataSize;
|
long appSize = stat.codeSize;
|
||||||
|
long appDataSize = stat.dataSize;
|
||||||
long cacheSize = stat.cacheSize;
|
long cacheSize = stat.cacheSize;
|
||||||
if (isExternal) {
|
if (isExternal) {
|
||||||
appSize += stat.externalCodeSize + stat.externalDataSize;
|
appSize += stat.externalCodeSize;
|
||||||
|
appDataSize += stat.externalDataSize;
|
||||||
cacheSize += stat.externalCacheSize;
|
cacheSize += stat.externalCacheSize;
|
||||||
}
|
}
|
||||||
appSizeSum += appSize;
|
appSizeSum += appSize;
|
||||||
|
appDataSizeSum += appDataSize;
|
||||||
cacheSizeSum += cacheSize;
|
cacheSizeSum += cacheSize;
|
||||||
|
|
||||||
names.put(stat.packageName);
|
names.put(stat.packageName);
|
||||||
appSizeList.put(appSize);
|
appSizeList.put(appSize);
|
||||||
|
appDataSizeList.put(appDataSize);
|
||||||
cacheSizeList.put(cacheSize);
|
cacheSizeList.put(cacheSize);
|
||||||
}
|
}
|
||||||
json.put(PACKAGE_NAMES_KEY, names);
|
json.put(PACKAGE_NAMES_KEY, names);
|
||||||
json.put(APP_SIZES_KEY, appSizeList);
|
json.put(APP_SIZES_KEY, appSizeList);
|
||||||
json.put(APP_CACHES_KEY, cacheSizeList);
|
json.put(APP_CACHES_KEY, cacheSizeList);
|
||||||
|
json.put(APP_DATA_KEY, appDataSizeList);
|
||||||
json.put(APP_SIZE_AGG_KEY, appSizeSum);
|
json.put(APP_SIZE_AGG_KEY, appSizeSum);
|
||||||
json.put(APP_CACHE_AGG_KEY, cacheSizeSum);
|
json.put(APP_CACHE_AGG_KEY, cacheSizeSum);
|
||||||
|
json.put(APP_DATA_SIZE_AGG_KEY, appDataSizeSum);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -149,11 +149,13 @@ public class DiskStatsLoggingServiceTest extends AndroidTestCase {
|
|||||||
assertThat(json.getLong(DiskStatsFileLogger.DOWNLOADS_KEY)).isEqualTo(3L);
|
assertThat(json.getLong(DiskStatsFileLogger.DOWNLOADS_KEY)).isEqualTo(3L);
|
||||||
assertThat(json.getLong(DiskStatsFileLogger.SYSTEM_KEY)).isEqualTo(10L);
|
assertThat(json.getLong(DiskStatsFileLogger.SYSTEM_KEY)).isEqualTo(10L);
|
||||||
assertThat(json.getLong(DiskStatsFileLogger.MISC_KEY)).isEqualTo(7L);
|
assertThat(json.getLong(DiskStatsFileLogger.MISC_KEY)).isEqualTo(7L);
|
||||||
assertThat(json.getLong(DiskStatsFileLogger.APP_SIZE_AGG_KEY)).isEqualTo(15L);
|
assertThat(json.getLong(DiskStatsFileLogger.APP_SIZE_AGG_KEY)).isEqualTo(10L);
|
||||||
|
assertThat(json.getLong(DiskStatsFileLogger.APP_DATA_SIZE_AGG_KEY)).isEqualTo(5L);
|
||||||
assertThat(json.getLong(DiskStatsFileLogger.APP_CACHE_AGG_KEY)).isEqualTo(55L);
|
assertThat(json.getLong(DiskStatsFileLogger.APP_CACHE_AGG_KEY)).isEqualTo(55L);
|
||||||
assertThat(
|
assertThat(
|
||||||
json.getJSONArray(DiskStatsFileLogger.PACKAGE_NAMES_KEY).length()).isEqualTo(1L);
|
json.getJSONArray(DiskStatsFileLogger.PACKAGE_NAMES_KEY).length()).isEqualTo(1L);
|
||||||
assertThat(json.getJSONArray(DiskStatsFileLogger.APP_SIZES_KEY).length()).isEqualTo(1L);
|
assertThat(json.getJSONArray(DiskStatsFileLogger.APP_SIZES_KEY).length()).isEqualTo(1L);
|
||||||
|
assertThat(json.getJSONArray(DiskStatsFileLogger.APP_DATA_KEY).length()).isEqualTo(1L);
|
||||||
assertThat(json.getJSONArray(DiskStatsFileLogger.APP_CACHES_KEY).length()).isEqualTo(1L);
|
assertThat(json.getJSONArray(DiskStatsFileLogger.APP_CACHES_KEY).length()).isEqualTo(1L);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user