Android Studio Changelog

What's new in Android Studio 2023.3.1.18 (Jellyfish)

May 7, 2024
  • Minimum versions of tools for Android API level:
  • There are minimum versions of Android Studio and AGP that support a specific API level. Using lower versions of Android Studio or AGP than required by your project's targetSdk or compileSdk could lead to unexpected issues. We recommend using the latest preview version of Android Studio and AGP to work on projects that target preview versions of the Android OS. You can install preview versions of Android Studio alongside a stable version.
  • Introducing Gemini in Android Studio:
  • Gemini in Android Studio is your coding companion for Android development. It's an AI-powered conversational experience in Android Studio that helps you be more productive by answering Android development queries. To learn more, see Meet Gemini in Android Studio.
  • New sign-in flow:
  • When you sign in to Android Studio with your Developer account, you benefit from Google developer services—such as viewing Firebase Crashlytics and Android Vitals reports in App Quality Insights, accessing real remote devices with Device Streaming in Android Studio, and writing higher-quality code with Gemini in Android Studio—directly from the IDE.
  • Android Studio Jellyfish makes it easier to add and manage accounts, and provide the IDE with only the permissions required for each feature. To get started do one of the following:
  • Navigate to one of the features mentioned previously and follow the prompts to sign in and provide necessary permissions
  • If you're already signed in, you can manage your accounts and permissions by navigating to File (Android Studio on macOS) > Settings > Tools > Google Accounts.
  • Access real devices with Device Streaming in Android Studio:
  • Device Streaming in Android Studio lets you securely connect to remote physical Android devices hosted in Google's secure data centers. Powered by Firebase, it's the fastest and easiest way to test your app against real devices, including the Google Pixel 8 Pro, Pixel Fold, select Samsung devices, and more.
  • Animation of using Device Streaming in Android Studio:
  • After connecting to a device, you can deploy your app, view the display, interact with the device (including rotating or unfolding the device), and anything else you might do with a device over a direct ADB over SSL connection—all without leaving Android Studio. When you're done using the device, Google wipes all your data and factory resets the device before making it available to another developer.
  • During the current beta period, you can use device streaming at no cost with Firebase projects on either a Spark or Blaze plan. To get started sign into your Developer account from Android Studio and select a Firebase project. If you don't already have a Firebase project, it's easy to create one. To learn more, go to Device Streaming in Android Studio.
  • App Quality Insights support for ANRs, custom data, and multi-events:
  • Dive deeper into App Quality Insights (AQI) crash reports in Android Studio Jellyfish with support for ANR reports, custom data, and multi-events:
  • Iterate through events: Now explore multiple events within a Crashlytics report in reverse chronological order, revealing patterns for faster debugging.
  • Explore custom data: View custom key/values and logs for each crash report (find them in the Keys and Logs tabs after selecting a report).
  • Analyze ANRs: Access and investigate ANRs directly within both the Android Vitals and Crashlytics tabs.
  • Multi-events, ANRs, and custom data in App Quality Insights.
  • Embedded Layout Inspector:
  • The Layout Inspector is now embedded by default in the Running Devices tool window. This integration saves screen real-estate, centralizes your workflow in a single tool window, and delivers significant performance gains—with a 50% improvement in rendering speeds. You can effortlessly toggle between deeply inspecting and interacting with your app, and use snapshots for 3D visualizations of your UI. Discover the full range of features at Debug your layout with Layout Inspector.
  • App Links Assistant supports web associations file validation:
  • The App Links Assistant now supports validation of the Digital Asset Links JSON file that should be published on your website.
  • This feature extends the existing validation capabilities for the intent filters that you declare in the app's manifest file. For each domain that's declared in the manifest file, the Assistant parses the file on your website, performs seven validation checks, and provides a detailed explanation on how to fix any errors.
  • To get started:
  • In Android Studio click Tools > App Links Assistant.
  • Double-click Links to get a detailed view of the checks the Assistant performed and understand how to fix the misconfigurations.
  • Ensure a seamless user experience by validating that your JSON file is correctly formatted for upload to your domain.
  • Baseline Profile installation:
  • Android Studio Jellyfish automatically compiles Baseline Profiles after installation on device for projects that use AGP 8.4 or higher. This covers Baseline Profiles that have been generated through a Baseline Profile Generator module or from libraries like Compose. The automatic installation lets you experience the performance benefits of Baseline Profiles when installing your release app locally, and when using low-overhead profiling.
  • New colorblind checks in Compose UI Check:
  • Compose UI Check includes new colorblind simulations and checks, empowering you to craft visually accessible experiences for all users. Simply enter UI Check mode from Compose Preview to view your Compose UI in different types of color vision deficiencies to ensure your designs remain clear and usable.
  • Compose UI Check Colorblind example:
  • Redirect audio using device mirroring:
  • Starting with Android Studio Jellyfish Canary 5, you can redirect audio from connected physical devices to your computer speakers or headphones. With audio redirection, keep your headphones connected to your computer and listen to both the computer and connected phone without having to manually reconnect to one device and then another. To enable audio redirection, go to Android Studio > Settings > Tools > Device Mirroring and select Redirect audio from local devices. Note that audio is always redirected, regardless of the settings, for Firebase Test Lab devices running Android 12 or higher.
  • IntelliJ 2023.3 platform updates:
  • Android Studio Jellyfish includes the IntelliJ 2023.3 platform release, which has many new features such as comprehensive support for the latest Java 21 programing language features, an intuitive floating toolbar with editing actions, and a Run to Cursor inlay option in the debugger to speed up your workflow. To learn more see the IntelliJ release notes.

New in Android Studio 2023.2.1.25 (Iguana) (Apr 10, 2024)

  • Released together with:
  • Android Gradle Plugin 8.3.2
  • FIXED ISSUES:
  • Android Gradle PlugiN:
  • Issue #329346760
  • AGP 8.3 with desugaring enabled deadlock can happen:
  • Issue #330593433
  • AGP 8.3 breaks zipApksFor Task:
  • Import/Sync:
  • Issue #306442910
  • Android Studio Iguana | 2023.2.1 Canary 9 not generating a correct project for compose
  • Lint Integration:
  • Issue #330911660
  • Lint unable to disambiguate a KMP dependency

New in Android Studio 2023.2.1.23 (Iguana) (Mar 6, 2024)

  • Version control system integration in App Quality Insights:
  • App Quality Insights now lets you navigate from a Crashlytics stack trace to the relevant code—at the point in time when the crash happened. AGP attaches git commit hash data to crash reports, which helps Android Studio navigate to your code and show how it was in the version where the issue occurred. When you view a crash report in App Quality Insights, you can choose to navigate to the line of code in your current git checkout or view a diff between the current checkout and the version of your codebase that generated the crash.
  • To integrate your version control system with App Quality Insights, you need the following minimum requirements:
  • Latest Canary version of Android Studio Iguana
  • Latest Alpha version of Android Gradle Plugin 8.3
  • Crashlytics SDK v18.3.7 (or the Firebase Android Bill of Materials v32.0.0)
  • View Crashlytics crash variants in App Quality Insights:
  • To help you analyze the root causes of a crash, you can now use App Quality Insights to view events by issue variants, or groups of events that share similar stack traces. To view events in each variant of a crash report, select a variant from the dropdown. To aggregate information for all variants, select All.
  • Compose UI Check:
  • To help developers build more adaptive and accessible UIs in Jetpack Compose, Android Studio Iguana Canary 5 introduced a new UI Check mode in Compose Preview. This feature works similar to Visual linting and Accessibility checks integrations for views. When you activate Compose UI Check mode, Android Studio automatically audits your Compose UI and check for adaptive and accessibility issues across different screen sizes, such as text stretched on large screens or low color contrast. The mode highlights issues found in different preview configurations and lists them in the problems panel.
  • Try out this feature today by clicking on the UI Check button on Compose Preview and send your feedback.
  • Progressive Rendering for Compose Preview:
  • Android Studio Iguana Canary 3 introduces Progressive Rendering in Compose Preview. As part of a continual effort to make previews more performant, now for any preview that is out of view, we purposely decrease their render quality to save memory used.
  • This feature is developed with the goal to further improve the usability of Previews by being able to handle more previews at the same time in a file. Try it out today and submit your feedback.

