perf(android): [SDK Overhead Reduction 4] Use default timezone directly#5587
Draft
adinauer wants to merge 2 commits into
Draft
perf(android): [SDK Overhead Reduction 4] Use default timezone directly#5587adinauer wants to merge 2 commits into
adinauer wants to merge 2 commits into
Conversation
Avoid constructing a Calendar only to read the default device timezone. The locale passed to Calendar does not affect the timezone value, so TimeZone.getDefault returns the same value with less work during device context collection. Co-Authored-By: Claude <noreply@anthropic.com>
This was referenced Jun 22, 2026
Merged
📲 Install BuildsAndroid
|
Contributor
Performance metrics 🚀
|
This was referenced Jun 22, 2026
Keep the Calendar-based timezone path for Android 13+ locales that carry a Unicode tz extension. This preserves the existing device timezone behavior while keeping the direct default timezone fast path for normal locales. Co-Authored-By: Claude <noreply@anthropic.com>
8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Stack (SDK Overhead Reduction)
📜 Description
Replace the normal Android device timezone path with
TimeZone.getDefault()instead of constructing aCalendarjust to read its timezone.One compatibility detail is preserved: Android 13+
Calendar.getInstance(locale)can honor a locale Unicodetzextension (for exampleen-US-u-tz-usnyc). For those rare locales, the code keeps the Calendar path so the SDK continues reporting the same timezone as before. On Android N through Android 12, and for normal locales without atzextension, the locale did not affect the timezone value.💡 Motivation and Context
Part of the SDK Overhead Reduction stack. In the common case, device context collection only needs the process default timezone.
TimeZone.getDefault()is available on Android API 21 and Java 8, and avoids constructing aCalendarand reading locale configuration just to retrieve the same timezone.The previous API 24+ branch used the first
Configurationlocale, but Android N through Android 12 did not use that locale to select the timezone. Android 13 addedtzUnicode extension support toCalendar.getInstance(locale), so this PR preserves that behavior with a narrow fallback while keeping the fast direct-default path for all other cases.💚 How did you test it?
./gradlew :sentry-android-core:testDebugUnitTest --tests io.sentry.android.core.DeviceInfoUtilTest— all tests passtzextension (en-US-u-tz-usnyc)./gradlew spotlessApply apiDump— no API surface changes📝 Checklist
sendDefaultPIIis enabled.🔮 Next steps
More SDK overhead reduction PRs in this stack.
#skip-changelog