From 4e3a9ee5313f622bb8b24ab989f0681f7208524e Mon Sep 17 00:00:00 2001 From: Andrzej Hunt Date: Wed, 28 Sep 2016 10:04:48 -0700 Subject: [PATCH] Bug 1306021 - Remove unneeded R.java copies to reduce field wastage r=nalexander MozReview-Commit-ID: GHYCqzaMaGe --HG-- extra : amend_source : bf65ed253bcc353c7fb77fa5029d85e862695491 --- mobile/android/base/Makefile.in | 19 ++++++++++++++----- mobile/android/base/moz.build | 11 +++++------ 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/mobile/android/base/Makefile.in b/mobile/android/base/Makefile.in index d3392b40d11f..df2fed4fcf52 100644 --- a/mobile/android/base/Makefile.in +++ b/mobile/android/base/Makefile.in @@ -402,21 +402,30 @@ all_resources = \ generated/org/mozilla/gecko/R.java: .aapt.deps ; +# Only add libraries that contain resources here. We (unecessarily) generate an identical R.java which +# is copied into each of these locations, and each of these files contains thousands of fields. +# Each unnecessary copy therefore wastes unnecessary fields in the output dex file. +# Note: usually proguard will help clean this up after the fact, but having too many fields will cause +# dexing to fail, regardless of any later optimisations proguard could later make to bring us back +# under the limit. +# Ideally we would fix our aapt invocations to correctly generate minimal copies of R.java for each +# package, but that seems redundant since gradle builds are able to correctly generate these files. + # If native devices are enabled, add Google Play Services, build their resources -generated/android/support/v4/R.java: .aapt.deps ; +# (no resources) generated/android/support/v4/R.java: .aapt.deps ; generated/android/support/v7/appcompat/R.java: .aapt.deps ; generated/android/support/v7/cardview/R.java: .aapt.deps ; generated/android/support/design/R.java: .aapt.deps ; generated/android/support/v7/mediarouter/R.java: .aapt.deps ; generated/android/support/v7/recyclerview/R.java: .aapt.deps ; -generated/android/support/customtabs/R.java: .aapt.deps ; -generated/android/support/v7/palette/R.java: .aapt.deps ; +# (no resources) generated/android/support/customtabs/R.java: .aapt.deps ; +# (no resources) generated/android/support/v7/palette/R.java: .aapt.deps ; generated/com/google/android/gms/R.java: .aapt.deps ; generated/com/google/android/gms/ads/R.java: .aapt.deps ; generated/com/google/android/gms/base/R.java: .aapt.deps ; generated/com/google/android/gms/cast/R.java: .aapt.deps ; -generated/com/google/android/gms/gcm/R.java: .aapt.deps ; -generated/com/google/android/gms/measurement/R.java: .aapt.deps ; +# (no resources) generated/com/google/android/gms/gcm/R.java: .aapt.deps ; +# (no resources) generated/com/google/android/gms/measurement/R.java: .aapt.deps ; gecko.ap_: .aapt.deps ; R.txt: .aapt.deps ; diff --git a/mobile/android/base/moz.build b/mobile/android/base/moz.build index fc6617663488..4f9f05057d4c 100644 --- a/mobile/android/base/moz.build +++ b/mobile/android/base/moz.build @@ -62,7 +62,7 @@ resjar.generated_sources += [ if CONFIG['ANDROID_SUPPORT_V4_AAR']: ANDROID_EXTRA_PACKAGES += ['android.support.v4'] ANDROID_EXTRA_RES_DIRS += ['%' + CONFIG['ANDROID_SUPPORT_V4_AAR_RES']] - resjar.generated_sources += ['android/support/v4/R.java'] +# (no resources) resjar.generated_sources += ['android/support/v4/R.java'] if CONFIG['ANDROID_APPCOMPAT_V7_AAR']: ANDROID_EXTRA_PACKAGES += ['android.support.v7.appcompat'] ANDROID_EXTRA_RES_DIRS += ['%' + CONFIG['ANDROID_APPCOMPAT_V7_AAR_RES']] @@ -82,12 +82,11 @@ if CONFIG['ANDROID_RECYCLERVIEW_V7_AAR']: if CONFIG['ANDROID_CUSTOMTABS_AAR']: ANDROID_EXTRA_PACKAGES += ['android.support.customtabs'] ANDROID_EXTRA_RES_DIRS += ['%' + CONFIG['ANDROID_CUSTOMTABS_AAR_RES']] - resjar.generated_sources += ['android/support/customtabs/R.java'] +# (no resources) resjar.generated_sources += ['android/support/customtabs/R.java'] if CONFIG['ANDROID_PALETTE_V7_AAR']: ANDROID_EXTRA_PACKAGES += ['android.support.v7.palette'] ANDROID_EXTRA_RES_DIRS += ['%' + CONFIG['ANDROID_PALETTE_V7_AAR_RES']] - resjar.generated_sources += ['android/support/v7/palette/R.java'] - +# (no resources) resjar.generated_sources += ['android/support/v7/palette/R.java'] resjar.javac_flags += ['-Xlint:all'] @@ -880,12 +879,12 @@ if CONFIG['MOZ_ANDROID_GCM']: if CONFIG['ANDROID_PLAY_SERVICES_GCM_AAR']: ANDROID_EXTRA_PACKAGES += ['com.google.android.gms.gcm'] ANDROID_EXTRA_RES_DIRS += ['%' + CONFIG['ANDROID_PLAY_SERVICES_GCM_AAR_RES']] - resjar.generated_sources += ['com/google/android/gms/gcm/R.java'] +# (no resources) resjar.generated_sources += ['com/google/android/gms/gcm/R.java'] if CONFIG['ANDROID_PLAY_SERVICES_MEASUREMENT_AAR']: ANDROID_EXTRA_PACKAGES += ['com.google.android.gms.measurement'] ANDROID_EXTRA_RES_DIRS += ['%' + CONFIG['ANDROID_PLAY_SERVICES_MEASUREMENT_AAR_RES']] - resjar.generated_sources += ['com/google/android/gms/measurement/R.java'] +# (no resources) resjar.generated_sources += ['android/support/v7/palette/R.java'] if CONFIG['MOZ_INSTALL_TRACKING']: gbjar.extra_jars += [