# Android Studio

Android Studio is the official integrated development environment (IDE) for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development. This is available for download on Windows, macOS and Linux based operating systems. It is a replacement for the Eclipse Android Development Tools (E-ADT) as the primary IDE for native (local) Android application development. Android Studio is licensed under the Apache license but it also ships with some SDK updates that are under a non-free license, making it not an open source.
Android Studio was announced on May 16, 2013, at the Google I/O conference. It was in early access preview stage starting from version 0.1 in May 2013, then entered beta stage starting from version 0.8 which was released in June 2014. The first stable build was released in December 2014, starting from version 1.0. At the end of 2015, Google dropped support for Eclipse ADT, making Android Studio the only officially supported IDE for Android development.
On May 7, 2019, Kotlin replaced Java as Google's preferred language for Android app development. Java is still supported, as is C++.

## Features

Plugin Ecosystem and Extensibility
Android Studio's architecture is designed to be highly extensible, allowing developers to tailor the IDE to their specific needs through a robust plugin ecosystem. Plugins can introduce new functionalities, integrate external tools, and enhance existing features, thereby streamlining the development process.
Built-in Plugins: Essential tools integrated into Android Studio, such as Android Support, Kotlin Support, and Git Integration.
Third-Party Plugins: Popular community-driven extensions like Firebase Assistant, ButterKnife Zelezny, and SQLDelight, which expand functionality.
Developing Custom Plugins: The process of building new plugins using the IntelliJ Platform SDK and Gradle plugins for automation and customization.
Managing Plugins: Best practices for installing, updating, and optimizing plugins to maintain performance and compatibility.

### Built-in Plugins

Out of the box, Android Studio includes a set of built-in plugins that support essential development tasks:
* Android Support: Provides tools and integrations specific to Android development, including project templates, wizards, and the Android SDK manager.
* Kotlin Support: Since Kotlin became Google's preferred language for Android app development in 2019, Android Studio has integrated comprehensive support for Kotlin, facilitating seamless development experiences.
* Git Integration: Offers version control support, enabling developers to manage code repositories directly within the IDE.

### Third-Party Plugins

Beyond the built-in options, developers can access a vast array of third-party plugins to extend Android Studio's capabilities:
* Firebase Assistant: Simplifies the process of adding Firebase services to an app, such as analytics, authentication, and cloud messaging.
* ButterKnife Zelezny: Automates the generation of view bindings for Android's ButterKnife library, reducing boilerplate code.
* SQLDelight: Assists in generating type-safe APIs from SQL statements, streamlining database interactions within Android applications.
These plugins, among many others, are available through the JetBrains Plugin Repository and can be easily installed via Android Studio's plugin manager.

### Developing Custom Plugins

For specialized requirements, developers have the option to create custom plugins:
* IntelliJ Platform SDK: Android Studio is built upon JetBrains' IntelliJ IDEA, and developers can utilize the IntelliJ Platform SDK to develop plugins that extend the IDE's functionality.
* Gradle Plugins: Custom Gradle plugins can automate build processes, manage dependencies, and perform other build-related tasks, enhancing the efficiency of project workflows.
Comprehensive documentation and community resources are available to guide developers through the process of plugin development, ensuring that even complex extensions can be implemented effectively.

### Managing Plugins

Effective management of plugins is crucial to maintain an optimal development environment:
* Installation and updates: Plugins can be installed and updated directly through Android Studio's plugin manager, accessible via the settings menu.
* Compatibility considerations: It's important to ensure that plugins are compatible with the specific version of Android Studio in use to prevent potential conflicts or issues.
* Performance impact: While plugins add valuable features, an excessive number can lead to increased resource consumption. Regularly reviewing and disabling unnecessary plugins can help maintain IDE performance.
By leveraging the plugin ecosystem, developers can customize Android Studio to align with their workflows, integrate preferred tools, and enhance productivity, making it a versatile environment for Android application development.
The following features are provided in the current stable version:
* Gradle-based build support
* Android-specific refactoring and quick fixes
* Lint tools to catch performance, usability, version compatibility and other problems
* ProGuard integration and app-signing capabilities
* Template-based wizards to create common Android designs and components
* A rich layout editor that allows users to drag-and-drop UI components, option to preview layouts on multiple screen configurations
* Support for building Android Wear apps
* Built-in support for Google Cloud Platform, that enables integration with Firebase Cloud Messaging (Earlier 'Google Cloud Messaging') and Google App Engine
* Android Virtual Device (Emulator) to run and debug apps in the Android studio.
Android Studio supports all the same programming languages of IntelliJ (and CLion) e.g. Java, C++, and with more extensions, such as Go; and Android Studio 3.0 or later supports Kotlin, and "Android Studio includes support for using a number of Java 11+ APIs without requiring a minimum API level for your app". External projects backport some Java 9 features. While IntelliJ states that Android Studio supports all released Java versions, and Java 12, it's not clear to what level Android Studio supports Java versions up to Java 12 (the documentation mentions partial Java 8 support). At the very least some new language features up to Java 12 are also usable in Android.
Once an app has been compiled with Android Studio, it can be published on the Google Play Store. The application has to be in line with the Google Play Store developer content policy.

