Skip to content

chore: target Android 16 (SDK 36) on phone and watch - #65

Merged
SiteRelEnby merged 2 commits into
mainfrom
chore/target-sdk-36
Aug 27, 2026
Merged

chore: target Android 16 (SDK 36) on phone and watch#65
SiteRelEnby merged 2 commits into
mainfrom
chore/target-sdk-36

Conversation

@SiteRelEnby

Copy link
Copy Markdown
Collaborator

Google Play requires new and updated apps to target API 36 from 31 August. Raises compileSdk and targetSdk to 36 on both the phone and watch modules.

minSdk stays at 26. Raising the target declares which behaviours the app opts into; it doesn't drop a single device. Only minSdk would.

The Android 16 gates, and why each is already clear

requirement status
Edge-to-edge is mandatory (opt-out removed at this target) Already opted in via enableEdgeToEdge, and 1.3.1 fixed the regression that left content under the status bar - so the layout is already right for it
Orientation / resizability locks ignored on large screens The portrait lock came off in 1.3.0 when the app learned to rotate. Nothing left to ignore
16 KB memory page support Verified, not assumed - see below

On 16 KB pages

We ship no native code, but two libraries arrive transitively: libandroidx.graphics.path.so and libdatastore_shared_counter.so. I extracted them from the built APK and checked their ELF program headers:

LOAD align: 0x4000   (16384 = 16 KB)

Both already aligned, so nothing to do. Worth recording since it's a Play submission gate and the answer isn't guessable from the dependency list.

Verification

:app:assemblePlayRelease, :app:assembleOpenRelease, :wear:assemblePlayRelease, and both unit-test suites build clean.

Confirmed against the built artifacts rather than the gradle files, via aapt2 dump badging:

app:  minSdkVersion:'26'  targetSdkVersion:'36'  compileSdkVersion='36'
wear: targetSdkVersion:'36'  compileSdkVersion='36'

The only compiler warnings are pre-existing Material3 deprecations unrelated to the SDK level (AutoMirrored icon variants, the newer menuAnchor overload). Worth cleaning up sometime, but not as part of a deadline change.

Device checklist

Behaviour changes at this target are the sort that only show on a real device, and ideally one running Android 16:

  • Android 16 device: no system-enforced edge-to-edge surprises - top bars clear the status bar, bottom content clears the nav bar
  • Rotate to landscape, and on a tablet: fills the screen, no letterbox
  • An older device (Android 8-14) behaves exactly as before
  • Watch app launches, pairs, and switches fronts
  • Widgets still render and their quick-switch taps still work

Google Play requires new and updated apps to target API 36 from 31 August, so
this raises compileSdk and targetSdk to 36 on both modules.

minSdk stays at 26. Raising the target says which behaviours the app opts into;
it does not drop any device.

The behaviour changes Android 16 enforces at this target were already handled:

- Edge-to-edge is mandatory. The app has always called enableEdgeToEdge, and
  1.3.1 fixed the inset regression that left content under the status bar, so
  the layout is already correct for it.
- Orientation and resizability locks are ignored on large screens. The portrait
  lock came off in 1.3.0 when the app learned to rotate, so there is nothing
  left to ignore.
- 16 KB memory pages. We ship no native code of our own, and the two libraries
  that arrive transitively (androidx.graphics.path, datastore_shared_counter)
  already have 16 KB aligned LOAD segments, verified against the built APK.

Both flavours, the wear module, and the unit tests build clean. The only
warnings are pre-existing Material3 deprecations unrelated to the SDK level:
AutoMirrored icon variants and the newer menuAnchor overload.
@SiteRelEnby
SiteRelEnby enabled auto-merge August 27, 2026 21:59
@SiteRelEnby
SiteRelEnby merged commit 73db102 into main Aug 27, 2026
1 check passed
@SiteRelEnby
SiteRelEnby deleted the chore/target-sdk-36 branch August 27, 2026 22:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant