World-class code editing, debugging, performance tooling, a flexible build system, and an instant build/deploy system all allow you to focus on building unique and high quality apps.
Push code and resource changes to your app running on a device or emulator and see the changes instantly come to life. Instant Run dramatically speeds up your edit, build, and run cycles, keeping you "in the flow."
Intelligent code editor
Write better code, work faster, and be more productive with an intelligent code editor that helps you each step of the way. Android Studio is built on IntelliJ and is capable of advanced code completion, refactoring, and code analysis.
Fast and feature-rich emulator
Install and run your apps faster than with a physical device and test your app on virtually any Android device configuration: Android phones, Android tablets, Android Wear, and Android TV devices. The new Android Emulator 2.0 is faster than ever and allows you to dynamically resize the emulator and access a suite of sensor controls.
Robust and flexible build system
Easily configure your project to include code libraries and generate multiple build variants from a single project. With Gradle, Android Studio offers high-performance build automation, robust dependency management, and customizable build configurations.
This update to Android Studio 3.1 includes the following changes and fixes:
- The bundled Kotlin is now version 1.2.50.
- New projects are created with kotlin-stdlib-jdk* artifacts, rather than with kotlin-stdlib-jre*artifacts, which are deprecated.
- R8 parsing of ProGuard rules has been improved.
The following bugs have been fixed:
- Attempting to run the Kotlin Main class failed with an error: "Error: Could not find or load main class..."
- R8 entered an infinite loop while performing certain optimizations.
- Using the Rerun failed tests command in the Run window sometimes incorrectly returned the message "No tests were found".
- D8 did not correctly handle invoke-virtual instances, causing a crash with a VerifyError:invoke-super/virtual can't be used on private method
- The Data Binding compiler was depending on an old version of com.android.tools:annotations. The compiler now uses tools annotations from the base project when available.
- Android Studio crashed during fragment transitions when using profilers.
- The debugger crashed when debugging a layout with a text box.
- D8 failed to read some ZIP files with special characters.
This update to Android Studio 3.1.3 includes fixes for the following bugs:
- Memory leaks caused Android Studio to become slow and unresponsive after you had been using the Layout Editor. This update includes fixes for most of these issues. We intend to release another update soon to address additional memory leaks.
- Some applications built with D8 crashed on some Verizon Ellipsis tablets.
- Installation of applications built with D8 failed with an INSTALL_FAILED_DEXOPT error on devices running Android 5.0 or 5.1 (API level 21 or 22).
- Some applications that used the OkHttp library and were built with D8 crashed on devices running Android 4.4 (API level 19).
- Android Studio sometimes failed to start, with a ProcessCanceledException during class initialization forcom.intellij.psi.jsp.JspElementType.
Previous release notes:
SQL editing improvements with Room
- When you use the Room database library, you can take advantage of several improvements to SQL editing:
- Code completion within a Query understands SQL tables (entities), columns, query parameters, aliases, joins, subqueries, and WITH clauses.
- SQL syntax highlighting now works.
- You can right-click a table name in SQL and rename it, which also rewrites the corresponding Java or Kotlin code (including, for example, the return type of the query). Renaming works in the other direction, too, so renaming a Java class or field rewrites the corresponding SQL code.
- SQL usages are shown when using Find usages (right-click and choose Find usages from the context menu).
- To navigate to an SQL entity's declaration in Java or Kotlin code, you can hold Control (Command on Mac) while clicking the entity.
- For information on using SQL with Room, see Save data in a local database using Room.
Updates to data binding
- This update includes several improvements for data binding:
- You can now use a LiveData object as an observable field in data binding expressions. The ViewDataBinding class now includes a new setLifecycle() method that you use to observe LiveData objects.
- The ObervableField class can now accept other Observable objects in its constructor.
- You can preview a new incremental compiler for your data binding classes. For details of this new compiler and instructions for enabling it, see Data Binding Compiler V2.
- Benefits of the new compiler include the following:
- ViewBinding classes are generated by the Android Plugin for Gradle before the Java compiler.
- Libraries keep their generated binding classes when the app is compiled, rather than being regenerated each time. This can greatly improve performance for multi-module projects.
Compiler and Gradle
- The D8 compiler is now used by default for generating DEX bytecode.
- This new DEX compiler brings with it several benefits, including the following:
- Faster dexing
- Lower memory usage
- Improved code generation (better register allocation, smarter string tables)
- Better debugging experience when stepping through code
- You don't need to make any changes to your code or your development workflow to get these benefits, unless you had previously manually disabled the D8 compiler. If you set android.enableD8 to false in your gradle.properties, either delete that flag or set it to true:
- For details, see New DEX compiler.
- Android Studio 3.1.2 for Windows 64-bit
- Android Studio 3.1.2 for Windows 32-bit
- Android Studio 3.1.2 for macOS
- Android Studio 3.1.2 for Linux
- Android Studio 3.0.1 for Windows 64-bit
- Android Studio 3.0.1 for Windows 32-bit
- Android Studio 3.0.1 for macOS
- Android Studio 3.0.1 for Linux
- Android Studio 188.8.131.52 for Windows
- Android Studio 184.108.40.206 for macOS
- Android Studio 220.127.116.11 for Linux