The following are new features in Android Studio Chipmunk.

## Support for creating your app with Jetpack Compose

### Animation Preview supports animatedVisibility

Android Studio Chipmunk supports the
[`animatedVisibility`](https://developer.android.com/jetpack/compose/animation#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](https://developer.android.com/jetpack/compose/tooling#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](https://developer.android.com/jetpack/compose/tooling#preview-deploy).

## 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,

1. From the development emulator or device, start the app.
2. In Android Studio, select **View \> Tool Windows \> Profiler** or click **Profile**
   ![](https://developer.android.com/static/studio/images/buttons/toolbar-android-profiler_dark.png) 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](https://developer.android.com/studio/debug/dev-options#enable).
3. Click anywhere in the **CPU** timeline to open the CPU Profiler.

4. 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](https://developer.android.com/static/studio/images/profile/jank_detection-janky_frames.png)

5. 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](https://developer.android.com/static/studio/images/profile/jank_detection-janky_frames_detailed.png)

6. 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](https://developer.android.com/static/studio/images/profile/jank_detection-allframes_lifecycle_checkboxed.png)

For more information, see [UI jank detection](https://developer.android.com/studio/profile/jank-detection).

## Patch releases

The following are patch releases in Android Studio Chipmunk.

### Android Studio Chipmunk \| 2021.2.1 Patch 2 (August 2022)

This minor update includes the following update and bug fixes:

**Android platform support**

With Android Studio Chipmunk Patch 2 and Android Gradle 7.2.2, you can
compile against Android 13 APIs by setting `compileSdk=33`. The
highest supported *minimum* Sdk version is 32. `minSdk = 33`
is not supported until Android Gradle plugin 7.3.0-beta05.

| Fixed Issues ||
|---|---|
| **C++ Debugger** | |---| | [Issue #37119428](https://issuetracker.google.com/issues/37119428) Release version of a native library from a dependent project gets packaged even for a debug build variant | |
| **Design Tools** | |---| | [Issue #232045613](https://issuetracker.google.com/issues/232045613) Ctrl + D or "show diff" button doesn't show git diff | |
| **Dexer (D8)** | |---| | [Issue #235325369](https://issuetracker.google.com/issues/235325369) Document the compiler version required for each desugared library version | |
| **Gradle** | |---| | [Issue #188871862](https://issuetracker.google.com/issues/188871862) Lint UnusedResources False Positive with Import Alias | |
| **Import/Sync** | |---| | [Issue #234353685](https://issuetracker.google.com/issues/234353685) Build problem with multiple product flavours in new version | |
| **Shrinker (R8)** | |---| | [Issue #236875523](https://issuetracker.google.com/issues/236875523) ArrayIndexOutOfBoundsException in IntSwitch | | [Issue #236618700](https://issuetracker.google.com/issues/236618700) R8 3.1.7-dev and above improperly optimizes Enums, leading to NoSuchFieldError | | [Issue #223424356](https://issuetracker.google.com/issues/223424356) R8 causing VerifyError on Scala libraries | | [Issue #232379893](https://issuetracker.google.com/issues/232379893) Gradle 7.2.0 causing APK build error com.android.tools.r8.CompilationFailedException | | [Issue #236615030](https://issuetracker.google.com/issues/236615030) NPE in shrinker, R8 version 3.2.60 | | [Issue #236294139](https://issuetracker.google.com/issues/236294139) \[R8 3.3.57\] NoClassDefFound due to interface replaced with abstract class with higher SDK requirements | | [Issue #231030461](https://issuetracker.google.com/issues/231030461) NullPointerException in FieldAssignmentTracker using 3.3.35 | |

### Android Studio Chipmunk \| 2021.2.1 Patch 1 (May 2022)

This minor update includes the following bug fixes:

| Fixed Issues ||
|---|---|
| **Dexer (D8)** | |---| | [Issue #218298666](https://issuetracker.google.com/issues/218298666) Art / Dalvik VMs prior to version 8 does not support the fix for JDK-8272564 | |
| **IntelliJ** | |---| | [Issue #225751091](https://issuetracker.google.com/issues/225751091) File watcher failed to start on Ubuntu 20.04 | | [Issue #206465485](https://issuetracker.google.com/issues/206465485) MBP 15" 2018 Touch Bar menu is missed. | |
| **Run** | |---| | [Issue #232134751](https://issuetracker.google.com/issues/232134751) Devices option is not visible and unable to run the app even though app module is available. | |
| **Shrinker (R8)** | |---| | [Issue #228791247](https://issuetracker.google.com/issues/228791247) Why does R8 doesn't backport default interface methods but D8 does? | | [Issue #218400336](https://issuetracker.google.com/issues/218400336) CIRCULAR REFERENCE: com.android.tools.r8.internal.R10: Unexpected type in conversion to primitive: OBJECT | |