New in Android Studio 2023.1.1.26 (Hedgehog) (Dec 2, 2023)

  • Android Studio Hedgehog includes the IntelliJ IDEA 2023.1 updates, which improve the Studio IDE experience.
  • Analyze Android vitals in App Quality Insights:
  • App Quality Insights now includes Android vitals data, so you can more easily access core metrics collected by Google Play and improve your user experience. Use Android vitals to address issues related to app stability to help improve the quality of your app on Google Play
  • You can view Android vitals issues, filter them, and jump from stack trace to code all from the App Quality Insights tool window. To get started, follow these steps:
  • Sign in to your developer account in Android Studio using the profile icon at the end of the toolbar.
  • Open App Quality Insights by clicking the tool window in Android Studio or clicking View > Tool Windows > App Quality Insights.
  • Click the Android vitals tab within App Quality Insights.
  • Different numbers between Android vitals and Crashlytics:
  • Note that Android vitals and Crashlytics might report different values for the numbers of users and events associated with the same crash. These discrepancies happen because Play and Crashlytics can catch crashes at different times and for different users. Here are a couple reasons for why the Play and Crashlytics counts might differ:
  • Play catches crashes starting at boot time, whereas Crashlytics catches crashes that happen after the Crashlytics SDK initializes.
  • If a user opts out of crash reporting when they get a new phone, those crashes aren't reported to Play; however, Crashlytics catches crashes based on an app's own privacy policy.
  • New Power Profiler:
  • Starting in Android Studio Hedgehog, the Power Profiler shows power consumption on devices. You can view this new data in the On Device Power Rails Monitor (ODPM). The ODPM segments the data by subsystems called Power Rails. See Profileable power rails for a list of supported subsystems.
  • The System Trace records and displays power consumption data. It is part of the CPU profiler. This data helps you to visually correlate power consumption of the device with the actions occurring in your app. The Power Profiler enables visualizing this data.
  • New App Links Assistant:
  • The new App Links Assistant provides a comprehensive overview of the deep links set up in your app. The Assistant displays all existing deep links in the app's AndroidManifest.xml file, validates whether the configuration for those deep links is correct, and provides a quick way to automatically fix the misconfigurations.
  • To open the App Links Assistant navigate to Tools > App Links Assistant in Android Studio. For more information about app links, see Add Android App Links.
  • Live Edit updated manual mode shortcut:
  • Live Edit in Android Studio Hedgehog includes a new shortcut for manual mode (Push Manually): Control+ (Command+ for macOS). Manual mode is helpful in situations where you want to have precise control over when updates are deployed to the running application. For example, if you're making a large scale change in a file and don't want any intermediate state to be reflected on the device. You can choose between Push Manually and Push Manually on Save in the Live Edit settings or using the Live Edit UI indicator. For more information, see the video clip in Live Edit for Jetpack Compose.
  • Compose Multipreview templates:
  • androidx.compose.ui:ui-tooling-preview 1.6.0-alpha01+ introduces new Multipreview API templates: @PreviewScreenSizes, @PreviewFontScales, @PreviewLightDark, and @PreviewDynamicColors, so that with one single annotation, you can preview your Compose UI in common scenarios.
  • Compose Preview Gallery Mode:
  • In Android Studio Hedgehog, a new Gallery mode has been introduced in Compose Preview, which lets you focus on one preview at a time and save resources on rendering. We recommend using Gallery Mode when you need to iterate on your app's UI and switching to other modes, for example Grid or List, when you need to see UI variants.
  • Compose state information in debugger:
  • When parts of your Compose UI recompose unexpectedly, it's sometimes difficult to understand why. Now, when setting a breakpoint on a composable function, the debugger lists the parameters of the composable and their state, so you can more easily identify what changes might have caused the recomposition. For example, when you pause on a composable, the debugger can tell you exactly which parameters have "Changed" or have remained "Unchanged", so you can more efficiently investigate the cause of the recomposition.
  • Device mirroring:
  • You can now mirror your physical device in the Running Devices window in Android Studio. By streaming your device's display directly to Android Studio, you can execute common actions such as starting apps and interacting with them, rotating the screen, folding and unfolding the phone, changing the volume, and more right from the Studio IDE itself.
  • Device mirroring is always available when there are devices connected to the computer that have USB or wireless debugging enabled. You can start and stop mirroring using the Running Devices window or the Device Manager (View > Tool Windows > Device Manager). You can also customize when device mirroring is activated in its settings (Settings > Tools > Device Mirroring).
  • Known issues:
  • Some device may not be capable of encoding at a bitrate sufficient to support device mirroring. In these situations, you might see an error in the Running Devices window as well as logs similar to what's shown below.
  • Privacy notice:
  • Based on the device mirroring settings, Android Studio can automatically start device mirroring for any connected and paired device. This might result in information disclosure for devices connected with the adb tcpip command because the mirroring information and commands are passed over a non-encrypted channel. In addition, Android Studio uses a non-encrypted channel to communicate with the adb server, so mirroring information can be intercepted by other users on your host machine.
  • Hardware input forwarding:
  • You can now enable transparent forwarding of your workstation hardware inputs, such as the mouse and keyboard, to a connected physical and virtual device. To enable transparent forwarding, click Hardware input for the target device in the Running Devices window.
  • Manage devices directly from the Running Devices window:
  • You can now start an Android Virtual Device (AVD), or start mirroring a physical device, directly from the Running Devices window by clicking the + icon and selecting a device. To stop the AVD or mirroring of a physical device, close the device tab.
  • Embedded Layout Inspector:
  • Starting with Android Studio Hedgehog Canary 2, you can run the Layout Inspector directly in the Running Devices tool window. This experimental feature conserves screen real estate and helps organize your UI debugging workflow in a single tool window. In embedded mode you can show a view hierarchy, inspect the properties of each view, and access other common Layout Inspector features. To access the full set of options, you still need to run the Layout Inspector in a standalone window (File > Settings > Experimental > Layout Inspector on Windows or Android Studio > Settings > Experimental > Layout Inspector on macOS).
  • A limitation of the embedded Layout Inspector is that 3D mode is only available in snapshots.
  • New UI improvements:
  • The new UI for Android Studio brings a more modern, cleaner look and feel to the Studio IDE. We've listened to your feedback so far and have fixed issues related to the following features in Android Studio Hedgehog:
  • Compact mode
  • Support for splitting vertically or horizontally
  • Project tabs for macOS
  • Fixes to distraction-free mode
  • Advanced settings for always showing tool window actions
  • SDK Upgrade Assistant updates:
  • The SDK Upgrade Assistant provides a step-by-step wizard flow to help you with targetSdkVersion upgrades. Here are the updates to the SDK Upgrade Assistant in Android Studio Hedgehog:
  • See breaking changes for upgrading to Android 14
  • Added relevance filters so some unnecessary steps are removed
  • For certain changes, pinpoint exactly where in code the changes need to be made
  • Use Firebase Test Lab devices with Gradle-managed devices:
  • When using AGP 8.2.0-alpha03 or higher, you can run your automated instrumented tests at scale on Firebase Test Lab devices when using Gradle-managed devices. Test Lab lets you run your tests simultaneously on a wide range of Android devices, both physical and virtual. These tests run in remote Google data centers. With support from Gradle-managed devices (GMD), the build system can now fully manage running tests against these Test Lab devices based on the configurations in your project's Gradle files.
  • Disable build optimization for target API level only:
  • You can now disable IDE optimization for the target device API level. By default, Android Studio reduces overall build time by tailoring the dexing process for the API level of the target device you're deploying to. To turn this feature off, go to File > Settings > Experimental (Android Studio > Settings > Experimental on macOS) and uncheck Optimize build for target device API level only. Note that turning off this build optimization might increase build time.
  • [Windows-only] Minimize the impact of antivirus software on build speed:
  • Build Analyzer informs you if antivirus software might be impacting your build performance. This can happen if antivirus software, such as Windows Defender, is doing real-time scanning of directories used by Gradle. Build Analyzer recommends a list of directories to exclude from active scanning and, if possible, it offers a link to add them to the Windows Defender folder exclusion list.
  • Eclipse Android Development Tool projects are no longer supported:
  • Android Studio Hedgehog and higher don't support importing Eclipse ADT projects. You can still open these projects, but they are no longer recognized as Android projects. If you need to import this type of project you can use an earlier version of Android Studio. If a given version of Android Studio is unable to import your project, you can try with an even earlier version. Once the project is converted into an Android project using an earlier version of Android Studio, you can use the AGP Upgrade Assistant to work on that project using the latest Android Studio version.

New in Android Studio 2022.3.1.21 (Giraffe) (Nov 8, 2023)

  • Released together with:
  • Android Gradle Plugin 8.1.3
  • FIXED ISSUES:
  • Android Gradle Plugin
  • Issue #293547829:
  • [AGP 8.1.0] ./gradlew test fails with "Unable to find manifest output" if both splits.abi.isEnable and testOptions.unitTests.isIncludeAndroidResources are true
  • Issue #304082728:
  • Build failure after updating to AGP 8.1

New in Android Studio 2022.3.1.20 (Giraffe) (Sep 29, 2023)

  • Released together with:
  • Android Gradle Plugin 8.1.2
  • FIXED ISSUES:
  • Android Gradle Plugin:
  • Issue #294771624
  • androidResources is not available in the android library module
  • Issue #293547829
  • [AGP 8.1.0] ./gradlew test fails with "Unable to find manifest output" if both splits.abi.isEnable and testOptions.unitTests.isIncludeAndroidResources are true
  • Database Inspector:
  • Issue #294904657
  • Android Studio 2022.3.1 Giraffe is missing database inspector
  • Shrinker (R8)
  • Issue #295576241
  • Kotlin 1.9 causes Kotlin lambdas to be destroyed by R8 if nullchecks are stripped
  • Issue #296654327
  • R8 fails with "Undefined value encountered during compilation" for play-services-measurement-21.3.0-runtime.jar

New in Android Studio 2022.3.1.18 (Giraffe) (Jul 25, 2023)

  • Android Gradle plugin and Android Studio compatibility:
  • The Android Studio build system is based on Gradle, and the Android Gradle plugin (AGP) adds several features that are specific to building Android apps. The following table lists which version of AGP is required for each version of Android Studio.
  • Maximum supported Android API level:
  • There is a maximum supported API level for each version of Android Studio and AGP. Using Android Studio or AGP with a project that has a targetSdk or compileSdk higher than the supported maximum could lead to unexpected issues. We recommend using the latest preview version of Android Studio and AGP to work on projects that target preview versions of the Android OS.
  • Use Live Edit to update composables in real time:
  • Live Edit lets you update composables in emulators and physical devices in real time. Edit composables and see the UI changes on the running device without re-deploying your app. This functionality minimizes context switches between writing and building your app, letting you focus on writing code longer without interruption. To try Live Edit, use AGP 8.1 or higher and Compose 1.3.0 or higher.
  • New UI preview:
  • Android Studio Giraffe Canary 2 introduces support for the new UI theme from IntelliJ. To opt in to this option, go to Android Studio > Settings > Appearance & Behavior.
  • The redesigned theme aims to reduce visual complexity, provide easier access to essential features, and disclose complex functionality as needed—resulting in a modern, cleaner look and feel. The key changes are:
  • Simplified main toolbar with new VCS, Project, and Run widgets
  • Tool windows have a new layout
  • New Light and Dark color themes with improved contrast and consistent color palettes
  • New icon set for improved legibility
  • For a full list of changes, see the IntelliJ new UI documentation:
  • The following are some known issues in Android Studio that will be addressed in upcoming releases.
  • Window header toolbar is missing device picker and Android actions, for example Build, Apply Changes, and Sync Project.
  • Android tool windows are not shown by default on the sidebars.
  • The style of Android icons and illustrations needs to be updated.
  • Duplicate controls for switching among the Code, Split, and Design modes.
  • New API support for Compose Animation Preview
  • Compose Animation Preview now also supports animate*AsState, CrossFade, rememberInfiniteTransition, and AnimatedContent (in addition to updateTransition and AnimatedVisibility). To use these additional APIs with Compose Animation Preview, upgrade to Android Studio Giraffe Canary 3 and Compose 1.4.0-alpha04 or higher.
  • Support for Grammatical Inflection API:
  • Android Studio Giraffe Canary 7 introduces support for the Grammatical Inflection API (available as of Android 14 Developer Preview 1).
  • This new feature lets you personalize the UI for your users by adding translations inflected based on your user's grammatical gender when required. You can add grammatically masculine, feminine, or neutral translations. When no grammatically inflected translation is provided for a string, Android displays the default translation for the language.
  • View and manage processes in the Device Explorer:
  • Android Studio Giraffe includes an updated Device Explorer, known as the Device File Explorer in previous versions of Android Studio. In the Device Explorer, files and related actions are located in the Files tab. In the new Processes tab, view a list of debuggable processes for the connected device. From there you can also select a process and perform a kill , force-stop , or attach the debugger to a given process .
  • New Android SDK Upgrade Assistant:
  • Starting with Android Studio Giraffe, see the steps required to upgrade the targetSdkVersion, or the API level that your app targets, directly in the Studio IDE. The Android SDK Upgrade Assistant pulls documentation directly into its tool window, so you don't have to jump back and forth between your browser and the IDE.
  • The Android SDK Upgrade Assistant helps you save time and effort when updating the targetSdkVersion:
  • For each migration step, it highlights the major breaking changes and how to address them.
  • It filters the full list of changes to only show steps relevant to your app.
  • To open the Android SDK Upgrade Assistant, go to Tools > Android SDK Upgrade Assistant. In the Assistant panel, select the API level that you want to upgrade to for guidance. For the best experience, you should upgrade targetSdkVersion values one level at a time.
  • Enhanced diagnostic tools and bug reporting:
  • Android Studio Giraffe Canary 8 introduces new diagnostic tools that make it easier to report bugs with relevant log files attached. To use the new diagnostic report generator, follow these steps:
  • To launch the tool, click Help > Collect Logs and Diagnostic Data. A dialog appears that lets you choose which files to include.
  • Check or un-check specific files to include in your diagnostic report. Click on a specific file in the menu to see a preview of it.
  • When you're ready to export the diagnostic report, agree to the terms and click Create.
  • Select the location where you want to save the diagnostic report zip file and click Save.
  • As part of this enhancement, the bug reporting template (Help > Submit feedback) has also been updated to emphasize the importance of attaching log files. If you file a bug, be sure to attach logs because they help us isolate the issue and are an essential first step to our debugging process.
  • Make selected modules toolbar button:
  • Starting with Android Studio Giraffe Canary 10, build only the current module you're working on by selecting the Make Selected Modules build option in the toolbar. This new option lets you check that the code you just wrote compiles without building more than needed. Alternatively, build your entire project by clicking the arrow next to the build button and selecting Make Project.
  • Download info during sync:
  • The Sync tool window now includes a summary of time spent downloading dependencies and a detailed view of downloads per repository. This view updates live as sync takes place. You can use this information to determine whether unexpected dependency downloads are negatively impacting your sync performance. Since Gradle resolves dependencies by searching through each repository in the declared order, it's important to list the repository that hosts most dependencies at the top of the repository configuration list. Additionally, if you see a high number of failed requests for a specific repository, it could indicate that the repository should be removed or moved lower in your repository configuration.

