Skip to content

Releases: mahozad/androidx-release-notes

2024-02-29

29 Feb 21:36

Choose a tag to compare

Orchestrator 1.5.0: orchestrator 1.5.0-alpha03

February 29, 2024

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

New Features

  • Introduce Instrumentation Params Proxying which allows the user to proxy instrumentation arguments to the APK under test (eg: --no-hidden-api-checks).

2024-02-23

23 Feb 12:46

Choose a tag to compare

Annotation: v1.8.0-alpha01

February 21, 2024

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

API Changes

  • Added @ReplaceWith annotation to express replacements for deprecated APIs. (I38db3, b/322373864)

External Contributions

  • Thanks Ivan Matkov for moving the @MainThread annotation to the common source set. (6f228c)

Benchmark: v1.3.0-alpha01

February 21, 2024

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

API Changes

  • Renamed MicrobenchmarkConfig boolean parameters to avoid unnecessary word 'should' (Ia8f00, b/303387299)
  • Added BenchmarkRule.measureRepeatedOnMainThread so main thread benchmarks (e.g. ones touching Views or Compose UIs) can avoid triggering ANRs, especially during large suites in CI. (I5c86d)
  • Added FrameTimingGfxInfoMetric, an experimental alternate implementation of FrameTimingMetric with measurements coming directly from the platform, rather than extracted from the Perfetto trace. (I457cb, b/322232828)
  • Add the ability to dump an ART profile during individual warmUp iterations. (I17923)
  • Several changes to TraceSectionMetric API:
    • Add Mode.Min, Mode.Max
    • Add label argument to override section name as metric label
    • Added mode name to output to clarify metric meaning
    • Changed default to sum, as most usage of this metric is for repeated events Be aware of this changes in CI usage, as it may create discontinuities or break parsing. (Ic1e82, b/301892382, b/301955938)

Bug Fixes

  • Improved error message in baseline profile gradle plugin when specified managed device does not exist (Idea2b, b/313803289)
  • Fix for including library baseline profiles in AAR prior to AGP 8.3.0-alpha15 (I1d2af, b/313992099)
  • Fixed baseline and startup profile output url at the end of generation task (I802e5, b/313976958)
  • Adjusted data source timeouts to attempt to fix java.lang.IllegalStateException: Failed to stop [ProcessPid(processName=perfetto, pid=...)] (I8dc7d, b/323601788)
  • Add two instrumentation arguments for overriding shader dropping behavior to workaround crashes when benchmarking apps without ProfileInstaller 1.3:
    • androidx.benchmark.dropShaders.enable=true/false : can be used to skip all shader dropping (including that done in StartupMode.Cold launches), esp when benchmarking apps that don't yet use profileinstaller 1.3
    • androidx.benchmark.dropShaders.throwOnFailure=true/false : can be used to tolerate failures when trying to drop shaders, for example when benchmarking apps without profileinstaller 1.3 (I4f573)
  • Skip method tracing on UI thread when expected to take longer than a few seconds, and cleanup method traces when throwing. (I6e768)
  • Throw when filenames are longer than 200 chars to avoid unclear crashes when writing or post-processing files. (I4a5ab)
  • Fixes issue where unterminated frames at the beginning and end of the trace could be paired together, which would incorrectly report as a single extremely long frame. (I39353, b/322232828)
  • Use --skip verification on API 30+ when reinstalling a package on API 30-33 to clear ART profiles on user builds. This helps bypass Play Protect warnings that cause failures on some class of devices. (Ic9e36)
  • Use am force-stop to kill apps when not a system app like System UI or Launcher. (I5e028)
  • Macrobenchmark now waits for 1 second for the target application to flush an ART profile (previously it waited for 500 ms). (I85a50, b/316082056)
  • Improve FrameTimingMetric error when frames aren't produced, and always output link to trace when failing metric parsing to assist in diagnosing problem. (I956b9)
  • Fixed crash in FrameTimingMetric failing to parse frame id, especially on certain OEM devices. (Ia24bc, b/303823815, b/306235276)
  • Relaxed strictness of checks in FrameMetrics, and added more detail to error messages. (Iadede)

Browser: v1.8.0-rc01

February 21, 2024

androidx.browser:browser:1.8.0-rc01 is released with no changes since 1.8.0-beta02. Version 1.8.0-rc01 contains these commits.

