Index: build/android/resource_sizes.py |
diff --git a/build/android/resource_sizes.py b/build/android/resource_sizes.py |
index 64ce719f37e1c014401479f05493a6bb1fc21ea0..e4dd3c349fc7751876254c293d42b846b81aa3a7 100755 |
--- a/build/android/resource_sizes.py |
+++ b/build/android/resource_sizes.py |
@@ -184,12 +184,16 @@ def PrintApkAnalysis(apk_filename, chartjson=None): |
NO = lambda _: False |
FILE_GROUPS = ( |
FileGroup('Native code', r'\.so$', lambda f: 'crazy' not in f), |
- FileGroup('Java code', r'\.dex$', YES), |
- FileGroup('Native resources (no l10n)', r'\.pak$', NO), |
+ FileGroup('Java code', r'^classes.*\.dex$', YES), |
+ FileGroup('Native resources (no l10n)', |
+ r'^assets/.*(resources|percent)\.pak$', NO), |
# For locale paks, assume only english paks are extracted. |
- FileGroup('Native resources (l10n)', r'\.lpak$', lambda f: 'en_' in f), |
- FileGroup('ICU (i18n library) data', r'assets/icudtl\.dat$', NO), |
- FileGroup('V8 Snapshots', r'\.bin$', NO), |
+ # Handles locale paks as bother resources or assets (.lpak or .pak). |
+ FileGroup('Native resources (l10n)', |
+ r'\.lpak$|^assets/.*(?!resources|percent)\.pak$', |
+ lambda f: 'en_' in f or 'en-' in f), |
+ FileGroup('ICU (i18n library) data', r'^assets/icudtl\.dat$', NO), |
+ FileGroup('V8 Snapshots', r'^assets/.*\.bin$', NO), |
FileGroup('PNG drawables', r'\.png$', NO), |
FileGroup('Non-compiled Android resources', r'^res/', NO), |
FileGroup('Compiled Android resources', r'\.arsc$', NO), |
@@ -221,13 +225,18 @@ def PrintApkAnalysis(apk_filename, chartjson=None): |
total_install_size = total_apk_size |
for group in FILE_GROUPS: |
- uncompressed_size = sum(member.file_size for member in found_files[group]) |
- packed_size = sum(member.compress_size for member in found_files[group]) |
- install_size = packed_size |
- install_bytes = sum(member.file_size for member in found_files[group] |
- if group.extracted(member.filename)) |
- install_size += install_bytes |
- total_install_size += install_bytes |
+ uncompressed_size = 0 |
+ packed_size = 0 |
+ extracted_size = 0 |
+ for member in found_files[group]: |
+ uncompressed_size += member.file_size |
+ packed_size += member.compress_size |
+ # Assume that if a file is not compressed, then it is not extracted. |
+ is_compressed = member.compress_type != zipfile.ZIP_STORED |
+ if is_compressed and group.extracted(member.filename): |
+ extracted_size += member.file_size |
+ install_size = packed_size + extracted_size |
+ total_install_size += extracted_size |
ReportPerfResult(chartjson, apk_basename + '_Breakdown', |
group.name + ' size', packed_size, 'bytes') |