New in Android Studio 2022.2.1.20 (Flamingo) (May 25, 2023)

  • Released together with:
  • Android Gradle Plugin 8.0.2
  • FIXED ISSUES:
  • C++ Debugger:
  • Native debugger doesn't load symbols after Flamingo update
  • Shrinker (R8):
  • R8 fails during Compose build with ArrayIndexOutOfBoundsException
  • VerifyError: Verifier rejected class when using R8 with Kotlin 1.8.20
  • R8 on AGP 8 breaks Google Fit service
  • Including source file information with residual names that overlap input names is not correctly represented

New in Android Studio 2022.2.1.18 (Flamingo) (Apr 18, 2023)

  • Android Studio is the official IDE for Android development, and includes everything you need to build Android apps.
  • This page lists new features and improvements in the latest version in the stable channel, Android Studio Flamingo. You can download it here or update to it inside Android Studio by clicking Help > Check for updates (Android Studio > Check for updates on macOS)
  • To view the release notes for older versions of Android Studio, see Past releases.
  • For early access to upcoming features and improvements, see the Preview builds of Android Studio.
  • If you encounter problems in Android Studio, check the Known issues or Troubleshoot page.
  • Themed app icons and dynamic color:
  • With the introductions of dynamic color in Material 3 and themed app icons in Android 13, you can now create layouts or launcher icons that are tinted to inherit the coloring of the user's chosen wallpaper. You can use this feature starting with Android Studio Flamingo Beta 1.
  • Themed app icons preview support:
  • For launcher.xml files, you can now use the new System UI Mode selector on the toolbar to switch wallpapers and see how your themed app icons react to different users' chosen wallpaper.
  • Dynamic color preview:
  • For Compose Preview: We've added a new attribute, wallpaper, to the Composable Preview annotation. If you've enabled dynamic color in your app, you can use this new attribute to switch wallpapers and see how your UI reacts to different users' chosen wallpaper. To use this feature, you must use Compose 1.4.0-alpha03 or higher.
  • For Android XML: If you've enabled dynamic color in your app, you can now use the new System UI Mode selector on the toolbar to switch wallpapers and see how your layouts react to different user's chosen wallpaper. Note that you must first select to change the theme to a Material dynamic color theme, then change the wallpaper.
  • Updates to Live Edit:
  • Live Edit now has two modes: manual and automatic. In manual mode, your code changes are applied every time you manually save using Ctrl + S (Command+ S for macOS). In automatic mode, when you update a composable function, your changes are applied in your device or emulator as you make that change. To choose the mode you want to run Live Edit in, go to File > Settings from the menu bar (or Android Studio > Preferences on macOS), click on Editor > Live Edit, and check the Push Edits Manually or Push Edits Automatically box.
  • Compose Tracing:
  • The System tracing utility is an Android tool that saves device activity to a trace file, which provides an overall picture of your app's system processes for a given period of time. Starting with Android Studio Flamingo, you can view your Compose functions in the System Trace profiler using Compose Tracing. Compose Tracing gives you the low intrusiveness from System tracing with method tracing levels of detail in composition, helping you understand which Compose functions are actually being recomposed.
  • To get started with recomposition tracing, you need to update to at least the following versions:
  • Android Studio Flamingo Canary 5
  • Compose UI: 1.3.0-beta01
  • Compose Compiler: 1.3.0
  • The device or emulator you run your trace on must be at least API level 30.
  • Additionally, you need to add the following dependency on Compose Runtime Tracing:
  • implementation("androidx.compose.runtime:runtime-tracing:1.0.0-alpha01")
  • To view recomposition tracing, open the Android Studio Profiler and select the CPU profiler. Navigate your app to the UI that you want to trace and then select System Trace and Record. While recording, use your app in order to cause recomposition. Once you stop recording and the trace processes, you can see the Compose functions in the recomposition trace directly in the Threads timeline. You can also see the Compose functions in the Flame Chart, Top Down, Bottom Up, and Events tabs from the Analysis pane.
  • This is an experimental feature in active development, and we welcome you to provide feedback. For more details, see Compose tracing.
  • Updates to project templates:
  • Android Studio Flamingo Canary 6 includes new templates for creating a project or module. By default, templates use Compose Material 3 unless they are specified as a Views template. We recommend using the Compose Material 3 templates (for example, Empty Activity) as the best practice for creating an Android app. To learn more, see the Compose Material 3 reference.
  • To view the templates, go to open the New Project or Create New Module wizard by selecting File > New > New Project or New Module from the main menu.
  • Network Inspector traffic interception:
  • Starting with Android Studio Flamingo Canary 1, the Network Inspector shows all traffic data for the full timeline by default. You can select a range within the timeline to see only the traffic in that range.
  • You can also create and manage rules that help test how your app behaves when encountering different responses such as status codes, and response headers and bodies. The rules determine what responses to intercept and how to modify these responses before they reach the app. You can choose which rule to enable or disable by checking the Active box next to each rule. Rules are automatically saved every time you modify them.
  • To get started, navigate to the Rules tab in the Network Inspector and click + to create a new rule. In the Rule Details panel, name your new rule and include information about the origin of the response you want to intercept under the Origin subsection. The URL in the Rules table should update based on the changes you made to the origin of the response. All fields in this subsection are optional.
  • Modify headers:
  • In the Header rules subsection, you can create multiple sub-rules that add or modify headers in a response. When you create multiple header rules, use the up and down arrows at the top of the Rules table to change the order of the header rules. The order affects the header of the modified response because the header rules are applied in the order that they are listed.
  • To get started, click + in the Header rules section.
  • To add a header, enter a name and value for the header in the Add new header section.
  • To modify a header, navigate to the Edit existing header tab and specify the header name or value that you want to find. Enter a header name or value that you want to replace it with.
  • Modify response body:
  • You can also create sub-rules to modify the body of the response. You can choose to either Find and Replace a section of the body, in which the first instance in the body is replaced; or, you can choose to replace the entire content of the body by selecting Replace entire body.
  • Similar to Header rules, you can create multiple body rules that are applied in the order that they are listed in the table.
  • Auto-connect to foreground process in Layout Inspector:
  • The Layout Inspector now automatically connects to apps on virtual or physical devices. Specifically, the Layout Inspector automatically connects to debuggable processes running in the foreground of a connected device. If you have feedback on this feature, please file a bug.
  • Updates to App Quality Insights:
  • Android Studio Flamingo Canary 5 and higher introduce multiple new App Quality Insights features that help you focus on high priority issues and collaborate with your development team.
  • New filters and filter search:
  • To help you identify the most important issues, you can now filter by the following attributes. Each filter is sorted by the number of events, so you can see where most events occur.
  • Android platform version
  • Device make and model
  • Crashlytics Signal: Signal icons also appear next to associated issues in the Issues panel so you can see counts and signals side by side. An issue is considered regressed when it's been closed in the past and has reoccurred in a new version of the app.
  • App version: This filter now includes a higher-level Play track filter that you can use to automatically select versions in the production, open, closed and/or internal testing tracks.
  • In addition, filters with lots of options are now searchable so you can customize your view faster, without scrolling through all the menu options.
  • Annotate and close issues directly from Android Studio
  • To make it easier for you to collaborate with teammates, you can now do the following directly in the App Quality Insights tool window:
  • Close issues. To close an issue, click the Close button in the main stack trace panel. Recently closed issues appear in the Issues panel with strikethrough. You can reopen issues that have been recently closed by clicking on the button again. However, once you refresh the App Quality Insights tool window, closed issues are no longer visible.
  • Read and attach notes to issues so that they are visible in the Firebase Console and your teammates. To write a note about an issue, select the issue and open the Notes panel. You must have write permission to the Crashlytics project in order to write notes. Issues with notes appear with a "notes" icon in the Issues panel.
  • If you're new to App Quality Insights and would like to learn more, see the earlier release note.
  • Investigate with limited functionality when offline:
  • Starting with Android Studio Flamingo Canary 8, you can do some actions in the App Quality Insights tool window while offline. If you make a new request, such as by clicking Refresh, and Android Studio is unable to communicate with Crashlytics, the App Quality Insights window allows you to enter Offline Mode.
  • While in this mode, you can continue to investigate issues and the latest events from cached data. Certain functionality, such as changing some filter options or closing issues, is not available. To retry your connection to Crashlytics and return to an online state, click Reconnect.
  • One-click automated profileable build and run:
  • Android Studio Flamingo and AGP 7.3 introduces one-click automated profileable builds, which makes it easier to configure a profileable app and profile it. This feature requires a virtual or physical test device running API level 29 or higher. To use the feature, click the arrow next to the Profile app icon and choose between two options:
  • Profile 'app' with low overhead starts the CPU and Memory profilers. In the Memory profiler, only Record Native Allocations is enabled.
  • Profile 'app' with complete data starts the CPU, Memory, and Energy profilers.
  • Lint support for SDK extensions:
  • Android Studio Flamingo provides lint support for SDK extensions. This feature allows you to update the lint tool's API check to correctly enforce API access in the presence of API backports and for new API surfaces like the Android Privacy Sandbox.
  • The lint tool's API check makes sure that your code only uses APIs available to you as gated by minSdkVersion or by an SDK_INT check. With SDK extensions, an API can exist in multiple SDKs. For example, an API introduced in Android U can also be added to the Android R, S, and T backport extensions. Furthermore, apps can specify multiple APIs as required using their manifest, and there are new APIs for checking whether individual extensions are available. The lint tool now handles the logic to check for overlap in what's required and what's known to be present.
  • Finally, there are Studio IDE features associated with API checking. This feature can now handle API violations for the new API surfaces, perform necessary checks, and register quick fixes, one per available API surface.

New in Android Studio 2022.1.1 Patch 2 (Electric Eel) (Mar 1, 2023)

  • FIXED ISSUES:
  • Compose Preview
  • Issue #262773698
  • Compose Preview broken when using HTML text with b-Tags
  • Issue #266054909
  • Running Previews from library modules does not work
  • LAYOUT EDITOR:
  • Issue #257280452
  • Exception in Layout editor
  • Shrinker (R8)
  • Issue #265905174
  • AGP 7.4.0/7.3.1 - Attempt to enqueue an action in a non pushable enqueuer work list
  • Issue #250634405
  • `:app:minifyVariantWithR8` throws a NullPointerException in AGP 7.4.0-beta02
  • Issue #263934503
  • R8: ClassNotFoundException when -allowaccessmodification

New in Android Studio 2022.1.1 Patch 1 (Electric Eel) (Feb 2, 2023)

  • The following is a list of the patch releases in Android Studio Electric Eel.
  • Android Studio Electric Eel | 2022.1.1 Patch 1 (February 2023):
  • With the Patch 1 release, Android Studio Electric Eel now supports Kotlin1.8. This minor update also includes the following bug fixes:
  • FIXED ISSUES:
  • Installer:
  • Issue #265309504
  • Android Studio Electric Eel | 2022.1.1 can't open Windows 11
  • Logcat:
  • Issue #263475910
  • Cannot type @ (conflict from Logcat shortcut)

