{"id":20467599,"url":"https://github.com/derekargueta/android-interview-questions","last_synced_at":"2025-04-12T19:47:24.742Z","repository":{"id":25268755,"uuid":"28694187","full_name":"derekargueta/Android-Interview-Questions","owner":"derekargueta","description":"Collection of Android and Java related questions and topics to know","archived":false,"fork":false,"pushed_at":"2022-08-01T13:28:30.000Z","size":27,"stargazers_count":862,"open_issues_count":3,"forks_count":168,"subscribers_count":48,"default_branch":"master","last_synced_at":"2025-04-03T23:09:28.301Z","etag":null,"topics":["android","android-interview","android-interview-practice","android-interview-questions","interview","interview-questions","java","topic"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/derekargueta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-01T19:50:59.000Z","updated_at":"2025-03-28T17:37:12.000Z","dependencies_parsed_at":"2022-08-23T22:10:45.977Z","dependency_job_id":null,"html_url":"https://github.com/derekargueta/Android-Interview-Questions","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derekargueta%2FAndroid-Interview-Questions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derekargueta%2FAndroid-Interview-Questions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derekargueta%2FAndroid-Interview-Questions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derekargueta%2FAndroid-Interview-Questions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/derekargueta","download_url":"https://codeload.github.com/derekargueta/Android-Interview-Questions/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248625497,"owners_count":21135513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-interview","android-interview-practice","android-interview-questions","interview","interview-questions","java","topic"],"created_at":"2024-11-15T13:29:16.643Z","updated_at":"2025-04-12T19:47:24.703Z","avatar_url":"https://github.com/derekargueta.png","language":null,"readme":"Android-Interview-Questions\n===========================\n### Collaboration Rules\n\u003cp\u003eMake 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!\u003c/p\u003e\n\nTopics:\n* \u003ca href=\"#general-developer-questions\"\u003eGeneral Developer Questions\u003c/a\u003e\n* \u003ca href=\"#core-java\"\u003eCore Java\u003c/a\u003e\n* \u003ca href=\"#core-android\"\u003eCore Android\u003c/a\u003e\n* \u003ca href=\"#android-design-and-xml\"\u003eAndroid Design and XML\u003c/a\u003e\n* \u003ca href=\"#android-networking\"\u003eAndroid Networking\u003c/a\u003e\n* \u003ca href=\"#databases\"\u003eDatabases\u003c/a\u003e\n\n## General Developer Questions\n* How familiar you are with the Android and Google Guidelines?\n* Describe Test-Driven Development. [[info]](http://en.wikipedia.org/wiki/Test-driven\\_development)\n* Explain unit tests versus functional tests.\n* Describe Scrum and Kanban.\n* What project management tools have you used?\n* How do you ensure that you are working efficiently?\n* Do you have basic familiarity with working on the command line i.e. Gradle, Ant, or the Java Compiler?\n\n## Core Java\n#### Object-Oriented Programming\n* What are the main 3 Object Oriented Programing (OOP) concepts?\n* Explain object serialization and how to implement it in Java.\n* Explain anonymous classes. [[info]](http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html)\n* Describe the differences between abstract classes and interfaces. [[info]](http://www.javaworld.com/article/2077421/learn-java/abstract-classes-vs-interfaces.html)\n* Explain what a Singleton class is and how to create one in Java [[info]](http://www.javaworld.com/article/2073352/core-java/simply-singleton.html)\n* Why should the equals() and hashCode() methods often be overridden together? [[info]](http://stackoverflow.com/questions/2265503/why-do-i-need-to-override-the-equals-and-hashcode-methods-in-java/2265637#2265637)\n* How do you properly override the equals() method? For example, what considerations should be taken when checking for equality? [[info]](http://www.geeksforgeeks.org/overriding-equals-method-in-java/)\n* Difference between final, finally and finalize?\n* In Java, does the finally block gets executed if we insert a return statement inside the try block of a try-catch-finally?  [[info]](https://stackoverflow.com/a/65049/497132)\n* Explain method overloading \u0026 overriding. \n* What is memory leak and how does Java handle it? [[info]](https://stackify.com/memory-leaks-java/)\n\n#### Data Structures\n* What are the use cases and differences of arrays and ArrayLists?\n* What are the use cases and differences of a HashSet and a TreeSet?  [[info]](https://stackoverflow.com/a/4464394/497132)\n\n#### Build Tools\n* Have you used any Ant, Maven, Gradle features for your project?\n\n#### Programming Paradigms\n* Explain event-driven programming in Java [[info]](http://en.wikibooks.org/wiki/Java\\_Programming/Event\\_Handling)\n* What is Java's Garbage Collection and how does it help you as a developer?\n* How can you typecast in Java? [[info]](http://www.studytonight.com/java/type-casting-in-java)\n* Explain Java's try-catch-finally paradigm [[info]](http://www.studytonight.com/java/try-and-catch-block.php)\n\n## Core Android\n* How does the Android notification system work?\n* How can two distinct Android apps interact? (several answers)\n* Describe Activities. [[info]](http://developer.android.com/reference/android/app/Activity.html)\n* What are the four states of the Activity Lifecycle? [[active/running, paused, stopped, destroyed]](https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle)\n* 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()]](https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle)\n* What is the difference between a fragment and an activity? Explain the relationship between the two. [[info]](https://stackoverflow.com/a/45252253/497132)\n* What is the difference between Serializable and Parcelable? Which is the best approach in Android? [[info]](https://stackoverflow.com/a/50114007/497132)\n* What are \"launch modes\"? [[info]](https://android.jlelse.eu/android-activity-launch-mode-e0df1aa72242)\n* What are Intents? [[info]](http://developer.android.com/guide/components/intents-filters.html)\n* What is an Implicit Intent? [[info]](https://developer.android.com/guide/components/intents-filters.html#ExampleSend)\n* What is an Explicit Intent? [[info]](https://developer.android.com/guide/components/intents-filters.html#ExampleExplicit)\n* Describe three common use cases for using an Intent.\n* What is a Service? [[info]](http://developer.android.com/guide/components/services.html)\n* What is a ContentProvider and what is it typically used for? [[info]](http://developer.android.com/guide/topics/providers/content-providers.html)\n* What is a Fragment? [[info]](http://developer.android.com/guide/components/fragments.html)\n* What is ADB?\n* What is ANR?\n* What is AndroidManifest.xml used for? Give examples of what kind of data you would add to it. [[info]](http://developer.android.com/guide/topics/manifest/manifest-intro.html)\n* Describe how broadcasts and intents work to be able to pass messages around your app.[[info]](http://www.techotopia.com/index.php/Android\\_Broadcast\\_Intents\\_and\\_Broadcast\\_Receivers)\n* What is the Dalvik Virtual Machine?\n* What are different ways to store data in your Android app? [[info]](https://developer.android.com/guide/topics/data/data-storage.html)\n* Android appplication components [[info]](http://www.tutorialspoint.com/android/android\\_application\\_components.htm)\n* 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?[[info]](https://li2.gitbooks.io/android-programming-journey/content/Background_Tasks/what-is-the-relationship-between-the-life-cycle-of-an-asynctask-and-an-activity.html)\n* What is the difference between Service and IntentService? How is each used? [[info]](https://stackoverflow.com/a/15772151/497132)\n* What is a Sticky Intent? [[info]](https://stackoverflow.com/a/26038985/497132)\n* What is AIDL? [[info]](https://developer.android.com/guide/components/aidl.html)\n* What is dependency injection? \n* What are the different protection levels in permission? [[info]](https://developer.android.com/guide/topics/manifest/permission-element.html)\n* How would you preserve Activity state during a screen rotation?\n\n## Android Design and XML\n* Explain the differences and similarities of Relative Layout and Linear Layout.\n* Explain the differences and similarities of List Views and Grid Views.\n* Describe how to implement XML namespaces.\n* Explain how to present different styles/drawables for a button depending\non the state of the button (pressed, selected, etc.) using XML (no Java) [[info]](http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList)\n* for layout\\_width and layout\\_height, what's the difference between match\\_parent and wrap\\_content?\n* How do you implement Google's new Material Design in an Android application? [[info]](https://developer.android.com/training/material/get-started.html)\n* Difference between View.GONE and View.INVISIBLE? [[info]](https://stackoverflow.com/a/11556629/497132)\n\n## Android Networking\n* Have you use an HTTP Library, which, why, did you like it?\n* Describe how REST APIs work.\n* What are some typical methods of HTTP request/responses? [[GET, POST, PUT, PATCH, DELETE, UPDATE]](http://www.restapitutorial.com/lessons/httpmethods.html)\n\n## Databases\n* Why does Android use SQLite?\n* What libraries have you used for interacting with databases and why did you choose them?\n* What are contract classes? [[info]](https://stackoverflow.com/a/36265603/497132)\n* How do you use the BaseColumns interface to describe your data schema? [[info]](https://stackoverflow.com/a/7900591/497132)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderekargueta%2Fandroid-interview-questions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderekargueta%2Fandroid-interview-questions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderekargueta%2Fandroid-interview-questions/lists"}