Skip to content

Releases: mahozad/androidx-release-notes

2024-05-29@10PM

30 May 18:39
Compare
Choose a tag to compare

Core 1.6.0: Core Core-ktx 1.6.0-rc01

May 30, 2024

androidx.test:core:1.6.0-rc01 and androidx.test:core-ktx:1.6.0-rc01 are released.

Espresso 3.6.0: Espresso 3.6.0-rc01

May 30, 2024

The following artifacts were released:

  • androidx.test.espresso:espresso-accessibility:3.6.0-rc01
  • androidx.test.espresso:espresso-core:3.6.0-rc01
  • androidx.test.espresso:espresso-contrib:3.6.0-rc01
  • androidx.test.espresso:espresso-idling-resource:3.6.0-rc01
  • androidx.test.espresso:espresso-intents:3.6.0-rc01
  • androidx.test.espresso:espresso-remote:3.6.0-rc01
  • androidx.test.espresso:espresso-web:3.6.0-rc01
  • androidx.test.espresso.idling:idling-concurrent:3.6.0-rc01
  • androidx.test.espresso.idling:idling-net:3.6.0-rc01

Test:

Test:

Test:

Monitor 1.7.0: monitor 1.7.0-rc01

May 30, 2024

androidx.test:monitor:1.7.0-rc01 is released.

Orchestrator 1.5.0: orchestrator 1.5.0-rc01

May 30, 2024

androidx.test:orchestrator:1.5.0-rc01 is released.

Runner 1.6.0: runner 1.6.0-rc01

May 30, 2024

androidx.test:runner:1.6.0-rc01 is released.

Rules 1.6.0: rules 1.6.0-rc01

May 30, 2024

androidx.test:rules:1.6.0-rc01 is released.

Services 1.5.0: services 1.5.0-rc01

May 30, 2024

androidx.test.services:test-services:1.5.0-rc01 androidx.test.services:storage:1.5.0-rc01 are released.

2024-05-29

29 May 18:38
Compare
Choose a tag to compare

Appcompat: v1.7.0

May 29, 2024

androidx.appcompat:appcompat:1.7.0 and androidx.appcompat:appcompat-resources:1.7.0 are released. Version 1.7.0 contains these commits.

Important changes since 1.6.0

  • AppCompatDialog now correctly sets the LifecycleOwner, SavedStateRegistryOwner, and OnBackPressedDispatcherOwner on the dialog's decor view via the ViewTree APIs, fixing issues when hosting a ComposeView within an AppCompatDialog.
  • AppCompatActivity now sets the ViewTreeOnBackPressedDispatcherOwner so that it is possible to retrieve the dispatcher from the view.
  • Significantly improved the performance of SupportMenuInflater.
  • Locale.getDefault() now returns the system locale after a cold start.
  • LinearLayoutCompat now preserves margin layout params.

Dependency Updates

  • AppCompat now depends on Activity 1.7.0.
  • AppCompat now depends on Fragment version 1.5.4.

Biometric: v1.4.0-alpha01

May 29, 2024

androidx.biometric:biometric:1.4.0-alpha01 and androidx.biometric:biometric-ktx:1.4.0-alpha01 are released. This version is developed in an internal branch and targets Android 15 Beta 2.

Bug Fixes

  • Update UI to be consistent with platform changes in Android 15

Car App: v1.4.0

May 29, 2024

androidx.car.app:app-*:1.4.0 is released. Version 1.4.0 is a promotion of 1.4.0-rc02.

Important changes since 1.3.0

  • Instrument Cluster map rendering for Navigation apps
  • New Tab Template for improved app layout / usability
  • Support for Adaptive task limits
  • Secondary actions on list elements

Compose Animation: v1.7.0-beta02

May 29, 2024

androidx.compose.animation:animation-*:1.7.0-beta02 is released. Version 1.7.0-beta02 contains these commits.

Compose Foundation: v1.7.0-beta02

May 29, 2024

androidx.compose.foundation:foundation-*:1.7.0-beta02 is released. Version 1.7.0-beta02 contains these commits.

API Changes

  • Adds an experimental API for configuring prefetch behavior of LazyGrids similar to the existing experimental API for LazyLists. This includes support for prefetching items in nested LazyGrids. Similiar to LazyListPrefetchStrategy, the implementation default is to prefetch the first 2 nested items of each grid, but this can be configured by the new LazyGridPrefetchStrategy(nestedPrefetchItemCount) and LazyListPrefetchStrategy#onNestedPrefetch APIs. (I591c4)
  • Renamed SemanticsProperties.Editable to IsEditable and changes SemanticsPropertyReceiver.editable to a val isEditable. The property is now a boolean and always specified by text fields. (I8acd8)
  • Moved basicMarquee default values into MarqueeDefaults object. (I12ff6)
  • Renamed basicMarquee delayMillis parameter to repeatDelayMillis. (I12ff6)
  • Update API for styling the links: moved the TextLinkStyles to the TextStyle and removed the TextDefaults from material (I5477b)

