Android Training Spoken AI Technical Interviews & Viva Practice
Experience realistic engineering interviews powered by our proprietary MockAttempt AI (MockAttempt-AI v2.5) model — our AI Interviewer speaks questions aloud, transcribes your spoken answer via microphone, and evaluates your technical depth across a 4-axis rubric (up to 2 free sessions per topic daily).
Live Speech-to-Text + 4-axis technical readiness radar. Prefer timed MCQ screening practice?
Select Any IT Course (34 Courses • 100% Topics Covered)
Android Training — Topic-Wise Spoken MockAttempt AI Interviews
Expand any module below to launch a live spoken technical interview across 244 MockAttempt AI rounds (max 2 free sessions per topic per day).
All Modules & Topics in Android Training
Android Platform Overview — AOSP, Gradle SDK Levels & App Packaging (APK / AAB)
Purpose: To understand and apply Android Platform Overview — AOSP, Gradle SDK Levels & App Packaging (APK / AAB) in real Android systems — specifically: How Android powers billions of devices via AOSP, Google Play Services, Gradle Kotlin DSL (`build.gradle.kts`), `minSdk` vs `targetSdk` contracts, and Android App Bundles (`.aab`), so your code stays reliable, fast, and easy to maintain in production.
Android Software Stack — Linux Kernel, Binder IPC, HAL, Zygote & ART Runtime
Purpose: To understand and apply Android Software Stack — Linux Kernel, Binder IPC, HAL, Zygote & ART Runtime in real Android systems — specifically: Deep dive into Android’s 5-layer architecture: Linux Kernel (security, drivers, Binder IPC), Hardware Abstraction Layer (HAL), Native C/C++ Libraries & ART Runtime, Java/Kotlin API Framework, and System Apps, so your code stays reliable, fast, and easy to maintain in production.
Android Core Building Blocks — Activities, Services, BroadcastReceivers & ContentProviders
Purpose: To understand and apply Android Core Building Blocks — Activities, Services, BroadcastReceivers & ContentProviders in real Android systems — specifically: How Android decouples apps into loosely coupled entry points activated via `Intent`s and `Uri`s, orchestrated by `ActivityManagerService` without a single `main()` function, so your code stays reliable, fast, and easy to maintain in production.
AndroidManifest.xml — Component Registration, `android:exported` & Permission Enforcement
Purpose: To understand and apply AndroidManifest.xml — Component Registration, `android:exported` & Permission Enforcement in real Android systems — specifically: Configure `<manifest>`, `<uses-permission>`, `<uses-feature>`, `<application>`, launch modes, `<intent-filter>`, and Android 12+ explicit `android:exported="true|false"` security rules, so your code stays reliable, fast, and easy to maintain in production.
Activity Lifecycle — 7 Callbacks, Configuration Changes, `ViewModel` & Process Death
Purpose: To understand and apply Activity Lifecycle — 7 Callbacks, Configuration Changes, `ViewModel` & Process Death in real Android systems — specifically: Understand visible vs foreground lifetimes, why screen rotation destroys and recreates `Activity` instances by default, and how `ViewModel` + `SavedStateHandle` work together, so your code stays reliable, fast, and easy to maintain in production.
Android Intents — Implicit vs Explicit Resolution, Intent Filters, Flags & `FileProvider`
Purpose: To understand and apply Android Intents — Implicit vs Explicit Resolution, Intent Filters, Flags & `FileProvider` in real Android systems — specifically: How `Intent` messaging binds components via Action, Data (`Uri`), Category, Type, Extras, Launch Flags (`FLAG_ACTIVITY_CLEAR_TOP`), and modern `registerForActivityResult()`, so your code stays reliable, fast, and easy to maintain in production.
Explicit Intents — Type-Safe Screen Navigation, Companion `newIntent()` & `@Parcelize`
Purpose: To understand and apply Explicit Intents — Type-Safe Screen Navigation, Companion `newIntent()` & `@Parcelize` in real Android systems — specifically: Navigate deterministically between internal Activities using target `Class` references, `ActivityResultLauncher` two-way contracts, and `kotlin-parcelize` high-speed binary marshalling, so your code stays reliable, fast, and easy to maintain in production.
Android Fragments — Dual Lifecycles (`this` vs `viewLifecycleOwner`) & `FragmentManager`
Purpose: To understand and apply Android Fragments — Dual Lifecycles (`this` vs `viewLifecycleOwner`) & `FragmentManager` in real Android systems — specifically: Master modular UI composition with `Fragment(R.layout.item)`, `commit { replace(...); addToBackStack(...) }`, `FragmentResultListener`, and why Fragments have TWO distinct lifecycles, so your code stays reliable, fast, and easy to maintain in production.
Android UI Widgets — `ViewBinding`, Material 3 Inputs, `dp` vs `sp` & Accessibility
Purpose: To understand and apply Android UI Widgets — `ViewBinding`, Material 3 Inputs, `dp` vs `sp` & Accessibility in real Android systems — specifically: Work cleanly with `MaterialButton`, `TextInputEditText`, `CheckBox`, `SwitchMaterial`, and `Toast`/`Snackbar` using generated `ViewBinding` classes and density-independent units, so your code stays reliable, fast, and easy to maintain in production.
LinearLayout & View Hierarchy Performance — Orientation, `layout_weight` & Measure Passes
Purpose: To understand and apply LinearLayout & View Hierarchy Performance — Orientation, `layout_weight` & Measure Passes in real Android systems — specifically: Align child views horizontally or vertically using `android:orientation`, `gravity` vs `layout_gravity`, `0dp` weighted sizing, and understand why nested weights trigger `O(2^N)` double measure passes, so your code stays reliable, fast, and easy to maintain in production.
RecyclerView & `ListAdapter` — `ViewHolder` Pooling, `LayoutManager` & `DiffUtil`
Purpose: To understand and apply RecyclerView & `ListAdapter` — `ViewHolder` Pooling, `LayoutManager` & `DiffUtil` in real Android systems — specifically: How `RecyclerView` inflates only enough `ViewHolder` instances to fill the viewport (+2 prefetch buffer) and computes minimal insert/remove/change patches off the Main Thread via `AsyncListDiffer`, so your code stays reliable, fast, and easy to maintain in production.
TabLayout & `ViewPager2` — `FragmentStateAdapter` & `TabLayoutMediator` Synchronization
Purpose: To understand and apply TabLayout & `ViewPager2` — `FragmentStateAdapter` & `TabLayoutMediator` Synchronization in real Android systems — specifically: Combine Material `TabLayout` with RecyclerView-backed `ViewPager2` (`FragmentStateAdapter`), RTL support, vertical paging, `offscreenPageLimit`, and lifecycle-aware `TabLayoutMediator`, so your code stays reliable, fast, and easy to maintain in production.
SharedPreferences & Jetpack DataStore — `apply()` vs `commit()`, Encrypted Storage & Flow
Purpose: To understand and apply SharedPreferences & Jetpack DataStore — `apply()` vs `commit()`, Encrypted Storage & Flow in real Android systems — specifically: Persist user flags and lightweight tokens safely: why `SharedPreferences.Editor.commit()` causes ANRs on the Main Thread, how `apply()` queues async fsyncs, and why Jetpack `DataStore` (`Flow<Preferences>`) is the modern standard, so your code stays reliable, fast, and easy to maintain in production.
Android SQLite & Room Foundations — `SQLiteOpenHelper`, WAL Mode, Transactions & Migrations
Purpose: To understand and apply Android SQLite & Room Foundations — `SQLiteOpenHelper`, WAL Mode, Transactions & Migrations in real Android systems — specifically: Manage embedded SQLite databases using `SQLiteOpenHelper` (`onCreate`, `onUpgrade`), `ContentValues`, `Cursor.use {}` auto-closing, Write-Ahead Logging (WAL), and compile-time verified Jetpack Room DAOs, so your code stays reliable, fast, and easy to maintain in production.
Android JSON Parsing — `JSONObject` / `JSONArray` (`opt*` vs `get*`) & Kotlin Serialization
Purpose: To understand and apply Android JSON Parsing — `JSONObject` / `JSONArray` (`opt*` vs `get*`) & Kotlin Serialization in real Android systems — specifically: Extract nested objects and arrays safely using `org.json.JSONObject` (`optString`, `optInt`, `isNull`) or modern `kotlinx.serialization` / Moshi with `ignoreUnknownKeys = true`, so your code stays reliable, fast, and easy to maintain in production.
Volley HTTP Networking — Singleton `RequestQueue`, `JsonObjectRequest`, RetryPolicy & HTTPS
Purpose: To understand and apply Volley HTTP Networking — Singleton `RequestQueue`, `JsonObjectRequest`, RetryPolicy & HTTPS in real Android systems — specifically: Fetch remote JSON asynchronously using Volley’s worker pool (`JsonObjectRequest`, `DefaultRetryPolicy`, HTTP cache headers), enforce `INTERNET` permission, and compare Volley with Retrofit + OkHttp, so your code stays reliable, fast, and easy to maintain in production.
Android Services — Started vs Bound Services, Foreground Service Types & `WorkManager`
Purpose: To understand and apply Android Services — Started vs Bound Services, Foreground Service Types & `WorkManager` in real Android systems — specifically: Understand critical Service internals: a `Service` runs on the **Main Thread** by default! Learn `startForegroundService()`, the 5s `startForeground()` rule, Android 14 `foregroundServiceType`, and `WorkManager`, so your code stays reliable, fast, and easy to maintain in production.
BroadcastReceiver & Call State Events — Dynamic Registration, `RECEIVER_NOT_EXPORTED` & `TelephonyCallback`
Purpose: To understand and apply BroadcastReceiver & Call State Events — Dynamic Registration, `RECEIVER_NOT_EXPORTED` & `TelephonyCallback` in real Android systems — specifically: Listen to system and app broadcasts safely: Android 8+ implicit manifest receiver restrictions, `READ_PHONE_STATE` runtime permission, modern `TelephonyCallback` (API 31+), and Android 14 `RECEIVER_NOT_EXPORTED`, so your code stays reliable, fast, and easy to maintain in production.
Android Notifications — `NotificationChannel`, `POST_NOTIFICATIONS` & `FLAG_IMMUTABLE`
Purpose: To understand and apply Android Notifications — `NotificationChannel`, `POST_NOTIFICATIONS` & `FLAG_IMMUTABLE` in real Android systems — specifically: Build rich notifications with `NotificationCompat.Builder`, `NotificationChannel` importance levels (API 26+), Android 13 `POST_NOTIFICATIONS` runtime permission, and Android 12+ `PendingIntent.FLAG_IMMUTABLE`, so your code stays reliable, fast, and easy to maintain in production.
Firebase Authentication & Google Sign-In — `CredentialManager`, SHA-1/SHA-256 & ID Tokens
Purpose: To understand and apply Firebase Authentication & Google Sign-In — `CredentialManager`, SHA-1/SHA-256 & ID Tokens in real Android systems — specifically: Authenticate Android users using Jetpack `CredentialManager` (`GetGoogleIdOption` replacing legacy `GoogleSignInClient`), exchange the Google ID token via `GoogleAuthProvider.getCredential()`, and verify Firebase JWTs on your backend, so your code stays reliable, fast, and easy to maintain in production.
Single-Source-of-Truth Repository (Room Flow + RemoteMediator)
Purpose: To understand and apply Single-Source-of-Truth Repository (Room Flow + RemoteMediator) in real Android systems — specifically: Keep screens usable inside elevators and rural 2G zones with seamless background sync, so your code stays reliable, fast, and easy to maintain in production.
Paging 3 Infinite Lists & Room Auto/Manual Schema Migrations
Purpose: To understand and apply Paging 3 Infinite Lists & Room Auto/Manual Schema Migrations in real Android systems — specifically: Scroll 10,000+ catalog items smoothly and upgrade local SQLite schemas without data loss, so your code stays reliable, fast, and easy to maintain in production.
Guaranteed Background Sync with WorkManager Constraints & Backoff
Purpose: To understand and apply Guaranteed Background Sync with WorkManager Constraints & Backoff in real Android systems — specifically: Queue pending orders/photos reliably until battery and Wi-Fi/network constraints pass, so your code stays reliable, fast, and easy to maintain in production.
DataStore Proto/Preferences & Encrypted Token Persistence
Purpose: To understand and apply DataStore Proto/Preferences & Encrypted Token Persistence in real Android systems — specifically: Replace blocking SharedPreferences with async, corruption-safe Jetpack DataStore, so your code stays reliable, fast, and easy to maintain in production.
Feature/Core Multi-Module Gradle Setup (:app, :core:network, :feature:pay)
Purpose: To understand and apply Feature/Core Multi-Module Gradle Setup (:app, :core:network, :feature:pay) in real Android systems — specifically: Slash incremental Gradle build times and enforce strict layer boundaries, so your code stays reliable, fast, and easy to maintain in production.
Dagger Hilt Scopes (@Singleton, @ViewModelScoped) & TestReplacements
Purpose: To understand and apply Dagger Hilt Scopes (@Singleton, @ViewModelScoped) & TestReplacements in real Android systems — specifically: Inject repositories and clocks cleanly across ViewModels, Workers, and UI tests, so your code stays reliable, fast, and easy to maintain in production.
StateFlow, SharedFlow, repeatOnLifecycle & Unidirectional MVI State
Purpose: To understand and apply StateFlow, SharedFlow, repeatOnLifecycle & Unidirectional MVI State in real Android systems — specifically: Eliminate lifecycle crashes and duplicate snackbar/navigation events on screen rotation, so your code stays reliable, fast, and easy to maintain in production.
Retrofit OkHttp Interceptors, Certificate Pinning & Token Refresh Mutex
Purpose: To understand and apply Retrofit OkHttp Interceptors, Certificate Pinning & Token Refresh Mutex in real Android systems — specifically: Block MITM attacks and refresh expired JWTs once across parallel mobile calls, so your code stays reliable, fast, and easy to maintain in production.
Compose Stability, @Immutable Models, derivedStateOf & Layout Inspector
Purpose: To understand and apply Compose Stability, @Immutable Models, derivedStateOf & Layout Inspector in real Android systems — specifically: Eliminate dropped frames and jank caused by unnecessary recompositions, so your code stays reliable, fast, and easy to maintain in production.
Baseline Profiles & R8/ProGuard Code Shrinking & Obfuscation
Purpose: To understand and apply Baseline Profiles & R8/ProGuard Code Shrinking & Obfuscation in real Android systems — specifically: Boost cold-start speed by 30% and shrink APK/AAB download size dramatically, so your code stays reliable, fast, and easy to maintain in production.
Android Keystore, BiometricPrompt Auth & Play Integrity Checks
Purpose: To understand and apply Android Keystore, BiometricPrompt Auth & Play Integrity Checks in real Android systems — specifically: Protect UPI/wallet confirmations with hardware-backed fingerprint/face verification, so your code stays reliable, fast, and easy to maintain in production.
Firebase Cloud Messaging (FCM) Channels & Compose Deep-Link Navigation
Purpose: To understand and apply Firebase Cloud Messaging (FCM) Channels & Compose Deep-Link Navigation in real Android systems — specifically: Land users on the exact order or chat screen tapped from a lock-screen push alert, so your code stays reliable, fast, and easy to maintain in production.
Unit Testing ViewModels & Flows with kotlinx-coroutines-test & Turbine
Purpose: To understand and apply Unit Testing ViewModels & Flows with kotlinx-coroutines-test & Turbine in real Android systems — specifically: Assert exact Loading -> Success/Error state emissions in milliseconds on JVM, so your code stays reliable, fast, and easy to maintain in production.
ComposeTestRule Semantic UI Tests & Robolectric/Espresso Suites
Purpose: To understand and apply ComposeTestRule Semantic UI Tests & Robolectric/Espresso Suites in real Android systems — specifically: Verify critical login and payment flows automatically on every pull request, so your code stays reliable, fast, and easy to maintain in production.
Firebase Crashlytics Mapping Upload, ANR Diagnostics & StrictMode
Purpose: To understand and apply Firebase Crashlytics Mapping Upload, ANR Diagnostics & StrictMode in real Android systems — specifically: De-obfuscate production stack traces and eliminate main-thread disk/network ANRs, so your code stays reliable, fast, and easy to maintain in production.
Signed Android App Bundles (.aab), Fastlane/GitHub Actions & Staged Rollout
Purpose: To understand and apply Signed Android App Bundles (.aab), Fastlane/GitHub Actions & Staged Rollout in real Android systems — specifically: Ship 5% -> 25% -> 100% Play Store releases safely with instant halt controls, so your code stays reliable, fast, and easy to maintain in production.
Unidirectional Data Flow (UDF), StateFlow UI State & Single-Source-of-Truth Room Sync
Purpose: To understand and apply Unidirectional Data Flow (UDF), StateFlow UI State & Single-Source-of-Truth Room Sync in real Android systems — specifically: Keep Android screens 100% usable on flaky mobile networks with automatic background conflict resolution, so your code stays reliable, fast, and easy to maintain in production.
Jetpack Compose Recomposition Optimization: @Immutable, derivedStateOf & Lazy Keys
Purpose: To understand and apply Jetpack Compose Recomposition Optimization: @Immutable, derivedStateOf & Lazy Keys in real Android systems — specifically: Eliminate dropped frames and jank on long scrolling feeds verified via Layout Inspector, so your code stays reliable, fast, and easy to maintain in production.
Encrypted DataStore/Keystore Credentials, Biometric Prompt & Deep-Link Navigation
Purpose: To understand and apply Encrypted DataStore/Keystore Credentials, Biometric Prompt & Deep-Link Navigation in real Android systems — specifically: Protect user tokens on device hardware and handle notification/web deep links securely, so your code stays reliable, fast, and easy to maintain in production.
Testing Kotlin Coroutines/Flows (Turbine) & Compose UI Semantics Tests
Purpose: To understand and apply Testing Kotlin Coroutines/Flows (Turbine) & Compose UI Semantics Tests in real Android systems — specifically: Verify ViewModel state transitions and Compose screen accessibility deterministically in CI, so your code stays reliable, fast, and easy to maintain in production.
Fixing Memory Leaks (LeakCanary), ANRs, StrictMode & Baseline Profiles
Purpose: To understand and apply Fixing Memory Leaks (LeakCanary), ANRs, StrictMode & Baseline Profiles in real Android systems — specifically: Accelerate cold app startup by 30%+ and eliminate main-thread disk/network stalls, so your code stays reliable, fast, and easy to maintain in production.
R8/ProGuard Shrinking, Play Integrity, Staged Rollouts & Android Interviews
Purpose: To understand and apply R8/ProGuard Shrinking, Play Integrity, Staged Rollouts & Android Interviews in real Android systems — specifically: Ship compact, obfuscated Android App Bundles and ace Kotlin/Android architecture interviews, so your code stays reliable, fast, and easy to maintain in production.