Android Studio

Android Studio 3.3

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

944 MB
4.3 94 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:

Android Studio is the official IDE for Android development, and includes everything you need to build Android apps. To get the latest version, click Help > Check for updates (on Mac, Android Studio > Check for updates).

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

IntelliJ IDEA 2018.2.2

  • The core Android Studio IDE has been updated with improvements from IntelliJ IDEA through the 2018.2.2 release.

Android Gradle plugin updates

  • For information on what’s new in the Android Gradle plugin, see its release notes.

Navigation Editor

  • The Navigation Editor lets you quickly visualize and build navigation into your app by using the Navigation Architecture Component.

Delete unused Android Studio 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 be found. 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.

The directories Android Studio considers for deletion are listed below:

  • Linux: ~/.AndroidStudio[Preview]_X.Y_
  • Mac: ~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]_X.Y_
  • Windows: %USER%\.AndroidStudio[Preview]_X.Y_

Lint improvements

  • Lint, when invoked from Gradle, is significantly faster—larger projects can expect lint to run up to four times faster.

Create New Project wizard

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

Improved performance

  • Based on user feedback, rendering performance while using the profilers has been greatly improved. Please continue toprovide feedback, especially if you continue to see performance issues.

Profiler memory allocation tracking options

  • To improve app performance while profiling, the Memory Profiler now samples memory allocations periodically by default. If desired, you can change this behavior by using the Allocation Tracking dropdown when testing on devices running Android 8.0 (API level 26) or higher.

Using the Allocation Tracking dropdown, you can choose from the following modes:

  • Full: captures all object memory allocations. Note that if you have an app that allocates a lot of objects, you might see significant performance issues while profiling.
  • Sampled: captures a periodic sample of object memory allocations. This is the default behavior and has less impact on app performance while profiling. You might encounter some performance issues with apps that allocate a lot of objects within a short time period.
  • Off: turns memory allocation off. If not already selected, this mode is enabled automatically while taking a CPU recording and then returned to the previous setting when the recording is finished. You can change this behavior in the CPU recording configuration dialog.
  • The tracking affects both Java objects and JNI references.

Inspect frame rendering data

  • In the CPU Profiler, you can now inspect how long it takes your Java app to render each frame on the main UI thread and RenderThread. This data might be useful when investigating bottlenecks that cause UI jank and low framerates. For example, each frame that takes longer than the 16ms required to maintain a smooth framerate is displayed in red.
  • To see frame rendering data, record a trace using a configuration that allows you to Trace System Calls. After recording the trace, look for info about each frame along the timeline for the recording under the section called FRAMES, as shown below.

Fragments in the event timeline

  • The event timeline now shows when fragments are attached and detached. Additionally, when you hover over a fragment, a tooltip shows you the fragment status.

View formatted text for connection payloads in the Network profiler

  • Previously, the Network profiler displayed only raw text from connection payloads. Android Studio 3.3 now formats certain text types by default, including JSON, XML, and HTML. In the Response and Request tabs, click the View Parsedlink to display formatted text, and click the View Source link to display raw text.

Automatic downloading of SDK components

  • When your project needs an SDK component from the SDK platforms, NDK, or CMake, Gradle now attempts to automatically download the required packages as long as you’ve previously accepted any related license agreements using the SDK Manager.

Support for Clang-Tidy

  • 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.

Removal of options for C++ customization

The following options have been removed from the Customize C++ Support dialog:

  • Exceptions Support (-fexceptions)
  • Runtime Type Information Support (-ftti)

The respective behaviors are enabled for all projects created through Android Studio.

CMake version 3.10.2

  • CMake version 3.10.2 is now included with SDK Manager. Note that Gradle still uses version 3.6.0 by default.

Previous version:

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.
  • 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 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 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 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, 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
    1264 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