Android Studio, SDK, Emulator, and Flutter Configuration
Setting up a complete Flutter Android development environment requires more than installing
Flutter alone. Android Studio provides the Android development environment, the Android SDK
provides the platform and build tools, the Android Emulator provides a virtual Android device,
and Flutter connects these components so that Flutter applications can be built, run, and
debugged on Android.
Flutter's current Android setup documentation specifically requires the Flutter SDK in addition
to Android Studio. Installing only the Flutter plugin is not sufficient; the Flutter SDK and
its bin directory must also be configured.
target="_blank" rel="noopener noreferrer">
JustAcademy Flutter Training
target="_blank" rel="noopener noreferrer">
Register for Flutter Course Demo
1. Understanding the Complete Flutter Android Setup
A Flutter Android development environment can be understood as four major components:
- Android Studio – Development environment and Android tooling.
- Android SDK – Android platform, build, and command-line tools.
- Android Emulator – Virtual Android device for testing.
- Flutter SDK – Flutter framework, Dart SDK, Flutter CLI, and Flutter tools.
These components work together to provide a complete environment for developing Flutter
applications for Android.
Component |
Main Purpose |
|---|
Android Studio |
IDE and Android development environment. |
Android SDK |
Provides Android platforms, build tools, platform tools, and other SDK components. |
Android Emulator |
Runs a virtual Android device on your computer. |
Flutter SDK |
Provides Flutter framework, Dart, CLI, and Flutter development tools. |
Flutter Plugin |
Adds Flutter development support to Android Studio. |
2. What is Android Studio?
Android Studio is the official IDE for Android application development. It provides an
integrated environment for writing code, managing Android projects, debugging applications,
using Android SDK tools, and running Android devices and emulators.
Android Studio is based on IntelliJ IDEA and includes Android-specific development features,
including Gradle integration, testing tools, lint tools, and an Android Emulator.
Android Studio is also commonly used as the IDE for Flutter Android development when the
Flutter and Dart plugins are installed.
3. Why is Android Studio Used with Flutter?
Flutter applications are written using Dart and use the Flutter framework, but Android
deployment requires Android-specific tooling. Android Studio provides access to those Android
tools.
Android Studio Helps With
- Android SDK installation and management.
- Android SDK Platform Tools.
- Android SDK Build Tools.
- Android Emulator.
- Android Virtual Device management.
- Android project configuration.
- Debugging.
- Logcat.
- Gradle-based Android builds.
- Android-specific Flutter project files.
4. What is Android SDK?
Android SDK stands for Android Software Development Kit. It is a collection
of tools and platform packages required to develop, compile, test, and debug Android
applications.
For Flutter Android development, the Android SDK provides the underlying Android tooling that
Flutter uses when building an Android application.
Important Android SDK Components
- Android SDK Platform.
- Android SDK Build-Tools.
- Android SDK Platform-Tools.
- Android SDK Command-Line Tools.
- Android Emulator.
- Android system images.
- Additional SDK packages required by particular projects.
5. Android SDK Platforms
SDK Platforms contain Android API platform packages. A platform package is required when
building an application against that Android API level.
Android SDK Manager provides access to different Android platform versions.
Open SDK Manager
Android Studio
↓
Tools
↓
SDK Manager
If Android Studio is displaying its welcome screen, SDK Manager can also be accessed through
the additional actions menu.
SDK Platforms Tab
The SDK Platforms tab allows you to install and manage Android API platforms and related
system images.
A system image is required when you want to create an Android Emulator using a particular
Android version.
6. Android SDK Build-Tools
Android SDK Build-Tools contain utilities required to compile and package Android applications.
They are used as part of the Android build process.
For Flutter Android applications, the Android build system uses the Android tooling configured
through the project and installed SDK components.
Why Build-Tools Are Important
- Application compilation.
- Application packaging.
- APK/AAB generation.
- Android resource processing.
- Build-related operations.
7. Android SDK Platform-Tools
Platform-Tools provide utilities for communicating with Android devices.
One of the most important tools included in Platform-Tools is ADB.
ADB
ADB stands for Android Debug Bridge. It allows the computer to communicate
with Android devices and emulators.
Example Command
adb devices
This command can be used to check whether an Android device or emulator is available through
ADB.
8. Android SDK Command-Line Tools
Android SDK Command-Line Tools provide command-line utilities for managing Android SDK
components and performing Android development tasks.
They are particularly useful for command-line workflows and automation.
Flutter setup may depend on Android SDK command-line tooling being correctly installed and
available through the Android development environment.
9. What is Android Emulator?
Android Emulator is software that creates a virtual Android device on your computer. It allows
developers to run and test applications without requiring a physical Android phone.
The Android Emulator is included with Android Studio and can be managed through Device
Manager.
Advantages of Emulator
- No physical Android phone is required.
- Different Android versions can be tested.
- Different screen sizes can be tested.
- Different device configurations can be simulated.
- Debugging can be performed directly from the development computer.
- It is useful during application development and automated testing.
10. What is an AVD?
AVD stands for Android Virtual Device.
An AVD is a configuration that defines the characteristics of a virtual Android device.
It includes information such as the hardware profile, system image, storage, and other
device properties.
Android Studio's Device Manager is used to create and manage AVDs.
11. Android Studio vs Android SDK vs Emulator
Feature |
Android Studio |
Android SDK |
Emulator |
|---|
Type |
IDE |
Development toolkit |
Virtual device |
Purpose |
Development environment |
Build and platform tools |
Run Android apps virtually |
Provides editor |
Yes |
No |
No |
Provides SDK tools |
Manages them |
Yes |
Uses them |
Runs Android application |
Can launch/debug |
Provides tooling |
Yes |
Creates AVD |
Yes, through Device Manager |
Supports AVD tooling |
Represents the created device |
12. What is Flutter SDK?
Flutter SDK is the development toolkit provided by Flutter for building applications using
Dart and the Flutter framework.
Flutter SDK Contains
- Flutter Framework.
- Dart SDK.
- Flutter CLI.
- Flutter rendering and development tools.
- Flutter testing tools.
- Flutter DevTools.
- Platform integration support.
The Flutter SDK is different from the Android SDK. Flutter SDK provides Flutter development
capabilities, while Android SDK provides Android-specific development tooling.
13. Flutter Plugin for Android Studio
The Flutter plugin adds Flutter development support to Android Studio.
Plugin Installation
Android Studio
↓
File
↓
Settings
↓
Plugins
↓
Marketplace
↓
Search "Flutter"
↓
Install
↓
Restart Android Studio
On macOS, the Settings/Preferences entry is available from the Android Studio application
menu.
The Flutter plugin works with Dart support to provide features such as Flutter project
creation, Dart editing, debugging, and Flutter development tools.
14. Flutter SDK and Android SDK Are Different
A common beginner mistake is assuming that installing the Android SDK installs Flutter.
These are separate development toolkits.
Flutter SDK |
Android SDK |
|---|
Develops Flutter applications. |
Provides Android platform tooling. |
Includes Dart. |
Includes Android SDK components. |
Provides flutter command. |
Provides Android build/device tools. |
Used for Flutter code. |
Used for Android-specific build and device operations. |
15. Complete Setup Requirements
Before running a Flutter Android application, the following components should be configured:
- Flutter SDK.
- Flutter SDK PATH.
- Android Studio.
- Flutter plugin.
- Dart support.
- Android SDK.
- Required Android SDK platforms.
- Required SDK tools.
- Android SDK licenses.
- Android Emulator or physical Android device.
16. Step 1: Install Flutter SDK
First install the Flutter SDK according to your operating system.
After installing Flutter, verify it with:
flutter --version
Also verify Dart:
dart --version
Flutter's Android setup documentation emphasizes that installing the Flutter plugin is not
enough; the Flutter SDK itself must be installed and its bin directory must be
available in PATH.
17. Step 2: Install Android Studio
Download Android Studio from the official Android Developers website.
target="_blank" rel="noopener noreferrer">
Download Android Studio
Basic Installation Process
- Download Android Studio.
- Run the installer for your operating system.
- Complete the Setup Wizard.
- Allow required Android SDK components to be installed.
- Launch Android Studio.
18. Step 3: Install Flutter and Dart Plugins
Open Android Studio and install the Flutter plugin.
File
↓
Settings
↓
Plugins
↓
Marketplace
↓
Flutter
↓
Install
↓
Restart
Dart support is required for Flutter development and may be installed or enabled along with
the Flutter plugin.
19. Step 4: Configure Flutter SDK Path
Android Studio needs to know where your Flutter SDK is located.
Example
C:\Users\Student\develop\flutter
The Flutter SDK root should be selected rather than the bin directory.
Correct
C:\Users\Student\develop\flutter
Incorrect as SDK Root
C:\Users\Student\develop\flutter\bin
20. Step 5: Open Android SDK Manager
Android Studio provides SDK Manager for installing and managing Android SDK components.
Open SDK Manager
Android Studio
↓
Tools
↓
SDK Manager
From the Android Studio welcome screen, SDK Manager can also be accessed from the additional
actions menu.
21. Step 6: Configure SDK Platforms
Open the SDK Platforms tab.
Install the Android platform versions needed for your development environment and projects.
Basic Workflow
- Open SDK Manager.
- Select SDK Platforms.
- Select the required Android API platform.
- Apply the changes.
- Allow Android Studio to download the selected components.
- Wait for installation to complete.
The Android SDK platform package is required to compile applications for that Android API
level, while system images are used for emulator configurations.
22. Step 7: Configure SDK Tools
Open the SDK Tools tab.
Commonly relevant components include:
- Android SDK Build-Tools.
- Android SDK Platform-Tools.
- Android SDK Command-Line Tools.
- Android Emulator.
Additional components such as NDK and CMake may be required by particular Flutter plugins or
projects that use native Android code.
23. Step 8: Accept Android SDK Licenses
After installing the Android SDK, Flutter may ask you to accept Android SDK licenses.
Run:
flutter doctor --android-licenses
Read the displayed license terms and accept the required licenses.
After completing the process, run:
flutter doctor
Flutter's official Android setup documentation uses this command to review and accept Android
SDK licenses.
24. Step 9: Open Device Manager
Device Manager is used to create and manage Android Virtual Devices.
Open Device Manager
Android Studio
↓
Tools
↓
Device Manager
From the welcome screen, Device Manager can also be accessed through the additional actions
menu.
25. Step 10: Create an Android Virtual Device
An Android Virtual Device simulates a particular Android device configuration.
Steps
- Open Device Manager.
- Click Create Device.
- Select a hardware profile.
- Choose a device such as a phone or tablet.
- Click Next.
- Select an Android system image.
- Download the system image if it is not already installed.
- Click Next.
- Review the AVD configuration.
- Click Finish.
Android's Device Manager documentation describes an AVD as a configuration containing a
hardware profile, system image, storage area, and other device properties.
26. Step 11: Select an Android System Image
A system image contains the Android operating system that will run inside the emulator.
System Image Selection
Choose an image compatible with your development computer's processor architecture and the
Android version you want to test.
Depending on the computer architecture, Android Studio may provide different image choices,
such as x86_64 or ARM64 variants.
Images labeled Google APIs include Google APIs, while images labeled Google Play include the
Google Play Store.
27. Step 12: Configure Emulator Performance
Emulator performance can be improved using hardware acceleration when supported by the
development computer.
Recommended Approach
- Open the AVD configuration.
- Open advanced settings if required.
- Find emulator graphics settings.
- Select a hardware-accelerated graphics option when available.
- Save the configuration.
Flutter's current Android setup instructions recommend selecting a graphics option that uses
hardware acceleration when configuring an emulator.
28. Step 13: Start the Android Emulator
After creating the AVD, start it from Device Manager.
Android Studio
↓
Device Manager
↓
Select AVD
↓
Run
Wait for the Android operating system to start completely.
29. Step 14: Check Emulator with Flutter
Open a terminal and run:
flutter emulators
This lists configured emulators available to Flutter.
You can also run:
flutter devices
The running Android Emulator should appear as an available Android device.
30. Step 15: Check Complete Flutter Configuration
Run:
flutter doctor
For detailed diagnostic information:
flutter doctor -v
Important Areas to Check
- Flutter.
- Android toolchain.
- Android Studio.
- Connected devices.
- Network resources.
If Flutter Doctor reports a problem, follow the suggested action and run the command again.
31. Step 16: Verify Android Device
Run:
flutter devices
A successful configuration should show at least one available Android target if an emulator
or physical device is connected.
Combined Command
flutter emulators && flutter devices
This can be useful for quickly checking configured emulators and available Flutter devices.
32. Step 17: Create a Flutter Project
After the environment is configured, create a new Flutter project.
Using Terminal
flutter create my_flutter_app
Move into the project:
cd my_flutter_app
Using Android Studio
New Flutter Project
↓
Flutter
↓
Select Flutter SDK
↓
Next
↓
Project Name
↓
Finish
33. Step 18: Run Flutter Application on Emulator
Start the Android Emulator and open the Flutter project.
Then run:
flutter run
Alternatively, select the emulator from Android Studio's Flutter target/device selector and
click the Run button.
34. Simple Flutter Application Example
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(
title: const Text('Flutter Android Setup'),
),
body: const Center(
child: Text(
'Hello Flutter!',
style: TextStyle(fontSize: 24),
),
),
),
);
}
}
Run the application:
flutter run
The application should appear inside the selected Android emulator or connected physical
Android device.
35. Flutter Project Structure
my_flutter_app/
│
├── android/
│ ├── app/
│ └── ...
│
├── ios/
├── lib/
│ └── main.dart
│
├── test/
├── web/
├── windows/
├── macos/
├── linux/
│
├── pubspec.yaml
└── README.md
Important Android Folder
The android/ directory contains Android-specific project files.
When you need to configure Android-specific settings, Gradle configuration, Android manifest
settings, native Android code, or platform-specific integrations, this directory becomes
important.
36. Flutter Configuration and PATH
Flutter must be available from the command line.
The Flutter SDK's bin directory should be included in the operating system's
PATH.
Example Windows PATH
C:\Users\Student\develop\flutter\bin
Verify
flutter --version
If this command works from a new terminal, Flutter is generally available through PATH.
37. Android SDK Environment Configuration
Android Studio normally manages the Android SDK installation and its location. You can see
the SDK location from SDK Manager.
Example Windows SDK Location
C:\Users\Student\AppData\Local\Android\Sdk
The exact location depends on the operating system and installation configuration.
If Flutter cannot locate Android tooling, run:
flutter doctor -v
The diagnostic output can help identify Android SDK configuration problems.
38. Android Emulator vs Physical Device
Android Emulator |
Physical Android Device |
|---|
Runs virtually on the computer. |
Runs on a real Android phone or tablet. |
No physical device required. |
Requires an Android device. |
Can test different device profiles. |
Provides real hardware behavior. |
Requires computer resources. |
Uses the device's hardware. |
Useful for early development and testing. |
Important for real-device testing. |
Android's documentation recommends testing on a real device before release, while the
Emulator is useful for testing different Android versions and screen configurations.
39. Configure a Physical Android Device
You can run Flutter applications on a real Android device instead of an emulator.
Steps
- Open Android device Settings.
- Enable Developer Options.
- Enable USB Debugging.
- Connect the device to the computer.
- Accept the USB debugging authorization prompt.
- Run
flutter devices.
- Select the physical device.
- Run the Flutter application.
Verify with ADB
adb devices
Verify with Flutter
flutter devices
40. Hot Reload
Flutter provides a fast development cycle through Stateful Hot Reload.
After changing Dart code, developers can use Hot Reload to quickly see many UI and code
changes without restarting the entire application.
Basic Workflow
Write Code
↓
Run Application
↓
Modify Code
↓
Save
↓
Hot Reload
↓
Check Result
41. Hot Reload vs Hot Restart
Hot Reload |
Hot Restart |
|---|
Applies many code changes quickly. |
Restarts the Flutter application. |
Usually preserves current application state. |
Resets application state. |
Useful for UI development. |
Useful when a complete application restart is needed. |
42. Debugging Flutter Android Applications
Android Studio provides debugging functionality for Flutter applications.
Common Debugging Features
- Breakpoints.
- Debug console.
- Variable inspection.
- Stack frames.
- Log output.
- Flutter Inspector.
- Widget tree inspection.
Run in Debug Mode
flutter run
Android Studio can also start the application using its Run and Debug actions.
43. Flutter Inspector
Flutter Inspector helps developers understand and inspect the widget tree of a Flutter
application.
Uses
- Inspect widget hierarchy.
- Understand layout structure.
- Inspect widget properties.
- Investigate layout problems.
- Understand parent-child widget relationships.
44. Common Problem: Flutter Command Not Found
If the terminal displays an error indicating that flutter cannot be found,
Flutter's PATH configuration may be incorrect.
Check
flutter --version
If the command fails:
- Find the Flutter SDK directory.
- Open the
bin folder.
- Add the Flutter
bin path to PATH.
- Close the terminal.
- Open a new terminal.
- Run
flutter --version again.
45. Common Problem: Android Toolchain Error
If flutter doctor reports an Android toolchain problem, check:
- Android Studio installation.
- Android SDK installation.
- SDK platform configuration.
- SDK tools.
- Android SDK licenses.
- Java/Gradle compatibility if specifically reported.
Then run:
flutter doctor -v
46. Common Problem: Android Emulator Not Appearing
If the emulator does not appear in Flutter:
- Open Android Studio.
- Open Device Manager.
- Check whether an AVD exists.
- Start the AVD.
- Wait for Android to boot completely.
- Run
flutter emulators.
- Run
flutter devices.
47. Common Problem: Emulator Performance Is Slow
The Android Emulator requires significant computer resources. Performance depends on CPU,
RAM, storage, graphics, and hardware virtualization support.
Possible Solutions
- Enable supported hardware acceleration.
- Close unnecessary applications.
- Use an appropriate AVD configuration.
- Use an SSD when possible.
- Reduce unnecessary emulator resource usage.
- Test on a physical Android device when appropriate.
48. Common Problem: Android SDK Licenses
If Flutter reports that Android SDK licenses have not been accepted, execute:
flutter doctor --android-licenses
Accept the required licenses and then run:
flutter doctor
49. Common Problem: Device Not Detected
If a physical Android device is not detected:
- Check the USB cable.
- Enable Developer Options.
- Enable USB Debugging.
- Accept the debugging authorization prompt.
- Check ADB connectivity.
- Run
adb devices.
- Run
flutter devices.
- Run
flutter doctor.
50. Useful Flutter Commands
Command |
Purpose |
|---|
flutter --version |
Check Flutter version. |
dart --version |
Check Dart version. |
flutter doctor |
Check development environment. |
flutter doctor -v |
Display detailed diagnostic information. |
flutter doctor --android-licenses |
Review and accept Android SDK licenses. |
flutter devices |
List available Flutter devices. |
flutter emulators |
List available emulators. |
flutter create my_app |
Create a new Flutter project. |
flutter run |
Run a Flutter application. |
flutter clean |
Remove generated build files. |
flutter pub get |
Download project dependencies. |
51. Complete Configuration Workflow
Install Flutter SDK
↓
Add Flutter bin to PATH
↓
Verify Flutter
↓
Install Android Studio
↓
Install Flutter Plugin
↓
Configure Flutter SDK Path
↓
Open SDK Manager
↓
Install Android SDK
↓
Install SDK Platforms
↓
Install SDK Tools
↓
Accept Android Licenses
↓
Open Device Manager
↓
Create AVD
↓
Download System Image
↓
Configure Emulator
↓
Start Emulator
↓
flutter doctor
↓
flutter devices
↓
Create Flutter Project
↓
flutter run
↓
Test & Debug
52. Complete Practical Example
Suppose a developer wants to create a Flutter application on Windows.
Step 1: Flutter SDK
C:\Users\Student\develop\flutter
Step 2: Flutter PATH
C:\Users\Student\develop\flutter\bin
Step 3: Verify Flutter
flutter --version
Step 4: Install Android Studio
Download
↓
Install
↓
Launch
Step 5: Install Flutter Plugin
Settings
↓
Plugins
↓
Marketplace
↓
Flutter
↓
Install
↓
Restart
Step 6: Configure Android SDK
Tools
↓
SDK Manager
↓
SDK Platforms
↓
SDK Tools
↓
Install Required Components
Step 7: Accept Licenses
flutter doctor --android-licenses
Step 8: Create Emulator
Tools
↓
Device Manager
↓
Create Device
↓
Select Hardware
↓
Select System Image
↓
Finish
Step 9: Start Emulator
Device Manager
↓
Run AVD
Step 10: Verify
flutter doctor
flutter devices
Step 11: Create Application
flutter create my_flutter_app
Step 12: Run Application
cd my_flutter_app
flutter run
53. Setup Checklist
Setup Item |
Completed |
|---|
Flutter SDK installed |
☐ |
Flutter added to PATH |
☐ |
Flutter version verified |
☐ |
Android Studio installed |
☐ |
Flutter plugin installed |
☐ |
Dart support enabled |
☐ |
Flutter SDK path configured |
☐ |
Android SDK installed |
☐ |
SDK Platform configured |
☐ |
SDK Build-Tools installed |
☐ |
SDK Platform-Tools installed |
☐ |
SDK Command-Line Tools configured |
☐ |
Android Emulator installed |
☐ |
Android licenses accepted |
☐ |
AVD created |
☐ |
Emulator started |
☐ |
flutter doctor verified |
☐ |
Flutter device detected |
☐ |
Flutter project created |
☐ |
Flutter application successfully executed |
☐ |
54. Important Interview Questions
Q1. What is Android Studio?
Android Studio is the official IDE for Android development and provides tools for coding,
debugging, building, testing, and managing Android applications.
Q2. What is Android SDK?
Android SDK is a collection of Android development tools, platform packages, build tools,
platform tools, and other components required for Android application development.
Q3. What is Android Emulator?
Android Emulator is a virtual Android device that runs on a computer and allows developers
to test Android applications without a physical device.
Q4. What is AVD?
AVD stands for Android Virtual Device. It defines the configuration of a virtual Android
device used by the Android Emulator.
Q5. What is the difference between Flutter SDK and Android SDK?
Flutter SDK provides the Flutter framework, Dart SDK, Flutter CLI, and Flutter development
tools. Android SDK provides Android-specific platform and build tooling required to build
and run Android applications.
Q6. Why is Flutter plugin required in Android Studio?
The Flutter plugin adds Flutter and Dart development functionality to Android Studio,
including Flutter project support, editing, debugging, and development tools.
Q7. How can you check Flutter configuration?
flutter doctor
Q8. How can you check available Android devices?
flutter devices
Q9. How can you check configured Flutter emulators?
flutter emulators
Q10. How can you accept Android SDK licenses?
flutter doctor --android-licenses
Q11. How do you create a Flutter application?
flutter create my_app
Q12. How do you run a Flutter application?
flutter run
55. Key Points to Remember
- Android Studio is the primary IDE used for Android development.
- Flutter SDK and Android SDK are separate toolkits.
- The Flutter plugin adds Flutter support to Android Studio.
- The Android SDK provides Android platform and build tools.
- SDK Manager is used to install and manage Android SDK components.
- Device Manager is used to create and manage Android Virtual Devices.
- An AVD represents a virtual Android device configuration.
- An Android system image provides the Android OS used by an emulator.
- Hardware acceleration can improve emulator performance when supported.
- Android SDK licenses must be accepted before completing Android development setup.
flutter doctor is the primary Flutter environment diagnostic command.
flutter devices checks available Flutter devices.
flutter emulators checks available emulators.
- A physical Android device can also be used for Flutter development.
- Always test applications on appropriate real devices before release.
56. JustAcademy Flutter Training
For structured Flutter learning, including Flutter setup, Dart programming, widgets, layouts,
navigation, APIs, state management, and practical application development, explore the
following resource:
target="_blank" rel="noopener noreferrer">
JustAcademy Flutter Training Course
For a course demo and registration:
target="_blank" rel="noopener noreferrer">
Register for Flutter Course Demo
57. Conclusion
Android Studio, Android SDK, Android Emulator, and Flutter SDK form the core environment for
Flutter Android development. Android Studio provides the development interface, the Android
SDK provides Android-specific tools and platform packages, the Emulator provides a virtual
Android device, and Flutter SDK provides the Flutter and Dart development environment.
A correctly configured environment allows developers to create Flutter projects, run them on
Android devices, use Hot Reload, debug applications, inspect widgets, and build Android
packages.
Complete setup:
Flutter SDK
+
Android Studio
+
Android SDK
+
Flutter Plugin
+
Android Emulator / Physical Device
↓
Complete Flutter Android Development Environment