Compose Animation: v1.6.2

February 21, 2024

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

Compose Animation: v1.7.0-alpha03

February 21, 2024

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

New Features

  • New Modifier.animateContentSize that takes an additional parameter for custom content alignment. (
Read more

2024-02-21

21 Feb 18:36

Choose a tag to compare

Annotation: v1.8.0-alpha01

February 21, 2024

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

API Changes

  • Added @ReplaceWith annotation to express replacements for deprecated APIs. (I38db3, b/322373864)

External Contributions

  • Thanks Ivan Matkov for moving the @MainThread annotation to the common source set. (6f228c)

Benchmark: v1.3.0-alpha01

February 21, 2024

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

API Changes

  • Renamed MicrobenchmarkConfig boolean parameters to avoid unnecessary word 'should' (Ia8f00, b/303387299)
  • Added BenchmarkRule.measureRepeatedOnMainThread so main thread benchmarks (e.g. ones touching Views or Compose UIs) can avoid triggering ANRs, especially during large suites in CI. (I5c86d)
  • Added FrameTimingGfxInfoMetric, an experimental alternate implementation of FrameTimingMetric with measurements coming directly from the platform, rather than extracted from the Perfetto trace. (I457cb, b/322232828)
  • Add the ability to dump an ART profile during individual warmUp iterations. (I17923)
  • Several changes to TraceSectionMetric API:
    • Add Mode.Min, Mode.Max
    • Add label argument to override section name as metric label
    • Added mode name to output to clarify metric meaning
    • Changed default to sum, as most usage of this metric is for repeated events Be aware of this changes in CI usage, as it may create discontinuities or break parsing. (Ic1e82, b/301892382, b/301955938)

Bug Fixes

  • Improved error message in baseline profile gradle plugin when specified managed device does not exist (Idea2b, b/313803289)
  • Fix for including library baseline profiles in AAR prior to AGP 8.3.0-alpha15 (I1d2af, b/313992099)
  • Fixed baseline and startup profile output url at the end of generation task (I802e5, b/313976958)
  • Adjusted data source timeouts to attempt to fix java.lang.IllegalStateException: Failed to stop [ProcessPid(processName=perfetto, pid=...)] (I8dc7d, b/323601788)
  • Add two instrumentation arguments for overriding shader dropping behavior to workaround crashes when benchmarking apps without ProfileInstaller 1.3:
    • androidx.benchmark.dropShaders.enable=true/false : can be used to skip all shader dropping (including that done in StartupMode.Cold launches), esp when benchmarking apps that don't yet use profileinstaller 1.3
    • androidx.benchmark.dropShaders.throwOnFailure=true/false : can be used to tolerate failures when trying to drop shaders, for example when benchmarking apps without profileinstaller 1.3 (I4f573)
  • Skip method tracing on UI thread when expected to take longer than a few seconds, and cleanup method traces when throwing. (I6e768)
  • Throw when filenames are longer than 200 chars to avoid unclear crashes when writing or post-processing files. (I4a5ab)
  • Fixes issue where unterminated frames at the beginning and end of the trace could be paired together, which would incorrectly report as a single extremely long frame. (I39353, b/322232828)
  • Use --skip verification on API 30+ when reinstalling a package on API 30-33 to clear ART profiles on user builds. This helps bypass Play Protect warnings that cause failures on some class of devices. (Ic9e36)
  • Use am force-stop to kill apps when not a system app like System UI or Launcher. (I5e028)
  • Macrobenchmark now waits for 1 second for the target application to flush an ART profile (previously it waited for 500 ms). (I85a50, b/316082056)
  • Improve FrameTimingMetric error when frames aren't produced, and always output link to trace when failing metric parsing to assist in diagnosing problem. (I956b9)
  • Fixed crash in FrameTimingMetric failing to parse frame id, especially on certain OEM devices. (Ia24bc, b/303823815, b/306235276)
  • Relaxed strictness of checks in FrameMetrics, and added more detail to error messages. (Iadede)

Browser: v1.8.0-rc01

February 21, 2024

androidx.browser:browser:1.8.0-rc01 is released with no changes since 1.8.0-beta02. Version 1.8.0-rc01 contains these commits.

Compose Animation: v1.6.2

February 21, 2024

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

Compose Animation: v1.7.0-alpha03

February 21, 2024

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

New Features

  • New Modifier.animateContentSize that takes an additional parameter for custom content alignment. (
Read more

2024-02-09

09 Feb 12:45

Choose a tag to compare

Media3: v1.3.0-beta01

February 7, 2024

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

  • Common Library:
    • Populate both artworkUri and artworkData in MediaMetadata.Builder.populate(MediaMetadata) when at least one of them is non-null (#964).
  • ExoPlayer:
    • Prevent subclassing CompositeSequenceableLoader. This component was previously made extensible but was never subclassed within the library. Customizations can be done by wrapping an instance using the decorator pattern and implementing a custom CompositeSequenceableLoaderFactory.
    • Fix issue where repeating the same time causes metadata from this item to be cleared (#1007).
    • Rename experimentalSetSubtitleParserFactory methods on BundledChunkExtractor.Factory and DefaultHlsExtractorFactory to setSubtitleParserFactory and disallow passing null. Use the new experimentalParseSubtitlesDuringExtraction(boolean) methods to control parsing behaviour.
    • Add support for customising the SubtitleParser.Factory used during extraction. This can be achieved with MediaSource.Factory.setSubtitleParserFactory().
  • Extractors:
    • MP3: Use constant bitrate (CBR) seeking for files with an Info header (the CBR equivalent of the Xing header). Previously we used the seek table from the Info header, but this results in less precise seeking than if we ignore it and assume the file is CBR.
    • MPEG2-TS: Add DTS, DTS-LBR and DTS:X Profile2 support (#275).
    • Extract audio types from TS descriptors and map them to role flags, allowing users to make better-informed audio track selections (#973).
  • Image:
    • Add support for DASH thumbnails. Grid images are cropped and individual thumbnails are provided to ImageOutput close to their presentation times.
  • Session:
    • Disable double-click detection for TV apps (#962).

2024-02-07

07 Feb 18:37

Choose a tag to compare

Activity: v1.9.0-alpha03

February 7, 2024

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

Lint Warning

Bug Fixes

  • If a back event is sent from the system started during an already running Predictive Back Gesture, the currently running Predictive Back Gesture is canceled and the new back event takes over to begin a new Predictive Back Gesture. (I3482e)
  • Fixed a crash when accessing the onBackPressedDispatcher from a ComponentActivity for the first time from a background thread. It is now safe to access the onBackPressedDispatcher on any thread. (I79955)

Browser: v1.8.0-beta02

February 7, 2024

androidx.browser:browser:1.8.0-beta02 is released. Version 1.8.0-beta02 contains these commits.

API Changes

  • Renamed CustomTabsIntent.Builder#setActivitySideSheetEnableMaximization to CustomTabsIntent Builder#setActivitySideSheetMaximizationEnabled and made it a public API. It allows developers to enable or disable the maximization button when the Custom Tab is acting as a side sheet. (Ie3564)

Compose Animation: v1.6.1

February 7, 2024

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

Bug Fixes

Compose Animation: v1.7.0-alpha02

February 7, 2024

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

Bug Fixes

  • Compatibility fix for KeyframesSpec. (I2bdf3, b/322214617)
  • Fixed Modifier.animateContentSize not resetting properly when used in LazyList. (I070512, b/322525716)
  • Fixed IllegalStateException on KeyframesSpec when using out of range timestamps. (I341b8, b/322839811)

Compose Compiler: v1.5.9

February 7, 2024

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

Bug Fixes

  • Fix composable calls in anonymous object initializer. (b/320261458, 96315c)
  • Count recursive local declarations as captures. (b/318745941, e7b4b0)
  • Fix Intrinsic remember changes behavior related to Java method refs by forceing .changed for function types with intrinsic remember. (b/319810819, 77128e)
  • Added an experimental optimization that will remove the groups around functions that are not skippable such as explicitly marked as @NonSkippableComposable and functions that are implicitly not skippable such inline functions and functions that return a non-Unit value such as remember.
  • This optimization can be enabled by passing plugin option, -P plugin:androidx.compose.compiler.plugins.kotlin:nonSkippingGroupOptimization=true to the Kotlin compiler. (I1688f)

Compose Foundation: v1.6.1

February 7, 2024

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

Bug Fixes

  • Fix staggered grid measure when scrolled over limit. (bffc39)
  • Add check for layout with large dimensions. (e74af5)
  • Fix placement of 0-sized items at the start of the staggered grid. (785f94)
  • Call onRelease callback in the same order as onForgotten. (31ce3b)

Compose Foundation: v1.7.0-alpha02

February 7, 2024

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

API Changes

  • HorizontalPager, VerticalPager and PagerState are promoted to stable. (I67660, b/316966909)
  • Added LocalTextLinkStyle composition local that allows to change the style of the links in Text across the app. If you're using your own theme in the app, you should be setting this composition local according to your theming. When using Material theme the color of the link by default will be set to Material's primary color. (
Read more

2024-01-26

29 Jan 18:36

Choose a tag to compare

Annotation 1.1.0: Annotation 1.1.0-alpha03

January 26, 2024

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

API Changes

  • Un-hide ExperimentalTestApi

Core 1.6.0: Core Core-ktx 1.6.0-alpha05

January 26, 2024

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

Bug Fixes

  • Update Activity Scenario reference documentation to fix missing links
  • Remove all support for Android SDKs < 19. Minimum is API 19 (Android Kit Kat 4.4)
  • Reference doc cleanup - document previously missing parameters, fix links, etc

Espresso 3.6.0: Espresso 3.6.0-alpha03

January 26, 2024

The following artifacts were released:

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

Bug Fixes

  • Fix typo in AdapterDataLoaderAction error message
  • Remove Kotlin collect stdlib calls in Java from espresso
  • Reference doc cleanup - document previously missing parameters, fix links, etc
  • Remove Kotlin StringKt calls from Java code
  • Remove all support for Android SDKs < 19. Minimum is API 19 (Android Kit Kat 4.4)
  • Stop posting empty tasks to background threads when running in non-remote mode
  • Better handle exceptions that may occur in DefaultFailureHandler's hierarchy capture and screenshot process.

API Changes

  • Mark generated IInteractionExecutionStatus class as RestrictTo LIBRARY_GROUP
  • Remove ExperimentalTestApi from RuntimePermissionStubber

Test:

Test:

Test:

Monitor 1.7.0: monitor 1.7.0-alpha04

January 26, 2024

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

Bug Fixes

  • Fix synchronization in IntentMonitorImpl callbacks
  • Remove all support for Android SDKs < 19. Minimum is API 19 (Android Kit Kat 4.4)

API Changes * Move androidx.test.platform.tracing back to an internal API

Runner 1.6.0: runner 1.6.0-alpha06

January 26, 2024

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

Bug Fixes

  • Attempt to clarify limitations and deprecation reasons in RequiresDevice documentation
  • Remove all support for Android SDKs < 19. Minimum is API 19 (Android Kit Kat 4.4)
  • Fix that "-e class" and "-e notClass" on the same class/method should perform the same result (no tests run)

API Changes

  • Mark androidx.test.services.** as RestrictTo LIBRARY_GROUP
  • Remove ExperimentalTestApi from CustomFilter - making it public
  • Remove ExperimentalTestApi from PackagePrefixClasspathSuite - make it public
  • Mark PermissionRequester as RestrictTo LIBRARY_GROUP instead of ExperimentalTestApi

Rules 1.6.0: rules 1.6.0-alpha03

January 26, 2024

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

Bug Fixes

  • Remove all support for Android SDKs < 19. Minimum is API 19 (Android Kit Kat 4.4)

API Changes

  • Recommend use of UiAutomation#grantRuntimePermissions instead of GrantPermissionRule

Services 1.5.0: services 1.5.0-alpha03

January 26, 2024

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

Bug Fixes

  • When files are opened for writing, TestStorage now truncates the file unless it is explicitly opened for appending. This prevents bytes from a prior write to the file from remaining at the end of the file.
  • Remove all support for Android SDKs < 19. Minimum is API 19 (Android Kit Kat 4.4)

2024-01-25

26 Jan 15:38

Choose a tag to compare

Activity: v1.9.0-alpha02

January 24, 2024

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

Kotlin Conversions

  • ActivityResultRegistry has been rewritten in Kotlin. This ensures that the nullability of the generics on the contract passed to register will correctly be passed through to the ActivityResultLauncher returned to you. (I121f0)
  • ActivityResult has been rewritten in Kotlin. The ActivityResult Kotlin extensions that support destructuring into the resultCode and data fields have been moved from activity-ktx to activity. (I0565a)
  • The Kotlin extensions of by viewModels() for ComponentActivity and trackPipAnimationHintView have been moved from activity-ktx to activity. The activity-ktx artifact is now completely empty. (I0a444)

Bug Fixes

  • The enableEdgeToEdge API now draws around any display cutouts. (a3644b, b/311173461)
  • From Activity 1.8.2: Fixed the extra passed to the Photo Picker Activity Contract's ACTION_SYSTEM_FALLBACK_PICK_IMAGES to correctly pass it the EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX key, rather than using the extra with the key "com.google.android.gms.provider.extra.PICK_IMAGES_MAX". It is strongly recommended if you are an OEM who implements a system fallback Photo Picker to support both extras to ensure the widest compatibility. (I96a00)

Annotation-Experimental: v1.4.0

January 24, 2024

androidx.annotation:annotation-experimental:1.4.0 is released. Version 1.4.0 contains these commits.

Important changes since 1.3.0

  • Add support for Kotlin multi-platform
  • Fix compatibility with Kotlin 2.0
  • Show warnings for Java usages of experimentally-annotated Kotlin properties (I8bd43)
  • Fix placement of autofix annotation on Kotlin methods (Id7a41)

Benchmark: v1.2.3

January 24, 2024

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

Bug Fixes

  • Removed exception from Baseline Profile Gradle Plugin when AGP version is 8.3.0 or higher.
  • Fix for including library baseline profiles in AAR prior to AGP 8.3.0-alpha15.

CameraX: v1.4.0-alpha04

January 24, 2024

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

New Features

  • New artifact: camera-effects: A library for applying real time effects to CameraX output, including Preview, VideoCapture and/or ImageCapture. This artifact contains OpenGL implementations of the CameraEffect API that manipulates the camera output efficiently.
  • OverlayEffect: for drawing overlays with Android’s Canvas API. This allows the app to apply a watermark or highlight detected objects on camera outputs.
  • DynamicRange APIs for the Preview Use Case: The dynamic range can now be set on the Preview Use Case, independently of the Video Use Case. This allows HDR dynamic ranges such as HLG10 for Preview alone. New APIs are also available in CameraInfo to query which dynamic ranges each camera supports.

API Changes

  • Renamed ScreenFlashUiCompleter to ScreenFlashListener and moved ScreenFlashUiCompleter#getExpirationTimeMillis to expirationTimeMillis parameter of ScreenFlash#apply. (I13944)
  • New APIs added to allow dynamic range to be set on Preview use case, and to query dynamic ranges supported by each camera. This allows HDR dynamic ranges, such as HLG10, to be used with the Preview use case alone, no longer requiring a VideoCapture to be bound at the same time. (If25e3)
  • Renamed getMirroring() to isMirroring() (I47063)
  • Added Realtime still capture latency estimate support in CameraX. Camera extensions enable applications to use an API that provides an estimate of how long a capture will take. The estimate takes into account the current environment conditions, the camera state and includes the time spent processing multi-frame capture requests along with any additional time for encoding processed buffers if necessary. (I05c3a)
  • Renamed ScreenFlashUiControl to ScreenFlash, ScreenFlashUiControl#applyScreenFlashUi to ScreenFlash#apply, ScreenFlashUiControl#clearScreenFlashUi to ScreenFlash#clear, and added getScreenFlashUiApplyTimeoutSeconds method instead of exposing SCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS directly. (Iccdd0)

Bug Fixes

  • Fixed a memory leakage that results in activities or fragments not being released when Extensions are enabled (I14215)
  • Fixed the issue where getZoomRatio incorrectly returned a decreased value when applying an increasing zoom ratio. (I4aa0d, b/317543616)
  • ImageCapture#ScreenFlash#clear event is invoked immediately when ImageCapture is unbound or camera is closed, also fixes some bugs where it is never invoked due to captures in these scenarios not completing properly. (If99f9)
  • Fixed the crash that happens when lifecycle is stopped before takePicture request is completed (Idf017, b/...
Read more

2024-01-24

24 Jan 18:38

Choose a tag to compare

Activity: v1.9.0-alpha02

January 24, 2024

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

Kotlin Conversions

  • ActivityResultRegistry has been rewritten in Kotlin. This ensures that the nullability of the generics on the contract passed to register will correctly be passed through to the ActivityResultLauncher returned to you. (I121f0)
  • ActivityResult has been rewritten in Kotlin. The ActivityResult Kotlin extensions that support destructuring into the resultCode and data fields have been moved from activity-ktx to activity. (I0565a)
  • The Kotlin extensions of by viewModels() for ComponentActivity and trackPipAnimationHintView have been moved from activity-ktx to activity. The activity-ktx artifact is now completely empty. (I0a444)

Bug Fixes

  • The enableEdgeToEdge API now draws around any display cutouts. (a3644b, b/311173461)
  • From Activity 1.8.2: Fixed the extra passed to the Photo Picker Activity Contract's ACTION_SYSTEM_FALLBACK_PICK_IMAGES to correctly pass it the EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX key, rather than using the extra with the key "com.google.android.gms.provider.extra.PICK_IMAGES_MAX". It is strongly recommended if you are an OEM who implements a system fallback Photo Picker to support both extras to ensure the widest compatibility. (I96a00)

Annotation-Experimental: v1.4.0

January 24, 2024

androidx.annotation:annotation-experimental:1.4.0 is released. Version 1.4.0 contains these commits.

Important changes since 1.3.0

  • Add support for Kotlin multi-platform
  • Fix compatibility with Kotlin 2.0
  • Show warnings for Java usages of experimentally-annotated Kotlin properties (I8bd43)
  • Fix placement of autofix annotation on Kotlin methods (Id7a41)

Benchmark: v1.2.3

January 24, 2024

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

Bug Fixes

  • Removed exception from Baseline Profile Gradle Plugin when AGP version is 8.3.0 or higher.
  • Fix for including library baseline profiles in AAR prior to AGP 8.3.0-alpha15.

CameraX: v1.4.0-alpha04

January 24, 2024

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

New Features

  • New artifact: camera-effects: A library for applying real time effects to CameraX output, including Preview, VideoCapture and/or ImageCapture. This artifact contains OpenGL implementations of the CameraEffect API that manipulates the camera output efficiently.
  • OverlayEffect: for drawing overlays with Android’s Canvas API. This allows the app to apply a watermark or highlight detected objects on camera outputs.
  • DynamicRange APIs for the Preview Use Case: The dynamic range can now be set on the Preview Use Case, independently of the Video Use Case. This allows HDR dynamic ranges such as HLG10 for Preview alone. New APIs are also available in CameraInfo to query which dynamic ranges each camera supports.

API Changes

  • Renamed ScreenFlashUiCompleter to ScreenFlashListener and moved ScreenFlashUiCompleter#getExpirationTimeMillis to expirationTimeMillis parameter of ScreenFlash#apply. (I13944)
  • New APIs added to allow dynamic range to be set on Preview use case, and to query dynamic ranges supported by each camera. This allows HDR dynamic ranges, such as HLG10, to be used with the Preview use case alone, no longer requiring a VideoCapture to be bound at the same time. (If25e3)
  • Renamed getMirroring() to isMirroring() (I47063)
  • Added Realtime still capture latency estimate support in CameraX. Camera extensions enable applications to use an API that provides an estimate of how long a capture will take. The estimate takes into account the current environment conditions, the camera state and includes the time spent processing multi-frame capture requests along with any additional time for encoding processed buffers if necessary. (I05c3a)
  • Renamed ScreenFlashUiControl to ScreenFlash, ScreenFlashUiControl#applyScreenFlashUi to ScreenFlash#apply, ScreenFlashUiControl#clearScreenFlashUi to ScreenFlash#clear, and added getScreenFlashUiApplyTimeoutSeconds method instead of exposing SCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS directly. (Iccdd0)

Bug Fixes

  • Fixed a memory leakage that results in activities or fragments not being released when Extensions are enabled (I14215)
  • Fixed the issue where getZoomRatio incorrectly returned a decreased value when applying an increasing zoom ratio. (I4aa0d, b/317543616)
  • ImageCapture#ScreenFlash#clear event is invoked immediately when ImageCapture is unbound or camera is closed, also fixes some bugs where it is never invoked due to captures in these scenarios not completing properly. (If99f9)
  • Fixed the crash that happens when lifecycle is stopped before takePicture request is completed (Idf017, b/...
Read more

2024-01-15

19 Jan 15:36

Choose a tag to compare

Media3: v1.3.0-alpha01

January 15, 2024

  • Common Library:
    • Implement support for android.resource://package/[type/]name raw resource URIs where package is different to the package of the current application. This has always been documented to work, but wasn't correctly implemented until now.
    • Normalize MIME types set by app code or read from media to be fully lower-case.
    • Define ads with a full MediaItem instead of a single Uri in AdPlaybackState.
    • Increase minSdk to 19 (Android KitKat). This is aligned with all other AndroidX libraries, and is required for us to upgrade to the latest versions of our AndroidX dependencies.
  • ExoPlayer:
    • Add PreloadMediaSource and PreloadMediaPeriod that allows apps to preload a content media source at a specific start position before playback. PreloadMediaSource takes care of preparing the content media source to receive the Timeline, preparing and caching the period at the given start position, selecting tracks and loading media data for the period. Apps control the preload progress by implementing PreloadMediaSource.PreloadControl and set the preloaded source to the player for playback.
    • Add ExoPlayer.setImageOutput that allows apps to set ImageRenderer.ImageOutput.
    • DefaultRenderersFactory now provides an ImageRenderer to the player by default with null ImageOutput and ImageDecoder.Factory.DEFAULT.
    • Emit Player.Listener.onPositionDiscontinuity event when silence is skipped (#765).
    • Add experimental support for parsing subtitles during extraction. You can enable this using MediaSource.Factory.experimentalParseSubtitlesDuringExtraction().
    • Support adaptive media sources with PreloadMediaSource.
    • Implement HttpEngineDataSource, an HttpDataSource using the HttpEngine API.
  • Transformer:
    • Add support for flattening H.265/HEVC SEF slow motion videos.
    • Increase transmuxing speed, especially for 'remove video' edits.
    • Add API to ensure that the output file starts on a video frame. This can make the output of trimming operations more compatible with player implementations that don't show the first video frame until its presentation timestamp (#829).
  • Track Selection:
    • Add DefaultTrackSelector.selectImageTrack to enable image track selection.
    • Add TrackSelectionParameters.isPrioritizeImageOverVideoEnabled to determine whether to select an image track if both an image track and a video track are available. The default value is false which means selecting a video track is prioritized.
  • Extractors:
    • Add additional AV1C parsing to MP4 extractor to retrieve ColorInfo.colorSpace, ColorInfo.colorTransfer, and ColorInfo.colorRange values (#692).
  • Video:
    • Change the MediaCodecVideoRenderer constructor that takes a VideoFrameProcessor.Factory argument and replace it with a constructor that takes a VideoSinkProvider argument. Apps that want to inject a custom VideoFrameProcessor.Factory can instantiate a CompositingVideoSinkProvider that uses the custom VideoFrameProcessor.Factory and pass the video sink provider to MediaCodecVideoRenderer.
  • Text:
    • Fix serialization of bitmap cues to resolve Tried to marshall a Parcel that contained Binder objects error when using DefaultExtractorsFactory.setTextTrackTranscodingEnabled (#836).
    • CEA-708: Ignore rowLock value. The CEA-708-E S-2023 spec states that rowLock and columnLock should both be assumed to be true, regardless of the values present in the stream (columnLock support is not implemented, so it's effectively assumed to always be false).
  • DRM:
  • IMA extension:
    • Fix issue where DASH and HLS ads without the appropriate file extension can't be played.
  • HLS Extension:
    • Reduce HlsMediaPeriod to package-private visibility. This type shouldn't be directly depended on from outside the HLS package.
  • Decoder Extensions (FFmpeg, VP9, AV1, MIDI, etc.):
    • MIDI decoder: Ignore SysEx event messages (#710).
  • Test Utilities:
    • Don't pause playback in TestPlayerRunHelper.playUntilPosition. The test keeps the playback in a playing state, but suspends progress until the test is able to add assertions and further actions.
  • Demo app:
    • Add a shortform demo module to demo the usage of PreloadMediaSource with the short-form content use case.

2024-01-11

17 Jan 12:51

Choose a tag to compare

Media3: