Android Engineer Interview Questions

9,770 android engineer interview questions shared by candidates

We mainly use [insert library/pattern/architecture name here] and I see that you've chosen to use [insert another library/pattern/architecture name here], what was your reasoning behind this? Do you like it better than X, Y, Z? If so, why?
avatar

Android Developer

Interviewed at 3 Sided Cube

4.3
May 6, 2021

We mainly use [insert library/pattern/architecture name here] and I see that you've chosen to use [insert another library/pattern/architecture name here], what was your reasoning behind this? Do you like it better than X, Y, Z? If so, why?

We have a food delivery application that connects between a customer, a restaurant. When a user places an order, he can do online payment or cash on delivery. We have a payment module does contain all the payment related stuff, so the following code is the little snippet of the payment logic and there are errors, it can be logical, memory related, compiler issues... etc. here's the code: import java.util.Arrays; import java.util.Comparator; import java.util.Treeset; class PaymentException extends Exception { } class GatewayException extends PaymentException { } interface PaymentOptions { public void pay(E s) throws PaymentException; } abstract interface VirtualCard extends PaymentOptions { } abstract class PaymentType { } class Card extends PaymentType { } class SmartCard { } class HSBCPay implements VirtualCard { public void pay(SmartCard s) { } } abstract class Visa implements PaymentOptions { public abstract void pay(ElectronicCard s) { } } abstract class ApplePay implements PaymentOption { } class Wallet implements PaymentOption { public void pay(ElectronicCard i) throws Exception { } } class Mada implements PaymentOption { public void pay(PaymentType i) { } } class MasterCard implements PaymentOption { private void pay(SmartCard s) throws PaymentException { } public void pay(Card s) throws PaymentException { } } class ElectronicCard extends Card { public void pay(Card s) throws PaymentException { } public static void main(String[] args) { new ElectronicCard().go(); } void go(){ go2(new Card(), new ElectronicCard()); go2(( ) new Card(), new ElectronicCard()); } void go2(Card t1, ElectronicCard r1) { ElectronicCard r2 = (ElectronicCard) t1; Card t2 = (Card) r1; } } public class Test { public static synchronized void main(String[] args) throws InterruptedException { Thread thread = new Thread(); thread.start(); System.out.println("X"); thread.wait(1000); System.out.println("X"); } } class Innertest ( public static void main(String[] args) { String[] sa = ["Applepay", "Master", "Visa", "Wallet"]; Sorter s = new Sorter(); for(s2 : sa) System.out.println(s2 + " "); Arrays.sort(sa, s); System.out.println(); for(s2 : sa) System.out.println(s2 + " "); } } class Sorter implements Comparator { public int compare(String a, String b) { return b.compareTo(a); } } class TestDataStructure { public static void main(String[] args){ TreeSet i = new TreeSet(); TreeSet d = new TreeSet(); d.add(new PaymentAmount(1)); d.add(new PaymentAmount(2)); d.add(new PaymentAmount(1)); i.add(1); i.add(2); i.add(1); System.out.println(d.size() + " " + i.size()); } static class PaymentAmount { int size; PaymentAmount(int s) { size = s; } } }
avatar

Senior Android Developer

Interviewed at HungerStation

3.2
Dec 21, 2023

We have a food delivery application that connects between a customer, a restaurant. When a user places an order, he can do online payment or cash on delivery. We have a payment module does contain all the payment related stuff, so the following code is the little snippet of the payment logic and there are errors, it can be logical, memory related, compiler issues... etc. here's the code: import java.util.Arrays; import java.util.Comparator; import java.util.Treeset; class PaymentException extends Exception { } class GatewayException extends PaymentException { } interface PaymentOptions { public void pay(E s) throws PaymentException; } abstract interface VirtualCard extends PaymentOptions { } abstract class PaymentType { } class Card extends PaymentType { } class SmartCard { } class HSBCPay implements VirtualCard { public void pay(SmartCard s) { } } abstract class Visa implements PaymentOptions { public abstract void pay(ElectronicCard s) { } } abstract class ApplePay implements PaymentOption { } class Wallet implements PaymentOption { public void pay(ElectronicCard i) throws Exception { } } class Mada implements PaymentOption { public void pay(PaymentType i) { } } class MasterCard implements PaymentOption { private void pay(SmartCard s) throws PaymentException { } public void pay(Card s) throws PaymentException { } } class ElectronicCard extends Card { public void pay(Card s) throws PaymentException { } public static void main(String[] args) { new ElectronicCard().go(); } void go(){ go2(new Card(), new ElectronicCard()); go2(( ) new Card(), new ElectronicCard()); } void go2(Card t1, ElectronicCard r1) { ElectronicCard r2 = (ElectronicCard) t1; Card t2 = (Card) r1; } } public class Test { public static synchronized void main(String[] args) throws InterruptedException { Thread thread = new Thread(); thread.start(); System.out.println("X"); thread.wait(1000); System.out.println("X"); } } class Innertest ( public static void main(String[] args) { String[] sa = ["Applepay", "Master", "Visa", "Wallet"]; Sorter s = new Sorter(); for(s2 : sa) System.out.println(s2 + " "); Arrays.sort(sa, s); System.out.println(); for(s2 : sa) System.out.println(s2 + " "); } } class Sorter implements Comparator { public int compare(String a, String b) { return b.compareTo(a); } } class TestDataStructure { public static void main(String[] args){ TreeSet i = new TreeSet(); TreeSet d = new TreeSet(); d.add(new PaymentAmount(1)); d.add(new PaymentAmount(2)); d.add(new PaymentAmount(1)); i.add(1); i.add(2); i.add(1); System.out.println(d.size() + " " + i.size()); } static class PaymentAmount { int size; PaymentAmount(int s) { size = s; } } }

Technical round 1 has 2 questions. Difficulty of the 2nd questions is decided by how you solve previous question. Fisrt question was Container With Most Water(leetcode). Interviewer was very cooperative. As i was having difficulty in understanding the question, he give me the leetcode link of the problem.
avatar

Android Developer

Interviewed at Porter

3.4
Sep 2, 2022

Technical round 1 has 2 questions. Difficulty of the 2nd questions is decided by how you solve previous question. Fisrt question was Container With Most Water(leetcode). Interviewer was very cooperative. As i was having difficulty in understanding the question, he give me the leetcode link of the problem.

tell us about yourself from the first job. They asked for each skill and they said from 1 to 10 what is your rating?!! No one does that and should not do that!! Do you know Spring? Why did you choose to study your MBA and you want to stay in software development?!! Do you have an app in the google play store?
avatar

Android Developer

Interviewed at Penske

3.7
May 11, 2018

tell us about yourself from the first job. They asked for each skill and they said from 1 to 10 what is your rating?!! No one does that and should not do that!! Do you know Spring? Why did you choose to study your MBA and you want to stay in software development?!! Do you have an app in the google play store?

Viewing 1351 - 1360 interview questions

See Interview Questions for Similar Jobs

Glassdoor has 9,770 interview questions and reports from Android engineer interviews. Prepare for your interview. Get hired. Love your job.