Android Basics
Activities, Intents, and Services
- Activities:
- An activity represents a single screen with a user interface, like a window or a form.
- In Android, activities are the entry point for interacting with the user. Each activity in an app is independent, and you can move between them using Intents.
- Example: A login screen can be an activity, and the home screen after logging in can be another activity.
- Intents:
- Intents are messages that allow components, such as activities, services, and broadcast receivers, to request an action from another component. Intents can be used to start an activity, send a broadcast, or start a service.
- Example: An intent can be used to open a web page or start a new activity.
- Services:
- A service is a component that runs in the background to perform long-running operations or to perform work for remote processes. Unlike activities, services do not have a user interface.
- Example: A service might play music in the background while the user is interacting with other apps.
Lifecycle of an Android Activity
- The lifecycle of an Android activity is crucial for managing its state and ensuring smooth transitions between different states. The key stages in an activity’s lifecycle are:
- onCreate(): Called when the activity is first created. This is where you initialize your activity, load UI components, and set up listeners.
- onStart(): The activity becomes visible to the user.
- onResume(): The activity starts interacting with the user. At this point, it is at the top of the activity stack.
- onPause(): Called when the system is about to put the activity in the background. This is where you should save any unsaved changes or pause ongoing tasks.
- onStop(): The activity is no longer visible to the user.
- onDestroy(): Called before the activity is destroyed. This is where you clean up any resources that were being used.
- onRestart(): Called after the activity has been stopped and is about to be started again.
UI Components and Layouts
Introduction to XML
- XML (eXtensible Markup Language):
- Android uses XML to define the layout of its user interface. XML allows developers to create a hierarchy of UI elements, such as buttons, text fields, and images, that can be arranged in various layouts.
- Each XML element represents a UI component, and attributes define properties like size, color, and text.
Common Layouts
- Linear Layout:
- Aligns all children in a single direction—either vertically or horizontally. You can specify the layout direction using android:orientation=”vertical” or android:orientation=”horizontal”.
- Example: A vertical Linear Layout might stack a TextView, an EditText, and a Button one below the other.
- Relative Layout:
- Enables positioning of UI components relative to each other or the parent container. You can use attributes like layout_alignParentTop, layout_below, and layout_toRightOf to arrange elements.
- Example: A Relative Layout might place a Button directly below a TextView or align a Button to the right edge of the screen.
- Constraint Layout:
- Provides a more flexible and powerful system for positioning and sizing widgets. Constraints are used to define the relationships between UI components.
- Example: You can anchor a Button to the center of the screen or constrain an image to the top-left corner while keeping it at a specific aspect ratio.
Basic UI Components
- Text View:
- Used to display text to the user. It is a read-only view, meaning users cannot interact with it like they can with an Edit Text.
- Example: A Text View might display a label like “Username” in a login form.
- Button:
- A clickable UI element that performs an action when clicked. You can define the button’s text, background color, and size.
- Example: A Button might submit a form or navigate to another activity when pressed.
- Edit Text:
- An input field where users can enter text. It’s commonly used in forms, such as login or search fields.
- Example: An Edit Text might be used to enter a username or password.