Bug Fixes

  • Renamed LayoutCoordinates.introducesFrameOfReference to LayoutCoordinates.introducesMotionFrameOfReference to better reflect its purpose. Renamed related function to calculate coordinates based on that flag. (I3a330)
  • Removed 'Default' from the MarqueeDefaults properties. (I1d8a0)
  • Removed 'Marquee' from MarqueeDefaults properties. (Iad4f4)
  • Removed TextLinkStyles from the TextStyle class. Instead, TextLinkStyles is part of the LinkAnntation constructor and the AnnotatedString.fromHtml method (I90b2b)
  • Fixed a bug where Pager would snap when flinging towards a bound while already settled at the bound. (I9f373, b/339171222)
  • BTF2 now has correct mouse selection gestures. (Ibe8c6)

External Contribution

  • Resubmit 'Make compose/measure time calculation content-type based in prefetch to improve accuracy' (Iea622)
  • Make compose/measure time calculation content-type based in prefetch to improve accuracy (Ibccb1)
  • Make WindowInsetsPadding modifiers available from common source set (I070b2)

Compose Material: v1.7.0-beta02

May 29, 2024

androidx.compose.material:material-*:1.7.0-beta02 is released. Version 1.7.0-beta02 contains these commits.

API Changes

  • Update API for styling the links: moved the TextLinkStyles to the TextStyle and removed the TextDefaults from material (I5477b)

Compose Material3: v1.3.0-beta02

May 29, 2024

androidx.compose.material3:material3-*:1.3.0-beta02 is released. Version 1.3.0-beta02 contains these commits.

API Changes

  • Modifier.pullToRefreshIndicator supports elevation, update Pull To Refresh APIs to have enabled be a boolean, instead of a lambda. Support content alignment in PullToRefreshBox (I75679)
  • Making TooltipScope a sealed interface and creating an internal impl...
Read more

2024-05-16

17 May 01:38
Compare
Choose a tag to compare

Core 1.6.0: Core Core-ktx 1.6.0-beta01

May 16, 2024

androidx.test:core:1.6.0-beta01 and androidx.test:core-ktx:1.6.0-beta01 are released.

Bug Fixes

  • Remove unused androidx.test.annotation dependency
  • Revert back to androidx.concurrent 1.1.0

Espresso 3.6.0: Espresso 3.6.0-beta01

May 16, 2024

The following artifacts were released:

  • androidx.test.espresso:espresso-accessibility:3.6.0-beta01
  • androidx.test.espresso:espresso-core:3.6.0-beta01
  • androidx.test.espresso:espresso-contrib:3.6.0-beta01
  • androidx.test.espresso:espresso-idling-resource:3.6.0-beta01
  • androidx.test.espresso:espresso-intents:3.6.0-beta01
  • androidx.test.espresso:espresso-remote:3.6.0-beta01
  • androidx.test.espresso:espresso-web:3.6.0-beta01
  • androidx.test.espresso.idling:idling-concurrent:3.6.0-beta01
  • androidx.test.espresso.idling:idling-net:3.6.0-beta01

Bug Fixes

  • Remove unused androidx.test.annotation dependency

Test:

Test:

Test:

Monitor 1.7.0: monitor 1.7.0-beta01

May 16, 2024

androidx.test:monitor:1.7.0-beta01 is released.

Bug Fixes

  • Remove unused androidx.test.annotation dependency

Orchestrator 1.5.0: orchestrator 1.5.0-beta01

May 16, 2024

androidx.test:orchestrator:1.5.0-beta01 is released.

Runner 1.6.0: runner 1.6.0-beta01

May 16, 2024

androidx.test:runner:1.6.0-beta01 is released.

Bug Fixes

  • Remove unused androidx.test.annotation dependency

Rules 1.6.0: rules 1.6.0-beta01

May 16, 2024

androidx.test:rules:1.6.0-beta01 is released.

Bug Fixes

  • Remove unused androidx.test.annotation dependency

Services 1.5.0: services 1.5.0-beta01

May 16, 2024

androidx.test.services:test-services:1.5.0-beta01 androidx.test.services:storage:1.5.0-beta01 are released.

Bug Fixes

  • Reduce HostedFile log spam
  • Remove unused androidx.test.annotation dependency

2024-05-14

14 May 18:38
Compare
Choose a tag to compare

Annotation: v1.8.0

May 14, 2024

androidx.annotation:annotation-*:1.8.0 is released. Version 1.8.0 contains these commits.

Important changes since 1.7.0

  • Added @ReplaceWith annotation to express replacements for deprecated APIs
  • The @MainThread annotation has been moved to the common source set.

Appcompat: v1.7.0-rc01

May 14, 2024

androidx.appcompat:appcompat:1.7.0-rc01 and androidx.appcompat:appcompat-resources:1.7.0-rc01 are released. Version 1.7.0-rc01 contains these commits.

