Android is one of the most widely used mobile operating systems in the world. It’s open-source, highly customizable, and backed by a strong development community. Whether you're building your first app or expanding your skills, Android offers powerful tools and a flexible platform for creating modern mobile experiences.
- A Linux-based, open-source operating system used on smartphones, tablets, smart TVs, wearables, and more.
- Known for its versatility and global reach powering billions of devices in over 190 countries.
- Supported by a rich set of development tools, libraries, and frameworks that help streamline app creation from UI design to performance optimization.
Prerequisites
Before starting this Android tutorial, make sure you understand the topics listed in the links below. This basic knowledge will help you learn Android development more easily.
Refer to the following article to learn more about Kotlin, Java, XML | Basics, OOPs Concepts in Android and Android Studio IDE.
First Android Application
Here is a simple code for creating a simple Android Application to display a text that says "Hello World". We recommend you to edit the code and try to print your own name.
package org.geeksforgeeks.demo
import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_main)
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</LinearLayout>
Output:

Basics
- Introduction
- Difference between Java and Kotlin
- Android Fundamentals - Components, Lifecycle and Folder Structure
- Android Architecture Patterns
IDE Setup and Configuration
Android Studio is the official Integrated Development Environment (IDE) for Android app development, built on JetBrains IntelliJ IDEA. Let's check some topics to work in the IDE efficiently.
- Install Java Development Kit (JDK)
- Install Android Studio
- Android Studio Main Window
- Create a New Project
- Run app on an Emulator
- Run app on a Physical Device
File Structure
File Structure or Directory Structure of a application is the organization of various files and folders in an Android project, ensuring efficient development and management.
- Project File Structure
- Manifest File
- res/values folder
- build.gradle file
- Assets Folder
- Resource Raw Folder
Components
Components are building blocks of an Android application, each responsible for specific functions. There are 4 main components of Android application mentioned below:
Core Topics
- How Does Android App Work?
- Activity Lifecycle in Android with Demo App
- Introduction to Gradle
- What is Context in Android?
- Bundle in Android with Example
- Activity State Changes In Android with Example
- Processes and Application Lifecycle in Android
- Desugaring in Android
- Memory Leaks in Android
- Deep Linking in Android with Example
- Easy Runtime Permissions in Android with Dexter
- Debugging with Stetho
- Logcat Window in Android Studio
Layouts
Layouts are responsible for defining the structures and arrangements of elements in an Application. It helps to organize views in a hierarchy, allowing for responsive and flexible design. Check on the article Layouts in Android UI Design and some common types are mentioned below.
- Android UI Layouts
- LinearLayout
- RelativeLayout
- ConstraintLayout
- AbsoluteLayout
- FrameLayout
- TableLayout
- Motion Layout
Components or Views
Views are UI components used to display content or handle user interactions, such as buttons, text fields, and images. They are the building blocks of the user interface, allowing developers to design layouts and define app behavior.
ScrollViews -
GridViews -
Others -
Buttons
A Button is an UI element that triggers an action when clicked or tapped by the user. There are variety of button types available in Android. Check on the article for Button in Android and also its types.
To learn about extra features refer to the following articles:
- Theming Floating Action Buttons
- Ripple Effect in Button
- Customize shapes and colors of a button
- Double-Tap on a Button
Intent and Intent Filters
Intent is a messaging object used to request an action from another component, such as opening an activity, sending data or starting a service, while Intent Filters are the one which specify the types of intents that component can handle.
Explicit:
Implicit:
- How to open the dialer in Android through Intent?
- How to open Camera through Intent and display captured image
- How to send an Email from your Android App?
- How to make a phone call from your Android App?
- How to share a captured Image to another App on Android
- How to send messages on WhatsApp on Android
Toast
A Toast in Android is a small, pop-up message that appears briefly on the screen to provide feedback to the user.
- What is Toast and How to use it with Examples
- How to Change Toast font?
- How to add a custom-styled Toast in Android
RecyclerView
RecyclerView is a ViewGroup added to the android studio as a successor of the GridView and ListView. It is flexible and efficient view for displaying large sets of data in a scrollable list.
- RecyclerView in Android with Example
- Horizontal RecyclerView with Examples
- How to create a nested RecyclerView in Android
Fragments
Fragments in Android are reusable UI components that represent a portion of a user interface in an activity. To learn Fully about Fragments check on Introduction to Fragments article and then move on to Lifecycle for it.
Adapters
Adapters in Android are used to bind data to UI components like ListView, GridView, or RecyclerView. It acts as a bridge for converting the data into views that are displayed in the screen.
Other UI Component
Spinner
AlertDialog
- Alert Dialog Box
- Custom AlertDialog
- AlertDialog Box Using SweetAlert Dialog Library
- AlertDialog with Single Item Selection
- AlertDialog with Multiple Item Selection
- Change the Position of AlertDialog in Android
Switcher
Android Notification
- Notifications in Android with Example
- Notifications Channel in Android - Oreo (8+)
- How to Push Notification in Android?
- Push Notifications in Android Using OneSignal
Android Menu
Image Loading Libraries
Image Loading Libraries are responsible for simplify the process of loading and displaying the images from the external sources can be Urls or Storage(External). Let us check on some commonly used libraries mentioned below.
- Top 5 Image Loading Libraries in Android
- Glide Image Loader Library in Android Apps
- COIL Image Loader Library in Android Apps
Date and Time
Material Design
Material Design in Android is a design system that guides the creation of intuitive, visually appealing, and responsive user interfaces.
- Introduction to Material Design in Android
- Responsive UI Design in Android
- Material Buttons
- Material TextFields
- Material Date Picker
- Material Snackbar
- Material Floating Action Button
- Material Bottom Navigation Bar
- Material Navigation Drawer
- Material Tabs
- Material Top App Bar
- Material Bottom Sheet
- Material Bottom App Bar
- Material Search Bar
Bars
Bars in Android refer to UI elements that provide system-level functionality and navigation within an app.
Chart
Charts in Android are visual representations of data, such as bar charts, line graphs, and pie charts, used to display information in a more accessible and engaging way.
Working with Database
Database in Android refers to storing, retrieving, and managing data within an app using different methods. Now, we have different option available while using database, some of the commonly used databases are Firebase, SQLite ,etc. Let us check them one by one.
Firebase
- Introduction to Firebase
- Adding Firebase to Android App
- User authentication using Firebase in Android
- Save Data to the Firebase Realtime Database
- Retrieve Data from the Firebase Realtime Database
SQLite
Room DB
Android Jetpack
Jetpack in Android is a set of libraries, tools, and guidance to help developers follow best practices and reduce boilerplate code.
- Introduction
- Jetpack Components
- UI Components
- View Binding
- View Binding with Fragments
- Jetpack Navigation Component
Jetpack Compose -
To learn more about Jetpack Compose refer to Jetpack Compose Tutorial
Android Architecture
Architecture in Android refers to the structured design patterns and best practices used to create maintainable, scalable, and testable Android applications.
Advance Android
Let us learn more about advance topics like Storage, Volley, Threading and Multithreading related to Android which needs the prior knowledge about the topics mentioned above.
Storage
- Shared Preferences
- Internal Storage
- External Storage
- How to Save ArrayList to SharedPreferences
- Preferences DataStore
- How to Add Views Dynamically and Store Data in Arraylist?
JSON and Volley
Threading and Multithreading
- Thread Priority in Kotlin and Android
- MultiThreading
- Running User Interface Thread in Android using Kotlin
Kotlin Topics
Some Features of Android are more suitable and limited to Kotlin Language.
Miscellaneous
- Network Handling using Retrofit
- Android Animations
- Shimmer Layout
- Input Events
- Android Gestures
- Session Management
- Clone Android Project from GitHub in Android Studio
- Upload Project on GitHub from Android Studio
- Publish Your Android App on Google Play Store
- Request Permissions in Android Application
- Install and Uninstall Plugins in Android Studio
Android Interview Preparation
- Android Interview Questions & Answers – (For Beginners)
- Android Interview Questions & Answers - (For Experienced)
Android Projects
Practice your Android Knowledge with the projects that includes both beginner and advance level of control over the concepts.