Android Studio

Android Studio 3.2.1

Android Studio provides the fastest tools for building apps on every type of Android device.

Freeware
Windows/macOS/Linux
927 MB
89,610
4.2 91 votes

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.

Instant Run

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.

What's New:

This update to Android Studio 3.2 includes the following changes and fixes:

  • The bundled Kotlin version is now 1.2.71.
  • The default build tools version is now 28.0.3.
  • In the Navigation library, argument types have been renamed from type to argType.

The following bugs have been fixed:

  • When using the Data Binding library, variable names with underscores were causing compilation errors.
  • CMake was causing IntelliSense and other CLion features to fail.
  • Adding a SliceProvider was causing compilation errors in projects that did not use androidx.*libraries.
  • Some Kotlin unit tests were not being run.
  • An issue with data binding was causing a PsiInvalidElementAccessException.
  • <merge> elements were sometimes causing the Layout Editor to crash.

* Note: These issues have been resolved in Android Studio 3.2.1

Known issues:

  • We strongly recommend against using Kotlin version 1.2.70.
  • Kotlin version 1.2.61 fixes a bug that can cause Android Studio to hang, but Kotlin 1.2.70 does not include this fix.
  • Kotlin versions 1.2.71 and later, however, do include this fix.
  • Although you typically don't need to specify the build tools version, when using Android Gradle plugin 3.2.0 with renderscriptSupportModeEnabled set to true, you need to include the following in each module's build.gradle file: android.buildToolsVersion "28.0.3"

Previous version:

  • We strongly recommend against updating to Kotlin 1.2.70. Android Studio includes a version of Kotlin 1.2.61 that fixes a bug that can cause Android Studio to hang. Kotlin 1.2.71 and later also include this fix. Kotlin 1.2.70 does not include this fix.
  • Although you typically don't need to specify the build tools version, when using Android Gradle plugin 3.2.0 with renderscriptSupportModeEnabled set to true, you need to include the following in each module's build.gradle file: android.buildToolsVersion "28.0.3"

Android Studio 3.2 is a major release that includes a variety of new features and improvements.

What's New Assistant

  • A new assistant informs you about the latest changes in Android Studio.
  • The assistant opens when you start Android Studio after a fresh installation or update if it detects that there is new information to show. You can also open the assistant by choosing Help > What's new in Android Studio.

Android Jetpack

  • Android Jetpack helps to accelerate Android development with components, tools, and guidance that eliminate repetitive tasks and enable you to more quickly and easily build high-quality, testable apps. Android Studio includes the following updates to support Jetpack. For more information, see the Jetpack documentation.

Navigation Editor

  • The new Navigation Editor integrates with the navigation components of Android Jetpack to provide a graphical view for creating the navigation structure of your app. The Navigation Editor simplifies the design and implementation of navigation between in-app destinations.
  • In Android Studio 3.2, the Navigation Editor is an experimental feature. To enable the Navigation Editor, click File > Settings (Android Studio > Preferences on Mac), select the Experimental category in the left pane, check the box next to Enable Navigation Editor, and restart Android Studio.

AndroidX migration

  • As part of Jetpack, we are migrating the Android Support Libraries to a new Android extension library using the androidx namespace. For more information, see the AndroidX overview.
  • Android Studio 3.2 helps you through this process with a new migration feature.
  • To migrate an existing project to AndroidX, choose Refactor > Migrate to AndroidX. If you have any Maven dependencies that have not migrated to the AndroidX namespace, the Android Studio build system also automatically converts those project dependencies.
  • The Android Gradle plugin provides the following global flags that you can set in your gradle.properties file:
    • android.useAndroidX: When set to true, this flag indicates that you want to start using AndroidX from now on. If the flag is absent, Android Studio behaves as if the flag were set to false.
    • android.enableJetifier: When set to true, this flag indicates that you want to have tool support (from the Android Gradle plugin) to automatically convert existing third-party libraries as if they were written for AndroidX. If the flag is absent, Android Studio behaves as if the flag were set to false.
  • Both flags are set to true when you use the Migrate to AndroidX command.
  • If you want to start using AndroidX libraries immediately and don't need to convert existing third-party libraries, you can set the android.useAndroidX flag to true and the android.enableJetifier flag to false.

Android App Bundle

  • Android App Bundle is a new upload format that includes all of your app’s compiled code and resources, but defers APK generation and signing to the Google Play Store.
  • Google Play’s new app serving model, called Dynamic Delivery, then uses your app bundle to generate and serve optimized APKs for each user’s device configuration, so each user downloads only the code and resources they need to run your app. You no longer need to build, sign, and manage multiple APKs, and users get smaller, more optimized downloads.
  • Additionally, you can add dynamic feature modules to your app project and include them in your app bundle. Through Dynamic Delivery, your users can then download and install your app’s dynamic features on demand.
  • To build a bundle, choose Build > Build Bundle(s) / APK(s) > Build Bundle(s).

Sample data in Layout Editor

  • Many Android layouts have runtime data that can make it difficult to visualize the look and feel of a layout during the design stage of app development. You can now easily see a preview of your view in the Layout Editor filled with sample data. When you add a view, a button appears below the view in the Design window. Click this button to set the design-time view attributes. You can choose from a variety of sample data templates and specify the number of sample items with which to populate the view.
  • To try using sample data, add a RecyclerView to a new layout, click the design-time attributes button below the view, and choose a selection from the carousel of sample data templates.

Slices

  • Slices provide a new way to embed portions of your app's functionality in other user interface surfaces on Android. For example, Slices make it possible to show app functionality and content in Google Search suggestions.
  • Android Studio 3.2 has a built-in template to help you to extend your app with the new Slice Provider APIs, as well as new lint checks to ensure that you're following best practices when constructing the Slices.
  • To get started right-click a project folder and choose New > Other > Slice Provider.

Known issues:

  • We strongly recommend against updating to Kotlin 1.2.70.
  • Android Studio includes a version of Kotlin 1.2.61 that fixes a bug that can cause Android Studio to hang. Kotlin 1.2.71 and later also include this fix. Kotlin 1.2.70 does not include this fix.
  • Although you typically don't need to specify the build tools version, when using Android Gradle plugin 3.2.0 with renderscriptSupportModeEnabled set to true, you need to include the following in each module's build.gradle file: android.buildToolsVersion "28.0.3"

Previous release notes:

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.

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:
  • android.enableD8=true
  • For details, see New DEX compiler.

Complete release notes here.

Previous versions:

Apps similar to Android Studio 1

  • 4.4
    1240 votes
    The Android SDK provides all the necessary developer tools to build, test, and debug apps for Android in Windows, Mac or Linux.
    • Freeware
    • Windows/macOS/Linux