Benchmark: v1.3.0-alpha05

May 14, 2024

androidx.benchmark:benchmark-*:1.3.0-alpha05 is released. Version 1.3.0-alpha05 contains these commits.

Bug Fixes

  • Throw clearer exception when macrobench metric returns zero values for all iterations (Iab58f, b/314931695)
  • Additional workaround rules added to microbench proguard rules, including support for listener rules and other observed warnings / errors. (I14d8f, b/329126308, b/339085669)
  • Method tracing runs as a separate phase during a Macrobenchmark, and it no longer affects measurements. (If9a50, b/285912360, b/336588271)
  • Added extra debugging suggestions to drop shader broadcast failure message. (I5efa6, b/325502725)

CameraX: v1.4.0-beta01

May 14, 2024

androidx.camera:camera-*:1.4.0-beta01 is released. Version 1.4.0-beta01 contains these commits.

API Changes

  • Added ZoomGestureDetector.ZoomEvent to encapsulates the states of a zoom gesture. (I84cdf)

Bug Fixes

  • Fixed a bug that still capture and tap-to-focus do not use the repeating request FPS/stabilization mode values which may recreate capture session and cause latency issues or Preview freeze in some devices. (I7dc0b)
  • Fixed a bug where High Resolutions can not be selected when CameraEffect is enabled on some devices. (e.g. 4000x3000 on Samsung A32 5G). (Ie3ed3, b/337336152)
  • Fixed a crash when taking picture with Preview, ImageCapture and VideoCapture(UHD) are bound on Pixel 4XL API29. (I5b288)
  • Support virtual devices: Context passed into ProcessCameraProvider will preserve the device ID to ensure the functionality in a virtual device environment. (I5ba48)

CameraX: v1.4.0-alpha06

May 14, 2024

androidx.camera:camera-viewfinder:1.4.0-alpha06 and androidx.camera:camera-viewfinder-core:1.4.0-alpha06 are released. Version 1.4.0-alpha06 contains these commits.

API Changes

  • Rename Viewfinder's ImplementationMode Enums to better reflect underlying implementations, and add fixed constants for TransformationInfo.sourceRotation. (Ic6149)
  • Added ZoomGestureDetector.ZoomEvent to encapsulates the states of a zoom gesture. (I84cdf)

Camera Viewfinder Compose: v1.0.0-alpha01

May 14, 2024

androidx.camera:camera-viewfinder-compose:1.0.0-alpha01 is released. Version 1.0.0-alpha01 contains these commits.

New Features

  • New library. This library introduces a Compose native Viewfinder composable, that can be used with CameraX and Camera2. The composable Viewfinder supports different aspect ratios, and handling of touch events.

Compose Animation: v1.7.0-beta01

May 14, 2024

androidx.compose.animation:animation-*:1.7.0-beta01 is released. Version 1.7.0-beta01 contains these commits.

API Changes

  • New resizeModes (ScaleToBounds and RemeasureToBounds) for sharedBounds to choose between scaling and remeasure. The previous scaleIn/OutSharedContentToBounds APIs are now deprecated. (I0d41a)

External Contribution

Compose Compiler: v1.5.14

May 14, 2024

androidx.compose.compiler:compiler:1.5.14 and androidx.compose.compiler:compiler-hosted:1.5.14 are released. Version 1.5.14 contains these commits.

This compiler release is targeting Kotlin 1.9.24.

Bug Fixes

  • Ensure that inline body is realized when source information is off. (Idddb8)

Compose Foundation: v1.7.0-beta01

May 14, 2024

androidx.compose.foundation:foundation-*:1.7.0-beta01 is released. Version 1.7.0-beta01 contains these commits.

API Changes

  • Added KeyboardOptions.shouldShowKeyboardOnFocus property back as deprecated hidden for binary compatibility. (I15cfe)
  • Modifier.anchoredDraggable now reverses drag deltas by default for components with a Horizontal orientation when used in an RTL layout. (I3c6d9)
  • ...
Read more

2024-04-30

01 May 18:38
Compare
Choose a tag to compare

Annotation: v1.8.0-rc01

May 1, 2024

androidx.annotation:annotation-*:1.8.0-rc01 is released. Version 1.8.0-rc01 contains no changes since the prior beta release.

Appcompat: v1.7.0-beta01

May 1, 2024

androidx.appcompat:appcompat:1.7.0-beta01 and androidx.appcompat:appcompat-resources:1.7.0-beta01 are released. Version 1.7.0-beta01 contains these commits.

Benchmark: v1.3.0-alpha04

May 1, 2024

androidx.benchmark:benchmark-*:1.3.0-alpha04 is released. Version 1.3.0-alpha04 contains these commits.

