Commit d5152b6
authored
[Mono.Android] Bind and enumify API-36 (#9814)
Context: https://developer.android.com/about/versions/16
Context: https://android-developers.googleblog.com/2025/03/the-third-beta-of-android-16.html
Android 16 Beta 3 has been released.
* [API-36 Beta 3 vs. API-35][0]
* [API-36 Beta 3 vs. API-Baklava Beta 2][1]
The Android 16 Preview Program Overview [Timeline and updates][2]
section suggests the following timeline:
* Nov/Dec: Developer Previews
* Jan/Feb: Unstable Betas
* Mar/Apr: Stable Betas
* ???: Final
Additionally, enumify and mark API-36 as "stable", which changes
`net10.0-android` to default to `net10.0-android36.0`.
We still need to decide on our strategy for backporting this to
.NET 9 service releases.
## Notes
APICompat:
- There are several `Android.Runtime.RequiresPermissionAttribute`
fields that have been removed. As we do not consume this
attribute, it does not cause any API breakage.
- Several `[ObsoletedOSPlatformAttribute]` attributes are missing.
These have all been documented as "undeprecated" in Android's
change list: https://developer.android.com/sdk/api_diff/36/changes
PublicAPI:
- Nullable reference type attribute changes (`T?` -> `T!`)
- Method parameter name changes. This is technically a source
breaking change, but something we've never tracked or fixed before.
- Some consts changed "values" in `PublicAPI*.txt` like from
`MediaCodecProfileType.Av1profilemain10hdr10` to
`MediaCodecProfileType.Apvprofile42210hdr10`:
- const Android.Media.MediaCodecInfo.CodecProfileLevel.AV1ProfileMain10HDR10 = Android.Media.MediaCodecProfileType.Av1profilemain10hdr10 -> Android.Media.MediaCodecProfileType
+ const Android.Media.MediaCodecInfo.CodecProfileLevel.AV1ProfileMain10HDR10 = Android.Media.MediaCodecProfileType.Apvprofile42210hdr10 -> Android.Media.MediaCodecProfileType
This is a weird enum that has lots of members with the same values,
and the PublicAPI tooling likely chooses the first alphabetically.
The const *value* did not actually change, just the way it is
listed in `PublicAPI*.txt`:
public enum Android.Media.MediaCodecProfileType {
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android36.0")]
Apvprofile42210hdr10 = 4096,
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android29.0")]
Av1profilemain10hdr10 = 4096,
// …
}
MAUI Integration Tests:
- It looks like the MAUI Integration tests are broken because they
[explicitly target net10.0-android35.0][3] instead of
`net10.0-android`.
The MAUI team will need to update this when our changes
flow to them.
[0]: https://developer.android.com/sdk/api_diff/36/changes
[1]: https://developer.android.com/sdk/api_diff/36-incr/changes
[2]: https://developer.android.com/about/versions/16/overview
[3]: https://github.com/dotnet/maui/blob/c451130571777aef5d9fa2737789dd987430e6dc/Directory.Build.props#L1581 parent 224ad26 commit d5152b6
File tree
22 files changed
+5385
-207197
lines changed- build-tools
- Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks
- api-merge
- automation/yaml-templates
- manifest-attribute-codegen
- xaprepare/xaprepare/ConfigAndData
- Dependencies
- src
- Mono.Android
- Profiles
- PublicAPI/API-36
- Xamarin.Android.Build.Tasks
- Microsoft.NET.Sdk.Android
- Tests/Xamarin.Android.Build.Tests
- Xamarin.Android.NamingCustomAttributes/Android.App
- tests/api-compatibility
22 files changed
+5385
-207197
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | | - | |
33 | | - | |
34 | | - | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | | - | |
| 38 | + | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
62 | | - | |
| 62 | + | |
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| |||
Lines changed: 14 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
99 | 103 | | |
100 | 104 | | |
101 | 105 | | |
| |||
168 | 172 | | |
169 | 173 | | |
170 | 174 | | |
| 175 | + | |
171 | 176 | | |
172 | 177 | | |
173 | 178 | | |
| |||
221 | 226 | | |
222 | 227 | | |
223 | 228 | | |
| 229 | + | |
224 | 230 | | |
225 | 231 | | |
226 | 232 | | |
| |||
266 | 272 | | |
267 | 273 | | |
268 | 274 | | |
| 275 | + | |
269 | 276 | | |
270 | 277 | | |
271 | 278 | | |
| |||
283 | 290 | | |
284 | 291 | | |
285 | 292 | | |
| 293 | + | |
286 | 294 | | |
287 | 295 | | |
288 | 296 | | |
| |||
354 | 362 | | |
355 | 363 | | |
356 | 364 | | |
| 365 | + | |
357 | 366 | | |
358 | 367 | | |
359 | 368 | | |
| |||
372 | 381 | | |
373 | 382 | | |
374 | 383 | | |
| 384 | + | |
375 | 385 | | |
376 | 386 | | |
377 | 387 | | |
| |||
656 | 666 | | |
657 | 667 | | |
658 | 668 | | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
659 | 673 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
29 | 30 | | |
30 | 31 | | |
31 | 32 | | |
| |||
136 | 137 | | |
137 | 138 | | |
138 | 139 | | |
| 140 | + | |
139 | 141 | | |
140 | 142 | | |
141 | 143 | | |
| |||
174 | 176 | | |
175 | 177 | | |
176 | 178 | | |
| 179 | + | |
177 | 180 | | |
178 | 181 | | |
179 | 182 | | |
| |||
195 | 198 | | |
196 | 199 | | |
197 | 200 | | |
| 201 | + | |
| 202 | + | |
198 | 203 | | |
199 | 204 | | |
200 | 205 | | |
| |||
205 | 210 | | |
206 | 211 | | |
207 | 212 | | |
| 213 | + | |
208 | 214 | | |
209 | 215 | | |
210 | 216 | | |
| |||
354 | 360 | | |
355 | 361 | | |
356 | 362 | | |
| 363 | + | |
357 | 364 | | |
358 | 365 | | |
359 | 366 | | |
| |||
375 | 382 | | |
376 | 383 | | |
377 | 384 | | |
| 385 | + | |
378 | 386 | | |
379 | 387 | | |
380 | 388 | | |
| |||
397 | 405 | | |
398 | 406 | | |
399 | 407 | | |
| 408 | + | |
400 | 409 | | |
401 | 410 | | |
402 | 411 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
| 49 | + | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
75 | | - | |
76 | | - | |
| 75 | + | |
| 76 | + | |
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
38 | | - | |
| 37 | + | |
39 | 38 | | |
40 | 39 | | |
41 | 40 | | |
| |||
0 commit comments