Thursday, December 15, 2016

Android Studio 2.3 Beta 1 is now available

We have just released Android Studio 2.3 Beta 1 to the Canary, Dev, and Beta channels. In addition to the usual plethora of bug fixes, there are a number of noteworthy changes just in time for the holidays.

For those in the Beta Channel here are many of the changes since Android Studio 2.2.

Instant Run. In Android Studio 2.3 Canary 3, we introduced big change to how Instant Run works. Applying changes to a running applications play.png is no longer tied to the Run button. The Run button will now always perform an application restart. To apply code and resource changes in the running process, there is a new button hot-reload.png right next to it,  "Apply Changes", which attempts to hotswap the changes into the app. (The keyboard shortcut for Apply Changes is Control-F10 on Windows and Linux, and Cmd-Ctrl-R on Mac.)



The goal of this change is to make the Run button completely reliable. When you press Run, you can always be certain that your changes are reflected in the running app. Applying changes is now a separate action you take when you've made a tweak you want to see immediately. The Run button continues to use "cold swap" to build the app more quickly than a full APK reinstall, but we've limited it to Lollipop and above where we don't need to rely on unsafe mechanisms to do so.

IDE: In Android Studio 2.3 Canary 1 we 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. In Beta 1 we include a few additional fixes in OpenJDK that should help Mac users running Sierra.

Build Cache. In Android Studio 2.3 Canary 1,  we have enabled a new build cache (which uses a shared directory across projects to extract and compile libraries) by default. This turned out to break several features in the IDE that were making assumptions about the locations of libraries. In Android Studio 2.3 Canary 3, most of these bugs have been fixed; there are a few cosmetic ones remaining (such as listing library versions in the merged manifest editor and in documentation popups etc) that we'll be fixing next. Known issue.


Layout Editor. There are several new features in the layout editor. First, the palette has been completely rewritten. The new palette offers previews of the widgets, better sorting, as well as search and filtering: click on the search icon findPlain.png to find a widget. Second, search and filtering now also works in the property inspector. And third, you can now customize the set of properties shown for a given widget type in the inspector. In the all properties table, click on the star icon favorites.pngto favorite the properties you want to see for this type of widget, and from now on these properties will be shown in the Favorites section in the component inspector.

Additionally, Since Android Studio 2.3 Canary 1, the layout editor now supports chains and ratios for ConstraintLayout.

In Android Studio 2.3 Canary 3 we reworked the internal architecture to improve the performance and reliability, in Beta 1 we included a number of bug fixes and further refinements. We are working hard to offer a solid solution for our stable release. Please continue to file bugs and feedback at b.android.com.

App Links Assistant. Android App Links allow your users to seamlessly deep link into your app experience. Adding Android App Links support in your app is now easier with this new experience in Android Studio. Just go to Tools > App Links Assistant in Android Studio to get started.

Lint. In Android Studio 2.3 Canary 3, the command line HTML reports have been overhauled -- instead of the old dark Holo look, they now have a Material design look, and the included code snippets are syntax highlighted etc.

From Android Studio 2.2, 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.



Additionally, 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.

Data binding: Several editor bugs were fixed, among them the frequently reported problem with functional expressions. The editor parser now handles these properly.

Dual debugger: In Android Studio 2.3 Canary 3, the Hybrid debugger has been renamed to Dual debugger.

Known Issues: In addition to the known issue around build caches, we also found an Instant Run issue when you don't define a version in your build.gradle file the App won't install. A fix is already in place and should be available in Beta 2.

You can find a full list of Android Studio 2.3 bug fixes including work that is already underway for Beta 2.

As always we value ever bug filed, so please test out our new features and let us know if you run into any problems on b.android.com.