API Changes

  • Added experimental MacrobenchmarkRule#measureRepeated variant which takes a custom PerfettoConfig for fully customized Perfetto trace recording. Note that incorrectly configured configs may cause built in Metric classes to fail. (Idfd3d, b/309841164, b/304038384)
  • Rename PowerMetric.deviceSupportsPowerEnergy to PowerMetric.deviceSupportsHighPrecisionTracking for clarity (I5b82f)
  • Added PowerMetric.deviceBatteryHasMinimumCharge() and PowerMetric.deviceSupportsPowerEnergy() to enable changing or skipping benchmarks based on device power measurement capability. (I6a591, b/322121218)

Bug Fixes

  • Added comparison with previous baseline profile (I824c8, b/269484510)
  • Added DSL to disable warnings (Ic4deb, b/331237001)
  • Changed exception to info log when benchmark variants are disabled (I8a517, b/332772491)
  • Make it simpler to capture method traces for a Macrobenchmark is scoped to the duration of the actual measureBlock(). Previously, it started at target process launch and only supported cold starts (Iee85a, b/300651094)
  • Avoid crashing when perfetto trace processor is slow to start (I98841, b/329145808)

Compose Animation: v1.6.7

May 1, 2024

androidx.compose.animation:animation-*:1.6.7 is released. Version 1.6.7 contains these commits.

Compose Animation: v1.7.0-alpha08

May 1, 2024

androidx.compose.animation:animation-*:1.7.0-alpha08 is released. Version 1.7.0-alpha08 contains these commits.

API Changes

  • LookaheadScope APIs have been made stable. (I21507)

External Contribution

  • Clear start animation time after SeekableTransitionState animates/snaps by Steven Schoen (1ca89529)

Compose Compiler: v1.5.13

May 1, 2024

androidx.compose.compiler:compiler:1.5.13 and androidx.compose.compiler:compiler-hosted:1.5.13 are released. Version 1.5.13 contains these commits.

New features

  • Strong skipping is no longer considered experimental and is safe for use in production. It will become the default behavior in an upcoming release. (I6c8c4)

