Skip to content
tezvyn:
Menu

Android & Kotlin

Jetpack Compose, Android Studio, Kotlin, Material You

414 bites

Test yourself: Top 30 Android & Kotlin interview questions →Multiple choice, with the correct answer and why it is correct on every question. Free, no sign-in.

Everything in Android & Kotlin, page 3

Google Play App Signing: upload key versus app signing key
intermediate2 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.

Release build ClassNotFoundException not in debug: cause and file?
intermediate2 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.

What is an Android App Bundle and its advantages over APK?
easy2 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.

Purpose of Android app signing and keystore contents
easy2 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.

How would you use Perfetto and Trace.beginSection to find a non-obvious bottleneck?
advanced2 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.

Explain generational GC in ART and why onDraw must avoid allocations
advanced2 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.

Use Android Keystore to secure a database encryption key
advanced2 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.

What is certificate pinning and what are its trade-offs?
intermediate2 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.

Explain cold, warm, and hot app startups and three cold-start optimizations
intermediate2 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.

Diagnose Android UI jank using Android Studio's Profiler
intermediate2 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.

Why avoid plain SharedPreferences for secrets and what to use?
easy2 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.

What is overdraw in Android UI and how do you reduce it?
easy2 min read

What is overdraw in Android UI and how do you reduce it?

This tests GPU fill awareness. A strong answer defines overdraw as redrawing pixels repeatedly, names Debug GPU Overdraw's color overlay, and offers fixes: remove unnecessary backgrounds and flatten hierarchies. Red flag: confusing this with CPU layout issues.

What is an Android memory leak? Give a Context example and fix.
easy2 min read

What is an Android memory leak? Give a Context example and fix.

Tests understanding of Activity Context retention preventing GC. A strong answer defines a leak as unreachable objects, gives a static singleton example, names LeakCanary, and fixes it with Application Context. Red flag: blaming GC or suggesting System.gc().

What is Android Test Orchestrator and how does it isolate tests?
advanced2 min read

What is Android Test Orchestrator and how does it isolate tests?

Tests process-level isolation in Android UI suites. A strong answer says it runs each test in its own Instrumentation process, stopping crashes or leaked state from cascading, and notes slower startup.

What is the role of TestDispatcher and runTest in coroutine testing?
advanced2 min read

What is the role of TestDispatcher and runTest in coroutine testing?

This tests coroutine test infrastructure and virtual time control. A great answer says runTest installs a TestDispatcher and TestScope, skips delays automatically, and exposes advanceTimeBy to test timeouts instantly.

How would you implement and register a custom IdlingResource?
advanced2 min read

How would you implement and register a custom IdlingResource?

Implement the three IdlingResource methods with an atomic counter; register via IdlingRegistry in setup and unregister in teardown.

How do you test a Compose click and verify state change?
intermediate2 min read

How do you test a Compose click and verify state change?

This tests Compose semantics and interaction-to-assertion flow. Mention ComposeTestRule, onNodeWithTag, performClick, and assert on the changed node with assertIsDisplayed or assertTextEquals.

Mock vs Fake test doubles: when to use a Fake Repository?
intermediate2 min read

Mock vs Fake test doubles: when to use a Fake Repository?

Tests if you know a Fake is a working lightweight implementation while a Mock verifies interactions. Good answers define Fake as in-memory with real logic, Mock as expectation-based, and choose a Repository Fake when many tests need reusable state.

Explain integration tests and isolate Room DAO tests
intermediate2 min read

Explain integration tests and isolate Room DAO tests

Tests integration vs unit testing and Room isolation. Outline: verify real DAO-to-DB interaction with Room.inMemoryDatabaseBuilder; reset state by closing and recreating the DB in @After. Red flag: mocking the DAO or using an on-disk database.

Unit test a ViewModel exposing StateFlow in a local JVM test
intermediate2 min read

Unit test a ViewModel exposing StateFlow in a local JVM test

Tests coroutine hygiene and flow collection strategy. A strong answer covers injecting a TestDispatcher, using runTest, collecting emissions in a background scope, and asserting states.

We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.

See open roles