//pragmatic leaders

App Development: Android Mobile Apps

Reading time
5 min
Section
PM Foundations (Legacy)
5 min left0%
app development: android mobile apps0%
5 min left
Android is the operating system that translates user requests into device actions, enabling apps to deliver value through interaction with hardware and system components.
Talvinder Singh, from Pragmatic Leaders Android Workshop

Android is not just another mobile OS. It is an open-source operating system led by Google, built on the Linux kernel, designed specifically for mobile phones, tablets, and various connected devices. Its core role is to translate what a user wants into commands that the device hardware understands and executes.

For example, when you tap the camera button to take a picture, Android provides the interface and communicates with the camera hardware to capture the image. This seamless translation between user intent and device action is the foundation of Android app development.

Understanding how Android handles this interaction is foundational for any product leader working on mobile apps, especially in India’s growing mobile-first ecosystem.

Android app components are the building blocks of user experiences

Android apps are composed of several key components. Each plays a distinct role — from defining what the user sees to managing background tasks and inter-app communication.

Here are the primary components you must know:

  • Activities
    Activities define the user interface screens and handle user interactions on those screens. For instance, in an email app, one activity might show the inbox list, while another handles composing a new email. Each activity is a distinct screen with its own UI and lifecycle.

  • Services
    Services run in the background without a UI. They handle tasks that need to continue even when the user switches apps. A common example is playing music in the background while the user uses another app.

  • Broadcast Receivers
    These listen for system-wide or app-wide broadcast messages and respond accordingly. For example, when the system broadcasts that the battery is low or new data has been downloaded, broadcast receivers enable your app to react to these events.

  • Content Providers
    Content providers manage app data and enable data sharing between applications. They handle database access and supply data to other apps upon request, respecting permissions and data safety.

This component structure ensures that Android apps are modular, responsive, and integrated with the device and other apps.

// scene:

Android app architecture training session

Trainer: “Think of Activities as the screens your user navigates. Services are the workers behind the scenes.”

Trainee: “So if my app needs to download updates silently, I'd use a Service.”

Trainer: “Exactly. And Broadcast Receivers help your app listen for system or app events to respond proactively.”

Trainee: “How does data sharing happen between apps?”

Trainer: “That's the job of Content Providers — they manage data access securely between apps.”

// tension:

Understanding component roles is critical to designing effective Android apps.

Android architecture layers organize complexity

Android's architecture is layered to isolate concerns and provide flexibility to developers. These layers work together to run apps efficiently on a wide range of devices.

Here is a breakdown of the main layers:

LayerDescriptionIndian context example
ApplicationsPre-installed or user-installed apps like Phone, Contacts, BrowserPopular apps in India: JioMart, Swiggy, PhonePe
Application FrameworkSystem services that manage activities, windows, content, telephony, notifications, and moreThe Location Manager helps Ola and Uber apps provide live tracking
LibrariesNative C/C++ libraries like SQLite for database, OpenGL for graphics, WebKit for browserSQLite powers local data storage in apps like Razorpay's payment app
Android RuntimeCore libraries and Dalvik/ART virtual machine running app bytecodeART improves performance for apps like Flipkart and Meesho
Linux KernelDevice drivers for camera, audio, power management, WiFi, and core OS functionsHardware abstraction enables apps to work across devices from Samsung to OnePlus

This layered architecture allows developers to focus on their app logic while relying on Android’s system services and drivers to handle hardware and system-level tasks.

Anatomy of an Android app project maps to components and resources

When you look inside an Android app project, you see a structured folder layout that organizes code, resources, and configuration.

Folder / FileRole
src/Contains the Java/Kotlin source code, including MainActivity which launches when the app starts
gen/Auto-generated R.java file references all resources (images, layouts, strings). Do not modify manually
bin/Compiled package files (.apk) ready for installation
res/drawable-hdpi/Images and drawable resources optimized for high-density screens
res/layout/XML files defining the UI layouts for different screens
res/values/XML files with strings, colors, dimensions, and styles used across the app
AndroidManifest.xmlCentral configuration file declaring app components, permissions, and metadata

This structure supports modular development, resource management for diverse devices, and clear separation of UI from code.

// exercise: · 10 min
Explore an Android App Project Structure

Open any Android app project (open-source or your own). Identify these folders and files:

  1. Locate the MainActivity source file under src/. What UI does it control?
  2. Find the res/layout folder. Which XML files define the main screens?
  3. Open AndroidManifest.xml. What permissions does the app request?
  4. Look inside res/drawable-hdpi/. What images are provided for different screen densities?
  5. Find the gen/ folder. Why should you avoid modifying its contents?

This exercise will help you connect app architecture concepts to real code organization.

Android apps at scale: Indian examples and the ecosystem

The Indian mobile market is predominantly Android-first. Leading companies like Razorpay build Android apps to serve millions of users with high reliability and performance.

For instance, Razorpay’s Android app integrates payment gateways with Android services for background processing and secure data sharing. Swiggy’s app leverages location services and notification managers to provide real-time order tracking and updates.

Understanding Android’s architecture and components is essential to building apps that can scale across India’s diverse device landscape — from low-end phones in Tier 3 cities to flagship devices in metros.

// thread: #android-dev — Discussing architecture choices for Android apps in India
Priya (PM)How do we ensure our app runs smoothly on budget devices with limited RAM?
Rahul (Android Engineer)We optimize memory usage in Activities and offload heavy tasks to Services.
Anjali (QA)Testing on multiple screen densities is critical given India's device fragmentation.
Priya (PM)Agreed, res/drawable and res/layout need careful management for different densities and sizes.

Test yourself: Android app design decision

// learn the judgment

You are a PM at a Series B Indian fintech startup building an Android app for payments. The engineering lead proposes adding a background Service to sync transaction data continuously, even when the app is closed. Some users report battery drain concerns on low-end devices.

The call: Do you approve the background sync Service? How do you balance user experience with resource constraints?

Your reasoning:

// practice

You are a PM at a Series B Indian fintech startup building an Android app for payments. The engineering lead proposes adding a background Service to sync transaction data continuously, even when the app is closed. Some users report battery drain concerns on low-end devices.

Your task: Do you approve the background sync Service? How do you balance user experience with resource constraints?

your reasoning:

0 chars (min 80)

Where to go next