New in Android Studio 2022.1.1 (Electric Eel) (Jan 13, 2023)

  • WHAT'S NEW:
  • Android Studio Electric Eel | 2022.1.1:
  • Android Studio is the official IDE for Android development, and includes everything you need to build Android apps.
  • This page lists new features and improvements in the latest version in the stable channel, Android Studio Electric Eel. You can download it here or update to it inside Android Studio by clicking Help > Check for updates (Android Studio > Check for updates on macOS)
  • To view the release notes for older versions of Android Studio, see Past releases.
  • For early access to upcoming features and improvements, see the Preview builds of Android Studio.
  • If you encounter problems in Android Studio, check the Known issues or Troubleshoot page.
  • The following are new features in Android Studio Electric Eel.
  • SDK insights:
  • View dependency insights from the new Google Play SDK Index, a public portal with information about popular dependencies, or SDKs. If a specific version of a library has been marked as outdated by its author, a corresponding Lint warning appears when viewing that dependency definition. This enables you to discover and update dependency issues during development instead of later when you go to publish your app on the Play Console. You can learn more about this new tool on the Android Developer's Blog post here.
  • App Quality Insights from Firebase Crashlytics:
  • Starting with Android Studio Electric Eel, you can see and act on app crash data from Firebase Crashlytics directly in the IDE. This integration pulls stack trace data and crash statistics from Crashlytics into the new App Quality Insights tool window in the IDE, so you don't have to jump back and forth between your browser and the IDE. Development teams can benefit from key capabilities including the following:
  • See lines in your code highlighted when they have related Crashlytics event data.
  • See the stack trace for top crashes and click on the stack trace to jump to the relevant lines in your code.
  • See summary statistics about top crash and non-fatal events, for example grouped by device manufacturer and Android version.
  • Filter events by severity, time, and app version.
  • Get a browser link that opens the Crashlytics dashboard page with more details about the event.
  • With the Android Studio and Crashlytics integration, you can write code and address top crash issues all in the same spot. This enriched development experience helps you stay informed about your app's performance and minimize disruptions for your users. If you encounter any issues with this feature, file a bug.
  • If you're not using Crashlytics yet and would like to learn more about its offerings, see Firebase Crashlytics.
  • Get started:
  • To see Crashlytics data in Android Studio, you need to set up Firebase and Crashlytics in your app project. Here's how: open the Firebase Assistant in Android Studio by going to Tools > Firebase, click Crashlytics, and then follow the tutorial to add Firebase and Crashlytics to your project. You can read more about the Firebase Assistant workflow in Firebase's getting started guide for Android.
  • If you've already added Firebase and Crashlytics to your app, sign in to your Developer account in the IDE by clicking on the avatar icon . After you sign in, click on the App Quality Insights tool window. You should see the Issues, Sample Stack Trace, and Details panels populate with reports from Crashlytics.
  • Navigate Crashlytics data in Android Studio:
  • The App Quality Insights tool window has rich data that gives you insight into the events your users are encountering, and links to help you quickly navigate to the sources of those events.
  • App Quality Insights tool window:
  • If your project includes multiple app modules, make sure the module youwant to see event data for is selected from the module dropdown menu.
  • Use the application ID dropdown menu to select the app ID you want toanalyze. For example, while you might work on the debug version of your app inthe IDE, you might want to see event data for your production version of yourapp that your users install.
  • The Issues panel shows the top events that Crashlytics has data for,and is sorted by your most impactful crashes.
  • The Sample Stack Trace panel shows details about the latestoccurrence of the event you click on in the Issues panel. You can seethe event's stack trace and click on the stack trace to jump to the relevantlines in your code base.
  • There is also information about the device type affected, its Androidversion, and the time the event occurred, as well a link to the event in theFirebase Crashlytics dashboard. The dashboard is useful if you want to divedeeper and inspect additional stack traces, trends, and custom logs.
  • 5The Details panel breaks down the crash counts by device type andAndroid version, so you can determine which user groups are most affected. Italso shows which app version(s) experienced the crash and the number of usersaffected.
  • Use the severity filters to select or deselect events that are Fatal or Non-Fatal .
  • Use the time range and app version filters to hone in on certain subsetsof events.
  • In addition to being able to navigate from stack trace to code, you can also jump from code to stack trace: Android Studio now highlights lines of code that are related to crashes so you can easily spot and debug them.
  • Crash-related code highlighted in the IDE:
  • When you hover over a highlighted line of code, a pop-up appears that shows the event involved, its frequency, and the number of devices affected. You can click on Open in App Quality Insights to jump to the event details in the App Quality Insights tool window. To learn more, See Analyze issues from Firebase Crashlytics with App Quality Insights.
  • Resizable emulator:
  • You can now test your app on multiple screen sizes and with a single resizable emulator. Testing on a single resizable emulator not only allows you to rapidly test changes across different interfaces, but also promotes a smoother development experience by saving the compute resources and memory that would be required to maintain separate virtual devices.
  • To use the resizable emulator, you need Android Emulator version 31.1.3 or higher. To upgrade versions, go to Tools > SDK Manager. To create a resizable Android Virtual Device (AVD), follow these steps:
  • In the create device flow, select the Resizable (Experimental) phone hardware profile.
  • Download the Android Tiramisu system image.
  • Follow the prompts to create the AVD.
  • When you deploy your app to the resizable emulator, use the Display Mode dropdown in the emulator toolbar to quickly toggle between a set of common device types. The emulator screen resizes so you can easily test your app across a range of screen sizes and densities.
  • Resizable emulator Display Mode dropdown menu
  • Visual linting for Views:
  • Android Studio now automatically runs your layout to check for visual lint issues across different screen sizes for layouts written in Views. When you open Layout Validation, you can see all your layouts render in multiple device sizes. If there's an issue, it appears in the Problems panel, which is designed to show all issues within design tools.
  • Layout Validation UI:
  • Device mirroring:
  • You can now mirror your device in the Running Devices window in Android Studio Electric Eel. By streaming your device's display directly to Android Studio, you can execute common actions such rotating the screen, changing the volume, or locking/unlocking the device right from the IDE itself.
  • Device mirroring is available in the Electric Eel Canary channel as an experimental feature. To turn it on manually, navigate to File > Settings > Experimental (Android Studio > Preferences > Experimental on a Mac), and check the box next to Device Mirroring.
  • Enable Device Mirroring checkbox UI:
  • To get started, ensure you are connected to a device. All devices that you are connected to are mirrored in tabs in the Running Devices window, which you can open by navigating to View > Tool Windows > Running Devices. When you deploy an app or test to a connected device, the Running Devices window appears automatically and shows the mirrored device.
  • Running Devices UI:
  • Privacy notice:
  • If device mirroring is enabled, Android Studio automatically starts device mirroring for any connected and paired device. This might result in information disclosure for devices connected with the adb tcpip command because the mirroring information and commands are passed over a non-encrypted channel. In addition, Android Studio uses a non-encrypted channel to communicate with the adb server, so mirroring information can be intercepted by other users on your host machine.
  • AGP Upgrade Assistant post-upgrade report and rollback functionality:
  • The AGP Upgrade Assistant now includes a post-upgrade report. This report describes the steps that were completed and if the upgrade was successful or unsuccessful. It also includes an action to revert changes that were made by the upgrade assistant, if there are issues building or testing the project after the upgrade.
  • Updates to Logcat:
  • The Logcat window UI:
  • In Android Studio Electric Eel, the new version of Logcat is enabled by default to make it easier to parse, query, and keep track of logs. This represents the most significant update to the tool since its introduction, so read View logs with Logcat for more details on how to use the new functionality and query syntax.
  • Desktop Android Virtual Device now available:
  • You can now test how your app works on desktop devices such as Chromebooks by using a Desktop Android Virtual Device (AVD). Users often interact with apps differently on large screen devices, and the Desktop AVD enables you to see how your app behaves in this environment. Here are some of the unique functionalities you can test:
  • App resizing: resize your app by dragging the window edges.
  • Freeform window management: place your app in various places on the desktop screen, and minimize, maximize, and restore the app window.
  • Notifications: check that the notifications render correctly when pulled up from the system tray on the desktop.
  • To learn more about Desktop AVDs and how to incorporate them in your testing workflow, see Desktop AVD in Android Studio on the ChromeOS developers blog.
  • Apps on a Chromebook:
  • Check download impact using Build Analyzer:
  • Build Analyzer now provides a summary of time spent downloading dependencies and a detailed view of downloads per repository. You can use this information to determine whether unexpected dependency downloads are negatively impacting your build performance. This is especially important during incremental builds, which shouldn't consistently download artifacts.
  • Specifically, you can use this information to identify configuration issues, such as use of dynamic versions of dependencies that cause unexpected downloads. Also, if you see a high number of failed requests for a specific repository, it could indicate that the repository should be removed or moved lower in your repository configuration.
  • Layout Inspector recomposition rendering highlights:
  • In Android Studio Electric Eel, your recompositions are highlighted to help you determine where in the UI your composables are recomposing. The highlighted portion shows a gradient overlay of the composable in the image section of the Layout Inspector, and gradually disappears so that you can get an idea of where in the UI the composable with the highest recompositions can be found. If one composable is recomposing at a higher rate than another composable, then the first composable receives a stronger gradient overlay color. For more details, see Compose recomposition counts in Layout Inspector.
  • Recomposition rendering highlights:
  • Universal Problems panel:
  • You can now view all the issues for your design tools in a shared issue panel. To view the tool window, navigate to View > Tool Windows > Problems.
  • Panel UI:
  • Live updates to your Compose Preview:
  • Starting with Android Studio Electric Eel, you can see immediate updates to your Preview changes as you make them. For more information, see Composable Preview.
  • A gif showing real time updates using Compose Preview
  • Use Compose Preview with different devices:
  • In Android Studio Electric Eel, you can edit the device parameter of the Preview annotation to define configurations for your Composables in different devices. For more details, see Use with different devices.

New in Android Studio 2021.3.1 Patch 1 (Oct 14, 2022)

  • With the Patch 1 release, Android Studio Dolphin now supports the Kotlinplugin 1.7.20. This minor update also includes the following bug fixes:
  • FIXED ISSUES:
  • Android Gradle Plugin
  • Running instrumented android tests via gradle fails toproperly apply desugaring
  • AGP 7.3.0 breaks gradle sync for gradle platform projects
  • Dexer (D8)
  • Add a public API for conflict resolution when merging DEX (for bazel to allow duplicate classes)
  • Import/Sync:
  • Gradle Project Import fails after upgrade from Chipmunk Patch 2(2021.2.1)
  • Resources:
  • NPE in AarResourceRepositoryCache.createCachingData(AS Dolphin+)
  • Shrinker (R8)
  • Issue #245724176
  • Kotlin metadata is not copied when type substituting fields
  • Unexpected conversion of imprecise type: TOP (everything)
  • Gradle 7.3.0 causing APK build errorcom.android.tools.r8.CompilationFailedException
  • Strip dead default constructors in compat mode.
  • Conflict with JetBrains Markdown
  • Support for ThreadLocal.withInitial(java.util.function.Supplier
  • AGP 7.3 generates dex for classes with broken constructor
  • Unexpected attempt to determine if non-CF code needsdesugaring
  • Issue #237567012
  • ktor VerifyError:
  • Undefined value encountered during compilation thrown whenprocessing okio-jvm 3.2.0
  • Compilation failure from class inlining object with indirectinstance-of users
  • java.lang.IllegalAccessError with R8 3.3.75

New in Android Studio 2021.3.1 (Sep 19, 2022)

  • New in Compose:
  • The following are new features and improvements to Jetpack Compose in Android Studio.
  • Compose Animation Coordination:
  • If your animations are described in a composable preview, you can now use Animation Preview to inspect and coordinate all of them at once. You can also freeze a specific animation.
  • Gif showing inspection with All Animations UI:
  • Compose Multipreview Annotations:
  • You can now define an annotation class that includes multiple Preview definitions and use that new annotation to generate those previews at once. Use this new annotation to preview multiple devices, fonts, and themes at the same time—without repeating those definitions for every single composable.
  • Multipreview annotations UI:
  • Compose Recomposition Counts in Layout Inspector:
  • When debugging your Compose layouts, knowing when composables do or do not recompose is important in understanding whether your UI is implemented properly. For example, if it's recomposing too many times, your app might be doing more work than is necessary. On the other hand, components that do not recompose when you expect them to can lead to unexpected behaviors.
  • The Layout Inspector now allows you to see when discrete composables in your layout hierarchy have either recomposed or skipped. This information is shown live, while you interact with your app. To get started, make sure your app is using Compose 1.2.0-alpha03 or higher. Then deploy your app as you normally would.
  • New composition and skip counter in Layout Inspector:
  • Open the Layout Inspector window and connect to your app process. In the Component Tree, you should see two new columns appear next to the layout hierarchy. The first column show the number of compositions for each node. The second columns displays the number of skips for each node. You can also see similar information in the Attributes pane when you select a composable from the Component Tree or the Layout Display.
  • If you want to reset the count, click Reset near the top of the Component Tree panel. Resetting the count can help you understand recompositions or skips during a specific interaction with your app.
  • Note: If you don't see the new columns in the Component Tree panel, you can enable or disable them by selecting Show Recomposition Counts from the View Options menu Live Layout Inspector view options icon near the top of the Component Tree, as shown in the following image.
  • Enable the composition and skip counter in Layout Inspector:
  • Updated Wear OS emulator pairing assistant:
  • Starting with Android Studio Dolphin Canary 3, the Wear OS emulator pairing assistant has improved features that make it easier to manage and connect Wear emulators. You can now do the following:
  • See Wear devices in the Device Manager.
  • Pair multiple Wear devices with a single virtual or physical phone.
  • Automatically reconnect previously paired devices when they’re launched. Android Studio now remembers and re-pairs the last pair set up.
  • To use these new features, make sure your phone emulators are API level 30 or higher and have the Google Play Store installed. Also, make sure your Wear emulators are API level 28 or higher. To upgrade to the latest system images for your emulated devices, go to Tools > SDK Manager.
  • Updated Wear OS emulator toolbar:
  • Starting with Android Studio Dolphin Canary 2, for Wear emulators with API level 28 or higher, the emulator toolbar now has buttons that simulate the physical buttons and common actions on the device. The new buttons are: Button 1 and Button 2 (Button 2 is only available on API level 30 or higher), the Palm button, and the Tilt button. Here are some of the actions you can do using the new buttons on your Wear emulator:
  • To set your device to ambient mode, click the Palm button.
  • To return your device to the last screen it was on before ambient mode, click the Tilt button.
  • For more information, see Perform common actions in the emulator.
  • Wear emulator with Wear-specific buttons:
  • New Wear OS run configurations:
  • New run configurations have been added to quickly run and debug surfaces specific to Wear OS like watch faces, Tiles, and complications. You can create these new configurations from the Run/Debug Configurations dialog when running your application.
  • WearOS new launch configurations:
  • New Logcat:
  • Logcat has been updated to make it easier to parse, query, and track logs.
  • New formatter:
  • Logcat now formats logs to make it easier to scan useful information, such as tags and messages, and identify different types of logs, such as warnings and errors.
  • New formatting for logs in Logcat:
  • Create multiple Logcat windows:
  • You can now create multiple tabs within Logcat, so that you can easily switch between different devices or queries. Right-clicking a tab allows you to rename it, and you can click and drag to rearrange the tabs.
  • Additionally, to help you more easily compare between two sets of logs, you can now split the view within a tab by right-clicking in the log view and selecting either Split Right or Split Down. To close a split, right-click and select Close. Each split allows you to set its own device connection, view options, and query.
  • Create multiple logcat windows using splits:
  • Switch between view presets:
  • Logcat now allows you to quickly switch between different view modes—Standard, Compact, and Custom—by clicking View mode selector. Each view mode provides a different default setting for showing you more or less information, such as timestamps, tags, and process IDs (PID). You can also customize each of these default view modes, as well as a custom view mode, by selecting Modify View.
  • Screenshot of switching between different view modes:
  • New key-value search:
  • In the previous version of Logcat, you had the option to either use string search (with support for regular expressions) or create a new filter by populating various fields using the Logcat UI. The first option made search more complex and the second option made sharing and setting up queries more difficult. We’ve now simplified the experience by introducing key-value searches right from the main query field.
  • Screenshot of new query syntax with auto-complete:
  • This new query system provides the accuracy of what you want to query, without relying on regular expressions, with the ability to recall past queries from history, and share those queries with others. Additionally, you still have the option to use RegEx and also exclude logs based on key-values. Here are some examples of how to use the new query system, but you can also simply start typing in the query field to see suggestions:
  • PIDs for the local app project: package:mine
  • Specific values: •package:
  • tag:
  • level:[VERBOSE | INFO | ASSERT |DEBUG | WARN | ERROR ]
  • Exclude a specific value by preceding the key with -: -tag:
  • Use regular expressions with a given key by placing a ~ after the key: •tag~:
  • Combine with the exclude tag: -tag~:
  • You can also see a history of queries by clicking Query history selector in the query field and selecting them from the drop down. To favorite a query so that it stays at the top of the list across all your studio projects, click the Favourite query at the end of the query field..
  • Screenshot query history with favorites:
  • Track logs across app crashes/restarts:
  • The new Logcat now makes it easier to track logs from your app across app crashes and restarts, so that you don’t miss important logs across these events. When a Logcat notices that your app process has stopped and restarted you’ll see a message in the output—such as PROCESS ENDED and PROCESS STARTED—as shown below:
  • Screenshot of process restarts in logcat:
  • And, restarting Logcat preserves your session configuration, such as tab splits, filters, and view options, so that you can continue your session easily.
  • Gradle Managed Devices:
  • In order to improve consistency, performance, and reliability when using Android Virtual Devices for your automated instrumented tests, we’re introducing Gradle Managed Devices. This feature, available for API levels 27 and higher, allows you to configure virtual test devices in your project's Gradle files. The build system uses the configurations to fully manage—that is, create, deploy, and tear down—those devices when executing your automated tests.
  • This feature grants Gradle visibility into not only the tests you’re running, but also the lifecycle of the devices, thus improving the quality of your testing experience in the following ways:
  • Handles device-related issues in order to ensure your tests are executed
  • Utilizes emulator snapshots to improve device startup time and memory usage, and restore devices to a clean state between tests
  • Caches test results and reruns only tests that are likely to provide different results
  • Provides a consistent environment for running your tests between local and remote test runs
  • Additionally, Gradle Managed Devices introduce a new type of Emulator device, called Automated Test Devices (ATD), that are optimized to improve performance when running your instrumentation tests. Combined with support for test sharding, you can experiment with splitting your test suite across multiple ATD instances in order to reduce overall test execution time. To learn more about Gradle Managed Devices and its associated features, see Scale your tests with Gradle Managed Devices.
  • R8 support using mapping files based on DEX instruction offsets:
  • When optimizing line information, R8 can now encode the information in shared debug information objects with line tables based on instruction offsets. This substantially reduces the overhead of line information. The effect is that lines in methods are no longer consecutive but might jump at intervals depending on the size of the instructions. Note that some tooling does not consider this shared encoding.
  • In addition, Android VMs starting from O (API Level 26) support printing instruction offsets in stack traces if the method has no line number information. When compiling with minSdk 26 or higher, and with no source file information, R8 strips the line number information completely.
  • Stateless lambdas are no longer desugared as singletons:
  • Stateless lambdas are no longer allocated as singletons when desugaring. The representation as singletons adds code size overhead due to the added field and class initializer, as well as startup overhead, due to static class initialization. Stateless lambdas are now allocated at use sites the same way stateful lambdas (lambdas with captures) are.
  • R8 avoids verification slowdown on Android runtimes:
  • To eliminate performance issues on Android runtimes (Dalvik and ART), R8 (not D8) now introduces library stubs and outline calls to library methods for library classes and methods that might not exist at runtime. Doing so eliminates many verification issues and improves runtime performance. This feature is always enabled.
  • Support for JDK-11 APIs with Java 8+ API desugaring:
  • When using the coreLibraryDesugaring dependency there is now support for an implementation library based on JDK-11. See thedesugar_jdk_libs change logopen_in_new for more information.

New in Android Studio 2021.2.1 Patch 2 (Chipmunk) (Aug 4, 2022)

  • FIXED ISSUES:
  • C++ Debugger :
  • Release version of a native library from a dependent project gets packaged even for a debug build variant
  • Design Tools:
  • Ctrl + D or “show diff” button doesn't show git diff
  • Dexer (D8)
  • Document the compiler version required for each desugared library version
  • Gradle:
  • Lint UnusedResources False Positive with Import Alias
  • import/Sync :
  • Build problem with multiple product flavours in new version
  • Shrinker (R8)
  • ArrayIndexOutOfBoundsException in IntSwitch
  • R8 3.1.7-dev and above improperly optimizes Enums, leading to NoSuchFieldError
  • R8 causing VerifyError on Scala libraries
  • Gradle 7.2.0 causing APK build error com.android.tools.r8.CompilationFailedException
  • NPE in shrinker, R8 version 3.2.60
  • [R8 3.3.57] NoClassDefFound due to interface replaced with abstract class with higher SDK requirements
  • NullPointerException in FieldAssignmentTracker using 3.3.35

New in Android Studio 2021.2.1 Patch 1 (Chipmunk) (May 25, 2022)

  • This minor update includes the following bug fixes:
  • Dexer (D8):
  • Art / Dalvik VMs prior to version 8 does not support the fix for JDK-8272564
  • IntelliJ:
  • File watcher failed to start on Ubuntu 20.04
  • MBP 15" 2018 Touch Bar menu is missed.
  • Run:
  • Devices option is not visible and unable to run the app even though app module is available.
  • Shrinker (R8):
  • Why does R8 doesn't backport default interface methods but D8 does?
  • CIRCULAR REFERENCE: com.android.tools.r8.internal.R10: Unexpected type in conversion to primitive: OBJECT

New in Android Studio 2021.2.1 (Chipmunk) (May 9, 2022)

  • Support for creating your app with Jetpack Compose:
  • Animation Preview supports animated Visibility
  • Android Studio Chipmunk supports the animatedVisibility API in Animation Preview. To use Animation preview with animatedVisibility, use Compose version 1.1.0 or higher. To learn more about Animation Preview, see Animations.
  • Support for deploying preview from Library Modules
  • Previews allow you to view your UI within Android Studio without having to run your app on a physical device. In Android Studio Chipmunk, you can deploy a specific @Preview to an emulator or physical device from Library Modules. To learn more, see Deploy Preview.
  • Support for profiling your app:
  • Detect jank on Android 12 and higher:
  • For devices using Android 12 or higher, a captured trace is shown in the Janky frames track under the Display pane in the CPU Profiler.
  • To detect jank,
  • From the development emulator or device, start the app.
  • In Android Studio, select View > Tool Windows > Profiler or click Profile in the toolbar.
  • If prompted by the Select Deployment Target dialog, choose the device to which to deploy your app for profiling. If you've connected a device over USB but don't see it listed, ensure that you have enabled USB debugging.
  • Click anywhere in the CPU timeline to open the CPU Profiler.
  • You should see the Janky frames track under Display. By default, the Profiler only shows janky frames as candidates for investigation. Within each janky frame, the red portion highlights the duration the frame takes past its rendering deadline. Screenshot of the Janky frames track
  • Once you find a janky frame, click on it; optionally, you can press M to adjust the zoom to focus on the selected frame. The relevant events will be highlighted in the main threads: RenderThread and GPU completion. Screenshot of Profiler displaying Janky frames and main threads
  • You can optionally see all frames or a breakdown of the rendering time by toggling the checkboxes All Frames and Lifecycle, respectively. Screenshot of Profiler as above but with All Frames and Lifecycle checkboxes checked
  • Android Gradle plugin and Android Studio compatibility:
  • The Android Studio build system is based on Gradle, and the Android Gradle plugin adds several features that are specific to building Android apps. The following table lists which version of the Android Gradle plugin is required for each version of Android Studio.

New in Android Studio 2021.1.1 Patch 3 (Bumblebee) (Apr 10, 2022)

  • This minor update includes the following bug fixes:
  • Android Gradle plugin:
  • Duplicate class issues reported by R8
  • Build Variants:
  • versionNameSuffix no longer works if the variant's version name is set via the new onVariants API
  • Compose Preview:
  • Performance and stability related bug fixes.
  • Solve freeze that occurred occasionally when using the Live Edit of Literals feature.
  • Network Inspector:
  • New Network inspector crashes after Bumblebee update
  • I am constantly getting this error when the debugger is connected on the latest version of Android Studio.
  • TrackedHttpURLConnection.getHeaderField crashes with NullPointerException

New in Android Studio 2021.1.1 Patch 2 (Bumblebee) (Feb 24, 2022)

  • This update includes the following bug fixes:
  • C++ Build:
  • ModelCache.safeGet(androidProjectResult.androidProject::getNdkVersion, "") must not be null
  • Code Editor:
  • Bug in Android Studio Live Templates - the className() expression is not resolving the class name
  • D8/R8 •java.lang.NoSuchMethodError: No static method $jacocoInit
  • Android test coverage broken due to Mockito error
  • Need workaround for broken CAS implementation on API 31
  • Sealed classes are not supported
  • NullPointerException when enabling horizontal class merging in Chrome
  • AbstractMethodError after virtual method merging
  • Failure to verify stack frames due to incorrect init-class out-type
  • Dex input uses a register that is not defined
  • StringBuilderOptimizerAnalysisTest is failing on release branches
  • Non-determinism in R8
  • Deployment:
  • Running the project of a device owner application fails with "Couldn't terminate the existing process for" error message
  • Design Tools:
  • Compose Previews fail to find resources from other modules when non-transitive R classes is enabled
  • Studio freezes on build.
  • Embedded Emulator:
  • Miscellaneous performance and stability improvements.
  • Import/Sync :
  • IDE error when launching Bumblebee: Output listing build file is not available for output type Apk in IdeBuildTasksAndOutputInformationImp
  • IntelliJ:
  • Env variables not sourced when launched from Mac OS X Monterey Dock
  • Jetpack (androidx) > Navigation
  • Upgrade SafeArgs to be built on latest stable AGP
  • Tools Windows:
  • Can't run Android Device Manager
  • Network Inspector in BumbleBee doesn't show the api response in readable format

New in Android Studio 2021.1.1 Patch 1 (Bumblebee) (Feb 9, 2022)

  • This minor update includes the following bug fixes:
  • Emulator:
  • Unable to connect to embedded emulator after upgrading to Bumblebee(Mac M1)
  • IntelliJ:
  • Env variables not sourced when launched from Mac OS X Monterey Dock

New in Android Studio 2021.1.1 (Bumblebee) (Jan 31, 2022)

  • Support for KMP test execution
  • You can run tests for Kotlin Multiplatform (KMP) projects from Android Studio Bumblebee.
  • In order to ensure your tests run successfully from Android Studio, make sure you have all the requirements below:
  • AGP 7.0.0-alpha08 or higher
  • Gradle 6.8.2 or higher
  • Kotlin plugin 1.4.30 or higher
  • New Device Manager:
  • New Device Manager window with "pair device" menu option highlighted:
  • The Device Manager is a stand-in replacement for the AVD Manager, both from Android Studio’s Welcome Screen or after you open a project. The Device Manager introduces some new capabilities that make this feature more easy to create and manage all of your local test devices, such as:
  • A more flexible UI that supports being docked in the IDE, floating, or in a separate window, like you can with other Android Studio tool windows. This gives you easier access to your devices without obstructing other windows of the IDE.
  • A Virtual tab that allows you to create, manage, and deploy virtual devices; see details of each device at a glance; or quickly inspect the device in the Device File Explorer with a single click.
  • A Physical tab that allows you to quickly pair to a new device using ADB Wifi and see details of each physical device at a glance. You can also quickly inspect each device’s file system using the Device File Explorer with a click of a button.
  • To open the new Device Manager, do one of the following:
  • From the Android Studio Welcome screen, select More Actions > Virtual Device Manager.
  • After opening a project, select View > Tool Windows > Device Manager from the main menu bar.
  • New in Layout Inspector:
  • Capture layout hierarchy snapshots:
  • Layout Inspector now allows you to save snapshots of your running app’s layout hierarchy, so that you can easily share them with others or refer to them later.
  • Snapshots capture the data you would typically see when using the Layout Inspector, including a detailed 3D rendering of your layout, the component tree of your View, Compose, or hybrid layout, and detailed attributes for each component of your UI. To save a snapshot, do the following:
  • Deploy your app to a device running API level 23 or higher
  • Open the Layout Inspector by selecting View > Tool Windows > Layout Inspector.
  • The Layout Inspector should connect to your app process automatically. If not, select the app process from the dropdown menu.
  • When you want to capture a snapshot, click Export snapshot Export icon from the Layout Inspector toolbar.
  • In the system dialog that appears, specify the name and location you want to save your snapshot. Make sure to save the file with a *.li extension.
  • You can then load a Layout Inspector snapshot by selecting File > Open from the main menu bar, and opening a *.li file.
  • Layout inspector snapshot for the Sunflower sample app:
  • Support for inspecting Compose semantics:
  • In Compose, Semantics describe your UI in an alternative manner that is understandable for Accessibility services and for the Testing framework. In Android Studio Bumblebee, you can now use the Layout Inspector to inspect semantic information in your Compose layouts.
  • Semantic information displayed via the Layout Inspector:
  • When selecting a Compose node, use the Attributes window to check whether it declares semantic information directly, merges semantics from its children, or both. To quickly identify which nodes include semantics, either declared or merged, use select the View options dropdown in the Component Tree window and select Highlight Semantics Layers. This highlights only the nodes in the tree that include semantics, and you can use your keyboard to quickly navigate between them.
  • Avoid Activity restarts:
  • Connecting the Layout Inspector to a running app on older versions of Android Studio would cause your app’s Activity to restart. This is required to set a device flag that enables inspection of your app’s layouts.
  • In Android Studio Bumblebee, you can avoid Activity restarts when connecting the Layout Inspector by setting this flag ahead of time using one of the following steps:
  • Enable a Run Configuration option:
  • Select Run > Edit Configurations from the main menu bar. The Run/Debug Configurations dialog appears.
  • Navigate to the run configuration you would like to use.
  • In the Layout Inspector options section, check the box next to Connect to Layout Inspector without restarting activity.
  • Use the run configuration the next time you want to inspect your app using the Layout Inspector.
  • Set the flag from the command line:
  • Open a terminal window on the machine that’s connected to your device
  • Set the device flag for your app using the following command:
  • adb shell settings put global debug_view_attributes_application_package
  • Deploy your app to the device and connect the Layout Inspector. Android Studio will check whether the flag is set and avoid restarting the Activity if possible.
  • Note: While typically not noticeable, setting this device flag when not using the Layout Inspector might affect the app’s performance.
  • Document Layout Inspector snapshots:
  • You can now capture snapshots of your app’s layout hierarchy to save, share, or inspect later. Snapshots capture the data you would typically see when using the Layout Inspector, including a detailed 3D rendering of your layout, the component tree of your View, Compose, or hybrid layout, and detailed attributes for each component of your UI. When inspecting the layout of a live running app, click Export snapshot Export icon from the Layout Inspector toolbar and save the snapshot with an *.li extension. You can then load a Layout Inspector snapshot by selecting File > Open from the main menu bar, and opening a *.li file. The snapshot appears in a tab in the Editor window, so that you can easily compare it with your running app.
  • New in App Inspection:
  • In Android Studio Bumblebee, there are new tools and functionalities in the App Inspection window. You can open the App Inspector by selecting View > Tool Windows > App Inspection from the main menu bar.
  • Network Inspector:
  • The Network Profiler in the Profilers tool window has now moved to the App Inspection tool window. If you’ve previously used the Network Profiler, all the same features and rich network traffic data is still available. Simply deploy your app to a device running API level 26 and higher and open the App Inspector > Network Inspector tab.
  • Inspect Jobs, Alarms, and Wakelocks:
  • The Background Task Inspector now allows you to inspect your app’s Jobs, Alarms, and Wakelocks, in addition to the existing support for inspecting Workers. Each type of asynchronous task now appears under the appropriate heading in the inspector tab, allowing you to easily monitor its status and progress. Similar to Workers, you can select a Job, Alarm, or Wakelock to inspect its detailed information in the Task Details panel.
  • Background Task Inspector showing Jobs, Alarms, and Wakelocks:
  • Note: This functionality has been migrated from the Energy profiler. So you should now use the Background task inspector to inspect all of your app’s asynchronous tasks.
  • Because Workers use Jobs and Wakelocks under the hood, those tasks that are scheduled by Workers appear as children of each Worker. Keep in mind, you can only see Workers in the Graph mode.
  • Wireless debugging:
  • Android Studio Bumblebee supports the wireless debugging feature on Android 11 and higher devices. Pair and deploy your app from Android Studio over Wi-Fi without using a USB cable or managing Android Debug Bridge (adb) connections using the command line. To use, navigate to the Pair devices using Wi-Fi option from the device selection menu, and then either choose a QR code or Pairing PIN Code. Then on your Android 11 and higher device, under Developer options, and find the Wireless Debugging screen and initialize and connect to an adb session wirelessly with Android Studio. Learn more about the wireless debugging setup at Connect to a device over Wi-Fi (Android 11+).
  • Pairing a device over Wi-Fi:
  • Compose interactive preview enabled by default:
  • Starting with Android Studio Bumblebee, the interactive preview feature is enabled by default. The interactive preview allows you to interact with a preview as it would work on a device. The interactive preview is isolated from other preview in a sandbox environment, where you can click elements and enter user input in the preview. It’s a quick way to test different states and gestures of your composable, like a checkbox being checked or empty.
  • Preview interactive mode runs directly inside Android Studio without an emulator running, which results in some limitations:
  • No network access.
  • No file access.
  • Some Context APIs may not be fully available.
  • User interacting with a preview inside Android Studio:
  • Animated Vector Drawable (AVD) preview:
  • The Animated Vector Drawable tool offers the ability to preview animated drawable resources. This tools helps you preview , , and resources in Android Studio and makes it easier to refine your custom animations.
  • User previewing and playing an animation inside Android Studio:
  • Non-transitive R classes on by default:
  • Non-transitive R classes are now on by default. You can use non-transitive R classes with the Android Gradle plugin to build faster builds for applications with multiple modules. Doing so helps prevent resource duplication by ensuring that each module’s R class only contains references to its own resources, without pulling references from its dependencies. This leads to more up-to-date builds and the corresponding benefits of compilation avoidance.
  • You can get help using this feature by going to Refactor > Migrate to Non-Transitive R Classes...
  • Apple Silicon support update:
  • For those using macOS on Apple Silicon (arm64) hardware, Android Studio Arctic Fox and the Android Emulator have supported this new architecture since last year. However, with this release, we have now updated the Android SDK platform tools v32.0.0 (which includes adb and fastboot) and build tools v32.1.0 (which includes aapt) to be universal binaries so that your Android developer tools no longer need the Rosetta binary translator to run. See the SDK platform tools release notes.
  • Updated device picker for design tools:
  • To simplify designing your app for the diverse number of Android devices, we’ve updated the device picker in various design tool windows, such as Layout Editor and Layout Validation, with reference devices that reflect popular sizes of each device form factor. From phones to tablets, and Wear devices to Android TVs, it’s now easier to preview, validate, or edit your layout on screen sizes that are most representative of popular real-world devices.
  • Device picker with devices and their size and density, grouped by class

New in Android Studio 2020.3.1 Patch 4 (Arctic Fox) (Dec 8, 2021)

  • Android Gradle Plugin:
  • Setting a Providerfor VariantOutput.verisoncan break with configuration cache
  • gradeResValues.xml not updated on signing for release
  • D8/R8:
  • java.lang.ClassCastException thrown in class' constructorin build minified by R8
  • Unreachable type adjustment during dex merging
  • java.lang.VerifyError: Verifier failed to verify becauseinstance field cannot be accessed from object of type Reference.java.lang.Object
  • Lint:
  • Disable MediaCapabilities lint check
  • Lint reports false positive [Instantiable] error when shrinkResources is enabled
  • Templates:
  • Import Module option grayed out

New in Android Studio 2020.3.1 Patch 3 (Arctic Fox) (Oct 12, 2021)

  • This minor update includes the following bug fixes:
  • Android Gradle Plugin:
  • lint standalone plugin doesn't handle gradleApi() dependencyproperly
  • JPS build triggered while Gradle build runs outside of Studio
  • Enabling both KSP and Kapt in a project with both containingprocessors that generate sources breaks BundleLibraryClassesInputs
  • C++ Editor:
  • UI freezes due to long JniReferencesSearch computationin background
  • Database Inspector:
  • Allow saving DBs
  • Unable to export data using App Inspection/Database Inspector withblank space in path
  • Dexer (D8):
  • Java lambdas cause unexpected behavior when subclassing subclasses
  • Shrinker (R8):
  • Cannot constrain type error during r8 minification
  • Issue while executing R8 3.0.69 (from AGP 7.0.2) and 3.0.72

New in Android Studio 2020.3.1 Patch 3 (Arctic Fox) (Oct 12, 2021)

  • This minor update includes the following bug fixes:
  • Android Gradle Plugin •lint standalone plugin doesn't handle gradleApi() dependencyproperly
  • JPS build triggered while Gradle build runs outside of Studio
  • Enabling both KSP and Kapt in a project with both containingprocessors that generate sources breaks BundleLibraryClassesInputs
  • C++ Editor •UI freezes due to long JniReferencesSearch computationin background
  • Database Inspector •Allow saving DBs
  • Unable to export data using App Inspection/Database Inspector withblank space in path
  • Dexer (D8) •Java lambdas cause unexpected behavior when subclassing subclasses
  • Shrinker (R8) •Cannot constrain type error during r8 minification
  • Issue while executing R8 3.0.69 (from AGP 7.0.2) and 3.0.72

New in Android Studio 2020.3.1 Patch 2 (Arctic Fox) (Sep 2, 2021)

  • This minor update includes the following bug fixes:
  • Android Gradle Plugin:
  • Gradle sync launched 10 TIMES on upgrade from AS Arctic Fox Canary 7 to Canary 8
  • Desugaring and reproducible builds
  • C++ Build:
  • Android Gradle Plugin 7.0.0 does not include jniLibs in APK if tasks.whenTaskAdded closure is used
  • Lint:
  • "Lint check for lint checks" not running
  • Shrinker (R8):
  • ClassNotFoundException when running build with R8 in AGP7

New in Android Studio 2020.3.1 Patch 1 (Arctic Fox) (Sep 2, 2021)

  • This update includes fixes for the following issues:
  • Android Gradle Plugin:
  • TypedefRemover uses ASM5 and is incompatible with JDK 11 sources that require ASM7
  • Some new DSL blocks can't be used from Groovy DSL in AGP 7.0.0
  • AGP 7.0.0 stable throws an ExternalApiUsageException on libraryVariants.all{applicationId}
  • C++ Debugger:
  • AS Arctic Fox Error while starting native debug session on Mac M1, "Found broken LLDB configuration"
  • Resource Manager:
  • (Windows) New > Vector Asset > picture.svg: invalid 'minus' character in generated xml
  • Shrinker (R8) NPE in BridgeHoisting:
  • After upgrade to 7.0.0, R8 crashes with "Unexpected usage left in method after inline" error

New in Android Studio 2020.3.1 (Arctic Fox) (Aug 18, 2021)

  • NEW VERSION NUMBERING:
  • Updated version numbering for Android Studio:
  • We have changed the version numbering system for Android Studio to more closely align with IntelliJ IDEA, the IDE that Android Studio is based on.
  • In the previous numbering system, this release would have been numbered as Android Studio 4.3 or version 4.3.0.1. With the new numbering system, it is now Android Studio - Arctic Fox | 2020.3.1, or version 2020.3.1.
  • Going forward, here’s how the Android Studio version number is determined:
  • The first two number groups represent the version of the IntellIj platform that a particular Android Studio release is based on. For this release, it's version 2020.3.
  • The third number group represents the Studio major version, starting at 1 and incrementing by one for every major release.
  • The fourth number group represents the Studio minor/patch version, starting at 1 and incrementing by one for every minor release.
  • We are also giving each major release a version name, incrementing from A to Z based on animal names. This release is named Arctic Fox.
  • Updated version numbering for Android Gradle plugin:
  • We have changed the version numbering for Android Gradle plugin (AGP) to more closely match the underlying Gradle build tool. Therefore, AGP 7.0 is the next release after AGP 4.2.
  • Android Gradle plugin 7.0.0:
  • The latest version of the Android Gradle plugin includes many updates. To learn more, read the full Android Gradle plugin release notes.
  • Unit tests now uses Gradle test runner:
  • To improve overall consistency of test executions, Android Studio now uses Gradle to run all unit tests by default. In many cases, this change will not affect your testing workflow in the IDE.
  • For example, when you click the Run command in the context menu (visible when you right-click on a test class) or its corresponding gutter action , Android Studio will use the Gradle run configuration by default to run unit tests.
  • Context menu for running tests:
  • However, Android Studio no longer recognizes existing Android JUnit run configurations, so you should migrate Android JUnit run configurations that you might save as project files to Gradle run configurations.
  • To create a Gradle test configuration, select the Gradle template when following the instructions in Create a new run/debug configuration. When you've created a new configuration, it will appear in the Edit Configurations dialog in the Gradle section:
  • Edit test configurations in Android Studio:
  • If you want to inspect Android JUnit configurations that are no longer recognized, you can do one of two things:
  • Open manually saved configurations in a text editor. The locations of these files are specified by the user, but the files typically appear in /.idea/runConfigurations/.
  • Look for temporary configurations in /.idea/workspace.xml and look under the node. For example:
  • New Background Task Inspector:
  • You can visualize, monitor, and debug your app's background workers using the new Background Task Inspector. To get started, deploy your app to a device running WorkManager library 2.5.0 or higher, and select View > Tool Windows > App Inspection from the menu bar.
  • Active workers in Background Task Inspector:
  • You can view more detailed information by clicking on a worker. For example, you can see the description of the worker, how it was executed, details of its worker chain, and the result of the execution.
  • Worker Details tab:
  • You can also view a visual representation of a worker chain by selecting a worker from the table and clicking Show Graph View from the toolbar. You can then select any worker in the chain to see its details, or stop it if it’s currently enqueued or running. To return to the table, click Show List View .
  • Background Task Inspector worker chain
  • To help you investigate issues from workers that fail execution, you can stop a currently running or enqueued worker by selecting it from the table and clicking Cancel Selected Worker from the toolbar. You can also filter workers in the table by tags you’ve assigned to them using the All tags dropdown menu.
  • Updates Database Inspector:
  • The Database Inspector is now included in the new App Inspection tool window, where you can also find the new Background Task Inspector. Open the App Inspection tool window from the tool window bar, or select View > Tool Windows > App Inspection from the menu bar.
  • Export data from the Database Inspector:
  • In Arctic Fox, you can easily export databases, tables, and query results from the Database Inspector to save, share, or recreate locally. When you open up an app project in Android Studio and inspect the app for that project in the Database Inspector, you can start exporting data in one of the following ways:
  • Select a database or table in the Databases panel and click Export to file near the top of the panel.
  • Right-click on a database or table in the Databases panel and select Export to file from the context menu.
  • When inspecting a table or query results in a tab, click Export to file above the table or query results.
  • After selecting an export action, you use the Export dialog to help you through the final steps, as shown below. Depending on whether you are trying to export a database, table, or query results, you have the option of exporting the data in one or more of the following formats: DB, SQL, or CSV.
  • Export Database dialog box:
  • Updated UI for recording in Memory Profiler:
  • We have consolidated the Memory Profiler user interface (UI) for different recording activities, such as capturing a heap dump and recording Java, Kotlin, and native memory allocations.
  • Memory allocations displayed in the Memory Profiler:
  • The Memory Profiler provides the following options:
  • Capture heap dump: View objects in your app that are using memory at a specific point in time.
  • Record native allocations: View how each C/C++ object was allocated over a period of time.
  • Record Java/Kotlin allocations: View how each Java/Kotlin object was allocated over a period of time.
  • Here's how to use these three options:
  • To capture a heap dump, select Capture heap dump, then select Record. After the profiler finishes capturing the heap dump, the Memory Profiler UI transitions to a separate screen displaying the heap dump.
  • Sample heap dump in Memory Profiler:
  • To record native allocations on devices running Android 10 and higher, select Record native allocations, then select Record. The recording continues until you click Stop , after which the Memory Profiler UI transitions into a separate screen displaying the native recording.
  • On Android 9 and lower, the Record native allocations option is not available.
  • To record Java and Kotlin allocations, select Record Java / Kotlin allocations, then select Record. If the device is running Android 8 or higher, the Memory Profiler UI transitions to a separate screen displaying the ongoing recording. You can interact with the mini timeline above the recording (for example, to change the selection range). To complete the recording, select Stop .
  • Visualization of Java allocations in Memory Profiler
  • On Android 7.1 and lower, the memory profiler uses legacy allocation recording, which displays the recording on the timeline until you click Stop.
  • Updates to Refresh Linked C++ Project:
  • We have moved files unrelated to configuration from the .cxx/ folder into the build/ folder. CMake C++ builds require a configuration phase that generates the Ninja project that's used to execute the compile and link steps. Projects generated by CMake are expensive to generate and are expected to survive across gradle clean. For this reason, they're stored in a folder called .cxx/, next to the build/ folder. Typically, Android Gradle plugin will notice configuration changes and automatically regenerate the Ninja project. However, not all cases can be detected. When this happens, the "Refresh Linked C++ Project" option can be used to manually regenerate the Ninja project.
  • New test matrix for multi-device testing:
  • Instrumentation tests can now run across multiple devices in parallel and can be investigated using a specialized instrumentation test results panel. Using this panel, you can determine if tests are failing due to API level or hardware properties.
  • Instrumentation test panel:
  • Testing your app across a wide variety of API levels and form factors is one of the best ways to ensure that all users have a great experience when using your app.
  • To take advantage of this feature:
  • Choose Select Multiple Devices in the target device dropdown menu from the top-center of the IDE).
  • Modify device set dialog
  • Select the target devices and click OK.
  • Modify device set dialog
  • Run your tests.
  • To view your test results in the Run panel, go to View > Tool Windows > Run.
  • The new test results panel allows you to filter your test results by status, device, and API level. Additionally, you can sort each column by clicking the header. By clicking on an individual test, you can view logs and device information individually for each device.
  • StateFlow support in data binding:
  • For Kotlin apps that use coroutines, you can now use StateFlow objects as a data binding source to automatically notify the UI about changes in the data. Your data bindings will be lifecycle aware and will only be triggered when the UI is visible on the screen.
  • To use a StateFlow object with your binding class, you need to specify a lifecycle owner to define the scope of the StateFlow object, and in your layout, assign the properties and methods of your ViewModel component to the corresponding views using binding expressions.
  • If you're in a Kotlin app that uses AndroidX, StateFlow support is automatically included in the functionality of data binding, including the coroutines dependencies.
  • Improved suggested import:
  • We’ve improved the number of libraries that are supported by the suggested import feature and update the index more frequently. Suggested import helps you quickly and easily import certain Google Maven artifacts into both your class and Gradle project. When Android Studio detects unresolved symbols from certain Google libraries, the IDE suggests importing the library into both the class and the project.
  • Support for configuration cache in Build Analyzer:
  • Build Analyzer now identifies when a project doesn't have configuration cache enabled, and offers it as an optimization. Build Analyzer runs a compatibility assessment to inform you if there are any issues with configuration cache in your project before it gets enabled.
  • Configuration cache information in Build Analyzer:
  • Improved Upgrade Assistant for AGP
  • The Upgrade Assistant for Android Gradle plugin now has a persistent tool window with the list of steps that will be completed. Additional information is also presented on the right side of the tool window. If needed, you can also choose a different version of AGP to upgrade to. Clicking on the Refresh button updates the corresponding update steps.
  • New persistent tool window in the upgrade assistant:
  • Refactoring for non-transitive R classes:
  • You can use non-transitive R classes with the Android Gradle plugin to build faster builds for applications with multiple modules. Doing so helps prevent resource duplication by ensuring that each module’s R class only contains references to its own resources, without pulling references from its dependencies. This leads to more up-to-date builds and the corresponding benefits of compilation avoidance.
  • You can access this feature by going to Refactor > Migrate to Non-transitive R Classes.
  • Note: Previously, the option to use non-transitive R classes with AGP only applied to libraries. Now, in AGP 4.2 and higher, this option applies to all modules.
  • Support for Jetpack Compose tooling:
  • We now offer additional support for previewing and testing apps that use Jetpack Compose. For the best experience developing with Jetpack Compose, you should use the latest version of Android Studio Arctic Fox so that you can benefit from smart editor features, such as New Project templates and the ability to immediately preview your Compose UI.
  • Compose preview:
  • The following parameters for @Preview methods are now available:
  • showBackground: Switch on and off a background for your preview.
  • backgroundColor: Set a color that is only used in the preview surface.
  • uiMode: This new parameter can take any of the Configuration.UI_* constants and allows you to change the behavior of the preview to, for example, set it to Night Mode to see how the theme reacts.
  • Compose preview UI:
  • Interactive preview:
  • You can use this feature to interact with your UI components, click them, and see how the state changes. It's a quick way to get feedback on how your UI reacts and to preview the animations. To enable it, click the Interactive icon , and the preview will switch modes.
  • To stop, click on Stop Interactive Preview in the top toolbar.
  • Interactive preview UI:
  • Deploy to device:
  • You can use this feature to deploy a snippet of your UI to a device. This helps test small parts of your code in the device without having to start the full application.
  • Click the Deploy to Device icon next to the @Preview annotation or at the top of the preview, and Android Studio will deploy that @Preview to your connected device or emulator.
  • Live Edit of literals:
  • We have added Live Edit of literals to help developers using Compose quickly edit literals (strings, numbers, booleans) in their code and see the results immediately without needing to wait for compilation. The goal of this feature is to help increase your productivity by having code changes appear near instantaneously in the previews, emulator, or physical device.
  • Editing number and stringd update immediately in the preview and on device
  • Compose support in the Layout Inspector
  • The Layout Inspector allows you to see rich detail about your app's layout running on your connected device. You can interact with your app and see live updates in the tool to quickly debug issues that might arise.
  • You can inspect layouts written with the new Android declarative UI framework, Jetpack Compose. Whether your app uses layouts fully written in Compose or layouts that use a hybrid of Compose and Views, the Layout Inspector helps you understand how your layouts are rendered on your running device.
  • Get started:
  • To get started, deploy your app to a connected device and then open the Layout Inspector window by selecting View > Tool Windows > Layout Inspector. If the Layout Inspector doesn't automatically connect to your app process, select the desired app process from the process pulldown. You should soon see your app's layout rendered in the tool window. To get started inspecting your Compose layout, select the layout component visible in the rendering or select it from the Component Tree.
  • Layout inspector UI:
  • The Attributes window shows you detailed information about the Compose function currently selected. In this window, you can inspect the function's parameters and their values, including modifiers and lambda expressions. For lambda expressions, the inspector provides a shortcut to help you navigate to the expression in your source code.
  • The Layout Inspector shows all Compose functions in the call stack that emit components to your app's layout. In many cases, this includes Compose functions that are called internally by the Compose Library. If you want to see only the Compose functions in the Component Tree that your app calls directly, click the filter action, which might help reduce the number of nodes shown in the tree to the ones you are likely to want to inspect.
  • Improved deploy dropdown:
  • The device dropdown now distinguishes between different kinds of errors within your chosen device configuration. Iconography and stylistic changes now differentiate between errors (device selections that result in a broken configuration) and warnings (device selections that may result in unexpected behavior but are still runnable).
  • In addition, Android Studio will now warn you if you attempt to launch your project to a device that has an error or a warning associated with it.
  • New Wear OS pairing assistant:
  • The new Wear OS pairing assistant guides developers step-by-step through pairing Wear OS emulators with physical or virtual phones directly in Android Studio. The assistant can help you get the right Wear OS Companion app installed on your phone and set up a connection between the two devices. You can get started by going to the device dropdown > Wear OS Emulator Pairing Assistant.
  • Demo of the Wear OS pairing assistant:
  • Responsive layout template:
  • Android Studio Arctic Fox now includes a new layout template that adapts to various display dimensions and app resizing, such as phones, foldables, tablets, and split screen modes. When creating a new project or module, select the Responsive Activity template to create a layout with components that dynamically resize.
  • Responsive layout template in small screen Responsive layout template in mid screen Responsive layout template in large screen:
  • To get started, navigate to File > New, select either New Project or New Module, and select the Responsive Activity template.
  • Responsive layout template in new project wizard:
  • Accessibility Scanner for Layout Editor:
  • We have integrated Android Accessibility Test Framework in Android Studio to help you find accessibility issues in your layouts. The tool reports accessibility related issues and offers suggested fixes for some common problems (i.e. missing content descriptions, or low contrast). To launch the panel, click on the error report button in the Layout Editor.
  • Demo of the Accessibility Scanner:
  • Known issues for Arctic Fox:
  • This section describes current known issues in Android Studio Arctic Fox.
  • Patches not working on Windows for v3.6-v4.1
  • Patches on Windows platform for v3.6-v4.1 to Android Studio Arctic Fox stable may not work

New in Android Studio 3.3 (Jan 14, 2019)

  • Develop:
  • Navigation Editor
  • IntelliJ 2018.2.2 Platform Update
  • Kotlin 1.3.11 Update
  • Clang-Tidy Support for C++
  • New Project Wizard update
  • Delete Unused IDE Directories
  • IDE User Feedback
  • Build:
  • Improved incremental Java compilation when using annotation processors
  • Lazy task configuration:
  • Single-variant project sync
  • Android App Bundles now supports Instant Apps
  • Test:
  • Multiple Emulator AVD instance Launch
  • Android 9 Pie - Emulator System Images
  • Emulator Snapshot Save Speed Improvement
  • Optimize:
  • Profiler Performance Improvements
  • Memory Profiler: Allocation Tracking Options
  • Network Profiler: Formatted Text
  • CPU Profiler: Frame Rendering Data

New in Android Studio 3.1 (Mar 28, 2018)

  • New to Android Studio 3.1 is a C++ performance profiler to help troubleshoot performance bottlenecks in your app code. For those of you with a Room or SQLite database in their your app, we added better code editor support to aid in your SQL table and query creation statements. We also added better lint support for your Kotlin code, and accelerated your testing with an updated Android Emulator with Quick Boot. If any of these features sound exciting or you are looking for the next stable version of Android Studio, you should download Android Studio 3.1 today!

