Project Marble: Android Studio 3.3 Stable Release

Akshay Nandwana
Jan 15, 2019 · 7 min read

Android Studio latest version 3.3 released in the stable version which developers are calling project marble.

Image for post
Image for post

In this release, focus areas are reducing the number of crashes, hangs, memory leaks, and user-impacting bugs. As the developers are saying “This release of Android Studio is a solid milestone for the product”. Download Android Studio 3.3.

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

Let’s discuss them one by one:

Develop

Implement navigation with the Navigation Architecture Component

Image for post
Image for post

IntelliJ 2018.2.2 Platform Update — The core Android Studio IDE updated with improvements from IntelliJ IDEA through the 2018.2.2 release. New preview editor, updated icons, MacBook Touch Bar support, plus enhanced version control integrations. Learn more.

Kotlin 1.3.11 Update — This release of Android Studio bundles Kotlin 1.3.11, with support for Kotlin coroutines and contracts plus IDE support for the recommend Kotlin coding style. Learn more.

Clang-Tidy Support for C++ — 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 Options section of the right-most panel. To allow 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. Learn more.

Image for post
Image for post

New Project Wizard update — The Create New Project wizard has a new look and contains updates that help streamline the creation of new Android Studio projects.

Image for post
Image for post

Delete Unused IDE Directories — When you run a major version of Android Studio for the first time, it looks for directories containing caches, settings, indices, and logs for versions of Android Studio for which a corresponding installation can’t found. Past versions of Android Studio left these old directories that were hard to find and remove on your hard drive.

The Delete Unused Android Studio Directories dialog then displays locations, sizes, and last-modified times of these unused directories and provides an option to delete them.

Image for post
Image for post

IDE User 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:

Image for post
Image for post

Just 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 understand your sentiment better. 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 to Send usage statistics to Google.

Build

Lazy task configuration — The plugin uses Gradle’s new task creation API to avoid initializing and configuring tasks that are not required to complete the current build (or tasks not on the execution task graph). For example, if you have multiple build variants, such as “release” and “debug” build variants, and you’re building the “debug” version of your app, the plugin avoids initializing and configuring tasks for the “release” version of your app. Learn more.

Single-variant project sync — Along with build speed, project sync speed can be a development bottleneck to for those who have large app projects with multiple build variants. In this version of the IDE, you can you can limit syncing to only the active build variant. In order for this optimization to work, your project needs to use Android Gradle plugin 3.3.0 or higher. You can enable this option under the Experimental preferences in Android Studio 3.3. 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.

Image for post
Image for post

Android App Bundles now supports Instant Apps — You can now build and deploy Google Play Instant experiences from a single Android Studio project, and include them in a single Android App Bundle. Learn more.

Test

$./emulator -avd <avdname> -read-only &
$./emulator -avd <avdname> -read-only &

Android 9 Pie — Emulator System Images — Alongside Android Studio 3.3, you can also download Android 9 system images for your emulator for your app testing. The Google Play emulator system images not only passe the official Android Compatibility Test Suite (CTS), they also include support for Peer-to-Peer Wi-Fi direct connections between two emulators. To start using this feature, launch the emulator (v28.0.22 or higher) via the command line and ensure the two emulators share the same Wi-Fi server and client port command line arguments.

$./emulator @<server-avd-name> -wifi-server-port 9999
$./emulator @<client-avd-name> -wifi-client-port 9999

Emulator Snapshot Save Speed — The time taken to close the emulator and Quickboot save a snapshot was slow. To solve this, they optimized the way snapshots are saved and managed, using a mapped file to save guest RAM. From aggregate metrics, they found that this optimization led to driving down the average quickboot save time from the last stable version to now from 27 seconds down to 3 seconds — a 8x improvement. Learn more here.

Optimize

Memory Profiler: Allocation Tracking Options — In previous releases, our app performs significantly worse while profiling with the default settings. To address this, they have changed the default Memory Profiler capture mode on Android 8.0 Oreo (API level 26) and higher devices to sample for allocations periodically. You can adjust this setting in the Allocation Tracking dropdown menu. By default, they also now temporarily turn off allocation tracking during CPU recordings to minimize the impact on recording results. Learn more.

Image for post
Image for post

Network Profiler: Formatted Text — The Network profiler in Android Studio 3.3 now formats common text types found in network payloads by default, including HTML, XML and JSON. You can toggle between formatted and raw text by navigating to either the Response or Request tab, and click on the View Parsed / View Source link. Learn more.

Image for post
Image for post

CPU Profiler: Frame Rendering Data — The CPU Profiler now shows you the render time for each frame on the main UI thread and Render Thread when you record with Trace System Calls. If you are trying to investigate and understand the bottlenecks or the source of UI jank in your app, this data can come in handy to see where you can improve your app performance. Learn more.

Image for post
Image for post

Thanks for reading! If you find this reading useful, please click the 👏 button and share to help others find it! Feel free to leave a comment 💬 below.
Have feedback? Let’s be friends
on Twitter.

MindOrks

Our community publishes stories worth reading on Android…

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store