Android Studio 3.3 — What’s New

Karthik Ponnam
7 min readJan 15, 2019

Hello Android Developer,

Here comes Android Studio 3.3 with a lot of new awaiting features.

Here is the list of them

  • Navigation Editor
  • IntelliJ IDEA 2018.2.2
  • Android Gradle plugin updates
  • Delete unused Android Studio directories
  • Lint improvements
  • Create New Project wizard
  • Profiler updates
  • Automatic downloading of SDK components
  • Support for Clang-Tidy
  • Removal of options for C++ customization
  • CMake version 3.10.2
  • New “+” syntax to specify minimum CMake versions
  • Android App Bundles now support Instant Apps
  • Single-variant project sync
  • Provide quick feedback

Navigation Editor

Navigation Editor is the most awaited features for stable release. this feature is already available with the canary release and most us are waiting for it in the stable release and here it is.

source: developer.android.com

The Navigation Editor lets you quickly visualize and build navigation into your app by using the Navigation Architecture Component.

For more info on how to implement visit Implement navigation with the Navigation Architecture Component.

IntelliJ IDEA 2018.2.2

The core Android Studio IDE has been updated with improvements from IntelliJ IDEA through the 2018.2.2 release.

Android Gradle plugin updates

Android gradle plugin 3.3.0 is now available. For more details visit For release notes.

Delete unused Android Studio directories

In Android studio 3.3 now you can Delete Unused Android Studio Directories

The directories Android Studio considers for deletion are listed below:

  • Linux: ~/.AndroidStudio[Preview]_X.Y_
  • Mac: ~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]_X.Y_
  • Windows: %USER%\.AndroidStudio[Preview]_X.Y_
source: developer.android.com

Lint improvements

Now your lint, when invoked from Gradle, is four times faster

Create New Project wizard

Now in creat new project section, we have the more detailed selection, We can select between Phone, Wear OS, TV, Android Things.

You can also select whether to use androidx Artifacts or not

source: developer.android.com
source: developer.android.com

For more information, see Create a project.

Profiler updates

  • Profiler memory allocation tracking options

Using the Allocation Tracking dropdown, you can choose from the following modes:

  • Full: captures all object memory allocations. Note that if you have an app that allocates a lot of objects, you might see significant performance issues while profiling.
  • Sampled: captures a periodic sample of object memory allocations. This is the default behavior and has less impact on app performance while profiling. You might encounter some performance issues with apps that allocate a lot of objects within a short time period.
  • Off: turns memory allocation off. If not already selected, this mode is enabled automatically while taking a CPU recording and then returned to the previous setting when the recording is finished. You can change this behavior in the CPU recording configuration dialog.
  • The tracking affects both Java objects and JNI references.
  • Inspect frame rendering data

To learn more about investigating and fixing framerate issues, read Slow rendering.

  • Fragments in the event timeline
  • View formatted text for connection payloads in the Network profiler

For more information, see Inspect network traffic with Network Profiler.

Automatic downloading of SDK components

When your project needs an SDK component from the SDK platforms, NDK, or CMake, Gradle now attempts to automatically download the required packages as long as you’ve previously accepted any related license agreements using the SDK Manager.

For more information, see Auto-download missing packages with Gradle.

Support for Clang-Tidy

Android Studio now includes support for static code analysis using Clang-Tidy for projects that include native code. To enable support for Clang-Tidy, update your NDK to r18 or higher.

You can then enable or re-enable the inspections by opening the Settings or Preferences dialog and navigating to Editor > Inspections > C/C++ > General > Clang-Tidy. When selecting this inspection in the Settings or Preferences dialog, you can also see the list of Clang-Tidy checks that are enabled and disabled under the Option section of the right-most panel. To enable additional checks, add them to the list and click Apply.

To configure Clang-Tidy with additional options, click Configure Clang-Tidy Checks Options and add them in the dialog that opens.

Removal of options for C++ customization

The following options have been removed from the Customize C++ Support dialog:

  • Exceptions Support (-fexceptions)
  • Runtime Type Information Support (-ftti)

The respective behaviors are enabled for all projects created through Android Studio.

CMake version 3.10.2

CMake version 3.10.2 is now included with SDK Manager. Note that Gradle still uses version 3.6.0 by default.

To specify a CMake version for Gradle to use, add the following to your module’s build.gradle file:

android {
...
externalNativeBuild {
cmake {
...
version "3.10.2"
}
}
}

For more information on configuring CMake in build.gradle, see Manually configure Gradle.

New “+” syntax to specify minimum CMake versions

When specifying a version of CMake in your main module’s build.gradle file, you can now append a “+” to match the behavior of CMake’s cmake_minimum_required() command.

Android App Bundles now support Instant Apps

Android Studio now lets you build Android App Bundles with full support for Google Play Instant. In other words, you can now build and deploy both installed app and instant experiences from a single Android Studio project and include them in a single Android App Bundle.

If you’re creating a new Android Studio project using the Create New Project dialog, make sure you check the box next toConfigure your project > This project will support instant apps. Android Studio then creates a new app project as it normally would, but includes the following properties in your manifest to add Instant app support to your app’s base module:

<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module dist:instant="true" />
...
</manifest>

You can then create an instant-enabled dynamic feature module by selecting File > New > New Module from the menu bar and then selecting Instant Dynamic Feature Module from the Create New Module dialog. Keep in mind, creating this module also instant-enables your app’s base module.

To deploy your app to a local device as an instant experience, edit your run configuration and check the box next to General > Deploy as instant app.

Single-variant project sync

Syncing your project with your build configuration is an important step in letting Android Studio understand how your project is structured. However, this process can be time-consuming for large projects. If your project uses multiple build variants, you can now optimize project syncs by limiting them to only the variant you have currently selected.

You need to use Android Studio 3.3 or higher with Android Gradle plugin 3.3.0 or higher to enable this optimization. When you meet these requirements, the IDE prompts you to enable this optimization when you sync your project. The optimization is also enabled by default on new projects.

To enable this optimization manually, click File > Settings > Experimental > Gradle (Android Studio > Preferences > Experimental > Gradle on a Mac) and select the Only sync the active variant checkbox.

Note: This optimization currently supports projects that include only the Java programming language. If, for example, the IDE detects Kotlin or C++ code in your project, it does not automatically enable this optimization, and you should not enable it manually.

For more information, see Enable single-variant project sync.

Provide quick feedback

If you’ve opted into sharing usage statistics to help improve Android Studio, you’ll see these two new icons in the status bar at the bottom of the IDE window

Simply click the icon that best represents your current experience with the IDE. When you do so, the IDE sends usage statistics that allow the Android Studio team to better understand your sentiment. In some cases, such as when you indicate a negative experience with the IDE, you’ll have an opportunity to provide additional feedback.

If you haven’t already done so, you can enable sharing usage statistics by opening the Settings dialog (Preferences on a Mac), navigating to Appearance & Behavior > System Settings > Data Sharing, and checking Send usage statistics to Google.

Thanks for your time!

If you find this interesting, please click the 👏 button and share to help others find it!

Let’s be friends on Twitter.

--

--

Karthik Ponnam

❤️ to Code. Full Stack Developer, Flutter, Android Developer, Web Development, Known Languages Java, Python so on.,