1/120
These flashcards cover key terms and concepts related to Android app development as per the course CMSC 436.
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
Hello Android App
The introductory application for Android development.
MainActivity
The default Activity class where the main logic of an Android app is implemented.
Logcat
A logging system in Android that allows developers to view system logs and debug their applications.
XML
eXtensible Markup Language, a markup language used to define the layout of Android applications.
Activity
A single screen in an Android application that users can interact with.
setContentView
A method used to set the layout view for an Activity.
AppCompatActivity
A class in the Android support library that provides compatibility for older versions of Android.
Gradle
An advanced build toolkit used in Android development to automate the build process.
Resource files
Files that contain elements such as strings, layouts, and colors used within the app.
AndroidManifest.xml
The configuration file for an Android application that describes its components and permissions.
Kotlin
A modern programming language that is fully interoperable with Java and is the preferred language for Android development.
SharedPreferences
A simple way to store and retrieve application preferences in Android.
Emulator
A virtual device that mimics the functionality of an Android device.
GestureDetector
A class used to detect various touch gestures like tap, fling, and scroll.
Toast
A temporary message that provides feedback to the user.
ViewGroup
A special view that can contain other views; examples include LinearLayout and RelativeLayout.
Event Handling
The mechanism by which user actions (like clicks and swipes) are handled in Android.
APK
Android Package Kit, the file format used to distribute and install applications on Android.
Activity Lifecycle
The set of states an Activity goes through from creation to destruction.
RecyclerView
A flexible view for providing a limited window into a large data set.
View Binding
A feature that allows developers to more easily write code that interacts with views.
Data Classes
Classes in Kotlin that are solely meant to hold data.
XML Layouts
Files that define the user interface layout for Android applications.
Debugging
The process of identifying and removing errors in software.
findViewById
A method used to find and reference views defined in XML layouts.
Intent
A messaging object used to request an action from another application component.
RecyclerView.Adapter
The intermediary between the RecyclerView and the underlying data.
Android Studio
The official Integrated Development Environment (IDE) for Android development.
Button
A UI element that can be clicked by the user to trigger an action.
TextView
A UI element used to display text to the user.
EditText
A UI element that allows users to input and edit text.
ImageView
A UI element used to display images.
CheckBox
A UI element that allows the user to select one or more options from a set.
RadioButton
A UI element that allows the user to select one option from a mutually exclusive set.
Spinner
A UI element that provides a quick way to select one value from a set.
ProgressBar
A UI element that indicates the progress of an operation.
SeekBar
A UI element that allows the user to select a value from a range by dragging a thumb.
AlertDialog
A small dialog that prompts the user for a decision or displays important information.
Snackbar
A transient message that appears temporarily at the bottom of the screen.
FloatingActionButton
A circular button that triggers the primary action in an app's UI.
Toolbar
A more flexible and customizable replacement for the ActionBar.
CardView
A UI component that displays information in cards with a consistent look and feel.
LinearLayout
A ViewGroup that arranges its children in a single column or row.
RelativeLayout
A ViewGroup that displays child views in relative positions.
FrameLayout
A ViewGroup that blocks out an area on the screen to display a single item.
ConstraintLayout
A flexible ViewGroup that allows you to position and size widgets in a flexible way.
ScrollView
A ViewGroup that provides a scrollable view for contents too large for the screen.
Service
An application component that can perform long-running operations in the background.
Intent Filter
Defines the types of Intents that an Activity, Service, or Broadcast Receiver can respond to.
Broadcast Receiver
An application component that responds to system-wide broadcast announcements.
Content Provider
Manages access to a structured set of data and provides mechanisms for defining security.
PendingIntent
A token that allows a foreign application to execute a predefined piece of your code with your application's permissions.
onCreate()
The first callback method in the Activity's lifecycle, where most initialization logic goes.
onStart()
Called when the activity is becoming visible to the user.
onResume()
Called when the activity will start interacting with the user.
onPause()
Called when the system is about to resume a previous activity or another activity is coming to the foreground.
onStop()
Called when the activity is no longer visible to the user.
onDestroy()
Called before the activity is destroyed, either being finished or by the system to reclaim resources.
onRestart()
Called after onStop() when the activity is being re-displayed to the user.
Context
Provides access to application-specific resources and classes, as well as up-calls for application-level operations.
Room Database
An SQLite object mapping library that is part of the Android Architecture Components.
DAO (Data Access Object)
An interface where you define operations for your Room database, such as queries and insertions.
@Entity (Room)
An annotation used in Room to mark a class as an entity representing a table in the database.
SharedPreferences.Editor
An interface used to modify the values in SharedPreferences.
DataStore
A data storage solution that allows you to store key-value pairs or typed objects, built on Kotlin Coroutines and Flow.
SQLite Database
A lightweight relational database system integrated into Android for local structured data storage.
Internal Storage
The storage accessible only by the application that created it, usually for sensitive or temporary data.
External Storage
Publicly accessible storage on the device, potentially shared with other apps and user-visible.
Retrofit
A type-safe HTTP client for Android and Java by Square, often used for REST APIs.
OkHttp
An efficient HTTP client by Square that helps in making network requests and handling caching.
JSON (JavaScript Object Notation)
A lightweight data-interchange format often used in web APIs and network communication.
GSON
A Java library developed by Google that can be used to convert Java Objects into their JSON representation and vice versa.
Coroutines (Kotlin)
A concurrency design pattern in Kotlin for asynchronous programming, often used for background tasks without blocking threads.
launch (Coroutine Builder)
A coroutine builder that starts a new coroutine, typically for 'fire-and-forget' operations.
async (Coroutine Builder)
A coroutine builder that starts a new coroutine and returns its result as a Deferred value, suitable for parallel computations.
withContext (Coroutine)
A suspend function that allows changing the coroutine's context, often used to switch dispatchers (e.g., from IO to Main).
Handler (Android)
Allows sending and processing Message and Runnable objects associated with a thread's MessageQueue, typically for UI updates from background threads.
Looper (Android)
A class that maintains a queue of messages for a thread and loops through them, enabling message processing.
ViewModel
A class designed to store and manage UI-related data in a lifecycle-conscious way, surviving configuration changes.
LiveData
An observable data holder class that is lifecycle-aware, meaning it respects the lifecycle of other app components like Activities and Fragments.
Navigation Component
A library that handles in-app navigation, from simple button clicks to more complex patterns and deep links.
Data Binding Library
A support library that allows you to bind UI components in your layouts to data sources using a declarative format, reducing boilerplate code.
Repository Pattern (Architecture)
An architectural pattern that abstracts the way data is fetched and stored from multiple data sources (e.g., network, database, preferences).
ADB (Android Debug Bridge)
A versatile command-line tool that lets you communicate with an emulator instance or connected Android device for debugging and development tasks.
Lint (Android Studio)
A static code analysis tool in Android Studio that helps identify and correct coding errors, structural problems, and common bugs.
Android Profiler
A suite of tools in Android Studio to measure an app's CPU, memory, network, and energy usage, aiding in performance optimization.
Signing an APK
The process of digitally signing your Android application with a certificate to ensure its authenticity and integrity before distribution.
ProGuard/R8
Tools used for shrinking, optimizing, and obfuscating code at build time, reducing APK size and making reverse engineering harder.
build.gradle (app)
The Gradle script for an app module, containing configurations specific to that module, like dependencies and build types.
build.gradle (project)
The top-level Gradle script for the entire project, defining common configurations, repositories, and plugins.
R.java
An auto-generated file that contains resource IDs for all the resources (e.g., layouts, drawables, strings) in your project.
Runtime Permissions
Permissions that must be requested by the app at runtime, especially for dangerous permissions that access sensitive user data.
Normal Permissions
Permissions that are granted automatically by the system upon app installation as they pose little risk to user's privacy or device operation.
NotificationChannel
Introduced in Android 8.0 (API 26) and higher, required to categorize notifications and allow users fine-grained control over them.
NotificationManager
A system service that allows you to send notifications to the user from your application.
Extension Functions (Kotlin)
Functions that allow adding new functionality to an existing class without inheriting from it or using design patterns like Decorator.
Null Safety (Kotlin)
A feature in Kotlin that helps eliminate NullPointerExceptions by making nullability explicit in the type system.
object (Kotlin)
Used to declare a singleton class in Kotlin, ensuring only one instance exists throughout the application.
companion object (Kotlin)
A special object declared inside a class that holds members (properties and functions) that are conceptually static to the class.
Sealed Class (Kotlin)
A class that represents a restricted class hierarchy, where a value can have one of the types from a limited set of subclasses.