This is a minor update to Android Studio 2.2. It includes a bug fixes focused around gradle, the core IDE, and lint.

Highlighted Build Changes

ProGuard version rollback. Due to a correctness issue discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We have worked with the ProGuard team on getting a fix quickly, and we expect to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.

We just published ConstraintLayout beta 4. As always, it's available in the SDK Manager (under the "Support Repository" section).

Note: if you are using Android Studio 2.2, you might have to do File->Invalidate Caches & restart studio after installing this version (the editor behavior may not be correct, with widgets temporarily snapping to the top left corner or not shown).

This release fixes a few bugs related to guideline positioning and use of include tag, plus some additional performance improvement. We encourage you to update from previous versions.

We have just released Android Studio 2.3 to the Canary channel. This is an early preview of work going into the next major release of Android Studio. This build contains a large number of bug fixes and a handful of new features.

Below are highlights of some of the major changes in this release:

IDE: We've upgraded the base IDE from IntelliJ 2016.1 to 2016.2, which adds a number of new features -- ligatures, breadcrumbs, editor background images, revamped UI for inspections, notifications and the debugger, and more.

Layout Editor: The layout editor now supports chains and ratios for ConstraintLayout.

Lint

Lint now has "baseline support" which lets you check in a current set of warnings -- and from now on, only new issues are reported. This lets a project with a lot of technical debt set a baseline and then break the build only when new issues are introduced, without having to go and fix all existing issues first. In order not to forget about the technical debt though it creates an info-level issue which tells you that you've filtered out bugs:

There are many new lint checks. Some examples include enforcing the new @RestrictTo and @VisibleForTesting(otherwise=intended) annotations in support library 25, flagging obsolete SDK_INT checks, making sure animated properties are valid and not renamed in release builds,flagging potential wifi manager memory leaks, and many more.

Learn more about the new lint checks, and the baseline support, in this tech doc.

WebP: Android Studio 2.3 now provides PNG to WebP Conversion. With the new conversion wizard, you can quickly generate WebP images and if you're using the lossy encoding, inspect the diffs of your images. Using WebP images in your app saves APK space and is more performant. Learn more about the new WebP Support in this tech doc.

Data Binding: In addition to a lot of bug fixes in the editing support for data binding, there is a new feature to help debug apps using data binding. Normally the IDE will automatically compute the data binding classes "on the fly" such that they are always correct and up to date with your edits in the XML files. However, when you are debugging your app, you may want to see and step into exactly the code that was compiled. You can now enable this under preferences:

Incremental SDK Updates: This version of Studio includes support for incremental patching of SDK components, such as system images. We can now provide patches for system images (which are often very large) and updating those with Studio 2.3 will allow a much smaller and faster download.

Build System: Support for the new Gradle plugin 2.3.0. There are some notable changes:

The user cache for dex files is now enabled by default, which should speed up builds

Configuration times for very large projects should be significantly faster

For Instant Run, the "startup delay" (where large apps stall for a few seconds at startup) should be gone

Instant Run is using "APK Splits" when targeting Android N which is a bit more reliable than the classloader tricks it uses to target older platforms

Bug Fixes. A notable & highly requested enhancement (b.android.com/220197) we also added is a search box to the Vector Asset Wizard You can now quickly filter through the vector icons based on the name of the asset.

We just published ConstraintLayout beta 3. As always, it's available in the SDK Manager (under the "Support Repository" section).

This release fixes several bugs related to layout resolution; WRAP_CONTENT support in particular has been improved when using chains. Min/max dimensions on the ConstraintLayout itself are now correctly supported (android:minWidth, android:maxWidth, android:minHeight, android:maxHeight). We encourage everyone to update to this new version!

Note: if you are using Android Studio 2.2 and it is your first installation of ConstraintLayout (or you had a version older than alpha 8), you might have to restart studio (or invalidate caches) after installing this version (the editor behavior may not be correct, with widgets temporarily snapping to the top left corner).

We just published ConstraintLayout beta 2. As always, it's available in the SDK Manager (under the "Support Repository" section).

This build fixes a few issues with API level support under level 16. It also contains several large performance improvements (~2x speedup in many common situations).

Note: if you are using Android Studio 2.2 and it is your first installation of ConstraintLayout (or you had a version older than alpha 8), you might have to restart studio (or invalidate caches) after installing this version (the editor behavior may not be correct, with widgets temporarily snapping to the top left corner).

We just published ConstraintLayout beta 1 -- our first release candidate for the upcoming 1.0 stable release.

As always, it's available in the SDK Manager (under the "Support Repository" section).

Note: As for alpha 8 and 9, if you are using Android Studio 2.2 and it is your first installation of ConstraintLayout, you might have to restart studio (or invalidate caches) after installing beta 1 (the editor behavior may not be correct, with widgets temporarily snapping to the top left corner).

