Make sure your question is new and unique - not just rephrasing a previously existing question. If possible, include a link to the solution/topic. Questions should be fairly straightforward and completely technical (no "how many golf balls are in America" questions.) If there is a new topic that you think should be included, then include it!
- General Developer Questions
- Core Java
- Core Android
- Android Design and XML
- Android Networking
General Developer Questions
- How familiar you are with the Android and Google Guidelines?
- Describe Test-Driven Development. [info]
- Explain unit tests versus functional tests.
- Describe Scrum and Kanban.
- What project management tools have you used?
- How do you ensure that you are working efficiently?
- Do you have basic familiarity with working on the command line i.e. Gradle, Ant, or the Java Compiler?
- What are the main 3 Object Oriented Programing (OOP) concepts?
- Explain object serialization and how to implement it in Java.
- Explain anonymous classes. [info]
- Describe the differences between abstract classes and interfaces. [info]
- Explain what a Singleton class is and how to create one in Java [info]
- Why should the equals() and hashCode() methods often be overridden together? [info]
- How do you properly override the equals() method? For example, what considerations should be taken when checking for equality? [info]
- Difference between final, finally and finalize?
- In Java, does the finally block gets executed if we insert a return statement inside the try block of a try-catch-finally? [info]
- Explain method overloading & overriding.
- What is memory leak and how does Java handle it? [info]
- What are the use cases and differences of arrays and ArrayLists?
- What are the use cases and differences of a HashSet and a TreeSet? [info]
- Have you used any Ant, Maven, Gradle features for your project?
- Explain event-driven programming in Java [info]
- What is Java's Garbage Collection and how does it help you as a developer?
- How can you typecast in Java? [info]
- Explain Java's try-catch-finally paradigm [info]
- How does the Android notification system work?
- How can two distinct Android apps interact? (several answers)
- Describe Activities. [info]
- What are the four states of the Activity Lifecycle? [active/running, paused, stopped, destroyed]
- What are the seven callback methods of an Activity used to perform operations when the Activity transitions between states? [onCreate(), onStart(), onResume(), onPause(), onStop(), onRestart(), onDestroy()]
- What is the difference between a fragment and an activity? Explain the relationship between the two. [info]
- What is the difference between Serializable and Parcelable? Which is the best approach in Android? [info]
- What are "launch modes"? [info]
- What are Intents? [info]
- What is an Implicit Intent? [info]
- What is an Explicit Intent? [info]
- Describe three common use cases for using an Intent.
- What is a Service? [info]
- What is a ContentProvider and what is it typically used for? [info]
- What is a Fragment? [info]
- What is ADB?
- What is ANR?
- What is AndroidManifest.xml used for? Give examples of what kind of data you would add to it. [info]
- Describe how broadcasts and intents work to be able to pass messages around your app.[info]
- What is the Dalvik Virtual Machine?
- What are different ways to store data in your Android app? [info]
- Android appplication components [info]
- What is the relationship between the life cycle of an AsyncTask and an Activity? What problems can this result in? How can these problems be avoided?
- What is the difference between Service and IntentService? How is each used? [info]
- What is a Sticky Intent? [info]
- What is AIDL? [info]
- What is dependency injection?
- What are the different protection levels in permission? [info]
- How would you preserve Activity state during a screen rotation?
Android Design and XML
- Explain the differences and similarities of Relative Layout and Linear Layout.
- Explain the differences and similarities of List Views and Grid Views.
- Describe how to implement XML namespaces.
- Explain how to present different styles/drawables for a button depending on the state of the button (pressed, selected, etc.) using XML (no Java) [info]
- for layout_width and layout_height, what's the difference between match_parent and wrap_content?
- How do you implement Google's new Material Design in an Android application? [info]
- Difference between View.GONE and View.INVISIBLE? [info]
- Have you use an HTTP Library, which, why, did you like it?
- Describe how REST APIs work.
- What are some typical methods of HTTP request/responses? [GET, POST, PUT, PATCH, DELETE, UPDATE]