Bug Fixes

  • Fix binary compatibility for @Composable functions with value class parameters that have a default value and are wrapping a non-primitive value. (I89465
  • Upstreamed fixes for JS and Native compilation from Compose multiplatform. See the commit range above for full details.

Compose Foundation: v1.6.7

May 1, 2024

androidx.compose.foundation:foundation-*:1.6.7 is released. Version 1.6.7 contains these commits.

Compose Foundation: v1.7.0-alpha08

May 1, 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha08 is released. Version 1.7.0-alpha08 contains these commits.

New Features

  • Added right-click context menu to BasicTextField and SelectionContainer with items for cut, copy, paste, and select-all actions. (If8c93, Ia2b49, I6f268)

API Changes

  • LazyLayout prefetch requests can be marked as urgent now, meaning that we expect this item to be needed in the next frame and want to ignore frame budget to make sure to do more work in advance (Id513f)
  • Renamed isPositionedByParentWithDirectManipulation to introducesFrameOfReference. Note that it now has the reverse effect, meaning that by default, most LayoutCoordinates introduce a frame of reference, and, only when placed under direct manipulation the property will be false. To query position with only those that introduce a frame of reference, use positionInLocalFrameOfReference(...). Or positionInLocalLookaheadFrameOfReference from a LookaheadScope. (Ifc5f7)
  • Renamed onClicked to onClick inside LinkInteractionListener (Iaa35c)
  • Change action lambda for getScrollViewportLength as per API council feedback. (Ibc74a)
  • Renamed stylus handwriting delegation APIs. (
Read more

2024-04-26

29 Apr 18:37
Compare
Choose a tag to compare

Annotation 1.1.0: Annotation 1.1.0-alpha04

April 26, 2024

androidx.test:annotation:1.1.0-alpha04} is released.

Core 1.6.0: Core Core-ktx 1.6.0-alpha06

April 26, 2024

androidx.test:core:1.6.0-alpha06 and androidx.test:core-ktx:1.6.0-alpha06 are released.

Bug Fixes

  • Make ViewCapture use ControlledLooper API instead of hardcoding is Robolectric check
  • Fix using ActivityScenario#launchActivityForResult with an implicit Intent

API Changes

  • Added ApplicationInfoBuilder.setFlags(int)
  • Make suspend function versions of ViewCapture/WindowCapture/DeviceCapture APIs,
    and rename existing methods as *Async variants that return ListenableFutures
  • Make Bitmap.writeToTestStorage use the registered PlatformTestStorage instead of hardcoding TestStorage
  • Remove ExperimentalTestApi/RequiresOptIn restrictions from captureToBitmap and takeScreenshot APIs

Espresso 3.6.0: Espresso 3.6.0-alpha04

April 26, 2024

The following artifacts were released:

  • androidx.test.espresso:espresso-accessibility:3.6.0-alpha04
  • androidx.test.espresso:espresso-core:3.6.0-alpha04
  • androidx.test.espresso:espresso-contrib:3.6.0-alpha04
  • androidx.test.espresso:espresso-idling-resource:3.6.0-alpha04
  • androidx.test.espresso:espresso-intents:3.6.0-alpha04
  • androidx.test.espresso:espresso-remote:3.6.0-alpha04
  • androidx.test.espresso:espresso-web:3.6.0-alpha04
  • androidx.test.espresso.idling:idling-concurrent:3.6.0-alpha04
  • androidx.test.espresso.idling:idling-net:3.6.0-alpha04

Bug Fixes

  • Fix slow inRoot operations in Robolectric
  • Use PlatformTestStorageRegistry.getInstance consistently instead of passing a reference around
  • Remove TODO from InteractionResponse public ref docs

New Features

  • Add waitForClose to DrawerActions.

API Changes

  • Adapt to ViewCapture API changes
  • Delete ViewInteraction.captureToBitmap in favor of ViewActions.captureToBitmap, and promote to a stable API from ExperimentalTestApi

Test:

Test:

Test:

Monitor 1.7.0: monitor 1.7.0-alpha05

April 26, 2024

androidx.test:monitor:1.7.0-alpha05 is released.

API Changes * Make DeviceController an public API from ExperimentalTestApi * Move PlatformTestStorage to a public API * Add internal ControlledLooper#isDrawCallbacksSupported.

Orchestrator 1.5.0: orchestrator 1.5.0-alpha04

April 26, 2024

androidx.test:orchestrator:1.5.0-alpha04 is released.

Runner 1.6.0: runner 1.6.0-alpha07

April 26, 2024

androidx.test:runner:1.6.0-alpha07 is released.

Bug Fixes

  • When logging test exceptions, use Log's built-in support for throwables to avoid stack truncation
  • Internal changes to support GrantPermissionRule using UiAutomation#grantRuntimePermissions

Rules 1.6.0: rules 1.6.0-alpha04

April 26, 2024

androidx.test:rules:1.6.0-alpha04 is released.

Bug Fixes

  • Make GrantPermissionRule use UiAutomation to grant permissions on APIs > =28 to fix issues running on automotive.

Services 1.5.0: services 1.5.0-alpha04

April 26, 2024

androidx.test.services:test-services:1.5.0-alpha04 androidx.test.services:storage:1.5.0-alpha04 are released.

Bug Fixes

  • TestStorage: use local cache dir to store output files when running as non system user

API Changes

  • Make TestStorage an internal API from experimental

2024-04-18

18 Apr 18:37
Compare
Choose a tag to compare

Activity: v1.9.0

April 17, 2024

androidx.activity:activity:1.9.0, androidx.activity:activity-compose:1.9.0, and androidx.activity:activity-ktx:1.9.0 are released. Version 1.9.0 contains these commits.

Important changes since 1.8.0

  • ComponentActivity now implements OnUserLeaveHintProvider to allow components to callbacks for onUserLeaveHint events.
  • The OnBackPressedCallback, BackHandler, and PredictiveBackHandler APIs now warn when calling onBackPressedDispatcher.onBackPressed() when handling back as that will always break the Predictive Back Animation. See the best practices guide for more details.
  • The remainder of the Activity APIs have been rewritten in Kotlin and all extensions previously available in activity-ktx have been moved to activity. activity-ktx is now completely empty.
    • As part of the conversion of ActivityResultLauncher to Kotlin, the getContract method is now an abstract Kotlin property. This is a binary compatible change, but source breaking if your implementation of ActivityResultLauncher is written in Kotlin.

Annotation: v1.8.0-beta02

April 17, 2024

androidx.annotation:annotation-*:1.8.0-beta02 is released. Version 1.8.0-beta02 contains no changes since the prior release.

Benchmark: v1.2.4

April 17, 2024

androidx.benchmark:benchmark-*:1.2.4 is released. Version 1.2.4 contains these commits.

Bug Fixes

  • Fixes baseline profile srcset not being set up in benchmark variants. Also fixes automaticGenerationDuringBuild in libraries causing a circular dependency. (I28ab7, b/333024280)
  • Use am force-stop to kill apps when not a system app like System UI or Launcher. This fixes StartupMode.COLD benchmarks crashing from "Package $package must not be running prior to cold start!" due to process kill not fully succeeding. (I5e028)

Benchmark: v1.3.0-alpha03

April 17, 2024

androidx.benchmark:benchmark-*:1.3.0-alpha03 is released. Version 1.3.0-alpha03 contains these commits.

New Features

  • Adds public API PerfettoTraceProcessor.Session.queryMetrics APIs with JSON, textproto, and proto binary (undecoded) variants. These allow you to query metrics built into TraceProcessor (I54d7f, b/304038382)
  • Added profilerOutput to JSON output for easier tooling around profiling traces (e.g. perfetto, method traces). (I05ddd, b/332604449)
  • Added power tag to benchmark Perfetto Config. This captures, for example, wakelock tracepoints. (Icfe44, b/286551983)
  • Added inst argument androidx.benchmark.profiling.skipWhenDurationRisksAnr, can be set to false to avoid skipping method traces when expected duration may cause an ANR - strongly recommended to avoid in CI runs.
  • Added experimental inst argument androidx.benchmark.profiling.perfCompare.enable, set this to true to run comparison timing between measurement and profiling phases. Useful in e.g. evaluating overhead of method tracing. (I61fb4, b/329146942)

API Changes

  • Changed TraceSectionMetric.Mode to sealed class to enable future expansion without breaking exhaustive when statements (I71f7b)
  • Added TraceSectionMetric.Mode.Average and .Count, and reordered args so the more common argument (mode) was earlier in the arg list, reducing need for specifying parameter names. (Ibf0b0, b/315830077, b/322167531)
  • Renamed Metric.getResult to getMeasurements to match return type (I42595)

Bug Fixes

  • Fix to ensure benchmarks use generated baseline profiles when automaticGenerationDuringBuild is off (Ic144f, b/333024280)
  • Fix BaselineProfile gradle plugin property overrides to enable baseline profile generation and benchmarking when customizing a nonMinified or benchmark build type. (Ib8f05, b/324837887)
  • Fixed method traces flush in macrobenchmark, so that method traces should be fully captured and valid, even on slower devices. (I6349a, b/329904950)
  • Enable blocking start on Perfetto trace record to reduce risk of missing data at beginning of trace. Only supported on API 33+. (Ie6e41, b/310760059)
  • Added a warning when Android Test Orchestrator is used in benchmark modules, as this will cause per-module output JSON files to be repeatedly overwritten. (Ia1af6, b/286899049)
  • Force ',' (comma) thousands separators for consistency in Studio output, ignoring device locale (I3e921, b/313496656)
  • TraceSectionMetric now supports slices created using Trace.{begin|end}AsyncSection. (I91b32, b/300434906)
  • Added log.w / exception labels to all startup detection failures. This does not change current behavior (so some errors throw, and others silently fail to detect the startup), just makes it more understandable. Generally the ones that Log.w() and fail to report startup metrics are those where non-frame events are missing, exceptions are thrown when startup is detected except for frame timing information (from UI/RT slices). (
Read more

2024-04-17@05PM

17 Apr 18:38
Compare
Choose a tag to compare

Activity: v1.9.0

April 17, 2024

androidx.activity:activity:1.9.0, androidx.activity:activity-compose:1.9.0, and androidx.activity:activity-ktx:1.9.0 are released. Version 1.9.0 contains these commits.

Important changes since 1.8.0

  • ComponentActivity now implements OnUserLeaveHintProvider to allow components to callbacks for onUserLeaveHint events.
  • The OnBackPressedCallback, BackHandler, and PredictiveBackHandler APIs now warn when calling onBackPressedDispatcher.onBackPressed() when handling back as that will always break the Predictive Back Animation. See the best practices guide for more details.
  • The remainder of the Activity APIs have been rewritten in Kotlin and all extensions previously available in activity-ktx have been moved to activity. activity-ktx is now completely empty.
    • As part of the conversion of ActivityResultLauncher to Kotlin, the getContract method is now an abstract Kotlin property. This is a binary compatible change, but source breaking if your implementation of ActivityResultLauncher is written in Kotlin.

Annotation: v1.8.0-beta02

April 17, 2024

androidx.annotation:annotation-*:1.8.0-beta02 is released. Version 1.8.0-beta02 contains no changes since the prior release.

Benchmark: v1.2.4

April 17, 2024

androidx.benchmark:benchmark-*:1.2.4 is released. Version 1.2.4 contains these commits.

Bug Fixes

  • Fixes baseline profile srcset not being set up in benchmark variants. Also fixes automaticGenerationDuringBuild in libraries causing a circular dependency. (I28ab7, b/333024280)
  • Use am force-stop to kill apps when not a system app like System UI or Launcher. This fixes StartupMode.COLD benchmarks crashing from "Package $package must not be running prior to cold start!" due to process kill not fully succeeding. (I5e028)

Benchmark: v1.3.0-alpha03

April 17, 2024

androidx.benchmark:benchmark-*:1.3.0-alpha03 is released. Version 1.3.0-alpha03 contains these commits.

New Features

  • Adds public API PerfettoTraceProcessor.Session.queryMetrics APIs with JSON, textproto, and proto binary (undecoded) variants. These allow you to query metrics built into TraceProcessor (I54d7f, b/304038382)
  • Added profilerOutput to JSON output for easier tooling around profiling traces (e.g. perfetto, method traces). (I05ddd, b/332604449)
  • Added power tag to benchmark Perfetto Config. This captures, for example, wakelock tracepoints. (Icfe44, b/286551983)
  • Added inst argument androidx.benchmark.profiling.skipWhenDurationRisksAnr, can be set to false to avoid skipping method traces when expected duration may cause an ANR - strongly recommended to avoid in CI runs.
  • Added experimental inst argument androidx.benchmark.profiling.perfCompare.enable, set this to true to run comparison timing between measurement and profiling phases. Useful in e.g. evaluating overhead of method tracing. (I61fb4, b/329146942)

API Changes

  • Changed TraceSectionMetric.Mode to sealed class to enable future expansion without breaking exhaustive when statements (I71f7b)
  • Added TraceSectionMetric.Mode.Average and .Count, and reordered args so the more common argument (mode) was earlier in the arg list, reducing need for specifying parameter names. (Ibf0b0, b/315830077, b/322167531)
  • Renamed Metric.getResult to getMeasurements to match return type (I42595)

Bug Fixes

  • Fix to ensure benchmarks use generated baseline profiles when automaticGenerationDuringBuild is off (Ic144f, b/333024280)
  • Fix BaselineProfile gradle plugin property overrides to enable baseline profile generation and benchmarking when customizing a nonMinified or benchmark build type. (Ib8f05, b/324837887)
  • Fixed method traces flush in macrobenchmark, so that method traces should be fully captured and valid, even on slower devices. (I6349a, b/329904950)
  • Enable blocking start on Perfetto trace record to reduce risk of missing data at beginning of trace. Only supported on API 33+. (Ie6e41, b/310760059)
  • Added a warning when Android Test Orchestrator is used in benchmark modules, as this will cause per-module output JSON files to be repeatedly overwritten. (Ia1af6, b/286899049)
  • Force ',' (comma) thousands separators for consistency in Studio output, ignoring device locale (I3e921, b/313496656)
  • TraceSectionMetric now supports slices created using Trace.{begin|end}AsyncSection. (I91b32, b/300434906)
  • Added log.w / exception labels to all startup detection failures. This does not change current behavior (so some errors throw, and others silently fail to detect the startup), just makes it more understandable. Generally the ones that Log.w() and fail to report startup metrics are those where non-frame events are missing, exceptions are thrown when startup is detected except for frame timing information (from UI/RT slices). (
Read more

2024-04-17

17 Apr 15:36
Compare
Choose a tag to compare

Media3: v1.4.0-alpha01

April 17, 2024

androidx.media3:media3-*:1.4.0-alpha01 is released. Version 1.4.0-alpha01 contains these commits.

  • ExoPlayer:
    • Add BasePreloadManager which coordinates the preloading for multiple sources based on the priorities defined by their rankingData. Customization is possible by extending this class. Add DefaultPreloadManager which uses PreloadMediaSource to preload media samples of the sources into memory, and uses an integer rankingData that indicates the index of an item on the UI.
    • Add PlayerId to most methods of LoadControl to enable LoadControl implementations to support multiple players.
    • Remove Buffer.isDecodeOnly() and C.BUFFER_FLAG_DECODE_ONLY. There is no need to set this flag as renderers and decoders will decide to skip buffers based on timestamp. Custom Renderer implementations should check if the buffer time is at least BaseRenderer.getLastResetPositionUs() to decide whether a sample should be shown. Custom SimpleDecoder implementations can check isAtLeastOutputStartTimeUs if needed or mark other buffers with DecoderOutputBuffer.shouldBeSkipped to skip them.
    • Allow a null value to be returned by TargetPreloadStatusControl.getTargetPreloadStatus(T) to indicate not to preload a MediaSource with the given rankingData.
    • Add remove(MediaSource) to BasePreloadManager.
  • Transformer:
    • Add audioConversionProcess and videoConversionProcess to ExportResult indicating how the respective track in the output file was made.
    • Relax trim optimization H.264 level checks.
    • Add support for changing between SDR and HDR input media in a sequence.
    • Add support for composition-level audio effects.
    • Add support for transcoding Ultra HDR images into HDR videos.
    • Fix issue where the DefaultAudioMixer does not output the correct amount of bytes after being reset and reused.
  • Video:
    • Fix issue where Listener.onRenderedFirstFrame() arrives too early when switching surfaces mid-playback.
  • DataSource:
    • Implement support for android.resource://package/id raw resource URIs where package is different to the package of the current application. This wasn't previously documented to work, but is a more efficient way of accessing resources in another package than by name.
    • Eagerly check url is non-null in the DataSpec constructors. This parameter was already annotated to be non-null.
  • Effect:
    • Support multiple speed changes within the same EditedMediaItem or Composition in SpeedChangeEffect.
    • Support for HLG and PQ output from ultra HDR bitmap input.
    • Add support for EGL_GL_COLORSPACE_BT2020_HLG_EXT, which improves HLG surface output in ExoPlayer.setVideoEffect and Transformer's Debug SurfaceView.
    • Update Overlay matrix implementation to make it consistent with the documentation by flipping the x and y values applied in setOverlayFrameAnchor(). If using OverlaySettings.Builder.setOverlayFrameAnchor(), flip their x and y values by multiplying them by -1.
  • Session:
    • Change default of CommandButton.enabled to true and ensure the value can stay false for controllers even if the associated command is available.
    • Add icon constants for CommandButton that should be used instead of custom icon resources.
    • Add MediaSessionService.isPlaybackOngoing() to let apps query whether the service needs to be stopped in onTaskRemoved() (#1219).
    • Add MediaSessionService.pauseAllPlayersAndStopSelf() that conveniently allows to pause playback of all sessions and call stopSelf to terminate the lifecycle of the MediaSessionService.
    • Override MediaSessionService.onTaskRemoved(Intent) to provide a safe default implementation that keeps the service running in the foreground if playback is ongoing or stops the service otherwise.
  • Downloads:
    • Ensure that DownloadHelper does not leak unreleased Renderer instances, which can eventually result in an app crashing with IllegalStateException: Too many receivers, total of 1000, registered for pid (#1224).
  • Test Utilities:
    • Implement onInit() and onRelease() in FakeRenderer.
    • Change TestPlayerRunHelper.runUntil/playUntil methods to fail on nonfatal errors (e.g. those reported to AnalyticsListener.onVideoCodecError). Use the new TestPlayerRunHelper.run(player).ignoringNonFatalErrors().untilXXX() method chain to disable this behavior.
  • Demo app:
    • Use DefaultPreloadManager in the short form demo app.
  • Remove deprecated symbols:
    • Remove CronetDataSourceFactory. Use CronetDataSource.Factory instead.
    • Remove some DataSpec constructors. Use DataSpec.Builder instead.

2024-04-09

09 Apr 18:36
Compare
Choose a tag to compare

Media3: v1.3.1

April 11, 2024

androidx.media3:media3-*:1.3.1 is released. Version 1.3.1 contains these commits.

  • Common Library:
    • Add Format.labels to allow localized or other alternative labels.
  • ExoPlayer:
    • Fix issue where PreloadMediaPeriod cannot retain the streams when it is preloaded again.
    • Apply the correct corresponding TrackSelectionResult to the playing period in track reselection.
    • Start early-enabled renderers only after advancing the playing period when transitioning between media items (#1017).
    • Add missing return type to proguard -keepclasseswithmembers rule for DefaultVideoFrameProcessor.Factory.Builder.build() (#1187).
  • Transformer:
    • Add workaround for exception thrown due to MediaMuxer not supporting negative presentation timestamps before API 30.
  • Track Selection:
    • DefaultTrackSelector: Prefer video tracks with a 'reasonable' frame rate (>=10fps) over those with a lower or unset frame rate. This ensures the player selects the 'real' video track in MP4s extracted from motion photos that can contain two HEVC tracks where one has a higher resolution but a very small number of frames (#1051).
  • Extractors:
    • Fix issue where padding was not skipped when reading odd-sized chunks from WAV files (#1117).
    • MP3: Populate Format.averageBitrate from metadata frames such as XING and VBRI.
    • MPEG-TS: Revert a change that aimed to ensure the last frame is rendered by passing the last access unit of a stream to the sample queue (#7909). This is due to the change causing new problems with I-frame only HLS streams (#1150) and H.262 HLS streams (#1126).
  • Audio:
    • Allow renderer recovery by disabling offload if audio track fails to initialize in offload mode.
  • Video:
    • Add workaround for a device issue on Galaxy Tab S7 FE, Chromecast with Google TV, and Lenovo M10 FHD Plus that causes 60fps H265 streams to be marked as unsupported
    • Add workaround that ensures the first frame is always rendered while tunneling even if the device does not do this automatically as required by the API (#1169). (#966).
    • Fix issue where HDR color info handling causes codec misbehavior and prevents adaptive format switches for SDR video tracks (#1158).
  • Text:
    • WebVTT: Prevent directly consecutive cues from creating spurious additional CuesWithTiming instances from WebvttParser.parse (#1177).
  • DRM:
    • Work around a NoSuchMethodError which can be thrown by the MediaDrm framework instead of ResourceBusyException or NotProvisionedException on some Android 14 devices (#1145).
  • Effect:
    • Improved PQ to SDR tone-mapping by converting color spaces.
  • Session:
    • Fix issue where the current position jumps back when the controller replaces the current item (#951).
    • Fix issue where MediaMetadata with just non-null extras is not transmitted between media controllers and sessions (#1176).
  • UI:
    • Fallback to include audio track language name if Locale cannot identify a display name (#988).
  • DASH Extension:
    • Populate all Label elements from the manifest into Format.labels (#1054).
  • RTSP Extension:
    • Skip empty session information values (i-tags) in SDP parsing (#1087).
  • Decoder Extensions (FFmpeg, VP9, AV1, MIDI, etc.):
    • Disable the MIDI extension as a local dependency by default because it requires an additional Maven repository to be configured. Users who need this module from a local dependency can re-enable it.