Practise answering common interview questions for Android engineering roles, covering Kotlin, Jetpack, architecture, and performance.
Interview tips
Use STAR method for behavioural questions
Reference modern Jetpack libraries and Kotlin idioms
Show awareness of Android's evolving background execution restrictions
0 / 14 completed
1 / 14
An interviewer asks: "How do you handle configuration changes, such as screen rotation, in an Android application?" — which response is most professional?
The best answer demonstrates the modern Android architecture approach: ViewModel for surviving configuration changes, reactive observation via LiveData or StateFlow, and SavedStateHandle for process-death persistence. It shows understanding of why ViewModel is the correct tool rather than workarounds. The other responses are either deprecated patterns (onRetainNonConfigurationInstance), anti-patterns that restrict UX (locking orientation), or manifest workarounds that still require manual state management.
2 / 14
An interviewer asks: "How do you implement background work in Android that needs to run reliably even when the app is not in the foreground?" — which response is most professional?
The best answer correctly identifies WorkManager as the modern recommended API for guaranteed background work, explains its benefits (constraint-based scheduling, chaining), and correctly distinguishes when a foreground Service is more appropriate. This shows architectural judgement. The other responses reference deprecated or incorrect APIs: Services without WorkManager are unreliable on modern Android due to background execution limits; AsyncTask is deprecated in API 30; postDelayed does not survive process death.
3 / 14
An interviewer asks: "How do you structure a Kotlin coroutine scope in an Android application to avoid memory leaks?" — which response is most professional?
The best answer demonstrates understanding of structured concurrency as a principle and maps specific scopes to their correct lifecycle components: viewModelScope, rememberCoroutineScope, and lifecycleScope. The explicit warning about GlobalScope shows awareness of a common antipattern. The other responses either require manual management that is error-prone (onDestroy), recommend GlobalScope (an antipattern that causes the exact problem the question asks about), or confuse exception handling with lifecycle management.
4 / 14
An interviewer asks: "How do you approach accessibility in an Android application?" — which response is most professional?
The best answer shows comprehensive accessibility thinking: content descriptions, touch target sizes, custom view delegates, TalkBack testing, automated tooling, and regression prevention through Espresso accessibility checks. The phrase "first-class requirement, not an afterthought" is the professional framing. The other responses are partial (content descriptions only), assume standard widgets are sufficient (they often need augmentation), or incorrectly treat accessibility as optional — which also conflicts with legal requirements in many markets.
5 / 14
An interviewer asks: "How do you reduce APK or AAB size in an Android project?" — which response is most professional?
The best answer describes a systematic, tooling-driven approach: enabling R8, using APK Analyser to find the biggest wins, then applying specific techniques (WebP, vector drawables, dynamic features, App Bundles). It prioritises impactful changes over generic advice. The other responses are either too generic (remove unused libraries, without specifying how to identify them), focused only on code (ProGuard/R8, which is correct but incomplete), or suggest quality degradation as a solution.
6 / 14
Sarah (Senior Android Engineer) posted this message to the team Slack channel: 'Just finished debugging a weird issue with the network requests. Seems like we're getting intermittent timeouts when fetching data from the API. Anyone have any insights?' Which response would be most appropriate for Sarah to receive, demonstrating a proactive approach to troubleshooting?
Sarah's message indicates she's actively seeking help and hasn't yet exhausted basic troubleshooting steps. Option 1 is the most helpful because it acknowledges the problem without immediately jumping to conclusions or demanding immediate action. Options 2 and 3 are too simplistic and don't show her investigation process, while option 4 is overly reactive.
7 / 14
You're reviewing a pull request for a new feature that uses the LiveData architecture. The PR description states: 'Implemented the user profile screen with LiveData to handle changes and observe data updates.' A reviewer comments: 'This looks good, but could you add some assertions to ensure the LiveData observers are correctly triggered?' What is the primary reason for this suggestion?
LiveData is designed to observe and react to changes in underlying data sources. Option 2 correctly identifies this core functionality: LiveData guarantees that UI elements are updated when the data they observe changes – this is *essential* for reactive Android development. Options 1 and 3 address performance or propagation but don't directly relate to the fundamental purpose of LiveData. Option 4 is a misleading statement about code simplicity.
8 / 14
During a standup meeting, you're asked: 'What have you been working on today?' You respond: 'I'm currently refactoring the image loading component to use Coil for better performance and caching. I've implemented a basic LruCache and am testing different strategies for handling large images.' Which of the following best describes your approach?
Your response demonstrates a practical approach to optimizing image loading – a frequent pain point in Android apps. Option 2 accurately reflects the layered architecture and separation of concerns, which are crucial for maintainable code. Coil is a popular library designed to address performance issues, and your mention of caching aligns with best practices. Option 3 highlights the specific techniques you're using, while option 4 represents an incomplete understanding.
9 / 14
You are designing a new Android feature that requires accessing location data. The requirements document states: 'Ensure the app respects user privacy and only requests location permissions when absolutely necessary.' Which of the following is the MOST important consideration for implementing this requirement?
Respecting user privacy is paramount. Option 3 correctly emphasizes requesting permissions *only* when necessary and providing transparent justification – this aligns with Android's permission model and builds trust. Options 1 and 2 are problematic because they violate privacy principles. Geofencing (option 4) is a specific technique, but not the primary consideration for responsible location usage.
10 / 14
David (a Junior Android Developer) sends this comment on a code review of your camera implementation:
"This is working fine. I just added a check for null before calling `getOrientation()`. It's pretty straightforward."
The core problem here isn't just that David fixed a null pointer exception. It's that his comment lacks context—why was this check necessary? A professional code review comment should explain *why* a fix was made, highlighting potential risks or areas for future improvement. Option 1 correctly identifies the missing depth.
11 / 14
Maria (a Lead Android Engineer) messages you on Slack: 'Hey team, we're seeing a spike in crashes related to excessive memory usage when processing large image files. Can anyone investigate?' Which of the following actions is MOST appropriate for you to take?
While all options touch on aspects of debugging, option 2 is most professional as it acknowledges the problem without immediately jumping to a solution. Gathering more information (logs) and reproducing the issue are crucial first steps. A proactive approach involves understanding *why* the crashes are happening before implementing a fix.
12 / 14
You're writing a PR description for a new feature that displays user activity data. The description reads: 'Implemented the Activity Feed using Room database and ViewModel to manage state.' A reviewer asks you to elaborate. Which statement BEST describes how you should respond?
The key here is providing sufficient detail for the reviewer. While Room and ViewModel are good choices, simply stating you 'used them' isn't enough. Option 1 provides a concise explanation of *why* these technologies were selected, demonstrating an understanding of their intended purposes and aligning with professional communication.
13 / 14
During a daily standup, your manager asks: 'What's blocking you today?' You reply: 'I'm still struggling to optimize the network calls for the product catalog. The API responses are very large, and I'm not sure how to efficiently handle them.' What's the MOST helpful next step?
Recognizing that you're stuck is crucial. Option 2 demonstrates proactive problem-solving by seeking expert guidance. Simply continuing to experiment without input could lead to wasted time and potentially incorrect solutions. A senior engineer can offer valuable insights into best practices for dealing with large API responses.
14 / 14
You're reviewing a pull request that introduces a new dependency – a third-party library for handling JSON parsing. The PR description states: 'Integrated the `Gson` library to simplify JSON deserialization.' A reviewer points out potential security vulnerabilities associated with using external libraries. What is your MOST appropriate response?
Security is paramount. While simplification is desirable, ignoring security concerns is unacceptable. Option 3 demonstrates awareness of risks and a commitment to addressing them proactively – a critical component of responsible development practice. It's better to be cautious than to introduce vulnerabilities.
What does "Android Engineer Interview Questions | Coders Lingo" cover?
Practise professional English for Android engineering interviews: Kotlin coroutines, ViewModel, background work, accessibility, and APK size optimisation.
How many questions are in this interview set?
This set has 14 exercises, each with a full explanation.
Is this exercise free to use?
Yes. Every exercise on CoderSlingo, including this one, is free to use with no account, sign-up, or paywall.
Do these exercises include model answers?
Yes. Each interview question gives you several possible responses and asks you to pick the one that communicates most clearly and completely — the explanation then breaks down exactly why that answer works, including the specific vocabulary a strong candidate would use.
What if I choose an answer that isn't the strongest one?
You'll see which option was correct and read a full explanation of why it's stronger than the alternatives, plus the key vocabulary and phrasing worth reusing in a real interview.
Can I retry the questions?
Yes — use the "Try again" button on the results screen to reset and go through the set again.
Is this the same as a real technical or behavioural interview?
No — it's focused practice for the language side of interviewing: recognising which phrasing sounds precise and confident versus vague, and knowing the vocabulary interviewers expect for this role. It won't replace mock interviews, but it builds the vocabulary you'll need in one.
Where can I find interview prep for other roles?
Browse the full Interview exercises hub for 170+ modules covering behavioural, technical, and system design rounds across dozens of IT roles, or check the "Next up" link below to continue.
Do I need an account, and is my progress saved?
No account is needed. Progress is tracked only for your current visit — reloading or leaving the page resets the counter.
Who writes these interview questions?
Every question is written by the CoderSlingo team based on real technical interview patterns for this role, then reviewed for accuracy and clarity.