Android developer glossary Page

Android Developer Glossary



#redirect Android Developer Glossary
Android Development Glossary

Return to Android Development, Apple iOS Developer Glossary


* Provide a Android developer glossary of the top 75 Android development concepts sorted by the most commonly used. For each concept include a brief description and the URL for the Android official documentation and the appropriate GitHub repo or other source code repository. Answer using MediaWiki format.


Creating a detailed glossary for Android development involves covering a wide range of concepts from basic components to advanced functionalities and frameworks. Here's a compilation of 75 key concepts in Android development, including their descriptions and links to the official Android documentation. Given the nature of Android's open-source ecosystem, many components and tools are directly maintained by Google and the Android Open Source Project (AOSP), while others are supported by the community on GitHub.

```mediawiki
= Android Developer Glossary =

1. Activity


A single screen with a user interface in an Android app.
[Documentation: https://developer.android.com/guide/components/activities]

2. Fragment


A modular section of an activity, which has its own lifecycle and receives its own input events.
[Documentation: https://developer.android.com/guide/components/fragments]

3. Intent


A messaging object used to request an action from another app component.
[Documentation: https://developer.android.com/guide/components/intents-filters]

4. Service


A component that performs long-running operations in the background.
[Documentation: https://developer.android.com/guide/components/services]

5. Content Provider


A component that manages access to a structured set of data.
[Documentation: https://developer.android.com/guide/topics/providers/content-providers]

6. BroadcastReceiver


A component that enables the system to deliver events to the app outside of a regular user flow.
[Documentation: https://developer.android.com/guide/components/broadcasts]

7. View


The basic building block for user interface components.
[Documentation: https://developer.android.com/reference/android/view/View]

8. Layout


Defines the visual structure for a user interface.
[Documentation: https://developer.android.com/guide/topics/ui/declaring-layout]

9. XML Layout Files


XML files that describe the UI layout for activities and fragments.
[Documentation: https://developer.android.com/guide/topics/ui/declaring-layout]

10. Gradle


The build system for Android.
[Documentation: https://developer.android.com/studio/build]
[Source: https://github.com/gradle/gradle]

11. Android Manifest


The file that declares the essential information the system needs to run the app components.
[Documentation: https://developer.android.com/guide/topics/manifest/manifest-intro]

12. Android SDK


The software development kit for Android, providing the necessary tools and libraries.
[Documentation: https://developer.android.com/studio]

13. Android Studio


The official Integrated Development Environment (IDE) for Android development.
[Documentation: https://developer.android.com/studio]

14. APK (Android Package)


The package file format used by Android for distribution and installation of mobile apps.
[Documentation: https://developer.android.com/guide/components/fundamentals#Components]

15. Android Jetpack


A suite of libraries to help developers follow best practices, reduce boilerplate code, and write code that works consistently across Android versions and devices.
[Documentation: https://developer.android.com/jetpack]

16. ViewModel


A class designed to store and manage UI-related data in a lifecycle conscious way.
[Documentation: https://developer.android.com/topic/libraries/architecture/viewmodel]

17. LiveData


An observable data holder class that respects the lifecycle of other app components.
[Documentation: https://developer.android.com/topic/libraries/architecture/livedata]

18. Data Binding


A library that allows you to bind UI components in your layouts to data sources in your app.
[Documentation: https://developer.android.com/topic/libraries/data-binding]

19. Room


An abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
[Documentation: https://developer.android.com/training/data-storage/room]

20. Retrofit


A type-safe HTTP client for Android and Java.
[Documentation: https://square.github.io/retrofit/]
[Source: https://github.com/square/retrofit]

21. Picasso


A powerful image downloading and caching library for Android.
[Documentation: https://square.github.io/picasso/]
[Source: https://github.com/square/picasso]

22. Glide


An image loading and caching library for Android focused on smooth scrolling.
[Documentation: https://bumptech.github.io/glide/]
[Source: https://github.com/bumptech/glide]

23. RecyclerView


A flexible view for providing a limited window into a large data set.
[Documentation: https://developer.android.com/guide/topics/ui/layout/recyclerview]

24. ConstraintLayout


A layout that allows you to create large and complex layouts with a flat view hierarchy.
[Documentation: https://developer.android.com/reference/androidx/constraintlayout/widget/ConstraintLayout]

25. Navigation Component


Helps you implement navigation, from simple button clicks to

more complex patterns.
[Documentation: https://developer.android.com/guide/navigation/navigation-getting-started]

26. WorkManager


An API that makes it easy to schedule deferrable, asynchronous tasks that must be run reliably.
[Documentation: https://developer.android.com/topic/libraries/architecture/workmanager]

27. Espresso


A testing framework for writing concise, beautiful, and reliable Android UI tests.
[Documentation: https://developer.android.com/training/testing/espresso]

28. Android Testing Support Library


A set of APIs for testing Android apps.
[Documentation: https://developer.android.com/training/testing/set-up-project]

29. Material Design


A design system for creating a cohesive look and feel for your app.
[Documentation: https://material.io/design]
[Source: https://github.com/material-components/material-components-android]

30. MVVM (Model-View-ViewModel)


An architectural pattern for implementing user interfaces.
[Documentation: https://developer.android.com/jetpack/guide]

31. Gradle Plugins


Extensions to the build script that provide additional tasks and configuration options.
[Documentation: https://developer.android.com/studio/build/gradle-plugin]

32. ADB (Android Debug Bridge)


A versatile command-line tool that lets you communicate with a device.
[Documentation: https://developer.android.com/studio/command-line/adb]

33. ProGuard


A tool for code shrinking, obfuscation, and optimization.
[Documentation: https://developer.android.com/studio/build/shrink-code]

34. Android Emulator


A tool that allows you to run Android applications on your computer.
[Documentation: https://developer.android.com/studio/run/emulator]

35. UI Automator


A testing framework for performing automated UI testing on Android apps.
[Documentation: https://developer.android.com/training/testing/ui-automator]

36. AndroidX


The open-source project that the Android team uses to develop, test, package, version, and release libraries within Jetpack.
[Documentation: https://developer.android.com/jetpack/androidx]

37. Firebase


A platform developed by Google for creating mobile and web applications.
[Documentation: https://firebase.google.com/docs/android/setup]
[Source: https://github.com/firebase/firebase-android-sdk]

38. Google Play Services


A collection of APIs that enable features like location, sign-in, and many others.
[Documentation: https://developers.google.com/android/guides/overview]

39. ANR (Application Not Responding)


A dialog that appears to the user when an application has been unresponsive for a long period of time.
[Documentation: https://developer.android.com/topic/performance/vitals/anr]

40. APK Split


A feature that allows you to serve a customized APK for each user's device configuration, making your app smaller and faster to download.
[Documentation: https://developer.android.com/studio/build/configure-apk-splits]

41. App Bundle


A publishing format that includes all your app’s compiled code and resources, but defers APK generation and signing to Google Play.
[Documentation: https://developer.android.com/guide/app-bundle]

42. Canvas


A class that holds the "draw" calls, allowing for custom drawing in Android.
[Documentation: https://developer.android.com/reference/android/graphics/Canvas]

43. Dagger 2


A fully static, compile-time dependency injection framework for both Java and Android.
[Documentation: https://dagger.dev/]
[Source: https://github.com/google/dagger]

44. Flavors


A feature of the Android Gradle plugin that allows you to configure multiple variants of your app.
[Documentation: https://developer.android.com/studio/build/build-variants#flavor-dimensions]

45. Gson


A Java library that can be used to convert Java Objects into their JSON representation.
[Documentation: https://github.com/google/gson]
[Source: https://github.com/google/gson]

46. Hilt


A dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project.
[Documentation: https://dagger.dev/hilt/]
[Source: https://github.com/google/dagger]

47. Instant App


An app experience that can be run without needing to be installed.
[Documentation: https://developer.android.com/topic/google-play-instant]

48. Jetifier


A tool to migrate libraries to use AndroidX by rewriting their binaries.
[Documentation: https://developer.android.com/studio/command-line/jetifier]

49. LeakCanary


A memory leak detection library for Android.
[Documentation: https://square.github.io/leakcanary/]
[Source: https://github.com/square/leakcanary]

50. Lint


A static tool that scans your Android project

source code for potential bugs and optimization improvements for correctness, security, performance, usability, accessibility, and internationalization.
[Documentation: https://developer.android.com/studio/write/lint]

51. Mockito


A mocking framework for unit tests in Java.
[Documentation: https://site.mockito.org/]
[Source: https://github.com/mockito/mockito]

52. OkHttp


An HTTP client that’s efficient by default: HTTP/2 support, connection pooling, gzip, and caching.
[Documentation: https://square.github.io/okhttp/]
[Source: https://github.com/square/okhttp]

53. Robolectric


A framework that brings fast and reliable unit tests to Android.
[Documentation: http://robolectric.org/]
[Source: https://github.com/robolectric/robolectric]

54. RxJava


A library for composing asynchronous and event-based programs using observable sequences.
[Documentation: https://github.com/ReactiveX/RxJava]
[Source: https://github.com/ReactiveX/RxJava]

55. SharedPreferences


A way to save and retrieve persistent key-value pairs of primitive data types.
[Documentation: https://developer.android.com/reference/android/content/SharedPreferences]

56. SQLite


A C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine.
[Documentation: https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase]

57. Testing Frameworks


Tools and libraries to help you test your Android applications.
[Documentation: https://developer.android.com/training/testing/start/index.html]

58. Toast


A small message that pops up at the bottom of the screen to display information.
[Documentation: https://developer.android.com/guide/topics/ui/notifiers/toasts]

59. Vector Drawable


A type of drawable that's scalable without losing definition.
[Documentation: https://developer.android.com/guide/topics/graphics/vector-drawable-resources]

60. ViewBinding


A feature that allows you to more easily write code that interacts with views by providing compile-time safety when referencing views in your code.
[Documentation: https://developer.android.com/topic/libraries/view-binding]

61. WebView


A view that displays web pages.
[Documentation: https://developer.android.com/guide/webapps/webview]

62. XML Drawables


A way to describe certain types of graphical assets in XML.
[Documentation: https://developer.android.com/guide/topics/resources/drawable-resource]

63. Android KTX


A set of Kotlin extensions that are part of Android Jetpack, designed to make Kotlin development on Android more concise, pleasant, and idiomatic.
[Documentation: https://developer.android.com/kotlin/ktx]

64. Coroutines


A concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
[Documentation: https://developer.android.com/kotlin/coroutines]
[Source: https://github.com/Kotlin/kotlinx.coroutines]

65. Deep Links


URLs that take users directly to specific content in your app.
[Documentation: https://developer.android.com/training/app-links/deep-linking]

66. Doze and App Standby


Battery optimization features introduced in Android 6.0 (API level 23) to improve battery life.
[Documentation: https://developer.android.com/training/monitoring-device-state/doze-standby]

67. FCM (Firebase Cloud Messaging)


A cross-platform messaging solution that lets you reliably send messages at no cost.
[Documentation: https://firebase.google.com/docs/cloud-messaging]
[Source: https://github.com/firebase/firebase-android-sdk/tree/master/firebase-messaging]

68. Google Maps API


Allows you to display maps and customize them within your Android application.
[Documentation: https://developers.google.com/maps/documentation/android-sdk/intro]

69. In-app Billing


APIs that support in-app purchases in Android apps.
[Documentation: https://developer.android.com/google/play/billing]

70. Jetpack Compose


A modern toolkit for building native Android UI.
[Documentation: https://developer.android.com/jetpack/compose]
[Source: https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-main/compose/]

71. MotionLayout


A layout type that helps manage motion and widget animation in your app.
[Documentation: https://developer.android.com/reference/androidx/constraintlayout/motion/widget/MotionLayout]

72. Paging Library


Helps you load and display small chunks of data at a time.
[Documentation: https://developer.android.com/topic/libraries/architecture/paging]

73. Parcelable


An Android interface for classes whose instances can be written to and restored from a Parcel.
[Documentation: https://developer.android.com/reference/android/os/Parcelable

]

74. Sensors


Access and manage sensor hardware on Android devices.
[Documentation: https://developer.android.com/guide/topics/sensors/sensors_overview]

75. Themes and Styles


Define the look and feel of your app.
[Documentation: https://developer.android.com/guide/topics/ui/look-and-feel/themes]

```

This glossary covers foundational elements of Android development, including official documentation and some source repositories for key libraries and tools. The Android development ecosystem is vast, and these concepts provide a strong foundation for understanding and working within it. Keep in mind that the Android landscape is continually evolving, so staying updated with the latest documentation and best practices is crucial.

{{navbar_android}}

{{navbar_footer}}