Releases: mahozad/androidx-release-notes
2024-12-11
Activity: v1.10.0-rc01
December 11, 2024
androidx.activity:activity:1.10.0-rc01
, androidx.activity:activity-compose:1.10.0-rc01
, and androidx.activity:activity-ktx:1.10.0-rc01
are released. Version 1.10.0-rc01 contains these commits.
Bug Fixes
- Fixed an issue where changing the enabled state while the
PredictiveBackHandler
is currently active would short circuit the callback immediately. It will now finish the current callback regardless of the enabled status changes. (Ib8719)
AppSearch: v1.1.0-alpha07
December 11, 2024
androidx.appsearch:appsearch-*:1.1.0-alpha07
is released. Version 1.1.0-alpha07 contains these commits.
New Features
- Add
ExperimentalAppSearchApi
annotation to new API surfaces that have not yet stabilized. (Ib09f4) - Support for efficiently storing and sharing binary blob data via
AppSearchSession#openBlobForWriteAsync
and related methods - Support for filtering query results by scoring expression via the
matchScoreExpression
function (Id525a) - Support for propagating deletion from parent document to child documents. (Ia032d)
- Support for embedding quantization API to increase embedding performance with slight quality loss. (Id8a07)
- Support for restricting searches to certain documents using the
addFilterDocumentIds
API inSearchSpec
. (I7c6f1)
API Changes
- Move parent type information from
GenericDocument
toSearchResult
. (I34a1d) - Support for new action types in the
TakenAction
API, includingDismissAction
andImpressionAction
. (I0c6c7) - Added new AppSearch builtin schema
WebPage
. (I28127)
Benchmark: v1.4.0-alpha06
December 11, 2024
androidx.benchmark:benchmark-*:1.4.0-alpha06
is released. Version 1.4.0-alpha06 contains these commits.
API Changes
- Removed usage of
@Language("sql")
inPerfettoTraceProcessor.Session.query()
, as Studio highlighting/parsing is broken. (Idc2fa, b/377733398)
Bug Fixes
- This library now uses JSpecify nullness annotations, which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage:
-Xjspecify-annotations=strict
,-Xtype-enhancement-improvements-strict-mode
(I46810, b/326456246) - Corrected
ArtMetric
to report class load (not init), and improved docs to clarify runtime behavior. (I9915c) - On Android Multiuser, execute commands as root only on rooted devices. (I88b44)
Camera: v1.4.1
December 11, 2024
androidx.camera:camera-*:1.4.1
is released. Version 1.4.1 contains these commits.
Bug Fixes
- Fixed an issue on Pixel Android 15 devices where NIGHT mode in Extensions failed to capture still images until the camera focused on a nearby object. (I228d4)
- Fixed the
ImageCapture#takePicture
malfunction issue when extensions are enabled andVideoCapture
is bound together. (I5c745)
Camera: v1.5.0-alpha04
December 11, 2024
androidx.camera:camera-*:1.5.0-alpha04
is released. Version 1.5.0-alpha04 contains these commits.
API Changes
- Exposed
ImageCapture.Builder#setOutputFormat
andImageCaptureCapabilities#getSupportedOutputFormats
as stable APIs (Ieb04a) - Add
VideoCapture.getResolutionInfo()
to get the resolution information when aVideoCapture
is bound to a Lifecycle. (Icb478) - Exposed
PreviewView.getScreenFlash
andPreviewView.setScreenFlashOverlayColor
as stable APIs. (I74fee)
Bug Fixes
- Fixed capture failure issue on Vivo 1610 device while taking picture with flash in the dark. (I366f4)
- Fixed torch unexpectedly turning off after image capture in Redmi Note 6 Pro. (I2e0e8, b/377144569)
- Fixed an issue on Pixel Android 15 devices where NIGHT mode in Extensions failed to capture still images until the camera focused on a nearby object. (I228d4)
- Fixed the still image capture malfunction issue when extensions are enabled and
VideoCapture
is bound together. (I5c745) - Enabled
UltraHDR
still image capture support for Extensions if the device can support it. (I48300) - Fixed flash timing issue for flash capture with
CameraEffect
targeting image captures on TCL devices. (I7698c)
camera media3: v1.0.0-alpha01
December 11, 2024
androidx.camera.media3:media3-effect:1.0.0-alpha01
is released. Version 1.0.0-alpha01 contains these commits.
New Features
- An adapter library for using Media3 effects with CameraX. It's for adding Media3 effects into the camera pipeline with CameraX's
...
2024-12-09
Media3: v1.5.0
November 27, 2024
androidx.media3:media3-*:1.5.0
is released. Version 1.5.0 contains these commits.
- Common Library:
- Add
ForwardingSimpleBasePlayer
that allows forwarding to another player with small adjustments while ensuring full consistency and listener handling (#1183). - Replace
SimpleBasePlayer.State.playlist
bygetPlaylist()
method. - Add override for
SimpleBasePlayer.State.Builder.setPlaylist()
to directly specify aTimeline
and currentTracks
andMetadata
instead of building a playlist structure. - Increase
minSdk
to 21 (Android Lollipop). This is aligned with all other AndroidX libraries. - Add
androidx.media3:media3-common-ktx
artifact which provides Kotlin-specific functionality built on top of the Common library - Add
Player.listen
suspending extension function to spin a coroutine to listen toPlayer.Events
to themedia3-common-ktx
library. - Remove
@DoNotInline
annotations from manually out-of-lined inner classes designed to avoid runtime class verification failures. Recent versions of R8 now automatically out-of-line calls like these to avoid the runtime failures (so the manual out-of-lining is no longer required). All Gradle users of the library must already be a using a version of the Android Gradle Plugin that uses a version of R8 which does this, due tocompileSdk = 35
. Users of the library with non-Gradle build systems will need to ensure their R8-equivalent shrinking/obfuscating step does a similar automatic out-of-lining process in order to avoid runtime class verification failures. This change has already been done in other AndroidX libraries.
- Add
- ExoPlayer:
MediaCodecRenderer.onProcessedStreamChange()
can now be called for every media item. Previously it was not called for the first one. UseMediaCodecRenderer.experimentalEnableProcessedStreamChangedAtStart()
to enable this.- Add
PreloadMediaSource.PreloadControl.onPreloadError
to allowPreloadMediaSource.PreloadControl
implementations to take actions when error occurs. - Add
BasePreloadManager.Listener
to propagate preload events to apps. - Allow changing SNTP client timeout and retry alternative addresses on timeout (#1540).
- Remove
MediaCodecAdapter.Configuration.flags
as the field was always zero. - Allow the user to select the built-in speaker for playback on Wear OS API 35+ (where the device advertises support for this).
- Defer the blocking call to
Context.getSystemService(Context.AUDIO_SERVICE)
until audio focus handling is enabled. This ensures the blocking call isn't done if audio focus handling is not enabled (#1616). - Allow playback regardless of buffered duration when loading fails (#1571).
- Add
AnalyticsListener.onRendererReadyChanged()
to signal when individual renderers allow playback to be ready. - Fix
MediaCodec.CryptoException
sometimes being reported as an "unexpected runtime error" whenMediaCodec
is operated in asynchronous mode (default behaviour on API 31+). - Pass
bufferedDurationUs
instead ofbufferedPositionUs
withPreloadMediaSource.PreloadControl.onContinueLoadingRequested()
. Also changesDefaultPreloadManager.Status.STAGE_LOADED_TO_POSITION_MS
toDefaultPreloadManager.Status.STAGE_LOADED_FOR_DURATION_MS
, apps then need to pass a value representing a specific duration from the default start position for which the corresponding media source has to be preloaded with this IntDef, instead of a position. - Add
ForwardingRenderer
implementation that forwards all method calls to another renderer (1703). - Add playlist preloading for the next item in the playlist. Apps can enable preloading by calling
ExoPlayer.setPreloadConfiguration(PreloadConfiguration)
accordingly. By default preloading is disabled. When opted-in and to not interfere with playback,DefaultLoadControl
restricts preloading to start and continue only when the player is not loading for playback. Apps can change this behaviour by implementingLoadControl.shouldContinuePreloading()
accordingly (like when overriding this method inDefaultLoadControl
). The default implementation ofLoadControl
disables preloading in case an app is using a custom implementation ofLoadControl
. - Add method
MediaSourceEventListener.EventDispatcher.dispatchEvent()
to allow invoking events of subclass listeners (1736). - Add
DefaultPreloadManager.Builder
that builds theDefaultPreloadManager
andExoPlayer
instances with consistently shared configurations. - Remove
Renderer[]
parameter fromLoadControl.onTracksSelected()
asDefaultLoadControl
implementation can retrieve the stream types fromExoTrackSelection[]
. - Deprecated
DefaultLoadControl.calculateTargetBufferBytes(Renderer[], ExoTrackSelection[])
and marked method as final to prevent overrides. The newDefaultLoadControl.calculateTargetBufferBytes(ExoTrackSelection[])
should be used instead. - Report
MediaSourceEventListener
events from secondary sources inMergingMediaSource
. This will result in load start/error/cancelled/completed events being reported for sideloaded subtitles (those added withMediaItem.LocalConfiguration.subtitleConfigurations
), which may appear as duplicate load events emitted fromAnalyticsListener
. - Prevent subtitle & metadata errors from completely stopping playback. Instead the problematic track is disabled and playback of the remaining tracks continues (#1722).
- In new subtitle handling (during extraction), associated parse (e.g. invalid subtitle data) and load errors (e.g. HTTP 404) are emitted via
onLoadError
callbacks. - In legacy subtitle handling (during rendering), only associated load errors are emitted via
onLoadError
callbacks while parse errors are silently ignored (this is pre-existing behaviour).
- In new subtitle handling (during extraction), associated parse (e.g. invalid subtitle data) and load errors (e.g. HTTP 404) are emitted via
- Fix bug where playlist items or periods in multi-period DASH streams with durations that don't match the actual content could cause frame freezes at the end of the item (#1698).
- Add a setter to
SntpClient
to set the max elapsed time since the last update after which the client is re-initialized (#1794).
- Transformer:
- Add
SurfaceAssetLoader
, which supports queueing video data to Transformer via aSurface
. ImageAssetLoader
reports unsupported input viaAssetLoader.onError
instead of throwing anIllegalStateException
.- Make setting the image duration using
MediaItem.Builder.setImageDurationMs
mandatory for image export. - Add export support for gaps...
- Add
2024-11-25
Media3: v1.5.0
November 27, 2024
androidx.media3:media3-*:1.5.0
is released. Version 1.5.0 contains these commits.
- Common Library:
- Add
ForwardingSimpleBasePlayer
that allows forwarding to another player with small adjustments while ensuring full consistency and listener handling (#1183). - Replace
SimpleBasePlayer.State.playlist
bygetPlaylist()
method. - Add override for
SimpleBasePlayer.State.Builder.setPlaylist()
to directly specify aTimeline
and currentTracks
andMetadata
instead of building a playlist structure. - Increase
minSdk
to 21 (Android Lollipop). This is aligned with all other AndroidX libraries. - Add
androidx.media3:media3-common-ktx
artifact which provides Kotlin-specific functionality built on top of the Common library - Add
Player.listen
suspending extension function to spin a coroutine to listen toPlayer.Events
to themedia3-common-ktx
library. - Remove
@DoNotInline
annotations from manually out-of-lined inner classes designed to avoid runtime class verification failures. Recent versions of R8 now automatically out-of-line calls like these to avoid the runtime failures (so the manual out-of-lining is no longer required). All Gradle users of the library must already be a using a version of the Android Gradle Plugin that uses a version of R8 which does this, due tocompileSdk = 35
. Users of the library with non-Gradle build systems will need to ensure their R8-equivalent shrinking/obfuscating step does a similar automatic out-of-lining process in order to avoid runtime class verification failures. This change has already been done in other AndroidX libraries.
- Add
- ExoPlayer:
MediaCodecRenderer.onProcessedStreamChange()
can now be called for every media item. Previously it was not called for the first one. UseMediaCodecRenderer.experimentalEnableProcessedStreamChangedAtStart()
to enable this.- Add
PreloadMediaSource.PreloadControl.onPreloadError
to allowPreloadMediaSource.PreloadControl
implementations to take actions when error occurs. - Add
BasePreloadManager.Listener
to propagate preload events to apps. - Allow changing SNTP client timeout and retry alternative addresses on timeout (#1540).
- Remove
MediaCodecAdapter.Configuration.flags
as the field was always zero. - Allow the user to select the built-in speaker for playback on Wear OS API 35+ (where the device advertises support for this).
- Defer the blocking call to
Context.getSystemService(Context.AUDIO_SERVICE)
until audio focus handling is enabled. This ensures the blocking call isn't done if audio focus handling is not enabled (#1616). - Allow playback regardless of buffered duration when loading fails (#1571).
- Add
AnalyticsListener.onRendererReadyChanged()
to signal when individual renderers allow playback to be ready. - Fix
MediaCodec.CryptoException
sometimes being reported as an "unexpected runtime error" whenMediaCodec
is operated in asynchronous mode (default behaviour on API 31+). - Pass
bufferedDurationUs
instead ofbufferedPositionUs
withPreloadMediaSource.PreloadControl.onContinueLoadingRequested()
. Also changesDefaultPreloadManager.Status.STAGE_LOADED_TO_POSITION_MS
toDefaultPreloadManager.Status.STAGE_LOADED_FOR_DURATION_MS
, apps then need to pass a value representing a specific duration from the default start position for which the corresponding media source has to be preloaded with this IntDef, instead of a position. - Add
ForwardingRenderer
implementation that forwards all method calls to another renderer (1703). - Add playlist preloading for the next item in the playlist. Apps can enable preloading by calling
ExoPlayer.setPreloadConfiguration(PreloadConfiguration)
accordingly. By default preloading is disabled. When opted-in and to not interfere with playback,DefaultLoadControl
restricts preloading to start and continue only when the player is not loading for playback. Apps can change this behaviour by implementingLoadControl.shouldContinuePreloading()
accordingly (like when overriding this method inDefaultLoadControl
). The default implementation ofLoadControl
disables preloading in case an app is using a custom implementation ofLoadControl
. - Add method
MediaSourceEventListener.EventDispatcher.dispatchEvent()
to allow invoking events of subclass listeners (1736). - Add
DefaultPreloadManager.Builder
that builds theDefaultPreloadManager
andExoPlayer
instances with consistently shared configurations. - Remove
Renderer[]
parameter fromLoadControl.onTracksSelected()
asDefaultLoadControl
implementation can retrieve the stream types fromExoTrackSelection[]
. - Deprecated
DefaultLoadControl.calculateTargetBufferBytes(Renderer[], ExoTrackSelection[])
and marked method as final to prevent overrides. The newDefaultLoadControl.calculateTargetBufferBytes(ExoTrackSelection[])
should be used instead. - Report
MediaSourceEventListener
events from secondary sources inMergingMediaSource
. This will result in load start/error/cancelled/completed events being reported for sideloaded subtitles (those added withMediaItem.LocalConfiguration.subtitleConfigurations
), which may appear as duplicate load events emitted fromAnalyticsListener
. - Prevent subtitle & metadata errors from completely stopping playback. Instead the problematic track is disabled and playback of the remaining tracks continues (#1722).
- In new subtitle handling (during extraction), associated parse (e.g. invalid subtitle data) and load errors (e.g. HTTP 404) are emitted via
onLoadError
callbacks. - In legacy subtitle handling (during rendering), only associated load errors are emitted via
onLoadError
callbacks while parse errors are silently ignored (this is pre-existing behaviour).
- In new subtitle handling (during extraction), associated parse (e.g. invalid subtitle data) and load errors (e.g. HTTP 404) are emitted via
- Fix bug where playlist items or periods in multi-period DASH streams with durations that don't match the actual content could cause frame freezes at the end of the item (#1698).
- Add a setter to
SntpClient
to set the max elapsed time since the last update after which the client is re-initialized (#1794).
- Transformer:
- Add
SurfaceAssetLoader
, which supports queueing video data to Transformer via aSurface
. ImageAssetLoader
reports unsupported input viaAssetLoader.onError
instead of throwing anIllegalStateException
.- Make setting the image duration using
MediaItem.Builder.setImageDurationMs
mandatory for image export. - Add export support for gaps...
- Add
2024-11-19
Media3: 1.5.0-rc02 (2024-11-19)
androidx.media3:media3-*:1.5.0-rc02
is released.
Version 1.5.0-rc02 contains these commits.
This release includes the following changes since the 1.5.0-rc01 release:
2024-11-13
Activity: v1.10.0-beta01
November 13, 2024
androidx.activity:activity:1.10.0-beta01
, androidx.activity:activity-compose:1.10.0-beta01
, and androidx.activity:activity-ktx:1.10.0-beta01
are released with no changes since the last alpha. Version 1.10.0-beta01 contains these commits.
Benchmark: v1.4.0-alpha05
November 13, 2024
androidx.benchmark:benchmark-*:1.4.0-alpha05
is released. Version 1.4.0-alpha05 contains these commits.
Bug Fixes
- Fixed an issue on API 34+ where
CompilationMode.None()
would have inconsistent performance not representative of initial, worst case performance. This works around a platform change which allows ART's compilation stateverify
to partially compile apps (only affecting class loading) shortly after first launch. (Ie48d0) - Fixed issue where (especially short) traces could be captured that wouldn't report measurement from built-in Macrobenchmark Metrics, due to the process name being truncated within the Perfetto trace. Now macrobenchmark works around this issue by looking for the truncated package name in all built-in queries, in addition to the expected package name. Note that custom
TraceMetric
implementations or other direct callers ofPerfettoSession.query
can implement this same behavior by changingprocess.name LIKE "$packageName"
in a Perfetto query to instead be(process.name LIKE "$packageName" OR process.name LIKE "$(packageName.takeLast(15))")
. (I5bf01, b/377565760)
Car App: v1.7.0-beta03
November 13, 2024
Fixed a security vulnerability and other general bug fixes. If you are using a lower version, please update to use this version.
androidx.car.app:app-*:1.7.0-beta03
is released. Version 1.7.0-beta03 contains these commits.
API Changes
- Update CAL Serialization / De-serialization code to only handle objects which have the annotation
@CarProtocol
declared on them. (Ic730e) CarAppExtender
can now be used to extend the frameworkNotification.Builder
instead of onlyNotificationCompat.Builder
. (Id3ad7)- Add
KEY_EXCLUDE_MEDIA_ITEM_FROM_MIXED_APP_LIST
extra. (I201f9) - Deprecate the empty Builder constructor on
ConversationItem
and replace it with a constructor that takes required parameters. Also adds a check to guard against null messages. (Ic8221)
Bug Fixes
- Ensure
PlaceList
map uses string (Text-only) Header title. (Ic992f) - This library now uses JSpecify nullness annotations, which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage:
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
. (Ib5367, b/326456246)
Collection: v1.5.0-alpha06
November 13, 2024
androidx.collection:collection-*:1.5.0-alpha06
is released. Version 1.5.0-alpha06 contains these commits.
Bug Fixes
- Fixed a crash that could occur in
SieveCache
andOrderedScatterSet
when adding numerous items causing repeated key collisions. (Iaaf3d, b/375607736) - Add wasm target to collection library. (I66fe3, b/352722444)
Compose Animation: v1.8.0-alpha06
November 13, 2024
androidx.compose.animation:animation-*:1.8.0-alpha06
is released. Version 1.8.0-alpha06 contains these commits.
API Changes
- Updated
sharedElement
parameter naming fromstate
tosharedContentState
for consistency across shared element APIs. (I5694c, b/375351468) AnimatedImageVector
suite of APIs are now stable. (I7174b, b/261436267)
Compose Foundation: v1.8.0-alpha06
November 13, 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha06
is released. Version 1.8.0-alpha06 contains these commits.
API Changes
- Adds
stylusHoverIcon
modifier. (Iff20a, b/331289114) - Deprecated
AnchoredDraggableState
'sconfirmValueChange
. Instead of vetoing state changes, disallowed anchors should not be in the active anchor set, and anOverscrollEffect
should be used to indicate the unavailability of the requested action. (Ia717f) - Changes Autofill manager to be an interface. (I84914, b/376080755)
- Adds
OverscrollEffect#withoutDrawing
andOverscrollEffect#withoutEventHandling
APIs - these APIs create a wrapped instance of the provided overscroll effect that doesn't draw / handle events respectively, which allows for rendering overscroll in a separate component from the component that is dispatching events. For example, disabling drawing the overscroll inside a lazy list, and then drawing the overscroll separately on top / elsewhere. (Idbb3d, b/266550551, b/204650733, b/255554340, b/229537244) - Adding autofill support in text toolbar. (Ie6a4c)
- Deprecates
OverscrollConfiguration
andLocalOverscrollConfigurati...
2024-10-30@07PM
Activity: v1.10.0-alpha03
October 30, 2024
androidx.activity:activity:1.10.0-alpha03
, androidx.activity:activity-compose:1.10.0-alpha03
, and androidx.activity:activity-ktx:1.10.0-alpha03
are released. Version 1.10.0-alpha03 contains these commits.
API Changes
- Added a new
LocalActivity
composition local that provides theActivity
for the current scope, removing the need for developers to get anActivity
from theLocalContext
. It also comes with a new lint rule that checks when theLocalContext
is incorrectly being cast to anActivity
. (I7746a, b/283009666)
Bug Fixes
- From Activity
1.9.3
:PredictiveBackHandler
will no longer fire it's callback after the handler has been disabled. This will fix an issue where theNavHost
from Navigation Compose would throw anIndexOutOfBoundsException
. (I3f75e, b/365027664, b/340202286)
Dependency Update
- Activity Compose now depends on Compose Runtime 1.7.0 (I7746a, b/283009666)
Annotation: v1.9.1
October 30, 2024
androidx.annotation:annotation-*:1.9.1
is released. Version 1.9.1 contains these commits.
Bug Fixes
Benchmark: v1.4.0-alpha04
October 30, 2024
androidx.benchmark:benchmark-*:1.4.0-alpha04
is released. Version 1.4.0-alpha04 contains these commits.
New Features
- (Experimental) Enable Baseline Profile generation, and benchmarking on apps installed to a secondary user, for example any app on headless Android Auto devices. This support has been tested in some scenarios, but let us know with a bug if it doesn't work for you. (I9fcbe, b/356684617, b/373641155)
Bug Fixes
isProfileable
is now always overridden in benchmark builds, andisDebuggable
is also now always overridden in both benchmark andnonMinified
(baseline profile capture) builds. (I487fa, b/369213505)- Fixes compilation detection on some physical devices prior to API 28 - affects json
context.compilationMode
, as well as behavior ofandroidx.benchmark.requireAot=true
(which no longer incorrectly throws) (Ic3e08, b/374362482) - In
CpuEventCounter
metrics, throw if invalid measurements are observed (e.g. instructions/cpucycles==0) (I8c503)
Camera: v1.4.0
October 30, 2024
androidx.camera:camera-*:1.4.0
is released. Version 1.4.0 contains these commits.
Important changes since 1.3.0
CameraX 1.4.0 is packed with exciting updates! Here's a summary:
Headline Feature: 10-bit HDR:
- Capture stunning HDR photos and videos with ease.
- Supports HLG and 10-bit HEVC encoding.
- Enjoy 10-bit HDR preview and query device capabilities.
- Works with
UltraHDR
images and HDR video on a growing range of devices.
Other Cool Features:
- Kotlin Extensions: Added
takePicture
andawaitInstance
suspend functions. - Real-time Effects: Apply effects like watermarks and object highlighting.
- CameraController API: New controls for video capture configuration.
- Preview Stabilization: Query device capability and enable stabilization.
- VideoCapture Enhancements: Finer control over quality and access to higher resolutions.
- CameraX Extensions Integration: Seamless integration with
VideoCapture
and newImageCapture
features. - Shutter Sound API: Easily check regional shutter sound requirements.
- Screen Flash: Improved low-light photos for front-facing cameras.
- Camera Extensions Metadata APIs: Supporting APIs for adjusting extensions strength and get notification of current Extensions mode in
ExtensionMode#AUTO
. You can find more bug fixes in our Beta and RC announcements.
Camera: v1.5.0-alpha03
October 30, 2024
androidx.camera:camera-*:1.5.0-alpha03
is released. Version 1.5.0-alpha03 contains these commits.
API Changes
- Add output format APIs for RAW and RAW + JPEG
ImageCapture
, the device capability check is exposed inImageCaptureCapabilities#getSupportedOutputFormats
. TheOUTPUT_FORMAT_RAW
is to capture RAW image, which is Adobe DNG format andOUTPUT_FORMAT_RAW_JPEG
is to simultaneously capture RAW and JPEG images. The newImageCapture#takePicture
API is used for simultaneous image capture, it needs to provide twoOutputFileOptions
, the first one is for RAW image and the second one is for JPEG image. (Ib0f3d)
Bug Fixes
- Fixed preview and video under-exposure issue on TCL devices when
VideoCapture
is enabled. (Id7a64) - Fixed the issue where invoking
startFocusMetering
withPreviewView.getMeteringPointFactory
doesn't get the correct sensor coordinates when an effect is enabled or when 4 use cases are bound (stream-sharing). (I916c5, b/345993685) - Fixed the
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
event is not triggered when recording a video and there is insufficient storage space available. (I35779, b/356399842)
camera viewfinder: v1.4.0-alpha10
October 30, 2024
2024-10-30
Activity: v1.10.0-alpha03
October 30, 2024
androidx.activity:activity:1.10.0-alpha03
, androidx.activity:activity-compose:1.10.0-alpha03
, and androidx.activity:activity-ktx:1.10.0-alpha03
are released. Version 1.10.0-alpha03 contains these commits.
API Changes
- Added a new
LocalActivity
composition local that provides theActivity
for the current scope, removing the need for developers to get anActivity
from theLocalContext
. It also comes with a new lint rule that checks when theLocalContext
is incorrectly being cast to anActivity
. (I7746a, b/283009666)
Bug Fixes
- From Activity
1.9.3
:PredictiveBackHandler
will no longer fire it's callback after the handler has been disabled. This will fix an issue where theNavHost
from Navigation Compose would throw anIndexOutOfBoundsException
. (I3f75e, b/365027664, b/340202286)
Dependency Update
- Activity Compose now depends on Compose Runtime 1.7.0 (I7746a, b/283009666)
Annotation: v1.9.1
October 30, 2024
androidx.annotation:annotation-*:1.9.1
is released. Version 1.9.1 contains these commits.
Bug Fixes
Benchmark: v1.4.0-alpha04
October 30, 2024
androidx.benchmark:benchmark-*:1.4.0-alpha04
is released. Version 1.4.0-alpha04 contains these commits.
New Features
- (Experimental) Enable Baseline Profile generation, and benchmarking on apps installed to a secondary user, for example any app on headless Android Auto devices. This support has been tested in some scenarios, but let us know with a bug if it doesn't work for you. (I9fcbe, b/356684617, b/373641155)
Bug Fixes
isProfileable
is now always overridden in benchmark builds, andisDebuggable
is also now always overridden in both benchmark andnonMinified
(baseline profile capture) builds. (I487fa, b/369213505)- Fixes compilation detection on some physical devices prior to API 28 - affects json
context.compilationMode
, as well as behavior ofandroidx.benchmark.requireAot=true
(which no longer incorrectly throws) (Ic3e08, b/374362482) - In
CpuEventCounter
metrics, throw if invalid measurements are observed (e.g. instructions/cpucycles==0) (I8c503)
Camera: v1.4.0
October 30, 2024
androidx.camera:camera-*:1.4.0
is released. Version 1.4.0 contains these commits.
Important changes since 1.3.0
CameraX 1.4.0 is packed with exciting updates! Here's a summary:
Headline Feature: 10-bit HDR:
- Capture stunning HDR photos and videos with ease.
- Supports HLG and 10-bit HEVC encoding.
- Enjoy 10-bit HDR preview and query device capabilities.
- Works with
UltraHDR
images and HDR video on a growing range of devices.
Other Cool Features:
- Kotlin Extensions: Added
takePicture
andawaitInstance
suspend functions. - Real-time Effects: Apply effects like watermarks and object highlighting.
- CameraController API: New controls for video capture configuration.
- Preview Stabilization: Query device capability and enable stabilization.
- VideoCapture Enhancements: Finer control over quality and access to higher resolutions.
- CameraX Extensions Integration: Seamless integration with
VideoCapture
and newImageCapture
features. - Shutter Sound API: Easily check regional shutter sound requirements.
- Screen Flash: Improved low-light photos for front-facing cameras.
- Camera Extensions Metadata APIs: Supporting APIs for adjusting extensions strength and get notification of current Extensions mode in
ExtensionMode#AUTO
. You can find more bug fixes in our Beta and RC announcements.
Camera: v1.5.0-alpha03
October 30, 2024
androidx.camera:camera-*:1.5.0-alpha03
is released. Version 1.5.0-alpha03 contains these commits.
API Changes
- Add output format APIs for RAW and RAW + JPEG
ImageCapture
, the device capability check is exposed inImageCaptureCapabilities#getSupportedOutputFormats
. TheOUTPUT_FORMAT_RAW
is to capture RAW image, which is Adobe DNG format andOUTPUT_FORMAT_RAW_JPEG
is to simultaneously capture RAW and JPEG images. The newImageCapture#takePicture
API is used for simultaneous image capture, it needs to provide twoOutputFileOptions
, the first one is for RAW image and the second one is for JPEG image. (Ib0f3d)
Bug Fixes
- Fixed preview and video under-exposure issue on TCL devices when
VideoCapture
is enabled. (Id7a64) - Fixed the issue where invoking
startFocusMetering
withPreviewView.getMeteringPointFactory
doesn't get the correct sensor coordinates when an effect is enabled or when 4 use cases are bound (stream-sharing). (I916c5, b/345993685) - Fixed the
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
event is not triggered when recording a video and there is insufficient storage space available. (I35779, b/356399842)
camera viewfinder: v1.4.0-alpha10
October 30, 2024
2024-10-23
WorkManager: v2.10.0-rc01
October 24, 2024
androidx.work:work-*:2.10.0-rc01
is released. Version 2.10.0-rc01 contains these commits.
2024-10-16
Activity: v1.9.3
October 16, 2024
androidx.activity:activity:1.9.3
, androidx.activity:activity-compose:1.9.3
, and androidx.activity:activity-ktx:1.9.3
are released. Version 1.9.3 contains these commits.
Bug Fixes
PredictiveBackHandler
will no longer fire it's callback after the handler has been disabled. This will fix an issue where theNavHost
from Navigation Compose would throw anIndexOutOfBoundsException
. (I3f75e, b/340202286)
Annotation: v1.9.0
October 16, 2024
androidx.annotation:annotation-*:1.9.0
is released. Version 1.9.0 contains these commits.
Important changes since 1.8.0
- Added support for the following Kotlin Multiplatform targets:
watchosDeviceArm64
,mingwX64
,linuxArm64
.
AppSearch: v1.1.0-alpha06
October 16, 2024
androidx.appsearch:appsearch-*:1.1.0-alpha06
is released. Version 1.1.0-alpha06 contains these commits.
API Changes
- Added node representing the
PropertyDefined
query function. (I1aeaf) - Add nodes to represent numeric search and property restrict. (I963a9)
- Add node representing
GetSearchStringParameter
query function. (I4f99b) - Add node representing the
HasProperty
query function. (I9c1c5) - Added interface for implementing functions in AST. (I9d42e)
- Add AND and OR operators. (Iaa442)
- Add
NegationNode
for representing logical negation of queries in AST. (Ia855a) - Add Node interface to
AppSearch
for defining nodes. (If42fb) - Adds an Experimental API annotation for
AppSearch
. (I3e57c)
Bug Fixes
- Add
TextNodes
for holding terms. (Iefd02)
Security Fix
- As of this change, androidx compiles against protobuf 4.28.2 in order to address CVE-2024-7254. Upgrade your dependency on
androidx.appsearch:appsearch-external-protobuf
to the latest 1.1.0-alpha06 to address the vulnerability risk.
Benchmark: v1.3.3
October 16, 2024
androidx.benchmark:benchmark-*:1.3.3
is released. Version 1.3.3 contains these commits.
Bug Fixes
- Fixed
CollectBaselineProfileTask
when AVD device has spaces in it (Ia0225, b/371642809)
Benchmark: v1.4.0-alpha03
October 16, 2024
androidx.benchmark:benchmark-*:1.4.0-alpha03
is released. Version 1.4.0-alpha03 contains these commits.
API Changes
- Macrobenchmark: Adds
ArtMetric
, which can be used to inspect profile coverage or general Android RunTime performance. Captures number and total duration of JIT, class init (where available), and class verification. Additionally, changesCaptureInfo
to include optional ART mainline version with default. (I930f7) - Add
coefficientOfVariation
to Benchmark JSON output to show stability within a given benchmark run. (Ib14ea)
Bug Fixes
- Fixed
CollectBaselineProfileTask
when AVD device has spaces in it. (Ia0225, b/371642809) - Speculative fix for errors from
StartupMode.COLD
exceptions:Package <packagename> must not be running prior to cold start!
. Now,MacrobenchmarkScope.killProcess()
(including the one run before each iteration, used to implementStartupMode.COLD
behavior) will wait to verify that the app's processes have all stopped running. (I60aa6, b/351582215) - Fixed issue where UNLOCKED_ error would show up on some rooted emulators. (Ic5117)
- This library now uses JSpecify nullness annotations, which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage:
-Xjspecify-annotations=strict
,-Xtype-enhancement-improvements-strict-mode
(I7104f, b/326456246)
Camera: v1.4.0-rc04
October 16, 2024
androidx.camera:camera-*:1.4.0-rc04
is released. Version 1.4.0-rc04 contains these commits.
Bug Fixes
- Fixed the issue where invoking
startFocusMetering
withPreviewView.getMeteringPointFactory
doesn't get the correct sensor coordinates when an effect is enabled or when 4 use cases are bound (stream-sharing). (I916c5, b/345993685)
Collection: v1.5.0-alpha04
October 16, 2024
androidx.collection:collection-*:1.5.0-alpha04
is released. Version 1.5.0-alpha04 contains these commits.
Compose Animation: v1.7.4
October 16, 2024
androidx.compose.animation:animation-*:1.7.4
is released. Version 1.7.4 contains
2024-10-02
Annotation: v1.9.0-rc01
October 2, 2024
androidx.annotation:annotation-*:1.9.0-rc01
is released. Version 1.9.0-rc01 contains no changes since the previous beta.
Benchmark: v1.3.2
October 2, 2024
androidx.benchmark:benchmark-*:1.3.2
is released. Version 1.3.2 contains these commits.
Bug Fixes
- Fixed Firebase Test Lab (FTL) being unable to pull Baseline Profile or Macrobenchmark result files from the Baseline Profile Gradle Plugin. (I2f678, b/285187547)
To use FTL apply the plugin to the baseline profile module in the plugin block, with:
plugins {
...
id("com.google.firebase.testlab")
}
and then configure firebase test lab with:
firebaseTestLab {
// Credentials for FTL service serviceAccountCredentials.set(file("credentials.json")) // Creates one or more managed devices to run the tests on. managedDevices { "ftlDeviceShiba34" { device = "shiba" apiLevel = 34 } } // Ensures the baseline profile is pulled from the device. // Note that this will be automated as well later with aosp/3272935. testOptions { results { directoriesToPull.addAll("/storage/emulated/0/Android/media/${android.namespace}") } }
}
Also the created FTL device needs to be added to the baseline profile extension:
baselineProfile {
managedDevices += "ftlDeviceShiba34"
useConnectedDevices = false
}
Benchmark: v1.4.0-alpha02
October 2, 2024
androidx.benchmark:benchmark-*:1.4.0-alpha02
is released. Version 1.4.0-alpha02 contains these commits.
API Changes
- Moved Gradle tasks
lockClocks
andunlockClocks
to be on benchmark projects, instead of available at the top level. This change was necessary as there is unfortunately no way to register these as top level actions without breaking project isolation. (I02b8f, b/363325823)
Bug Fixes
BaselineProfileRule
now collects profiles for multi-process apps by signaling each running process at the end of the block to dump profiles. If a profile based compilation never successfully finds a process to broadcast to, the compilation will fail, as it's unexpected to have profile data within. Additionally, added an instrumentation argument to control dump wait duration:androidx.benchmark.saveProfileWaitMillis
(I0f519, b/366231469)- From Benchmark
1.3.2
: Fixed Firebase Test Lab (FTL) being unable to pull Baseline Profile or Macrobenchmark result files from the Baseline Profile Gradle Plugin. (I2f678, b/285187547)
To use FTL apply the plugin to the baseline profile module in the plugin block, with:
plugins {
...
id("com.google.firebase.testlab")
}
and then configure firebase test lab with:
firebaseTestLab {
// Credentials for FTL service serviceAccountCredentials.set(file("credentials.json")) // Creates one or more managed devices to run the tests on. managedDevices { "ftlDeviceShiba34" { device = "shiba" apiLevel = 34 } } // Ensures the baseline profile is pulled from the device. // Note that this will be automated as well later with aosp/3272935. testOptions { results { directoriesToPull.addAll("/storage/emulated/0/Android/media/${android.namespace}") } }
}
Also the created FTL device needs to be added to the baseline profile extension:
baselineProfile {
managedDevices += "ftlDeviceShiba34"
useConnectedDevices = false
}
Camera: v1.4.0-rc03
October 2, 2024
androidx.camera:camera-*:1.4.0-rc03
is released. Version 1.4.0-rc03 contains these commits.
Bug Fixes
- Added flash/torch/3A functionalities for image captures with
CameraEffect
. The image captures withCameraEffect
should now have the same pre-capture and post-capture processings (e.g. flash trigger, 3A convergence etc. when applicable) as image capture without anyCameraEffect
. (I5ff30) - Optimized the pinch-to-zoom smoothness in
PreviewView
(I04ffc) - Decouple Ultra HDR from 10-bit output capability, as Ultra HDR support no longer requires devices to have 10-bit output capability. (I96ff2, I0c3b3)
Camera: v1.5.0-alpha02
October 2, 2024
androidx.camera:camera-*:1.5.0-alpha02
is released. Version 1.5.0-alpha02 contains these commits.
New Features
- New APIs for querying camera features supported by the device. For example, checking if HDR and 60FPS can be enabled at the same time. It includes 2 artifacts: camera-feature-combination-query and camera-feature-combination-query-play-services. This is a compatible version of camera2's
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported
API with additional data provided by Google Play Service.
Bug Fixes
- Fixed
Preview/VideoCapture
target frame rate issue on LEGACY level devices. The target frame rate set via thesetTargetFrameRate
orCamera2Interop
API was always overwritten to the value provided by theAeFpsRangeLegacyQuirk
. With this fix, CameraX library will respect the value set via thesetTargetFrameRate
orCamera2Interop
API. (Ie2d32) - Added flash/torch/3A functionalities for image captures with
CameraEffect
. The image captures withCameraEffect
should now have the same pre-capture and post-capture processings (e.g. flash trigger, 3A convergence etc. when applicable) as image capture without anyCameraEffect
. (I5ff30) - Excluded problematic output sizes for
ImageAnalysis
on Samsung SM-A057G device. WhenImageAnalysis
uses a resolution larger or equal to 1920x1440, it will cause black preview issue. AppliedExcludedSupportedSizesQuirk
to the SM-A057G device to avoid the issue. (I63dfe,