Skip to content
tezvyn:

Android

433 bites tagged Android — interview questions with model answers, and 60-second explainers.

React Native2 min read

React Native's Platform Build Glue

React Native integrates into Android via Gradle files. You edit settings.gradle and both build.gradle files to wire the React Native Gradle Plugin and enable autolinking. The footgun: editing the wrong build.gradle breaks native modules silently.

Flutter & Dart2 min read

How would you optimize Flutter CI build times beyond caching?

Tests platform build pipeline knowledge and CI design. Answers hit Gradle parallelism and R8 config for Android, Xcode derived data, target thinning on iOS, plus Dart AOT flags and sharding.

Flutter & Dart2 min read

How do you handle platform-specific configurations per flavor on Android and iOS?

Tests if you know flavors delegate icons and titles to native tooling. On Android, use productFlavors in build.gradle with source sets or placeholders; on iOS, use Xcode build configurations with Info.plist values or asset catalogs.

Flutter & Dart2 min read

What does flutter build appbundle --release do to minimize size?

Dart AOT compiles and tree-shakes dead code; R8 shrinks Android Java/Kotlin; app bundles split by ABI. Fluency in the Flutter release pipeline and Dart-Android optimization boundaries.

Flutter & Dart2 min read

Flutter command for an Android release build and APK vs AAB difference.

Flutter CLI release commands and Android distribution formats. Name flutter build apk and flutter build appbundle; note AAB lets Google Play generate optimized APKs per device while APK is a single direct-install file.

Flutter & Dart2 min read

Present full-screen native SDK UI from Flutter and return a result

This tests platform channel architecture for full-screen native UI delegation. Use MethodChannel to launch the native controller, retain the async result callback, serialize the dismissal payload back to Dart, and avoid PlatformView for modal flows.

Flutter & Dart3 min read

Safely gating native OS version APIs in a custom Flutter plugin

Tests platform channel contracts and defensive native coding. Gate native calls with OS version checks, return result.error with an UNSUPPORTED code, handle PlatformException in Dart, and avoid Dart-only checks.

Flutter & Dart2 min read

What is a Platform View and why is it crucial?

Tests embedding native UI when Flutter widgets fall short. Strong answers define Platform Views as native embeddings, cite maps or WebView, and contrast Hybrid Composition's native hierarchy with Virtual Display's texture rasterization.

Flutter & Dart2 min read

What native iOS and Android config does the Flutter camera plugin need?

Tests native platform knowledge beyond Dart. iOS requires NSCameraUsageDescription and NSMicrophoneUsageDescription in Info.plist. Android needs minSdk 24 and choosing between CameraX or Camera2 implementations.

Flutter & Dart2 min read

Key difference between shared_preferences and flutter_secure_storage for tokens

Tests at-rest encryption: shared_preferences stores plain text XML/plist, while secure storage uses iOS Keychain and Keystore with RSA OAEP plus AES-GCM. Answers cite backup risks and hardware keys. Red flag: calling prefs safe or relying on obfuscation.

Design Systems2 min read

Material Design: Android's Paper Metaphor

Material Design models Android UI as stacked paper with light and elevation. It ships pre-built components like cards and FABs so your app feels native immediately.

Android & Kotlin2 min read

Explain R8's shrinking, obfuscation, and optimization phases and how to influence optimization

Separate dead code removal, renaming, and bytecode transformation; cite ProGuard keep rules and selective passes. Whether you understand R8 beyond a black box. Thinking optimization is only the minifyEnabled toggle.

Android & Kotlin2 min read

Describe staged rollout on Google Play Console, benefits, and metrics to monitor

Tests release engineering and risk mitigation. Covers: set percentage and countries, manually ramp, halt on bad signals; benefits are blast-radius reduction and real-world validation. Flag: auto-ramping claims or ignoring halted users keep the bad build.

Android & Kotlin2 min read

Google Play App Signing: upload key versus app signing key

Tests Android signing infrastructure and key escrow knowledge. A strong answer states Google holds the app signing key while you retain an upload key, protecting critical signing material. Red flag: claiming both keys sign the final install artifact.

Android & Kotlin2 min read

Release build ClassNotFoundException not in debug: cause and file?

Tests R8 shrinking awareness: release-only obfuscation removes classes loaded by reflection. Check proguard-rules.pro first and add a -keep rule. Red flag: blaming multidex or disabling minification rather than writing a targeted keep rule.

Android & Kotlin2 min read

What is an Android App Bundle and its advantages over APK?

Tests knowledge of modern Play distribution. AAB is the publishing format with all code and resources; Play generates device-specific APKs for smaller downloads and supports dynamic features. Red flag: calling it a compressed APK or ignoring dynamic delivery.

Android & Kotlin2 min read

Purpose of Android app signing and keystore contents

Signing proves authorship and integrity, enables same-key updates, and binds app identity; a keystore holds private keys and certificates. App identity on Android.

Android & Kotlin2 min read

How would you use Perfetto and Trace.beginSection to find a non-obvious bottleneck?

Tests correlation beyond CPU sampling. Covers coarse Trace.beginSection to limit 1-10us overhead, recording app ATrace with CPU/scheduling tracks, and correlating slices against scheduler latency. Red flag: omitting overhead or ignoring Perfetto SQL queries.

Android & Kotlin2 min read

Explain generational GC in ART and why onDraw must avoid allocations

Covers young-gen nursery, mark-sweep fallback, and why a 5-10ms GC pause misses 16ms frame deadline. ART generational GC and onDraw allocation hazards. Blaming GC without linking allocation to frame timing.

Android & Kotlin2 min read

Use Android Keystore to secure a database encryption key

Tests Android Keystore key generation and hardware trust boundaries. Strong answers: KeyGenParameterSpec with AES/GCM, TEE vs StrongBox isolation, setIsStrongBoxBacked on API 28+ with fallback, wrapping the database key. Red flag: claims Keystore encrypts DBs.

Android & Kotlin2 min read

What is certificate pinning and what are its trade-offs?

Pinning hardcodes a server key to block rogue CA MITM; trade-offs are breakage on cert rotation and forced updates. Understanding TLS trust chain attacks beyond HTTPS.

Android & Kotlin2 min read

Explain cold, warm, and hot app startups and three cold-start optimizations

Cold means no process; warm means process lives but activity recreates; hot means activity resumes. Three fixes: lazy-load deps, trim Application.onCreate, defer blocking I/O. App startup modes and tuning tactics.

Android & Kotlin2 min read

Diagnose Android UI jank using Android Studio's Profiler

Start with CPU Profiler for traces over 16ms and main thread blocking; check Memory Profiler for GC. Isolating frame drops to main thread work or GC via Android Studio Profiler. Using Logcat alone or blaming hardware.

Android & Kotlin2 min read

Why avoid plain SharedPreferences for secrets and what to use?

Tests data-at-rest security awareness. A strong answer notes plain SharedPreferences writes unencrypted XML that rooted users or backups expose, then names EncryptedSharedPreferences with Android Keystore.

Get Android bites daily.

Five a day, five minutes, offline. With quizzes so it sticks.

Open testing — you’ll join as an early tester.