Android Tutorial
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.
Android is:
- 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 for Android
Before learning Android development, it’s important to build a basic foundation for the dedicated languages and tools. This will make your learning smoother and help you avoid confusion later. Below are the detailed prerequisites you should be familiar with:
1. Basic Programming Knowledge (Preferably in Java or Kotlin)
Android apps are primarily built using Kotlin or Java. You should have a good grasp of Variables, Data Types, Control Structures (if/else, switch, loops), Functions/Methods, and OOP Concepts.
Refer to the following article to learn more about Kotlin and Java.
2. Familiarity with XML
UIs in Android apps are mostly designed using XML files. Basic knowledge of XML (Extensible Markup Language) will help you define UI components and understand resource files in Android projects.
Refer to XML | Basics to learn more about XML.
3. Understanding of Object-Oriented Programming (OOP)
Before diving into Android Development, you should have a solid understanding of the backbone of Android Development such as Classes and Objects, Constructors, Inheritance, Interfaces, and Abstract Classes.
Refer to the following article to learn more about OOPs Concepts in Android
4. Familiarity with the Android Studio IDE
Android Studio is the official IDE created for developing Android applications. It is based on the JetBrains' IntelliJ IDEA software.
Refer to the following article to get more familiar with the 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:

1. Android Basics
- Introduction
- Difference between Java and Kotlin
- Android Fundamentals - Components, Lifecycle and Folder Structure
- Android Architecture Patterns
2. 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
3. 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
4. Components
Components are building blocks of an Android application, each responsible for specific functions. There are 4 main components of Android application mentioned below:
5. 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
6. 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
7. 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 -
8. 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
9. 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
10. 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
11. 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
12. 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.
13. 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.
14. 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
15. 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
16. Date and Time
17. 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
18. Bars
Bars in Android refer to UI elements that provide system-level functionality and navigation within an app.
19. 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.
20. 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
21. 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
22. Android Architecture
Architecture in Android refers to the structured design patterns and best practices used to create maintainable, scalable, and testable Android applications.
23. 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
24. Kotlin Topics
Some Features of Android are more suitable and limited to Kotlin Language.
25. Miscellaneous
- Network Handling using Retrofit
- Android Animations
- Shimmer Layout
- Input Events
- Android Gestures
- Session Management
- How to Clone Android Project from GitHub in Android Studio?
- How to Upload Project on GitHub from Android Studio?
- How to Publish Your Android App on Google Play Store?
- How to Request Permissions in Android Application?
- How to Install and Uninstall Plugins in Android Studio?
26. Android Interview Preparation
- Android Interview Questions & Answers – (For Beginners)
- Android Interview Questions & Answers - (For Experienced)
27. Android Projects
Practice your Android Knowledge with the projects that includes both beginner and advance level of control over the concepts.
- How to build a simple Calculator app using Android Studio?
- How to Build a Simple Notes App in Android?
- How to Build a Bitcoin Tracker Android App?
- How to Create a Paint Application in Android?
- How to Create a NFC Reader and Writer Android Application
Conclusion
In conclusion, this Android tutorial serves as a comprehensive resource for beginners and experienced developers alike. By following the step-by-step instructions and leveraging the power of Android Studio, learners can acquire a solid foundation in Android app development. From understanding the fundamentals to exploring advanced concepts, this tutorial equips individuals with the necessary knowledge and skills to embark on their journey in the world of Android development. With continuous practice, staying updated with the latest trends, and actively engaging with the Android community, readers can unlock endless possibilities to create innovative and impactful mobile applications. Start your Android development journey today and embrace the opportunities that this dynamic platform offers.