{"id":3588,"date":"2026-09-23T10:11:14","date_gmt":"2026-09-23T10:11:14","guid":{"rendered":"https:\/\/dev95.site\/now-in-android-121\/"},"modified":"2026-09-23T10:11:14","modified_gmt":"2026-09-23T10:11:14","slug":"now-in-android-121","status":"publish","type":"post","link":"https:\/\/dev95.site\/ar\/now-in-android-121\/","title":{"rendered":"Now in Android #121"},"content":{"rendered":"<div id=\"dev95-3794423447\" class=\"dev95-- dev95-entity-placement\"><script async=\"async\" data-cfasync=\"false\" src=\"https:\/\/pl27862732.profitableratecpmnetwork.com\/2ad7a50e0bbc23ac6801d7b77c501463\/invoke.js\"><\/script>\r\n<div id=\"container-2ad7a50e0bbc23ac6801d7b77c501463\"><\/div><\/div><div>\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" alt=\"\" src=\"https:\/\/i0.wp.com\/cdn-images-1.medium.com\/max\/1024\/0%2A-scJlHS1wG3oiP9Q.png?w=1280&#038;ssl=1\"><\/figure>\n<h4><a href=\"http:\/\/android-developers.googleblog.com\/2025\/08\/whats-new-in-jetpack-compose-august-25-release.html\">Compose 1.9<\/a>, <a href=\"http:\/\/android-developers.googleblog.com\/2025\/08\/media3-180-whats-new.html\">Media 3 1.8<\/a>, <a href=\"http:\/\/android-developers.googleblog.com\/2025\/08\/android-16-qpr2-beta-1-is-here.html\">QPR2 Beta 1<\/a>, <a href=\"http:\/\/android-developers.googleblog.com\/2025\/07\/android-studio-narwhal-feature-drop-stable-agent-mode.html\">Narwhal Feature Drop<\/a>, and\u00a0more!<\/h4>\n<p>Welcome to Now in Android, your ongoing guide to what\u2019s new and notable in the world of Android development.<\/p>\n<p>Read on for coverage of <a href=\"http:\/\/android-developers.googleblog.com\/2025\/08\/android-16-qpr2-beta-1-is-here.html\">Android 16 QPR2 beta 1<\/a>, the <a href=\"http:\/\/android-developers.googleblog.com\/2025\/07\/android-studio-narwhal-feature-drop-stable-agent-mode.html\">Android Studio Narwhal feature drop<\/a>, <a href=\"http:\/\/android-developers.googleblog.com\/2025\/08\/whats-new-in-jetpack-compose-august-25-release.html\">Jetpack Compose 1.9<\/a>, <a href=\"http:\/\/android-developers.googleblog.com\/2025\/08\/media3-180-whats-new.html\">Media 3 1.8<\/a>, <a href=\"https:\/\/www.youtube.com\/watch?v=0moEXBqNDZI\">Shape Morphing<\/a> and <a href=\"https:\/\/www.youtube.com\/watch?v=Tb6bGiha6xg\">Autofill in Compose<\/a>, and much\u00a0more.<\/p><div id=\"dev95-550307090\" class=\"dev95- dev95-entity-placement\"><center>\r\n<script>\r\n  atOptions = {\r\n    'key' : '4ba6b6513c00e0ba76511f798ae56401',\r\n    'format' : 'iframe',\r\n    'height' : 50,\r\n    'width' : 320,\r\n    'params' : {}\r\n  };\r\n<\/script>\r\n<script src=\"https:\/\/www.highrevenueformat.com\/4ba6b6513c00e0ba76511f798ae56401\/invoke.js\"><\/script>\r\n\t<\/center><\/div>\n<p>You can watch a video\u00a0summary:<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/cdn.embedly.com\/widgets\/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FWZioeVSgc24%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DWZioeVSgc24&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FWZioeVSgc24%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube\" width=\"854\" height=\"480\" frameborder=\"0\" scrolling=\"no\"><a href=\"https:\/\/medium.com\/media\/87a24ed0bca13b2d58bd3e59517b4273\/href\">https:\/\/medium.com\/media\/87a24ed0bca13b2d58bd3e59517b4273\/href<\/a><\/iframe><\/p>\n<p>And we also have a\u00a0podcast:<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/cdn.embedly.com\/widgets\/media.html?src=%2F%2Fhtml5-player.libsyn.com%2Fembed%2Fepisode%2Fid%2F38078495%2Fheight%2F90%2Ftheme%2Fcustom%2Fthumbnail%2Fyes%2Fdirection%2Fforward%2Frender-playlist%2Fno%2Fcustom-color%2F88AA3C%2F&amp;display_name=Libsyn&amp;url=https%3A%2F%2Fnowinandroid.libsyn.com%2F121-android-studio-narwhal-3-android-16-qpr2-beta-and-more&amp;image=https%3A%2F%2Fassets.libsyn.com%2Fsecure%2Fitem%2F38078495&amp;type=text%2Fhtml&amp;schema=libsyn\" width=\"600\" height=\"90\" frameborder=\"0\" scrolling=\"no\"><a href=\"https:\/\/medium.com\/media\/ef0552e532d340d1dd8ced3c6b6d85c5\/href\">https:\/\/medium.com\/media\/ef0552e532d340d1dd8ced3c6b6d85c5\/href<\/a><\/iframe><\/p>\n<p>But this post has the most in-depth information, so read\u00a0on!<\/p>\n<h3><a href=\"http:\/\/android-developers.googleblog.com\/2025\/08\/android-16-qpr2-beta-1-is-here.html\">Android 16 QPR2 Beta 1 is here\u00a0\u2728<\/a><\/h3>\n<p>The first beta of Android 16 QPR2 is now available, the inaugural Android release with an Android minor SDK version. Minor SDK versions can include new APIs that extend platform features but cannot introduce targetSdkVersion gated behavior changes, minimizing the amount you need to test your apps against\u00a0it.<\/p>\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" alt=\"\" src=\"https:\/\/i0.wp.com\/cdn-images-1.medium.com\/max\/958\/0%2AwDHk7dWCW8XgAZ7L.png?w=1280&#038;ssl=1\"><\/figure>\n<p>You can call new APIs by checking <a href=\"https:\/\/developer.android.com\/reference\/android\/os\/Build.VERSION#SDK_INT_FULL\">SDK_INT_FULL<\/a> against the <a href=\"https:\/\/developer.android.com\/reference\/android\/os\/Build.VERSION_CODES_FULL\">VERSION_CODES_FULL<\/a> enumeration:<\/p>\n<pre>if (Build.VERSION.SDK_INT_FULL &gt;= Build.VERSION_CODES_FULL.BAKLAVA_1) {<br>  \/\/ Call new APIs from the Android 16 QPR2 release<br>}<\/pre>\n<p><a href=\"https:\/\/developer.android.com\/reference\/android\/os\/Build.VERSION_CODES_FULL\">VERSION_CODES_FULL<\/a> cannot be used in <a href=\"https:\/\/developer.android.com\/guide\/topics\/manifest\/uses-sdk-element\">uses-sdk<\/a> manifest attributes.<\/p>\n<p>Here are some key updates from QPR2 Beta\u00a01.<\/p>\n<p><strong>UI, System Experience, and Accessibility:<\/strong><\/p>\n<ul>\n<li>An expanded dark theme option intelligently inverts light apps for users preferring a dark appearance.<\/li>\n<li>Auto-themed app icons can be generated by the system if your app doesn\u2019t provide a monochrome layer.<\/li>\n<li>Interactive chooser sessions keep your app UI active while the sharesheet is open, using <a href=\"https:\/\/developer.android.com\/reference\/android\/service\/chooser\/ChooserManager\">ChooserManager<\/a> and <a href=\"https:\/\/developer.android.com\/reference\/android\/service\/chooser\/ChooserSession\">ChooserSession<\/a>.<\/li>\n<li>A new Data Transfer API enables more reliable and secure data migration between Android and iOS, requiring updates to your app\u2019s data extraction rules XML and <a href=\"https:\/\/developer.android.com\/reference\/android\/app\/backup\/BackupAgent\">BackupAgent<\/a> implementation.<\/li>\n<li>The <a href=\"https:\/\/developer.android.com\/reference\/android\/graphics\/pdf\/package-summary\">android.graphics.pdf<\/a> package has expanded to support annotating and editing PDF documents via <a href=\"https:\/\/developer.android.com\/reference\/android\/graphics\/pdf\/PdfRenderer.Page\">PdfRenderer.Page<\/a>.<\/li>\n<li><a href=\"https:\/\/developer.android.com\/reference\/android\/view\/ViewConfiguration\">ViewConfiguration<\/a> values are now tailored to individual virtual devices; migrate to <a href=\"https:\/\/developer.android.com\/reference\/android\/view\/ViewConfiguration#get(android.content.Context)\">ViewConfiguration.get(context)<\/a> for multi-display scenarios.<\/li>\n<li>You gain more granular haptic feedback control by specifying <a href=\"https:\/\/developer.android.com\/reference\/android\/os\/VibrationAttributes\">VibrationAttributes<\/a> with <a href=\"https:\/\/developer.android.com\/reference\/android\/view\/View#performHapticFeedback(android.os.vibrator.HapticFeedbackRequest)\">View.performHapticFeedback(HapticFeedbackRequest)<\/a><\/li>\n<li>Quick Settings tiles can now be assigned to predefined categories in the AndroidManifest.xml file.<\/li>\n<\/ul>\n<p><strong>Media and\u00a0Audio:<\/strong><\/p>\n<ul>\n<li>Software decoding for Immersive Audio Model and Formats (IAMF), an open spatial audio\u00a0format.<\/li>\n<li>Personal Audio Sharing for Bluetooth LE Audio devices is integrated directly into the system\u2019s Output Switcher.<\/li>\n<li>Users can control the brightness of HDR using an HDR\/SDR brightness slider<\/li>\n<li>Photo Picker extras can highlight specific albums or search\u00a0queries.<\/li>\n<\/ul>\n<p><strong>Connectivity:<\/strong><\/p>\n<ul>\n<li>Companion Device Management (CDM) enhancements allow you to provide custom device icons, listen for <a href=\"https:\/\/developer.android.com\/reference\/android\/companion\/DevicePresenceEvent#EVENT_ASSOCIATION_REMOVED\">EVENT_ASSOCIATION_REMOVED<\/a> callback, and enable cross-app verification using DeviceId.<\/li>\n<li>Bluetooth updates include passive scanning support for <a href=\"https:\/\/developer.android.com\/reference\/android\/bluetooth\/le\/BluetoothLeScanner\">BluetoothLeScanner<\/a> (<a href=\"https:\/\/developer.android.com\/reference\/android\/bluetooth\/le\/ScanSettings#SCAN_TYPE_PASSIVE\">ScanSettings.SCAN_TYPE_PASSIVE<\/a>), bond loss reasons (<a href=\"https:\/\/developer.android.com\/reference\/android\/bluetooth\/BluetoothDevice#EXTRA_BOND_LOSS_REASON\">BluetoothDevice.EXTRA_BOND_LOSS_REASON<\/a>), and direct retrieval of service UUIDs (<a href=\"https:\/\/developer.android.com\/reference\/android\/bluetooth\/BluetoothDevice#EXTRA_UUID_LE\">BluetoothDevice.EXTRA_UUID_LE<\/a>).<\/li>\n<li>Wi-Fi RTT Ranging updates (<a href=\"https:\/\/developer.android.com\/reference\/android\/ranging\/wifi\/rtt\/RttStationRangingParams\">RttStationRangingParams<\/a>) support ranging against stations.<\/li>\n<li>A new <a href=\"https:\/\/developer.android.com\/reference\/android\/telephony\/PhoneNumberManager.html\">PhoneNumberManager<\/a> is available for parsing and validating phone numbers from IMS P-Associated-URI headers.<\/li>\n<li>MediaRouter Network Privacy improvements allow casting over new mediums like Bluetooth and UWB; you should use the system Output Switcher or request <a href=\"https:\/\/developer.android.com\/reference\/android\/Manifest.permission_group#NEARBY_DEVICES\">NEARBY_DEVICES<\/a> permissions for custom in-app\u00a0pickers.<\/li>\n<\/ul>\n<p><strong>Privacy and Security:<\/strong><\/p>\n<ul>\n<li>A new system-level security state, Secure Lock Device, locks devices and requires primary authentication to\u00a0unlock.<\/li>\n<li>A user-facing toggle is added for Phone Theft Protection to enable\/disable \u201cFailed Authentication Lock.\u201d<\/li>\n<\/ul>\n<p><strong>Developer Productivity:<\/strong><\/p>\n<ul>\n<li>New <a href=\"https:\/\/developer.android.com\/reference\/android\/appwidget\/AppWidgetManager\">AppWidgetManager<\/a> APIs allow you to query for widget engagement metrics.<\/li>\n<li>Debuggable apps installed via ADB will now receive early warnings for 16KB page size compatibility.<\/li>\n<li><a href=\"https:\/\/developer.android.com\/reference\/android\/os\/ProfilingManager\">ProfilingManager<\/a> adds support for new system-initiated profiling triggers and <a href=\"https:\/\/developer.android.com\/reference\/android\/os\/ProfilingManager#requestRunningSystemTrace(java.lang.String)\">requestRunningSystemTrace<\/a> to capture background traces.<\/li>\n<li>A \u201cVerbose print logging\u201d toggle in Developer Options provides additional debug information for the Android Print Framework.<\/li>\n<li>More robust testing for desktop and multi-display experiences is enabled with new <a href=\"https:\/\/developer.android.com\/reference\/android\/app\/UiAutomation\">UiAutomation<\/a> APIs for screenshots on non-default displays and public <a href=\"https:\/\/developer.android.com\/reference\/android\/view\/accessibility\/AccessibilityWindowInfo#refresh()\">AccessibilityWindowInfo.refresh<\/a>.<\/li>\n<li>API support is added for the new <a href=\"https:\/\/developer.android.com\/jetpack\/androidx\/releases\/core#core-backported-fixes_version_10_2\">androidx.core:core-backported-fixes<\/a> library.<\/li>\n<li>GUI apps are now supported in the Linux\u00a0Terminal<\/li>\n<li><a href=\"https:\/\/developer.android.com\/reference\/android\/view\/inspector\/WindowInspector?hl=en#addGlobalWindowViewsListener(java.util.concurrent.Executor,%20java.util.function.Consumer%3Cjava.util.List%3Candroid.view.View%3E%3E)\">WindowInspector.addGlobalWindowViewsListener<\/a> supports real-time root view change notifications.<\/li>\n<\/ul>\n<p>You can enroll any supported Pixel device to receive Beta updates over-the-air or use 64-bit system images with the Android Emulator in Android Studio. Platform Stability is targeted for October\u00a02025.<\/p>\n<h3><a href=\"http:\/\/android-developers.googleblog.com\/2025\/07\/android-studio-narwhal-feature-drop-stable-agent-mode.html\">Android Studio Narwhal Feature Drop is stable\u200a\u2014\u200astart using Agent Mode\u00a0\ud83d\udc33<\/a><\/h3>\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" alt=\"\" src=\"https:\/\/i0.wp.com\/cdn-images-1.medium.com\/max\/1024\/0%2A_9eR89EPCjXvvSXd.png?w=1280&#038;ssl=1\"><\/figure>\n<p>Android Studio Narwhal Feature Drop is now stable, new features and enhancements include:<\/p>\n<ul>\n<li><a href=\"https:\/\/developer.android.com\/studio\/gemini\/agent-mode\"><strong>Gemini in Android Studio: Agent Mode<\/strong><\/a> is available for multi-stage coding\u00a0tasks<\/li>\n<li><a href=\"https:\/\/developer.android.com\/studio\/gemini\/prompt-library\"><strong>Prompt Library<\/strong> <strong>Rules<\/strong><\/a> customize Gemini\u2019s AI output for your project\u2019s needs.<\/li>\n<li><a href=\"https:\/\/developer.android.com\/studio\/gemini\/labs#transform-ui\"><strong>Transform UI with Gemini<\/strong><\/a> uses natural language UI to iterate on Compose\u00a0UI.<\/li>\n<li><strong>Immersive development support<\/strong> with the embedded <a href=\"https:\/\/developer.android.com\/develop\/xr\/jetpack-xr-sdk\/studio-tools#android-xr\">XR Android Emulator<\/a>, a new XR template, and embedded Layout Inspector for\u00a0XR<\/li>\n<li><strong>Expanded device access<\/strong> via Android Partner Device Labs in Android Device Streaming.<\/li>\n<li><strong>Better <\/strong><a href=\"https:\/\/developer.android.com\/develop\/ui\/compose\/tooling\/previews\"><strong>Compose previews<\/strong><\/a> with Improved code navigation and the New Compose preview\u00a0picker<\/li>\n<li><strong>K2 Kotlin compiler<\/strong> enabled by default for faster build performance<\/li>\n<li><a href=\"https:\/\/developer.android.com\/guide\/practices\/page-sizes\"><strong>16kb page size tooling<\/strong><\/a> with lint warnings, analysis, and an emulator to help you prepare for upcoming 16kb page-size devices.<\/li>\n<\/ul>\n<h3><a href=\"https:\/\/developer.android.com\/studio\/run\/android-device-streaming\">Android Device Streaming, powered by\u00a0Firebase<\/a><\/h3>\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" alt=\"\" src=\"https:\/\/i0.wp.com\/cdn-images-1.medium.com\/max\/1024\/1%2AC2JTTd_BDaI_FVDy0E6h9Q.gif?w=1280&#038;ssl=1\"><\/figure>\n<p>Android Device Streaming, powered by Firebase, has introduced stable support for Android Partner Device Labs, allowing you to remotely connect to physical Android devices hosted by OEM partners, including Samsung, Xiaomi, OPPO, OnePlus, and\u00a0vivo.<\/p>\n<h3><a href=\"https:\/\/android-developers.googleblog.com\/2025\/08\/accelerating-development-with-monthly-releases-android-studio-2x-more-than-before.html\">Accelerating development with monthly releases for Android Studio\u200a\u2014\u200areleasing 2X more often than\u00a0before<\/a><\/h3>\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" alt=\"\" src=\"https:\/\/i0.wp.com\/cdn-images-1.medium.com\/max\/1024\/1%2A7sK72Po3aBi7vLN-5JfsRw.png?w=1280&#038;ssl=1\"><\/figure>\n<p>Android Studio is transitioning to a monthly stable release cadence to speed up getting you new features and critical bug fixes. While the Android Studio IDE will update monthly, new IntelliJ platform versions will be introduced every few months, with Feature Drops filling the interim stable releases. The Android Emulator and Android Gradle Plugin will continue to update separately every two months. This accelerated release schedule is supported by long-term investments in testing infrastructure.<\/p>\n<h3><a href=\"http:\/\/android-developers.googleblog.com\/2025\/08\/whats-new-in-jetpack-compose-august-25-release.html\">What\u2019s new in the Jetpack Compose August \u201925 release\u00a0\ud83d\ude80<\/a><\/h3>\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" alt=\"\" src=\"https:\/\/i0.wp.com\/cdn-images-1.medium.com\/max\/1024\/0%2AIKNjj5lQS7lUlZql.png?w=1280&#038;ssl=1\"><\/figure>\n<p>The Jetpack Compose August \u201925 release (version 1.9) is now stable. This release introduces <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/ui\/Modifier#(androidx.compose.ui.Modifier).dropShadow(androidx.compose.ui.graphics.Shape,kotlin.Function1)\">Modifier.dropShadow<\/a> and <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/ui\/Modifier#(androidx.compose.ui.Modifier).innerShadow(androidx.compose.ui.graphics.Shape,kotlin.Function1)\">Modifier.innerShadow<\/a> for rendering box-shadow effects. New <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/ui\/Modifier#(androidx.compose.ui.Modifier).onVisibilityChanged(kotlin.Long,kotlin.Float,androidx.compose.ui.layout.LayoutBoundsHolder,kotlin.Function1)\">onVisibilityChanged<\/a> and <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/ui\/Modifier#(androidx.compose.ui.Modifier).onFirstVisible(kotlin.Long,kotlin.Float,androidx.compose.ui.layout.LayoutBoundsHolder,kotlin.Function0)\">onFirstVisible<\/a> modifiers let you track element visibility for UI updates or impression logging. You can apply rich styling within <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/foundation\/text\/input\/OutputTransformation\">OutputTransformation<\/a> using <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/foundation\/text\/input\/TextFieldBuffer#addStyle(androidx.compose.ui.text.ParagraphStyle,kotlin.Int,kotlin.Int)\">TextFieldBuffer.addStyle<\/a> for text transformations.<\/p>\n<p>The <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/foundation\/lazy\/layout\/package-summary#LazyLayout(kotlin.Function0,androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchState,kotlin.Function2)\">LazyLayout<\/a> building blocks are now stable, and you can define a <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/foundation\/lazy\/layout\/LazyLayoutCacheWindow\">LazyLayoutCacheWindow<\/a> for improved Lazy List and Grid performance with enhanced prefetching. <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/foundation\/gestures\/package-summary#(androidx.compose.ui.Modifier).scrollable2D(androidx.compose.foundation.gestures.Scrollable2DState,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.gestures.FlingBehavior,androidx.compose.foundation.interaction.MutableInteractionSource)\">Scrollable2D<\/a> enables two-dimensional scrolling, including flinging and nested scrolling, with various improvements for scroll and nested scroll interop with Views. An opt-in API (<a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/runtime\/Composer#setDiagnosticStackTraceEnabled(kotlin.Boolean)\">Composer.setDiagnosticStackTraceEnabled<\/a>) provides richer crash location details in stack traces, recommended for debug builds only. New <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/runtime\/annotation\/RememberInComposition\">@RememberInComposition<\/a> and <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/runtime\/annotation\/FrequentlyChangingValue\">@FrequentlyChangingValue<\/a> annotations, along with associated Lint checks, are available in a new runtime-annotation library. Context menus can be customized using <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/foundation\/text\/contextmenu\/modifier\/package-summary#(androidx.compose.ui.Modifier).appendTextContextMenuComponents(kotlin.Function1)\">Modifier.appendTextContextMenuComponents<\/a> and <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/foundation\/text\/contextmenu\/modifier\/package-summary#(androidx.compose.ui.Modifier).filterTextContextMenuComponents(kotlin.Function1)\">Modifier.filterTextContextMenuComponents<\/a>. Android Gradle Plugin (AGP) \/ Lint version 8.8.2 or higher is now required.<\/p>\n<h3><a href=\"http:\/\/android-developers.googleblog.com\/2025\/08\/media3-180-whats-new.html\">Media3 1.8.0\u200a\u2014\u200aWhat\u2019s new?\u00a0\ud83d\ude80<\/a><\/h3>\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" alt=\"\" src=\"https:\/\/i0.wp.com\/cdn-images-1.medium.com\/max\/1024\/0%2A2oQtLhJZmTlOmacc.png?w=1280&#038;ssl=1\"><\/figure>\n<p>Media3 1.8.0 is now available, introducing several new features and improvements. ExoPlayer gains a scrubbing mode for frequent, user-driven seeks, which you can enable via <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/media3\/exoplayer\/ExoPlayer#setScrubbingModeEnabled(boolean)\">ExoPlayer.setScrubbingModeEnabled<\/a>. <a href=\"https:\/\/developer.android.com\/media\/media3\/exoplayer\/hls#interstitials\">HlsInterstitialsAdsLoader<\/a> now supports live streams for server-guided ad insertion.<\/p>\n<p>The <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/media3\/exoplayer\/MetadataRetriever\">MetadataRetriever<\/a> has been updated to allow you to retrieve media item durations without playback. For Transformer, the release introduces faster trim operations using MP4 edit lists with <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/media3\/transformer\/Transformer.Builder?hl=en#experimentalSetMp4EditListTrimEnabled(boolean)\">experimentalSetMp4EditListTrimEnabled<\/a> and chipset-specific encoder optimizations via <a href=\"https:\/\/developer.android.com\/reference\/androidx\/media3\/transformer\/CodecDbLite\">CodecDbLite<\/a>, enabled by calling <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/media3\/transformer\/DefaultEncoderFactory.Builder#setEnableCodecDbLite(boolean)\">setEnableCodecDbLite<\/a> on <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/media3\/transformer\/DefaultEncoderFactory.Builder\">DefaultEncoderFactory.Builder<\/a>.<\/p>\n<p>Additional updates include partial download support in <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/media3\/exoplayer\/offline\/Downloader\">Downloader<\/a> with <a href=\"https:\/\/developer.android.com\/reference\/androidx\/media3\/exoplayer\/source\/preload\/PreCacheHelper\">PreCacheHelper<\/a>, automatic XR audio routing in ExoPlayer, and more efficient MediaCodec interactions. The MediaSession module now keeps notifications visible longer by default, and the media session demo app showcases playback resumption functionality. A new Composition demo app, built with Kotlin and Compose, demonstrates advanced multi-asset video\u00a0editing.<\/p>\n<h3><a href=\"https:\/\/android-developers.googleblog.com\/\">Articles \ud83d\udcda<\/a><\/h3>\n<h3><a href=\"https:\/\/android-developers.googleblog.com\/2025\/08\/weareplay-meet-people-coding-sustainable-world.html\">#WeArePlay: Meet the people coding a more sustainable world<\/a><\/h3>\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" alt=\"\" src=\"https:\/\/i0.wp.com\/cdn-images-1.medium.com\/max\/1024\/1%2AEe6Xp8Fv3NhtfaY3LvLRZg.png?w=1280&#038;ssl=1\"><\/figure>\n<p>The <a href=\"https:\/\/play.google.com\/console\/about\/weareplay\/\"><strong>#WeArePlay<\/strong><\/a> initiative highlights <a href=\"https:\/\/android-developers.googleblog.com\/2025\/08\/weareplay-meet-people-coding-sustainable-world.html\"><strong>Android apps and games that address environmental challenges<\/strong><\/a>. The game BoRa\u200a\u2014\u200aIgua\u00e7u National Park, developed by Mayla, Fl\u00e1via, Andr\u00e9ia, and Ariane, provides gamified and accessible interactive experiences for nature education during park visits. Louis and Justin\u2019s app, CyberTracker, allows non-literate indigenous trackers to record biodiversity data through an icon-based interface, supporting conservation efforts. Lastly, Earth5R, co-founded by Bharati and Saurabh, offers environmental education and connects users with internships and projects to develop skills for the green\u00a0economy.<\/p>\n<h3><a href=\"https:\/\/android-developers.googleblog.com\/2025\/08\/what-is-hdr.html\">What is HDR?<\/a>\u00a0\ud83c\udf1f<\/h3>\n<figure><img data-recalc-dims=\"1\" decoding=\"async\" alt=\"\" src=\"https:\/\/i0.wp.com\/cdn-images-1.medium.com\/max\/1024\/1%2AMQytXLcNV8bESxRuG6SHMA.png?w=1280&#038;ssl=1\"><\/figure>\n<p><a href=\"https:\/\/android-developers.googleblog.com\/2025\/08\/what-is-hdr.html\"><strong>High Dynamic Range (HDR)<\/strong><\/a> enables increased peak brightness beyond Standard Dynamic Range (SDR) for Android developers, offering enhanced visual fidelity. Android supports HDR for video and images, including technologies like UltraHDR for backward compatibility.<\/p>\n<p><strong>Understanding color<\/strong> involves three components:<\/p>\n<ul>\n<li><strong>Bit depth:<\/strong> Defines the precision of color representation, with higher depth offering smoother transitions.<\/li>\n<li><strong>Transfer function:<\/strong> Maps numerical pixel values to displayed luminance or color, adjusting for non-linear human visual response. Examples include sRGB, HLG, and\u00a0PQ.<\/li>\n<li><strong>Color gamut:<\/strong> Represents the range of colors a device can reproduce.<\/li>\n<\/ul>\n<p><strong>Common misconceptions about\u00a0HDR:<\/strong><\/p>\n<ul>\n<li><strong>Vibrant colors:<\/strong> Wider color gamuts like Display P3 and Adobe RGB were available before HDR, and most displays still clip to P3, even with BT.2020\u00a0content.<\/li>\n<li><strong>More contrast\/better black detail:<\/strong> HDR does not inherently offer darker blacks than SDR on the same display. OLED displays provide infinite contrast for both. While PQ allocates more bits to dark regions, it is not a universal HDR\u00a0feature.<\/li>\n<li><strong>Higher bit depth:<\/strong> While some HDR video profiles (e.g., HDR10) use 10- or 12-bit streams, this is specific to those profiles and not inherent to HDR itself; higher bit depths are also common in other imaging\u00a0formats.<\/li>\n<\/ul>\n<p>HDR primarily signifies<strong> higher peak brightness<\/strong>. This \u201cHDR headroom\u201d is defined as a floating region relative to SDR. While traditional HDR video often encodes fixed headroom, modern displays use dynamic headroom, which can lead to quality differences. Technologies such as Ultra HDR and gainmaps offer alternatives with efficient bit usage. Android\u2019s UI toolkit utilizes the extendedRangeBrightness API to deliver HDR experiences, even with RGBA_8888.<\/p>\n<h3>Videos \ud83d\udcf9<\/h3>\n<h3><a href=\"https:\/\/www.youtube.com\/watch?v=0moEXBqNDZI\">Advanced shared elements with shape morphing | Jetpack Compose\u00a0Tips<\/a><\/h3>\n<p>Jetpack Compose now enables advanced shared element transitions, sophisticated <strong>shape morphing<\/strong>, and reveal animations. Developers can configure <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/animation\/package-summary#SharedTransitionLayout(androidx.compose.ui.Modifier,kotlin.Function1)\">SharedTransitionLayout<\/a> at the app\u2019s top level and use <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/animation\/SharedTransitionScope#(androidx.compose.ui.Modifier).sharedBounds(androidx.compose.animation.SharedTransitionScope.SharedContentState,androidx.compose.animation.AnimatedVisibilityScope,androidx.compose.animation.EnterTransition,androidx.compose.animation.ExitTransition,androidx.compose.animation.BoundsTransform,androidx.compose.animation.SharedTransitionScope.ResizeMode,androidx.compose.animation.SharedTransitionScope.PlaceHolderSize,kotlin.Boolean,kotlin.Float,androidx.compose.animation.SharedTransitionScope.OverlayClip)\">Modifier.sharedBounds<\/a> to link elements.<\/p>\n<p><strong>Shape morphing<\/strong> is a key new feature, achieved by leveraging Material 3\u2019s AndroidX graphics shape library. This involves creating a Morph object with defined start\/end shapes, driving its progress with animateFloat (from <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/animation\/AnimatedVisibilityScope\">AnimatedVisibilityScope<\/a>), and applying it as a clip via a custom <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/animation\/SharedTransitionScope.OverlayClip\">OverlayClip<\/a>. Reveal effects use <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/animation\/SharedTransitionScope#(androidx.compose.ui.Modifier).skipToLookaheadSize()\">skipToLookaheadSize<\/a> and <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/animation\/SharedTransitionScope#(androidx.compose.ui.Modifier).skipToLookaheadPosition(kotlin.Function0)\">skipToLookaheadPosition<\/a>. All these advanced animations are also compatible with <a href=\"https:\/\/developer.android.com\/guide\/navigation\/custom-back\/predictive-back-gesture\"><strong>predictive back gestures<\/strong><\/a>.<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/cdn.embedly.com\/widgets\/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F0moEXBqNDZI%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D0moEXBqNDZI&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F0moEXBqNDZI%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube\" width=\"854\" height=\"480\" frameborder=\"0\" scrolling=\"no\"><a href=\"https:\/\/medium.com\/media\/04f3dba48bf6f4afd9515442221a8da3\/href\">https:\/\/medium.com\/media\/04f3dba48bf6f4afd9515442221a8da3\/href<\/a><\/iframe><\/p>\n<h3><a href=\"https:\/\/www.youtube.com\/watch?v=hAjUByneFEg\">Multimodal Gemini in Android Studio: AI-powered UI development<\/a><\/h3>\n<p>Gemini AI in Android Studio assists UI development by generating code from designs (including image-to-code), creating Compose Previews with synthetic data, and refining existing UI via direct commands.<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/cdn.embedly.com\/widgets\/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FhAjUByneFEg%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DhAjUByneFEg&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FhAjUByneFEg%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube\" width=\"854\" height=\"480\" frameborder=\"0\" scrolling=\"no\"><a href=\"https:\/\/medium.com\/media\/b0ef87aa42a154597ff832b2b546937f\/href\">https:\/\/medium.com\/media\/b0ef87aa42a154597ff832b2b546937f\/href<\/a><\/iframe><\/p>\n<h3><a href=\"https:\/\/www.youtube.com\/watch?v=8ocelXB1Qoc\">Consume a Runtime-Enabled SDK<\/a><\/h3>\n<p>Android 14 introduces <strong>SDK Runtime<\/strong>, a new technology isolating third-party SDKs in a secure, separate process sandbox to enhance privacy and security.<\/p>\n<p>For developers:<\/p>\n<ul>\n<li><strong>Runtime-enabled (RE) SDKs<\/strong> execute in this separate\u00a0process.<\/li>\n<li><strong>Runtime-aware (RA) SDKs<\/strong> serve as intermediaries within your\u00a0app.<\/li>\n<li>Load RE SDKs using <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/privacysandbox\/sdkruntime\/client\/SdkSandboxManagerCompat\">SdkSandboxManagerCompat<\/a>, observing constraints (e.g., foreground, single-load).<\/li>\n<li>Shim tooling simplifies low-level inter-process communication.<\/li>\n<li>Render UI from RE SDKs using <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/privacysandbox\/ui\/client\/view\/SandboxedSdkView\">SandboxedSdkView<\/a> and <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/privacysandbox\/ui\/core\/SandboxedUiAdapter\">SandboxedUiAdapter<\/a>.<\/li>\n<li>Launch activities from the SDK Runtime using <a href=\"https:\/\/developer.android.com\/reference\/androidx\/privacysandbox\/activity\/core\/SdkActivityLauncher\">SdkActivityLauncher<\/a>.<\/li>\n<\/ul>\n<p><iframe loading=\"lazy\" src=\"https:\/\/cdn.embedly.com\/widgets\/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F8ocelXB1Qoc%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D8ocelXB1Qoc&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F8ocelXB1Qoc%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube\" width=\"854\" height=\"480\" frameborder=\"0\" scrolling=\"no\"><a href=\"https:\/\/medium.com\/media\/e75cce05f90612aab125daf93e4ee347\/href\">https:\/\/medium.com\/media\/e75cce05f90612aab125daf93e4ee347\/href<\/a><\/iframe><\/p>\n<h3><a href=\"https:\/\/www.youtube.com\/watch?v=qEEo6AwgBjU\">WearOS Material 3 shape morphing | Jetpack Compose\u00a0Tips<\/a><\/h3>\n<p>Wear OS Material 3 for Compose now simplifies shape morphing. Developers can easily add animated shape changes to round buttons with <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/wear\/compose\/material3\/IconButtonDefaults?#animatedShapes()\">IconButtonDefaults.animatedShapes<\/a>, create button groups that animate width changes using the <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/material3\/package-summary#ButtonGroup(kotlin.Function1,androidx.compose.ui.Modifier,kotlin.Float,androidx.compose.foundation.layout.Arrangement.Horizontal,kotlin.Function1)\">ButtonGroup<\/a> component and Modifier.animateWidth(), and build vertically scrolling lists (<a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/wear\/compose\/foundation\/lazy\/package-summary?#TransformingLazyColumn(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.foundation.layout.PaddingValues,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.wear.compose.foundation.rotary.RotaryScrollableBehavior,androidx.compose.foundation.OverscrollEffect,kotlin.Function1)\">TransformingLazyColumn<\/a>) where items scale and morph using TransformationSpec as they approach the screen\u00a0edges.<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/cdn.embedly.com\/widgets\/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FqEEo6AwgBjU%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DqEEo6AwgBjU&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FqEEo6AwgBjU%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube\" width=\"854\" height=\"480\" frameborder=\"0\" scrolling=\"no\"><a href=\"https:\/\/medium.com\/media\/6a75fde69752a2bd42c064c8594e9d38\/href\">https:\/\/medium.com\/media\/6a75fde69752a2bd42c064c8594e9d38\/href<\/a><\/iframe><\/p>\n<h3><a href=\"https:\/\/developer.android.com\/jetpack\/androidx\/versions\/all-channel\">AndroidX Releases\u00a0\ud83d\ude80<\/a><\/h3>\n<p>Here\u2019s a summary of the AndroidX changes, prioritizing those most relevant to Android app developers:<\/p>\n<p><strong>Overall Impacting Change for Compose Libraries:<\/strong><\/p>\n<ul>\n<li><strong>Default <\/strong><strong>minSdk Raised to API 23:<\/strong> For androidx.compose animation, foundation, material, runtime, and ui, the default minimum SDK version has been moved from API 21 to API 23. This means that if you\u2019re using the latest alpha versions of these Compose libraries, your app will implicitly require Android 6.0 (Marshmallow) or\u00a0higher.<\/li>\n<\/ul>\n<p><strong>Key Changes for Compose Developers:<\/strong><\/p>\n<ul>\n<li><strong>New retain API (Compose Runtime):<\/strong> Introduces a retain API similar to rememberSaveable, but for values that leave the composition hierarchy without being serialized. It has a shorter lifespan than saved values and behaves similarly to a ViewModel, providing a new way to manage state for composables that might go in and out of composition.<\/li>\n<li><strong>Enhanced Shared Element Transitions (Compose Animation &amp; UI):<\/strong> New APIs to dynamically enable\/disable shared elements, account for ongoing transitions, and set alternative target bounds when a shared element is disposed. A new Modifier.skipToLookaheadPosition is also available for anchoring layouts.<\/li>\n<li><strong>Improved Pager Prefetching (Compose Foundation):<\/strong> Pager\u2019s prefetch strategy now uses a \u201cCache Window\u201d (1 viewport size) instead of a single item, and initial prefetching is enabled by default. Items are also kept around longer for smoother scrolling.<\/li>\n<li><strong>Refined Focus Handling for Mouse\/Touchpad (Compose Foundation &amp; UI):<\/strong> ComposeViews will now automatically clear focus when a pointer down event (from mouse or touchpad) occurs outside the focused node. This can be opted out\u00a0of.<\/li>\n<li><strong>Customizable Focus Rectangles (Compose Foundation):<\/strong> FocusProperties now allows you to define a custom focus area instead of defaulting to the bounding box, improving focus traversal and \u201ckeep in view\u201d logic in scrollable containers.<\/li>\n<li><strong>LifecycleOwner Composable (Lifecycle):<\/strong> A new composable allows creating scoped LifecycleOwner instances directly within the UI tree. This is particularly useful for managing component lifecycles independently, and for libraries like Navigation.<\/li>\n<li><strong>Support for Nullable Types in <\/strong><strong>SavedStateHandle (<\/strong><strong>Lifecycle &amp; <\/strong><strong>SavedState):<\/strong> Simplified saving and restoring of nullable properties with native support in SavedStateHandle and SavedStateRegistryOwner.<\/li>\n<li><strong>New <\/strong><strong>LineHeightStyle.Mode.Tight (Compose Foundation &amp; UI):<\/strong> A new Tight mode helps enforce smaller line heights, even if it means potentially cutting taller glyphs, offering more precise text layout\u00a0control.<\/li>\n<li><strong>Double-tap to Select Word (Compose Foundation):<\/strong> Added support for double-tap to select words in SelectionContainer and BasicTextField.<\/li>\n<li><strong>WindowInsets Behavior Changes (Compose UI &amp; Foundation):<br \/><\/strong>\u25e6 A new WindowInsets.cutoutPath API to get the path for the display cutout.<br \/>\u25e6 The isWindowInsetsDefaultPassThroughEnabled flag has been removed, defaulting WindowInsets to <em>not<\/em> consume by default, allowing child Views to receive\u00a0them.<\/li>\n<li><strong>AndroidView <\/strong><strong>requestRectangleOnScreen Fix (Compose Foundation):<\/strong> Requests made by AndroidViews (e.g., EditText trying to stay on screen) now properly propagate to\u00a0Compose.<\/li>\n<li><strong>Improved 2D Mouse Wheel Scrolling (Compose Foundation &amp; UI):<\/strong> Better support for 2D mouse wheel scroll events, with new test APIs and a flag to control behavior.<\/li>\n<\/ul>\n<p><strong>New Libraries &amp; Utilities:<\/strong><\/p>\n<ul>\n<li><strong>androidx.core:core-backported-fixes (New Library):<\/strong> This new library allows developers to check if critical bug fixes (e.g., platform-level issues like specific camera bugs) have been applied to a device. This enables offering different user experiences depending on whether a known bug is resolved or\u00a0not.<\/li>\n<\/ul>\n<p><strong>Other Notable\u00a0Changes:<\/strong><\/p>\n<ul>\n<li><strong>Games Activity &amp; Input:<\/strong> Added default support for 16KB page sizes and <strong>mouse support<\/strong> for GameActivity.<\/li>\n<li><strong>Material3 Tooltip Positioning:<\/strong> More position providers for tooltips, allowing placement above, below, left, or right of the\u00a0anchor.<\/li>\n<li><strong>Material3 <\/strong><strong>DatePicker Fixes:<\/strong> Ensures DatePicker respects its own locale for number formatting and fixes RTL display\u00a0issues.<\/li>\n<li><strong>TWA display_override Support (Browser):<\/strong> Added support for the display_override TWA manifest property, providing more control over TWA\u00a0display.<\/li>\n<li><strong>Launch Initial URL in External App (Browser):<\/strong> Added an Intent to allow launching the initial URL of a TWA in an external\u00a0browser.<\/li>\n<\/ul>\n<h3><a href=\"http:\/\/adbackstage.libsyn.com\/\">Android Developers Backstage<\/a><\/h3>\n<p>Android Developers Backstage is back with another\u00a0episode.<\/p>\n<h3><a href=\"https:\/\/www.youtube.com\/watch?v=Tb6bGiha6xg\">Autofill in\u00a0Compose<\/a><\/h3>\n<p>Jetpack Compose 1.8 introduces significantly improved Autofill capabilities, leveraging Compose\u2019s semantics system. Developers can now easily integrate system-level Autofill by simply tagging text fields with relevant content type semantics (e.g., username, password), eliminating the need for manual Autofill tree management and improving performance.<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/cdn.embedly.com\/widgets\/media.html?src=%2F%2Fhtml5-player.libsyn.com%2Fembed%2Fepisode%2Fid%2F37801455%2Fheight%2F90%2Ftheme%2Fcustom%2Fthumbnail%2Fyes%2Fdirection%2Fforward%2Frender-playlist%2Fno%2Fcustom-color%2F88AA3C%2F&amp;display_name=Libsyn&amp;url=https%3A%2F%2Fadbackstage.libsyn.com%2Fautofill-in-compose&amp;image=https%3A%2F%2Fassets.libsyn.com%2Fsecure%2Fitem%2F37801455&amp;type=text%2Fhtml&amp;schema=libsyn\" width=\"600\" height=\"90\" frameborder=\"0\" scrolling=\"no\"><a href=\"https:\/\/medium.com\/media\/a909600f480230ea27b893fb2f4e8c49\/href\">https:\/\/medium.com\/media\/a909600f480230ea27b893fb2f4e8c49\/href<\/a><\/iframe><iframe loading=\"lazy\" src=\"https:\/\/cdn.embedly.com\/widgets\/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FTb6bGiha6xg%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DTb6bGiha6xg&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FTb6bGiha6xg%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube\" width=\"854\" height=\"480\" frameborder=\"0\" scrolling=\"no\"><a href=\"https:\/\/medium.com\/media\/f1815dd207a3a8ec3affdbe95a74cc9f\/href\">https:\/\/medium.com\/media\/f1815dd207a3a8ec3affdbe95a74cc9f\/href<\/a><\/iframe><\/p>\n<p>Now then\u2026\u00a0\ud83d\udc4b<\/p>\n<p>That\u2019s it for this edition, with<a href=\"http:\/\/android-developers.googleblog.com\/2025\/03\/the-third-beta-of-android-16.html\"> <\/a>coverage of <a href=\"http:\/\/android-developers.googleblog.com\/2025\/08\/android-16-qpr2-beta-1-is-here.html\">Android 16 QPR2 beta 1<\/a>, the <a href=\"http:\/\/android-developers.googleblog.com\/2025\/07\/android-studio-narwhal-feature-drop-stable-agent-mode.html\">Android Studio Narwhal feature drop<\/a>, <a href=\"http:\/\/android-developers.googleblog.com\/2025\/08\/whats-new-in-jetpack-compose-august-25-release.html\">Jetpack Compose 1.9<\/a>, <a href=\"http:\/\/android-developers.googleblog.com\/2025\/08\/media3-180-whats-new.html\">Media 3 1.8<\/a>, <a href=\"https:\/\/www.youtube.com\/watch?v=0moEXBqNDZI\">Shape Morphing<\/a> and <a href=\"https:\/\/www.youtube.com\/watch?v=Tb6bGiha6xg\">Autofill in Compose<\/a>, and much\u00a0more.<\/p>\n<p>Check back soon for your next update from the Android developer universe!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medium.com\/_\/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=ddfe076c9884\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<hr>\n<p><a href=\"https:\/\/medium.com\/androiddevelopers\/now-in-android-121-ddfe076c9884\">Now in Android #121<\/a> was originally published in <a href=\"https:\/\/medium.com\/androiddevelopers\">Android Developers<\/a> on Medium, where people are continuing the conversation by highlighting and responding to this story.<\/p>\n<\/div>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_3588\" class=\"pvc_stats total_only\" data-element-id=\"3588\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" version=\"1.0\" viewbox=\"0 0 502 315\" preserveaspectratio=\"xMidYMid meet\"><g transform=\"translate(0,332) scale(0.1,-0.1)\" fill=\"\" stroke=\"none\"><path d=\"M2394 3279 l-29 -30 -3 -207 c-2 -182 0 -211 15 -242 39 -76 157 -76 196 0 15 31 17 60 15 243 l-3 209 -33 29 c-26 23 -41 29 -80 29 -41 0 -53 -5 -78 -31z\"\/><path d=\"M3085 3251 c-45 -19 -58 -50 -96 -229 -47 -217 -49 -260 -13 -295 52 -53 146 -42 177 20 16 31 87 366 87 410 0 70 -86 122 -155 94z\"\/><path d=\"M1751 3234 c-13 -9 -29 -31 -37 -50 -12 -29 -10 -49 21 -204 19 -94 39 -189 45 -210 14 -50 54 -80 110 -80 34 0 48 6 76 34 21 21 34 44 34 59 0 14 -18 113 -40 219 -37 178 -43 195 -70 221 -36 32 -101 37 -139 11z\"\/><path d=\"M1163 3073 c-36 -7 -73 -59 -73 -102 0 -56 133 -378 171 -413 34 -32 83 -37 129 -13 70 36 67 87 -16 290 -86 209 -89 214 -129 231 -35 14 -42 15 -82 7z\"\/><path d=\"M3689 3066 c-15 -9 -33 -30 -42 -48 -48 -103 -147 -355 -147 -375 0 -98 131 -148 192 -74 13 15 57 108 97 206 80 196 84 226 37 273 -30 30 -99 39 -137 18z\"\/><path d=\"M583 2784 c-38 -19 -67 -74 -58 -113 9 -42 211 -354 242 -373 16 -10 45 -18 66 -18 51 0 107 52 107 100 0 39 -1 41 -124 234 -80 126 -108 162 -133 173 -41 17 -61 16 -100 -3z\"\/><path d=\"M4250 2784 c-14 -9 -74 -91 -133 -183 -95 -150 -107 -173 -107 -213 0 -55 33 -94 87 -104 67 -13 90 8 211 198 130 202 137 225 78 284 -27 27 -42 34 -72 34 -22 0 -50 -8 -64 -16z\"\/><path d=\"M2275 2693 c-553 -48 -1095 -270 -1585 -649 -135 -104 -459 -423 -483 -476 -23 -49 -22 -139 2 -186 73 -142 361 -457 571 -626 285 -228 642 -407 990 -497 242 -63 336 -73 660 -74 310 0 370 5 595 52 535 111 1045 392 1455 803 122 121 250 273 275 326 19 41 19 137 0 174 -41 79 -309 363 -465 492 -447 370 -946 591 -1479 653 -113 14 -422 18 -536 8z m395 -428 c171 -34 330 -124 456 -258 112 -119 167 -219 211 -378 27 -96 24 -300 -5 -401 -72 -255 -236 -447 -474 -557 -132 -62 -201 -76 -368 -76 -167 0 -236 14 -368 76 -213 98 -373 271 -451 485 -162 444 86 934 547 1084 153 49 292 57 452 25z m909 -232 c222 -123 408 -262 593 -441 76 -74 138 -139 138 -144 0 -16 -233 -242 -330 -319 -155 -123 -309 -223 -461 -299 l-81 -41 32 46 c18 26 49 83 70 128 143 306 141 649 -6 957 -25 52 -61 116 -79 142 l-34 47 45 -20 c26 -10 76 -36 113 -56z m-2057 25 c-40 -58 -105 -190 -130 -263 -110 -324 -59 -707 132 -981 25 -35 42 -64 37 -64 -19 0 -241 119 -326 174 -188 122 -406 314 -532 468 l-58 71 108 103 c185 178 428 349 672 473 66 33 121 60 123 61 2 0 -10 -19 -26 -42z\"\/><path d=\"M2375 1950 c-198 -44 -350 -190 -395 -379 -18 -76 -8 -221 19 -290 114 -284 457 -406 731 -260 98 52 188 154 231 260 27 69 37 214 19 290 -38 163 -166 304 -326 360 -67 23 -215 33 -279 19z\"\/><\/g><\/svg><\/i> <img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/i0.wp.com\/dev95.site\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif?resize=16%2C16&#038;ssl=1\" border=\"0\" \/><\/p>\n<div class=\"pvc_clear\"><\/div>","protected":false},"excerpt":{"rendered":"<p>Compose 1.9, Media 3 1.8, QPR2 Beta 1, Narwhal Feature Drop, and\u00a0more! Welcome to Now in Android, your ongoing guide to what\u2019s new and notable in the world of Android development. Read on for coverage of Android 16 QPR2 beta<\/p>\n<div class=\"hosteria-entry-more\"><a href=\"https:\/\/dev95.site\/ar\/now-in-android-121\/\" class=\"no-underline font-light  group-hover:text-primary-800 dark:group-hover:text-primary-300 py-1\">Read more &gt;&gt;&gt;<\/a><\/div>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_3588\" class=\"pvc_stats total_only\" data-element-id=\"3588\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" version=\"1.0\" viewbox=\"0 0 502 315\" preserveaspectratio=\"xMidYMid meet\"><g transform=\"translate(0,332) scale(0.1,-0.1)\" fill=\"\" stroke=\"none\"><path d=\"M2394 3279 l-29 -30 -3 -207 c-2 -182 0 -211 15 -242 39 -76 157 -76 196 0 15 31 17 60 15 243 l-3 209 -33 29 c-26 23 -41 29 -80 29 -41 0 -53 -5 -78 -31z\"\/><path d=\"M3085 3251 c-45 -19 -58 -50 -96 -229 -47 -217 -49 -260 -13 -295 52 -53 146 -42 177 20 16 31 87 366 87 410 0 70 -86 122 -155 94z\"\/><path d=\"M1751 3234 c-13 -9 -29 -31 -37 -50 -12 -29 -10 -49 21 -204 19 -94 39 -189 45 -210 14 -50 54 -80 110 -80 34 0 48 6 76 34 21 21 34 44 34 59 0 14 -18 113 -40 219 -37 178 -43 195 -70 221 -36 32 -101 37 -139 11z\"\/><path d=\"M1163 3073 c-36 -7 -73 -59 -73 -102 0 -56 133 -378 171 -413 34 -32 83 -37 129 -13 70 36 67 87 -16 290 -86 209 -89 214 -129 231 -35 14 -42 15 -82 7z\"\/><path d=\"M3689 3066 c-15 -9 -33 -30 -42 -48 -48 -103 -147 -355 -147 -375 0 -98 131 -148 192 -74 13 15 57 108 97 206 80 196 84 226 37 273 -30 30 -99 39 -137 18z\"\/><path d=\"M583 2784 c-38 -19 -67 -74 -58 -113 9 -42 211 -354 242 -373 16 -10 45 -18 66 -18 51 0 107 52 107 100 0 39 -1 41 -124 234 -80 126 -108 162 -133 173 -41 17 -61 16 -100 -3z\"\/><path d=\"M4250 2784 c-14 -9 -74 -91 -133 -183 -95 -150 -107 -173 -107 -213 0 -55 33 -94 87 -104 67 -13 90 8 211 198 130 202 137 225 78 284 -27 27 -42 34 -72 34 -22 0 -50 -8 -64 -16z\"\/><path d=\"M2275 2693 c-553 -48 -1095 -270 -1585 -649 -135 -104 -459 -423 -483 -476 -23 -49 -22 -139 2 -186 73 -142 361 -457 571 -626 285 -228 642 -407 990 -497 242 -63 336 -73 660 -74 310 0 370 5 595 52 535 111 1045 392 1455 803 122 121 250 273 275 326 19 41 19 137 0 174 -41 79 -309 363 -465 492 -447 370 -946 591 -1479 653 -113 14 -422 18 -536 8z m395 -428 c171 -34 330 -124 456 -258 112 -119 167 -219 211 -378 27 -96 24 -300 -5 -401 -72 -255 -236 -447 -474 -557 -132 -62 -201 -76 -368 -76 -167 0 -236 14 -368 76 -213 98 -373 271 -451 485 -162 444 86 934 547 1084 153 49 292 57 452 25z m909 -232 c222 -123 408 -262 593 -441 76 -74 138 -139 138 -144 0 -16 -233 -242 -330 -319 -155 -123 -309 -223 -461 -299 l-81 -41 32 46 c18 26 49 83 70 128 143 306 141 649 -6 957 -25 52 -61 116 -79 142 l-34 47 45 -20 c26 -10 76 -36 113 -56z m-2057 25 c-40 -58 -105 -190 -130 -263 -110 -324 -59 -707 132 -981 25 -35 42 -64 37 -64 -19 0 -241 119 -326 174 -188 122 -406 314 -532 468 l-58 71 108 103 c185 178 428 349 672 473 66 33 121 60 123 61 2 0 -10 -19 -26 -42z\"\/><path d=\"M2375 1950 c-198 -44 -350 -190 -395 -379 -18 -76 -8 -221 19 -290 114 -284 457 -406 731 -260 98 52 188 154 231 260 27 69 37 214 19 290 -38 163 -166 304 -326 360 -67 23 -215 33 -279 19z\"\/><\/g><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/dev95.site\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=\"0\" \/><\/p>\n<div class=\"pvc_clear\"><\/div>","protected":false},"author":1,"featured_media":3589,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fp_fajr_begins":"","fp_fajr_iqamah":"","fp_dhuhr_begins":"","fp_dhuhr_iqamah":"","fp_asr_begins":"","fp_asr_iqamah":"","fp_maghrib_begins":"","fp_maghrib_iqamah":"","fp_isha_begins":"","fp_isha_iqamah":"","fp_midnight":"","fp_midnight_name":"","fp_sunrise":"","fp_single_prayer_begins_title":"","fp_single_prayer_iqamah_title":"","fp_prayer_times_for_today":"","fp_hijra_date":"","fp_fajr_name":"","fp_dhuhr_name":"","fp_asr_name":"","fp_maghrib_name":"","fp_isha_name":"","fp_sunrise_name":"","fp_currentDate":"","fp_current_time":"","fp_current_title":"","fp_current_location":"","fp_masjid_name":"","fp_prayer_title":"","fp_next_prayer_iqamah_time":"","fp_next_prayer_iqamah_title":"","fp_next_prayer_begins_time":"","fp_next_prayer_begins_title":"","fp_next_prayer_title":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[9],"tags":[],"class_list":["post-3588","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android"],"a3_pvc":{"activated":true,"total_views":0,"today_views":0},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Now in Android #121 - Dev95<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dev95.site\/ar\/now-in-android-121\/\" \/>\n<meta property=\"og:locale\" content=\"ar_AR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Now in Android #121 - Dev95\" \/>\n<meta property=\"og:description\" content=\"Compose 1.9, Media 3 1.8, QPR2 Beta 1, Narwhal Feature Drop, and\u00a0more! Welcome to Now in Android, your ongoing guide to what\u2019s new and notable in the world of Android development. Read on for coverage of Android 16 QPR2 betaRead more &gt;&gt;&gt;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dev95.site\/ar\/now-in-android-121\/\" \/>\n<meta property=\"og:site_name\" content=\"Dev95\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-23T10:11:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn-images-1.medium.com\/max\/1024\/0*-scJlHS1wG3oiP9Q.png\" \/>\n<meta name=\"author\" content=\"dev95\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0643\u064f\u062a\u0628 \u0628\u0648\u0627\u0633\u0637\u0629\" \/>\n\t<meta name=\"twitter:data1\" content=\"dev95\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u0648\u0642\u062a \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0645\u064f\u0642\u062f\u0651\u0631\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 \u062f\u0642\u064a\u0642\u0629\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/dev95.site\\\/now-in-android-121\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/now-in-android-121\\\/\"},\"author\":{\"name\":\"dev95\",\"@id\":\"https:\\\/\\\/dev95.site\\\/#\\\/schema\\\/person\\\/b807805ffe2916206b04d0938bce0298\"},\"headline\":\"Now in Android #121\",\"datePublished\":\"2026-09-23T10:11:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/now-in-android-121\\\/\"},\"wordCount\":2701,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/now-in-android-121\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/dev95.site\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/0-scJlHS1wG3oiP9Q.png?fit=1024%2C305&ssl=1\",\"articleSection\":[\"Android\"],\"inLanguage\":\"ar\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/dev95.site\\\/now-in-android-121\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dev95.site\\\/now-in-android-121\\\/\",\"url\":\"https:\\\/\\\/dev95.site\\\/now-in-android-121\\\/\",\"name\":\"Now in Android #121 - Dev95\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/now-in-android-121\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/now-in-android-121\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/dev95.site\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/0-scJlHS1wG3oiP9Q.png?fit=1024%2C305&ssl=1\",\"datePublished\":\"2026-09-23T10:11:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/now-in-android-121\\\/#breadcrumb\"},\"inLanguage\":\"ar\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dev95.site\\\/now-in-android-121\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/dev95.site\\\/now-in-android-121\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/dev95.site\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/0-scJlHS1wG3oiP9Q.png?fit=1024%2C305&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/dev95.site\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/0-scJlHS1wG3oiP9Q.png?fit=1024%2C305&ssl=1\",\"width\":1024,\"height\":305},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dev95.site\\\/now-in-android-121\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/dev95.site\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Now in Android #121\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dev95.site\\\/#website\",\"url\":\"https:\\\/\\\/dev95.site\\\/\",\"name\":\"Dev95\",\"description\":\"A comprehensive platform for data and knowledge, delivering reliable content that meets the aspirations of readers and enthusiasts.\",\"publisher\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dev95.site\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ar\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/dev95.site\\\/#organization\",\"name\":\"Dev95\",\"url\":\"https:\\\/\\\/dev95.site\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/dev95.site\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/dev95.site\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/rbrrbr-6.png?fit=512%2C512&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/dev95.site\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/rbrrbr-6.png?fit=512%2C512&ssl=1\",\"width\":512,\"height\":512,\"caption\":\"Dev95\"},\"image\":{\"@id\":\"https:\\\/\\\/dev95.site\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/dev95.site\\\/#\\\/schema\\\/person\\\/b807805ffe2916206b04d0938bce0298\",\"name\":\"dev95\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a70a73d950838b20cd80d7ebdc955737e802e8cd896044c5473b32b946c0662a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a70a73d950838b20cd80d7ebdc955737e802e8cd896044c5473b32b946c0662a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a70a73d950838b20cd80d7ebdc955737e802e8cd896044c5473b32b946c0662a?s=96&d=mm&r=g\",\"caption\":\"dev95\"},\"url\":\"https:\\\/\\\/dev95.site\\\/ar\\\/author\\\/mohammad\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Now in Android #121 - Dev95","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dev95.site\/ar\/now-in-android-121\/","og_locale":"ar_AR","og_type":"article","og_title":"Now in Android #121 - Dev95","og_description":"Compose 1.9, Media 3 1.8, QPR2 Beta 1, Narwhal Feature Drop, and\u00a0more! Welcome to Now in Android, your ongoing guide to what\u2019s new and notable in the world of Android development. Read on for coverage of Android 16 QPR2 betaRead more &gt;&gt;&gt;","og_url":"https:\/\/dev95.site\/ar\/now-in-android-121\/","og_site_name":"Dev95","article_published_time":"2026-09-23T10:11:14+00:00","og_image":[{"url":"https:\/\/cdn-images-1.medium.com\/max\/1024\/0*-scJlHS1wG3oiP9Q.png","type":"","width":"","height":""}],"author":"dev95","twitter_card":"summary_large_image","twitter_misc":{"\u0643\u064f\u062a\u0628 \u0628\u0648\u0627\u0633\u0637\u0629":"dev95","\u0648\u0642\u062a \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0645\u064f\u0642\u062f\u0651\u0631":"13 \u062f\u0642\u064a\u0642\u0629"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dev95.site\/now-in-android-121\/#article","isPartOf":{"@id":"https:\/\/dev95.site\/now-in-android-121\/"},"author":{"name":"dev95","@id":"https:\/\/dev95.site\/#\/schema\/person\/b807805ffe2916206b04d0938bce0298"},"headline":"Now in Android #121","datePublished":"2026-09-23T10:11:14+00:00","mainEntityOfPage":{"@id":"https:\/\/dev95.site\/now-in-android-121\/"},"wordCount":2701,"commentCount":0,"publisher":{"@id":"https:\/\/dev95.site\/#organization"},"image":{"@id":"https:\/\/dev95.site\/now-in-android-121\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/dev95.site\/wp-content\/uploads\/2026\/09\/0-scJlHS1wG3oiP9Q.png?fit=1024%2C305&ssl=1","articleSection":["Android"],"inLanguage":"ar","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dev95.site\/now-in-android-121\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dev95.site\/now-in-android-121\/","url":"https:\/\/dev95.site\/now-in-android-121\/","name":"Now in Android #121 - Dev95","isPartOf":{"@id":"https:\/\/dev95.site\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dev95.site\/now-in-android-121\/#primaryimage"},"image":{"@id":"https:\/\/dev95.site\/now-in-android-121\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/dev95.site\/wp-content\/uploads\/2026\/09\/0-scJlHS1wG3oiP9Q.png?fit=1024%2C305&ssl=1","datePublished":"2026-09-23T10:11:14+00:00","breadcrumb":{"@id":"https:\/\/dev95.site\/now-in-android-121\/#breadcrumb"},"inLanguage":"ar","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dev95.site\/now-in-android-121\/"]}]},{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/dev95.site\/now-in-android-121\/#primaryimage","url":"https:\/\/i0.wp.com\/dev95.site\/wp-content\/uploads\/2026\/09\/0-scJlHS1wG3oiP9Q.png?fit=1024%2C305&ssl=1","contentUrl":"https:\/\/i0.wp.com\/dev95.site\/wp-content\/uploads\/2026\/09\/0-scJlHS1wG3oiP9Q.png?fit=1024%2C305&ssl=1","width":1024,"height":305},{"@type":"BreadcrumbList","@id":"https:\/\/dev95.site\/now-in-android-121\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dev95.site\/"},{"@type":"ListItem","position":2,"name":"Now in Android #121"}]},{"@type":"WebSite","@id":"https:\/\/dev95.site\/#website","url":"https:\/\/dev95.site\/","name":"Dev95","description":"A comprehensive platform for data and knowledge, delivering reliable content that meets the aspirations of readers and enthusiasts.","publisher":{"@id":"https:\/\/dev95.site\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dev95.site\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ar"},{"@type":"Organization","@id":"https:\/\/dev95.site\/#organization","name":"Dev95","url":"https:\/\/dev95.site\/","logo":{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/dev95.site\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/dev95.site\/wp-content\/uploads\/2026\/07\/rbrrbr-6.png?fit=512%2C512&ssl=1","contentUrl":"https:\/\/i0.wp.com\/dev95.site\/wp-content\/uploads\/2026\/07\/rbrrbr-6.png?fit=512%2C512&ssl=1","width":512,"height":512,"caption":"Dev95"},"image":{"@id":"https:\/\/dev95.site\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/dev95.site\/#\/schema\/person\/b807805ffe2916206b04d0938bce0298","name":"dev95","image":{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/secure.gravatar.com\/avatar\/a70a73d950838b20cd80d7ebdc955737e802e8cd896044c5473b32b946c0662a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a70a73d950838b20cd80d7ebdc955737e802e8cd896044c5473b32b946c0662a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a70a73d950838b20cd80d7ebdc955737e802e8cd896044c5473b32b946c0662a?s=96&d=mm&r=g","caption":"dev95"},"url":"https:\/\/dev95.site\/ar\/author\/mohammad\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/dev95.site\/wp-content\/uploads\/2026\/09\/0-scJlHS1wG3oiP9Q.png?fit=1024%2C305&ssl=1","_links":{"self":[{"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/posts\/3588","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/comments?post=3588"}],"version-history":[{"count":0,"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/posts\/3588\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/media\/3589"}],"wp:attachment":[{"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/media?parent=3588"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/categories?post=3588"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev95.site\/ar\/wp-json\/wp\/v2\/tags?post=3588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}