Android developer glossary (CloudMonk.io)
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}}