New in Android Studio 1.1 Beta 3 (Feb 4, 2015)

  • We've fixed a couple of additional important bugs found in 1.1 Beta 2 (126013 and 130082), so we've released an updated beta candidate build: 1.1 Beta 3. Please update, and thank you very much for your help in tracking down these bugs!

New in Android Studio 0.4.0 (Dec 30, 2013)

  • Support for the new Android Gradle plugin, 0.7.0, which has improvements for render script, lint, BuildConfig, ProGuard, and additional features around source folders and flavors, along with many bug fixes. For more information, see the Build System documentation.
  • Note that Studio 0.4.0 requires the the new version of the Gradle plugin, so you have to migrate your projects to 0.7.0.
  • Studio now supports Gradle Offline mode. This is useful if you find yourself without a network connection, and your dependencies are using the plus-syntax to pick up the latest available version. In that case, Gradle will once per day (by default) connect to the artifact repository to see if there is a more recent version. If that network connection fails, the build fails.
  • Initial Eclipse (ADT) project import. You can now directly import Eclipse projects (rather than having to export them to Gradle from Eclipse as in the past). This importer also makes structural changes to the import...
  • It migrates the project structure from the old ADT directory structure to the new Gradle-build system one
  • It removes inlined library projects that it recognizes (ActionBarSherlock, v7 GridLayout) and replaces the source code with a simple Gradle dependency to the corresponding library
  • Similarly it removes .jar files that it recognizes and replaces them with Gradle dependencies
  • It generates an import summary where it lists potential import issues (for example, if you were using library projects without manifest merging, there is potential manifest registration duplication now)
  • (The import does not yet fully support path variables and linked resources; this will be fixed in 0.4.1)
  • The Asset Studio wizard is now available (until this point it was only available as part of the New Project wizard for generating launcher icons).
  • You can also create nine-patch images now by right clicking on .png images and invoking "Create Nine Patch...".
  • A large number of bug fixes, particularly around SDK handling and project import/upgrade, but also to the rendering sandbox, custom view rendering, template handling, etc.