2026-07-15
Annotation: v1.11.0-alpha01
July 15, 2026
androidx.annotation:annotation-*:1.11.0-alpha01 is released. Version 1.11.0-alpha01 contains these commits.
API Changes
- Allow
@DoNotInlineto be applied to fields. (I99120, b/521434897)
Bug Fixes
- Add
allowshrinkingto@DoNotInlineso that annotated methods can be removed if the function isn't reachable. (Id2c8c)
AndroidX releases Stay organized with collections Save and categorize content based on your preferences.:
Compose Material3: v1.5.0-alpha24
July 15, 2026
androidx.compose.material3:material3-*:1.5.0-alpha24 is released. Version 1.5.0-alpha24 contains these commits.
Features
- Add new scroll variant for expressive
TimePicker(I46f6b) - Added a new
material3-ripplelibrary (I1b3a3), which adds support for drawing ripples that visually display focus using inset focus rings instead of an opacity layer. This new library acts as a replacement formaterial-ripple, and expected usage is similar:- If you are using
material3itself, use the built-inmaterial3ripple configuration that integrates with the theme and usesmaterial3-rippleinternally as an implementation detail. - If you were using
material-rippledirectly or want to support inset focus rings without depending onmaterial3, use the newmaterial3-ripplelibrary directly.
- If you are using
API Changes
- Changed scrollbar
ScrollIndicatorStateparameter to be non-nullable. (Iab7c7, b/529445739) - Re-add
@ExperimentalMaterial3Apiannotation toAppBarWithSearchAPIs. (I0b61a) - Promoted
SearchBarStateand slot-basedSearchBarAPIs to stable. Deprecated olderSearchBarAPIs using expanded/onExpandedChange. (Ia3793)
Bug Fixes
- Fixed a rendering delay issue where the
RichTooltipandPlainTooltipcarets would appear late during the entrance animation. (I874b6, b/395753083) - Update margin values for Input/Scroll variant of
TimePicker. (I83f00) SplitButtonmeasure trailing button first to guarantee space. (Id3a1e)- Fixed an accessibility issue where Switch Access users could not activate editable text fields inside
ExposedDropdownMenuBox. (I0ea17) - Fixed talkback announcement order in
TextFieldandOutlinedTextFieldwhen a prefix or suffix is present. (Ie79e7) - Update
TimePickermargins and colon placement (I6bfeb) - Fix focus order in Talkback for
ScrollField. (I4ca9f, b/526870141) - Updated Compose dependencies in Material 3 to 1.12.0-beta01. (Ie9417)
- Tooltips are now clamped to the window boundaries to prevent them from being cut off on small screens or under large font configurations. (I421ff)
- Update
ScrollFieldwith more expressive number transitions and adjust sizing/typography (Ic1614)
remote compose: v1.0.0-alpha15
July 15, 2026
androidx.compose.remote:remote-*:1.0.0-alpha15 is released. Version 1.0.0-alpha15 contains these commits.
API Changes
- Added
rememberRemoteImageBitmap(url)and exposedrememberMutableRemoteImageBitmappublicly to support non-named remote bitmaps. (I7b960) - Exposed
RemoteStateScope.remotePathandRemotePathScopeAPIs for building paths via DSL. (I9e2fe, b/513228889)
Bug Fixes
- Removed restricted LIBRARY_GROUP overload of
rememberRemoteDocument. (Ifd9b4, b/532022244, b/532022244)
Glance Wear: v1.0.0-alpha14
July 15, 2026
androidx.glance.wear:wear:1.0.0-alpha14, androidx.glance.wear:wear-core:1.0.0-alpha14, and androidx.glance.wear:wear-tooling-preview:1.0.0-alpha14 are released. Version 1.0.0-alpha14 contains these commits.
API Changes
- We have added
RoundAllWidgetPreviewParams,RoundSmallWidgetPreviewParams, andRoundLargeWidgetPreviewParamspreview parameter providers for fully rounded Glance Wear widgets. (If5336, b/512405233)
New features
- We have set up and added Linter library for Glance Wear widgets.(If4218, b/527402079)
- Added a lint check to ensure that subclasses of
GlanceWearWidgetServiceexplicitly declare their associated widget class using the@AssociateWithGlanceWearWidgetannotation. (Idc575, b/477024153)
- Added a lint check to ensure that subclasses of
- We have improved backwards compatiblity for widgets running on older Hosts by propagating supported operations via
WearWidgetParamsand adding filtering the profile of allowed operations to those. (Ib0a1b, I83cb1, [b/526716195])
Ink: v1.1.0-alpha05
July 15, 2026
androidx.ink:ink-*:1.1.0-alpha05 is released. Version 1.1.0-alpha05 contains these commits.
API Changes
- Experimental release of new eraser type, known as "partial stroke", "mesh editing", or "pixel" eraser, that edits stroke geometry and splits strokes rather than deleting entire strokes or masking them with the background color. Known issues include a lack of anti-aliasing on the cut edges, and no serialization APIs to save the erased
PartitionedMeshresults, which will both come in future releases. - Add missing Throws annotation to
StrokeInputBatchSerialization.decode, requiring update from Java consumers of that method. (I83473, b/522256938)
Bug Fixes
- Fix native crash from numerical precision issue (I2e1f0, 6618e69, b/523190724)
- Discard degenerate extrusions in
BrushTipExtruder(469b629) - Fix
RejectedExecutionExceptioninInProgressStrokesView(b/526696762)
Loader: v1.2.0-rc01
July 15, 2026
androidx.loader:loader:1.2.0-rc01 is released. Version 1.2.0-rc01 contains these commits.
Navigation3: v1.2.0-alpha06
July 15, 2026
androidx.navigation3:navigation3-*:1.2.0-alpha06 is released. Version 1.2.0-alpha06 contains these commits.
Bug Fixes
- Fixed
UriDeepLinkMatcherdocumentation on uri fragments to clarify that fragments with wildcards will match any input but the input does not get extracted as arguments. (I5ad9b, b/524677091) - Fixed
UriDeepLinkMatcherfailing to match with a request if the uri pattern does not contain a scheme or does not start with double slash. For example,www.example.com/homewill now match withhttp://www.example.com/home. (Ia6b65, b/522791926)
navigationevent: v1.2.0-alpha02
July 15, 2026
androidx.navigationevent:navigationevent-*:1.2.0-alpha02 is released. Version 1.2.0-alpha02 contains these commits.
API Changes
- Add
hasEnabledHandlersproperty toNavigationEventInputto allow developers to query the current handler state directly without relying on callbacks. (I8ecec)
Bug Fixes
- Fix fallback propagation in
NavigationEventDispatcher. (I015f8, b/531988076)
Tracing: v2.0.0-beta01
July 15, 2026
androidx.tracing:tracing-*:2.0.0-beta01 is released. Version 2.0.0-beta01 contains these commits.
API Changes
PerfettoCaptureandPerfettoTraceRulecan now capture in-process traces and merge them for a target package. (I9a00b, b/497959820)androidx.benchmarknow has aminSdkof 24. (Ic2a85)
Bug Fixes
- Tracing 2.0-beta01 release. (I1b162)
- Use platform specific thread identifiers when generating track information. (I6ba64)
Version 2.0.0-alpha09
June 23, 2026
androidx.tracing:tracing-*:2.0.0-alpha09 is released. Version 2.0.0-alpha09 contains these commits.
API Changes
- Minor API change in
Tracerto diambiguate betweeninstant(...)andwriteInstant(...). (I0935a) - Add support for propagation tokens in instant events. (I99f81)
- Allow full usage of Perfetto flows in the experimental manual context propagation API. (I20cb6)
- Defer creation of the
BufferedSinkandProtoWriterinTraceSink. (Ibd098) - Make
Tracerdiscovery simple and pluggable for both Java and Android Libraries. (I99111) - Make it easy for library developers to discover an instance of
TraceDriverthat can be used for in-process tracing. (Ia503e)
Version 2.0.0-alpha08
May 19, 2026
androidx.tracing:tracing-*:2.0.0-alpha08 is released. Version 2.0.0-alpha08 contains these commits.
API Changes
- Add the ability to discover and override instances of
TraceDriverto be used process wide. (I3f715) - Rename
Tracer.recordExceptiontoTracer.recordExceptionAndThrow. (I4411f, b/503092450)
Version 2.0.0-alpha07
May 06, 2026
androidx.tracing:tracing-*:2.0.0-alpha07 is released. Version 2.0.0-alpha07 contains these commits.
API Changes
- Add a API to obtain a stub tracer that can be used when tracing is disabled. (I84c98)
- Make tracing lifecycle consistent with system tracing. (Ib391b)
- Counter APIs are now entirely allocation free. (I5e73a)
Bug Fixes
- Fixed a keep rule for the Perfetto SDK (
tracing-perfetto) which ensures that the Perfetto SDK can be enabled. (I1d227) - Add the ability to trace
flush()events. (I38014, b/495852704)
Version 2.0.0-alpha06
April 22, 2026
androidx.tracing:tracing-*:2.0.0-alpha06 is released. Version 2.0.0-alpha06 contains these commits.
API Changes
- Unrestrict
File.createPerfettoFile()so others can safely create sinks. When ablock()throws an exception intrace/traceCoroutinecreate aninstantevent for the exception with the metadata representing the corresponding stack trace elements. (I682e5, b/501536851, b/437166283) - Add a
setCounter(...)overload that takes a JavaLongtype. (Ic0469, b/356082604) - Tracing 2.0 now uses
Longfor platform specificThreadidentifiers. (I67277)
Bug Fixes
- Improve documentation for
AttributeEntry.reset(). (I5d3a1, b/496079439)
Version 2.0.0-alpha05
April 08, 2026
androidx.tracing:tracing-*:2.0.0-alpha05 is released. Version 2.0.0-alpha05 contains these commits.
API Changes
TraceSinkfactory functions now returnTraceSinkand notAbstractTraceSink. Files now have a unique suffix. We make sure that we can atomically create a new file that will be used to store trace packets. (I4c4aa, b/496298726)- Simplify and make coroutine context propagation faster. (Ia62db)
- Introduce the optional
attributes()when constructing aTraceDriverthat provides a way to add metadata pertaining to a trace. (Ia147e)
Bug Fixes
- Process threads and counter tracks are now synchronized. This fixes exceptions of the form:
java.lang.NullPointerException: Cannot invoke "androidx.tracing.ThreadTrack.flush$tracing()" because "threadTrack" is null - Avoid emitting sink events when tracing is disabled.
Version 2.0.0-alpha04
March 25, 2026
androidx.tracing:tracing-*:2.0.0-alpha04 is released. Version 2.0.0-alpha04 contains these commits.
API Changes
- Make
AbstractTraceDriverreally abstract, and move thePerfettoimplementation into thetracing-wiremodule. (Ie2f59) - Give more descriptive names to base implementations to avoid using the wrong one. For developers previously extending
androidx.tracing.Trace{Sink|Driver}they will now need to switch to usingAbstractTrace{Sink|Driver}. (I9b46d)
Version 2.0.0-alpha03
March 11, 2026
androidx.tracing:tracing-*:2.0.0-alpha03 is released. Version 2.0.0-alpha03 contains these commits.
API Changes
- Added an experimental
InMemoryRingBufferTraceSinkimplementation which allows setting a capacity restriction and avoids writing to disk unless explicitly asking for it. (I1dc44, b/484409653, I65a37, b/484409653) - Fix race condition when emitting trace events for coroutine suspends and resumes. (Ie145e)
Bug Fixes
androidx.tracingno longer attempts to draw connections from parent to child coroutines in traces by default. This has been confusing, since the underlying trace format doesn't support1:NandN:1connections, resulting in a nest of arrows due to ambiguity about which coroutine slice connects to what. You can still manually opt-in to propagation with thetokenForManualPropagation()API when it's important for your use case. (Ib2cf9)
Version 2.0.0-alpha02
February 25, 2026
androidx.tracing:tracing-*:2.0.0-alpha02 is released. Version 2.0.0-alpha02 contains these commits.
New Features
- Improved performance for the Perfetto Trace Sink implementation by using the
suspendCoroutineUninterceptedOrReturnintrinsic (2ea97b).
Version 2.0.0-alpha01
January 28, 2026
androidx.tracing:tracing-*:2.0.0-alpha01 is released. Version 2.0.0-alpha01 contains these commits.
New Features
AndroidX Tracing 2.0 introduces a significant new API surface for low-overhead, in-process tracing, as a complement to the existing android.os.Tracing-based APIs in Tracing 1.0. The new APIs are available both on Android and host JVM, which enables host tools to emit low overhead traces for performance analysis, using the same standard Perfetto trace format.
Emitted traces are supported both by Android Studio and Perfetto, and can be recorded with an expanded feature set including tagging slices with metadata (such as function arguments!), and coroutine context trace propagation.
This initial alpha is only meant for in-process tracing workflows, and does not yet integrate with Android OS tracing or Studio Profiler System Tracing - these will be coming in a future alpha.
/** * A [TraceSink] defines how traces are serialized. * * [androidx.tracing.wire.TraceSink] uses the `Perfetto` trace packet format. */ fun createSink(): TraceSink { val outputDirectory = File(/* pathname = */ "/tmp/perfetto") // We are using the factory function defined in androidx.tracing.wire return TraceSink( sequenceId = 1, directory = outputDirectory ) }/**
* Creates a new instance of [androidx.tracing.TraceDriver].
*/
fun createTraceDriver(): TraceDriver {
// We are using a factory function from androidx.tracing.wire here.
//isEnabledcontrols whether tracing is enabled for the application.
val driver = TraceDriver(sink = createSink(), isEnabled = true)
return driver
}
fun main() {
val driver = createTraceDriver()
driver.use {
driver.tracer.trace(category = CATEGORY_MAIN, name = "basic") {
Thread.sleep(100L)
}
}
}
API Changes
- Make
Tracera property of theTraceDriver. (Iabd9b) - Add support for manual context propagation. (I899ff)
- Add the ability to add call stack information in a trace section. (If6a1b)
- Introduce the new
androidx.tracingAPIs. (I5102b) - Allow instant events to contain metadata, and add counters to instants & counters. (Ia2ed3)
- Reduce the surface area of the API annotated with
@DelicateTracingApi. Nothing in the top level API should require the use of@DelicateTracingApi. (I565e0) - Simplify context propagation by unifying
PropagationTokens. (Iab839) - Stabilize
BlackHoleAPIs inandroidx.benchmark. (I2b67e, b/451749438) - Add the ability to annotate the trace section as a root span. (Ic8365)
- Allow the developer to explicit about propagation tokens. (I06bb1)
- Renamed
MetadataHandleCloseabletoEventMetadataCloseable, andMetadataHandletoEventMetadata. Also added an optionalCoroutinePropagationTokenargument toTracer.traceCoroutineto allow the developer to explicitly specify the propagation token to use. (I219f7, b/454147392) - Introduced a new
Tracerentry point which gives developers a lot more control on how to trace. (I24a7b) - Add the ability to control how context propagation happens in a
SliceTrack. (Ieb8fc) fillCountinPooledTracePacketArrayis now correctly marked volatile. (I75d2c)- Mark
MetadataEntry@DelicateTracingApi. (I8c723) - Add the ability for a
TraceSinkto be able to handle lost trace events (when the pool is exhausted). (I3b374) - Add the ability to conditionally emit trace events based on a predicate. (I621b4)
- Add the ability to add categories to a trace event. (I449c2)
- Mark
TraceEvent,PooledTracePacketArrayasDelicateTracingApi. (Iaac6d) - Make
ProcessTrack.id,ThreadTrack.id,ThreadTrack.name,CounterTrack.nameandCounterTrack.parentpublic. (I81210) - Renamed the
SliceTrack.traceFlow()API totraceCoroutine(). (I79ad0) - Add the ability to add contextual information to slices via debug annotations in a Perfetto trace. (Ic2b56)
- Make it possible to construct an instance of
WireTraceSinkwith aFile/OutputStream. (Iecea0) - Removing obsolete
@RequiresApi(21)annotations (Ic4792)
Wear:
Wear Compose: v1.7.0-alpha06
July 15, 2026
androidx.wear.compose:compose-*:1.7.0-alpha06 is released. Version 1.7.0-alpha06 contains these commits.
API Changes
- Move
ButtonContent,AppCardContentandTitleCardContentcomposables for Material3 intoButtonDefaultsandCardDefaultsobjects respectively. (I8d589, b/527889640) - Remove default value from
Modifier.oneHandedGesturegestureLabelparameter (Ica100, b/527068051) - Rename
gestureLabeltoonGestureLabelinModifier.oneHandedGestureand make it nullable, for consistency with othercontentDescriptionparameters (I952a8, b/527068051) - Introduce
OneHandedGestureIndicatorStateto coordinate visibility and animation betweenModifier.oneHandedGesture()and gesture indicators. ReplaceInteractionSourcewith this state-driven approach for improved lifecycle control. AddwrapAroundparameter toOneHandedGestureDefaults.scrollToNextPagefor consistency with other default gesture scroll functions. (I9e1e3, b/522761843)
Bug Fixes
- Clarify
interactionSourcedocumentation forModifier.oneHandedGestureto state which interactions are emitted (I2dc8d) - Support for one-handed gestures in
AlertDialogby default has been removed temporarily, due to issues with the dependency on the Wear SDK in consumers that are otherwise not using the Wear SDK or one-handed gestures. (Ib19e0, b/503841738) - Enhanced
TransformingLazyColumnto support placement animations for items moving out of the viewport, allowing them to slide off-screen instead of fading out. Also fixed a visual snapping issue where dynamically scaled items would instantly snap to their target height during placement animations (I89d84, b/525071281) - Use index-based
ItemInfoinfirstVisibleItemLayoutItemInfo. (I256e3, b/527881678) - Fixed
TimePickeranimation behavior when Reduce Motion is enabled. (Ic9150, b/467288916)
Webkit:
WorkManager: v2.12.0-alpha01
July 15, 2026
androidx.work:work-*:2.12.0-alpha01 is released. Version 2.12.0-alpha01 contains these commits.
API Changes
- Added
WorkMetricsQueryAPI to filter metric info (I132b4, b/522338412) - Implement
workerDurationMillisandtotalRuntimeMillisinWorkMetricsInfoto track worker execution duration and total cumulative runtime. (I57f65, b/507212208) - Added
retentionDuration(Duration, API 26+) andretentionTime/retentionTimeUnit(API 23+) constructors toWorkMetricsInfoRepositoryto allow pruning old metrics, defaulting to 7 days. (Ifdf2e, b/522338412) - Add flow API for finished
WorkMetricsInfo(I11ec2, b/507212999) - Add missing experimental annotation to
work-analyticsclasses (I1a055, b/528112001) androidx.benchmarknow has aminSdkof 24. (Ic2a85)- Implement
stopReasonCounts,explicitRetryCount, andrunAttemptCountinWorkMetricsInfo. (I95498, b/507212225) - Implement
WorkMetricsInfoAPIs and database schema to track work execution history, including enqueue, unblock, first start and finish timestamps. (I163e9, b/479123623, b/507212482) - Add experimental API to disable in-process opportunistic scheduling (I1062d, b/513299442)
- Add experimental API to listen to
WorkManagerscheduling events (I14487, b/448485695) - Add worker class name to
WorkInfo(I57da1, b/448485695) - Add more granular annotation to experimental event listener API (Icaa8e, b/448485695)
- Add a new API that allows retrieving nullable string arrays from instances of
Dataclass (I78bc3, b/383071402) - Create
work-analyticsartifact (Idc7c2, b/465357612) - Add experimental API to set a listener for worker execution events (I06b38, b/448485695)
Bug Fixes
- Use
Dispatchers.Defaultinstead of custom thread pool for the default WM configuration (Ic2c42, b/506239869) - Improve and add tests to manage bad workers (I500f3, b/506239869)
- Fixed a
ConcurrentModificationExceptioninWorkManager'sexecution listener dispatch. (I4cc18, b/506239869) - Fixed process crashes in
WorkManagerwhen registering network constraint callbacks due to missingACCESS_NETWORK_STATEpermissions. (I7045a, b/446013734) - Improve log detail when DEBUG logs are enabled (Id9e5f, b/491209738)
- Fix bug with retried work failing to schedule with the OS (I452fc, b/504085166, b/517339607)
- Fixed
Configuration.Providerreference doc link (Ieedb7, b/340913210) - Made event hooks not blocking for operations (I27cd8, b/448485695)
WorkManagernow retries initialization on genericSQLiteException. (I98436, b/485368721)- Fixed an issue where developers could receive a nonexistent stop reason code of 0 by mapping it to
WorkInfo.STOP_REASON_UNKNOWN. (I0b175, b/479314734) - Fix additional issues with network calls failing from background even when network constraint are met (Ic7f73, b/445324855)
- Handle security exception in
NetworkStateTracker. (I4b7ca, b/480123154) - Ensure execution hooks get an accurate
WorkInfosnapshot (I25ebb, b/448485695) - Fixed an issue where background network requests could fail on Android 15. (I60f24, I8a0a2, b/452081708) (I5abb7, b/465016918)
- Fixed an issue where periodic
WorkRequests that fail due to an uncaught exception would not be rescheduled. (Ia6b92, b/443879071)
ARCore for Jetpack XR: v1.0.0-beta01
July 15, 2026
androidx.xr.arcore:arcore-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.
API Changes
- Updated resizable modifier to use a
ResizePolicyinstead of two modifiers (I7fb0f, b/496257436, b/519672992) - Added movable overload with
movePolicyparam and deprecatetransformingMovableandmovable(Ic88c1, b/481781189) - Removed
TrackingState.TRACKING_DEGRADED from public API surface and map runtime degraded states to PAUSED instead. UpdateTrackingStateto use enums instead of int values for string conversion and runtime conversion. (I3eb5b, b/524326338) - Converted Session.create to a suspend function. (I5d27f)
- Deprecated the
ProjectedPermissionsResultContract(I141d5, b/515699436) - Updated
AnchorEntityto be calledAnchorSpace(Ifa95e, b/513619219)
Jetpack Compose for XR: v1.0.0-alpha16
July 15, 2026
androidx.xr.compose:compose:1.0.0-alpha16 and androidx.xr.compose:compose-testing:1.0.0-alpha16 are released. Version 1.0.0-alpha16 contains these commits.
API Changes
- Remove
ComponentOverrideAPIs (I820c4) GltfAnimationandSpatialGltfModelAnimationAPIs have been marked as experimental. Some properties were turned into getters. (I8d689, b/524771027)- Fixed overall density behavior by establishing the conversion between Meter and pixels to be constant. Deprecated Meter.kt,
Session.scene.virtualPixelDensitycan now be used as an alternative. (I122ff, b/430097855, b/474168798) - Update resizable modifier to use a
ResizePolicyinstead of two modifiers (I7fb0f, b/496257436, b/519672992) - Added a tolerance:
Dp = Dp(0.5f)parameter to all public floating-point dimension and position equality assertions inSubspaceAssertions.kt. The default tolerance behavior (0.5.dp) is fully documented. (I266cb, b/521491915) - Added movable overload with
movePolicyparam and deprecatetransformingMovableandmovable(Ic88c1, b/481781189) - Added new non-interactive variants of standard list item and segmented list item which follow Material Expressive specifications. The non-expressive version has been deprecated. (Ide4de, b/491994186)
- For Subspace, the
allowUnboundedSubspaceparameter is now deprecated and hidden. Unbounded behavior should now be achieved by usingSubspaceModifier.requiredSizeIn(maxWidth=Dp.Infinity,maxHeight=Dp.Infinity,maxDepth=Dp.Infinity) on the Subspace modifier. TheallowUnboundedSubspaceparameter has been removed fromFollowingSubspace. (Ia72ae, b/433624021) - Converted
Session.createto a suspend function. (I5d27f) - Added
SubspaceModifier.spatializedAudioOutputwhich allows spatializing audio playback throughExoPlayeror through aSoundEffectPlayer(I46697, b/489421980, b/497867019) - Updated
ComponentActivity.requestHomeSpace()andrequestFullSpace()to returnSpaceRequestResultfor status verification. (If1672) - Updated
AnchorEntityto be calledAnchorSpace(Ifa95e, b/513619219) - Unrestricted
fromResourcemethod fromSpatialGltfModelSource(I1f5a1, b/503047416) SubspaceSemanticsMatchermembers are public: thedescriptionproperty, companion factory methods (expectValue,keyIsDefined,keyNotDefined), member functions (matches,matchesAny), and operators (and,or,not). (I972a4, b/460427288)- Updated
SubspaceModifier.semantics,SubspaceModifier.testTag,SubspaceSemanticsInfo,SubspaceSemanticsModifierNodeto use curated spatial semantics types. (I80dea, b/460427288) - Renamed
positiontoaligninSpatialAlignmentand removed individual directional offset methods in favor of a unifiedalignAPI. (I9bdb2, b/479805937) - Removed Deprecated Space Mode APIs from
SpatialConfiguration. (I1ef5c, b/458712461) - Introduced
SubspaceSemanticsConfiguration. This is a configuration of semantics properties for a Spatial node. This class safely exposes query methods for 3D semantics without leaking foundational 2D semantic capabilities to external consumers. (Id025e, b/460427288) - Introduced
SubspaceSemanticsPropertyReceiver: a dedicated wrapper that limits 3D layout container properties to valid fields (initiallytestTagandcontentDescription). (I5cf5c, b/460427288)
Bug Fixes
- Updated the Semantic modifier's
hasContentDescriptionto default to substring matching. (I08214) - Added restricted
FollowBehavior.ExponentialDecay()which provides a soft follow behavior guided by elastic physics. (I7449c, b/485639909, b/500493335)
Most APIs will be affected by this. Specifically, the LocalSession CompositionLocal and all CompositionLocals that are dependent on LocalSession (e.g. LocalSpatialConfiguration, LocalSpatialCapabilities, etc.) will now resolve to null or its non-XR versions before the Session is initialized.
Once the Session is available, recomposition will be triggered with the correct state. (I0cfa4, b/514712835, b/514712835)
- Clarified documentation for
ComponentActivity.requestHomeSpaceandComponentActivity.requestFullSpaceregarding suspend behavior, cancellation, and concurrency. Updated tests to verifyCancellationExceptionpropagation. (I22f75, b/493289528)
XR Projected: v1.0.0-alpha10
July 15, 2026
androidx.xr.projected:projected:1.0.0-alpha10, androidx.xr.projected:projected-binding:1.0.0-alpha10, and androidx.xr.projected:projected-testing:1.0.0-alpha10 are released. Version 1.0.0-alpha10 contains these commits.
API Changes
- Deprecated the
ProjectedPermissionsResultContract. UseProjectedActivityCompat.requestPermissions()instead. (I141d5, b/515699436) - Added the
requestPermissions()API to theProjectedActivityCompat(I2edb5, b/433523713, b/508189550)
XR Runtime: v1.0.0-beta01
July 15, 2026
androidx.xr.runtime:runtime-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.
API Changes
- Added
SessionTestRuleto runtime-testing. This API (I672bc, b/516876144) - Converted Session.create to a suspend function. (I5d27f)
- Added support for the lifecycle to the
XrDeviceTestRule(I2319c, b/512140272) - Removed unused
ExperimentalXrDeviceLifecycleApiexperimental opt-in annotation. (I46d95) - Add specialized overrides of
toString()for a number of runtime types. These types are intended to provide additional information to developers for debugging purposes and are not intended to be used in production or shipped applications.
Bug Fixes
- Fixed Pose.
fromLookAtforward direction alignment, corrected scale extraction in Matrix3, and prevented numericalNaNsin normalization, axis-angle conversion, andangleBetweencalculations. (I7a3b5, b/367780918)
Version 1.0.0-alpha15
June 17, 2026
androidx.xr.runtime:runtime-*:1.0.0-alpha15 is released. Version 1.0.0-alpha15 contains these commits.
API Changes
- Added test API for
isProjectedServiceAvailable()(I44ba1) - Exposed
DeviceTrackingMode.INERTIALas a public experimental API under the new@ExperimentalInertialTrackingApiannotation. (Ic3df3) - Added
Config.Builder. Apps can create custom configurations by calling setter functions on the builder object and then callingBuilder.build. (I13142) androidx.xr.runtime.FieldOfViewhas been removed. Apps should useandroidx.xr.runtime.math.FieldOfViewinstead. (I621ef)Session.createis now required to be ran on a@WorkerThread. (I2169e)- Added
isProjectedServiceAvailable()to theXrDevice(I507e9) - Renaming
DeviceTrackingMode.SPATIAL_LAST_KNOWNtoDeviceTrackingMode.SPATIALandDeviceTrackingMode.INERTIAL_LAST_KNOWNtoDeviceTrackingMode.INERTIAL(I96f8b) Vector3.angleBetweenandVector4.angleBetweennow return degrees rather than radians. (Ica8bc)- Added
QrCodeAPI (Ia0bbe)
Jetpack SceneCore: v1.0.0-beta01
July 15, 2026
androidx.xr.scenecore:scenecore-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.
API Changes
GltfAnimationandSpatialGltfModelAnimationAPIs have been marked as experimental. Some properties were turned into getters. (I8d689, b/524771027)- Removed the public
MovableComponent.createTrackingMovablefactory method. (I00912, b/477169015) - Converted Session.create to a suspend function. (I5d27f)
ActivitySpaceandAnchorSpacenow extend a commonSpaceEntityclass which contains common behavior for entities whose positions are controlled by the system (I506ec, b/513619219)- Updated
AnchorEntityto be calledAnchorSpace(Ifa95e, b/513619219) - Provides public test API
SoundEffectPoolComponentTester. (I87df7, b/498104417) - Added an optional
cornerRadiusparameter to theSurfaceEntity.Shape.Quadconstructor and made thecornerRadiusproperty public. Developers can now specify a corner radius when creating a Quad shape to renderSurfaceEntitycanvases with rounded corners, and query the radius of existing Quads. (Ia7809, b/474681085) - Provides public test API
SpatialAudioTrackBuilderTester,SpatialAudioTrackTesterandSceneCoreTestRule.getTesteroverloads. (I378c6, b/496333938) - Add specialized overrides of
toString()for a number of ARCore types. These types are intended to provide additional information to developers for debugging purposes and are not intended to be used in production or shipped applications.