## Version history

The following is a list of Android Studio's major releases:
| Version | Release date |
| 1.0 | December 2014 |
| 1.1 | February 2015 |
| 1.2 | April 2015 |
| 1.3 | July 2015 |
| 1.4 | September 2015 |
| 1.5 | November 2015 |
| 2.0 | April 2016 |
| 2.1 | April 2016 |
| 2.2 | September 2016 |
| 2.3 | March 2017 |
| 3.0 | October 2017 |
| 3.1 | March 2018 |
| 3.2 | September 2018 |
| 3.3 | January 2019 |
| 3.4 | April 2019 |
| 3.5 | August 2019 |
| 3.6 | February 2020 |
| 4.0 | May 2020 |
| 4.1 | Oct 2020 |
| 4.2 | May 2021 |
| Arctic Fox (2020.3.1) | July 2021 |
| Bumblebee (2021.1.1) | January 2022 |
| Chipmunk (2021.2.1) | May 2022 |
| Dolphin (2021.3.1) | September 2022 |
| Electric Eel (2022.1.1) | January 2023 |
| Flamingo (2022.2.1) | April 2023 |
| Giraffe (2022.3.1) | July 2023 |
| Hedgehog (2023.1.1) | November 2023 |
| Iguana (2023.2.1) | February 2024 |
| Jellyfish (2023.3.1) | April 2024 |
| Koala (2024.1.1) | June 2024 |
| Koala Feature Drop (2024.1.2) | August 2024 |
| Ladybug (2024.2.1) | October 2024 |
| Meerkat (2024.3.1) | March 2025 |

## System requirements

Basic system requirements for Android Studio :
| | Microsoft Windows | macOS | Linux |
| Operating System Version | Microsoft Windows 8/10 (64-bit) | macOS 10.14 Mojave or newer | Any 64-bit Linux distribution that supports GNOME, KDE, or Unity; GNU C Library (glibc) 2.31 or later |
| Required RAM | 8 GB or more | 8 GB or more | 8 GB or more |
| Free space | 8 GB of available disk space minimum | 8 GB of available disk space minimum | 8 GB of available disk space minimum |
| Minimum screen resolution | 1280 x 800 minimum screen resolution | 1280 x 800 minimum screen resolution | 1280 x 800 minimum screen resolution |
These features includes requirements for IDE + Android SDK + Android Emulator.
* Windows: x86_64 CPU architecture; 2nd generation Intel Core or newer, or AMD CPU with support for a Windows Hypervisor;
* Mac OS: ARM-based chips, or 2nd generation Intel Core or newer with support for Hypervisor.Framework;
* Linux: x86_64 CPU architecture; 2nd generation Intel Core or newer, or AMD processor with support for AMD Virtualization (AMD-V) and SSSE3;
* Windows: CPU with UG (unrestricted guest) support;
* Intel Hardware Accelerated Execution Manager (HAXM) 6.2.1 or later (HAXM 7.2.0 or later recommended).
The use of hardware acceleration has additional requirements on Windows and Linux:
* Intel processor on Windows or Linux: Intel processor with support for Intel VT-x, Intel EM64T (Intel 64), and Execute Disable (XD) Bit functionality;
* AMD processor on Linux: AMD processor with support for AMD Virtualization (AMD-V) and Supplemental Streaming SIMD Extensions 3 (SSSE3);
* AMD processor on Windows: Android Studio 3.2 or higher and Windows 10 April 2018 release or higher for Windows Hypervisor Platform (WHPX) functionality.
For an attached webcam to work with Android 8.1 (API level 27) and higher system images, it must have the capability to capture 720p frames.