libmapbox-maps.so grew ~38% (+18 MB across ABIs) between 11.30.4 and 11.31.1
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 22/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Domain
- mobile, mobile-dev, performance
Research direction
The report compares stripped libmapbox-maps.so sizes inside android-core-ndk27 AARs (11.30.4 vs 11.31.1) and ELF sections, especially .text. Start from the gl-native / NDK27 build configuration used for those artifacts and whether optimization, inlining, or LTO flags changed. Done is a confirmed cause and a path to shrink the library, not an app-side workaround. This is maintainer-level native build work, not a first-issue patch.
Written by the indexing model from the issue text.
Description
Environment
- Android OS version: All (build-time / APK size issue)
- Devices affected: All
- Maps SDK Version: 11.31.1 and later (
com.mapbox.maps:android-ndk27), compared with 11.30.4
Observed behavior and steps to reproduce
After updating from com.mapbox.maps:android-ndk27:11.30.4 to 11.31.1, with no other native changes, our release APK grew by about 20 MB. Almost all of the difference is libmapbox-maps.so from com.mapbox.maps:android-core-ndk27:
| ABI | 11.30.4 | 11.31.1 | Change |
|---|---|---|---|
| arm64-v8a | 12.93 MB | 17.83 MB | +4.90 MB |
| armeabi-v7a | 8.87 MB | 12.19 MB | +3.32 MB |
| x86 | 14.80 MB | 19.36 MB | +4.56 MB |
| x86_64 | 14.28 MB | 19.35 MB | +5.07 MB |
That is about +18 MB in a universal APK, and about +5 MB per device for arm64. The size stays at this level in 11.32.0. libmapbox-common.so (common 24.30.4 to 24.31.1) is unchanged (6.67 MB to 6.64 MB on arm64-v8a).
To reproduce: compare the jni/<abi>/libmapbox-maps.so sizes inside android-core-ndk27-11.30.4.aar and android-core-ndk27-11.31.1.aar.
Expected behavior
The 11.31.0 and 11.31.1 release notes list small features and bug fixes, so we would expect the native library size to stay close to 11.30.4.
Notes / preliminary analysis
Both libraries are stripped, so this is not debug symbols. Comparing ELF section sizes of the arm64-v8a libmapbox-maps.so:
| Section | 11.30.4 | 11.31.1 | Change |
|---|---|---|---|
.text |
8.45 MB | 12.73 MB | +4.28 MB (+51%) |
.gcc_except_table |
0.43 MB | 0.75 MB | +0.33 MB |
.rela.dyn |
0.69 MB | 0.95 MB | +0.26 MB |
.data.rel.ro |
0.24 MB | 0.33 MB | +0.09 MB |
.eh_frame |
1.51 MB | 1.58 MB | +0.07 MB |
.eh_frame_hdr |
0.39 MB | 0.23 MB | -0.16 MB |
Most of the growth is compiled code in .text, with exception tables almost doubling. That looks more like a change in build configuration (optimization level, inlining or LTO settings) than new functionality. Could you confirm whether the gl-native build flags changed in 11.31, and whether the size can be brought back down?
We have only checked the -ndk27 variant, so we don't know whether the default (NDK 23) artifact is affected as well.
- Dominant language
- Kotlin
- Stars
- 579
- Forks
- 164
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from mapbox/mapbox-maps-android
-
bug :beetle:
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
mapbox/mapbox-maps-android#2727 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 72/100
mapbox/mapbox-maps-android#2738 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 44/100
mapbox/mapbox-maps-android#2737 ·
-
bug :beetle:
Difficulty 4/5 3-5 days Newbie friendliness 38/100
mapbox/mapbox-maps-android#2736 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
mapbox/mapbox-maps-android#2733 ·
All issues in mapbox/mapbox-maps-android
Similar issues
-
needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
home-assistant/android#7690 ·
Maintainers usually reply within 1 day
-
staticAssetsPath follows symlinks outside the directory on WindowsPossibly taken @ybelMekk claimed this today. Openbug security findings
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
navikt/mock-oauth2-server#1132 ·
Maintainers usually reply within 1 day
-
performance solver
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
a:plugin-description
Difficulty 1/5 Under an hour Newbie friendliness 76/100
gradle/plugin-portal-requests#319 ·