
How do you diagnose and optimize a slow Room query?
Tests SQLite profiling and Room optimization. Isolate the query with Database Inspector, run EXPLAIN QUERY PLAN to spot scans, then add covering indexes, rewrite joins, or use Paging3. Red flag: blindly adding indexes or switching to NoSQL without measuring.

Explain touch event dispatch in a ViewGroup with a clickable child
It tests touch routing through the three key methods. A strong answer traces ACTION_DOWN from root to target, notes intercepting halts child delivery, and onTouchEvent true consumes while false bubbles up.

How do include, merge, and ViewStub optimize deep layout nesting?
This tests Android view inflation and hierarchy flattening. A strong answer covers include for reuse, merge to strip redundant parents during inflation, and ViewStub for lazy-loading heavy views. A red flag is conflating them or citing XML brevity alone.

What are RecyclerView.Adapter and ViewHolder, and why do they improve scrolling?
This tests RecyclerView's data-to-view separation. A strong answer says Adapter binds data while ViewHolder caches findViewById results, avoiding hierarchy scans on scroll. A red flag is calling ViewHolder a memory saver instead of a lookup cache.

How does App Bundle handle ABI splits versus multi-APK?
Tests dynamic delivery of native libs: AAB auto-generates per-ABI config splits, but multi-APK requires manual APK builds per ABI. Misconfiguration ships unused .so bloat or crashes on unsupported devices. Red flag: calling AAB a simple multi-APK zip.

Write the ProGuard keep rule to fix reflection after R8
This tests R8 dead-code removal and exact ProGuard syntax for reflective constructors. A strong answer gives -keep class com.example.T { <init>(...); } because R8 cannot trace dynamic class names. Broad -keep rules or omitting constructor are red flags.

Describe Hilt's component hierarchy and scope injection rules
Tests whether you understand Hilt's generated component tree and scoping rules. A strong answer lists the hierarchy, explains parent-outlives-child semantics, and states that ActivityScoped-into-Singleton injection fails at compile time.

Functional difference between @Binds and @Provides in Hilt
Tests if you understand Hilt code generation tradeoffs. @Binds wires an existing injectable implementation to an interface with less overhead; @Provides constructs instances manually.
Explain Retrofit Interceptors and write a static API key interceptor
Tests OkHttp interception and application versus network scope. Strong answers build a new request adding X-Api-Key via newBuilder and chain.proceed; contrast addInterceptor once versus addNetworkInterceptor per hop.
How would you use Retrofit to GET /posts/{id} and key components?
This checks your understanding of Retrofit's three-layer setup. You need a data class for JSON parsing, an interface with @GET and @Path, and a Retrofit.Builder with baseUrl and a converter.

How does a ViewModel survive configuration changes and what is its scope?
WHAT IT TESTS: knowledge of ViewModelStore and lifecycle scope. ANSWER OUTLINE: the framework retains ViewModels in a store scoped to an Activity or Fragment across config changes, clearing them only when the owner finishes for good.

What is the difference between a started service and a bound service?
WHAT IT TESTS: Android service lifecycle and IPC boundaries. ANSWER OUTLINE: started services run until stopped via startService with no caller interface; bound services expose an IBinder and destroy when all clients unbind.

Explain the difference between Gradle build types and product flavors.
WHAT IT TESTS: If you know build types are how an app is built—debug versus release—while flavors are what is shipped, like free versus paid. Variants are the Cartesian product. RED FLAG: Treating them as interchangeable or using flavors for debug and release.

Explain the difference between Kotlin's let, run, with, apply, and also
WHAT IT TESTS: Whether you know the two axes of Kotlin scope functions: receiver (this vs it) and return value (context vs lambda result). ANSWER OUTLINE: Group by this (apply, run, with) vs it (let, also), then by return type. RED FLAG: Using them randomly.

What do the safe call and Elvis operators do in Kotlin?
WHAT IT TESTS: Kotlin null-safety and default-value fallback. ANSWER OUTLINE: ?. yields null if receiver is null; ?: provides the right operand when left is null; chain as val len = str?.length ?: 0. RED FLAG: Using !!, verbose if checks, or stating ?.

Explain R8's shrinking, obfuscation, and optimization phases and how to influence optimization
WHAT IT TESTS: Whether you understand R8 beyond a black box. ANSWER OUTLINE: Separate dead code removal, renaming, and bytecode transformation; cite ProGuard keep rules and selective passes. RED FLAG: Thinking optimization is only the minifyEnabled toggle.
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.

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?
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?
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.