Index: build/android/resource_sizes.py |
diff --git a/build/android/resource_sizes.py b/build/android/resource_sizes.py |
index 76f03fb4e30f41c81589e574491823e04c8f171d..099f71dec8b6aff80dd142a974bb75c583b9d974 100755 |
--- a/build/android/resource_sizes.py |
+++ b/build/android/resource_sizes.py |
@@ -562,12 +562,17 @@ def PrintPakAnalysis(apk_filename, min_pak_resource_size): |
# Calculate aggregate stats about resources across pak files. |
resource_count_map = collections.defaultdict(int) |
resource_size_map = collections.defaultdict(int) |
+ seen_data_ids = set() |
+ alias_overhead_bytes = 4 |
resource_overhead_bytes = 6 |
for pak in paks: |
- for r in pak.resources: |
- resource_count_map[r] += 1 |
- resource_size_map[r] += len(pak.resources[r]) + resource_overhead_bytes |
- |
+ for k, v in pak.resources.iteritems(): |
+ resource_count_map[k] += 1 |
+ if id(v) not in seen_data_ids: |
+ seen_data_ids.add(id(v)) |
+ resource_size_map[k] += resource_overhead_bytes + len(v) |
+ else: |
+ resource_size_map[k] += alias_overhead_bytes |
# Output the overall resource summary. |
total_resource_size = sum(resource_size_map.values()) |
total_resource_count = len(resource_count_map) |