We fixed several issues in this build:

chains priority was sometimes inadequate, resulting in counterintuitive results in a few cases

wrap_content wasn't working in a layout only containing chains

wrap_content with match_constraint had corner cases resulting in incorrect final bounds

Few small features were added as we are heading toward a stable release in the next few weeks:

support android:minWidth and android:minHeight on ConstraintLayout itself (applicable when wrap_content is used)

added a copy constructor on ConstraintLayout.LayoutParams

an extra chain style was added, with an API change (layout_constraintHorizontal_chainStyle and layout_constraintVertical_chainStyle), deprecating layout_constraintHorizontal_chainPacked and layout_constraintVertical_chainPacked)

Important: The layout editor in AndroidStudio 2.2 does not support the new Chains feature, so will not have affordances to help you interact with chains. The preview visualization ("design mode") in the layout editorwillshow you the correct positioning if you use chains, but the blueprint mode willnot, showing incorrect bounds for the widgets. We are planning to update the editor in our next Android Studio preview release, to support Chains adequately.

Please give us feedback on this release, as this is the first release candidate :)

This build contains a handful of bug fixes on top of Android Studio 2.2.1

Fixed Issues

Instant Run bug fixes

Gradle Plug-in Bug fixes

32-bit JDK for use on 32-bit Windows

New Features

Android API 25 Support - Basic support for API 25 inside Android Studio to support the Android 7.1 developer preview. We know there are still a few more updates inside Android Studio before we set API 25 as the default.

Expanded reporting when reporting Instant Run issues - When reporting an instant run issue we now collect

Thanks to everyone for their bug and crash reports, and keep them coming!

Improved Reporting for Instant Run Issues: Some of you have been reporting issues with Instant Run, but it has been hard for us reproduce them. We have added extra logging to help us investigate Instant Run issues. This extra logging is OFF by default, and to enable it, go to Settings or Preferences, go to Build, Execution, Deployment > Instant Run, and check Log extra info is check. Next time you encounter an Instant Run issues, you can report it by clicking Help > Report Instant Run Issue...

Thanks to everyone for their bug and crash reports, and keep them coming!

We are very excited to announce the release of ConstraintLayout alpha 9 -- this contains the final feature set for 1.0, and is the final step before releasing the first beta candidate release.

It's available in the SDK Manager (under the "Support Repository" section).

Note: As for alpha 8, if you are using Android Studio 2.2 and it is your first installation of ConstraintLayout, you might have to restart studio (or invalidate caches) after installing alpha 9 (the editor behavior may not be correct, with widgets temporarily snapping to the top left corner).

We fixed a few issues in this build:

we had a regression in the way we handled text wrap

correct handling of RTL for horizontal bias

correct handling of GONE for constraint ratios

We added some new features and some performance improvements

loading constraints directly from XML files with ConstraintSet

support for Chains in the layout and in ConstraintSet

A few words about Chains

Chains are a very powerful new feature that allow you to set up certain group behavior that would otherwise be difficult or impossible to do in ConstraintLayout. They work in a single axis (you can have a vertical chain without having the elements of the chain be affected horizontally), and maintain a flat hierarchy.

Widgets are considered part of a chain if they are connected to other widgets with bi-directional constraints, e.g. in A<-B<->C->D, B and C are part of a chain

Chains allow you to control how the elements of a chain will be positioned over the available space; e.g. |AB---|, |---AB|, |--AB--|, |-A-B-|, or stretched |AAAB|

A chain can be either packed (layout_constraintHorizontal_chainPacked and layout_constraintVertical_chainPacked attributes of the first widget in the chain), in that case the chain position will be controlled via the layout_constraintHorizontal_bias and layout_constraintVertical_bias attributes (still on the first widget in the chain).

Or spread. In that case the widgets of the chain will be positioned equally in the available space. If one or more widget is set to MATCH_CONSTRAINT, they will divide the available space equally and be resized to use it. How much each widget set to MATCH_CONSTRAINT will use the available space can be controlled by the attributes layout_constraintHorizontal_weight and layout_constraintVertical_weight

Note that while chains allow you to keep a flat hierarchy (e.g. no need to use an embedded sub layout), it is perfectly fine to continue using sub layouts (e.g. a linear layout inside a constraint layout), particularly if they help while building your UI conceptually. The idea with chains though is that it allows you to use sub layouts only when it makes sense.

Important: The layout editor in AndroidStudio 2.2 does not support the new Chains feature, so will not have affordances to help you create chains. The preview visualisation ("design mode") in the layout editor will show you the correct positioning if you use chains, but the blueprint mode will not, showing incorrect bounds for the widgets. We are planning to update the editor in our next Android Studio preview release, to support Chains adequately.

Please give us feedback on this release, as this should be our last alpha :)