In Android, application components are the basic building blocks of an application and these components will act as an entry point to allow the system or user to access our app.
The following are the basic core application components that can be used in Android applications.
Activities
Intents
Content Providers
Broadcast Receivers
Services
All these application components are defined in the android app description file (AndroidMainfest.xml) as shown below.
<?xml version="1.0" encoding="utf-8"?>
<manifest …..>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher" ……>
<activity
android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
…….
</application>
</manifest>
Android Activities
In android, Activity represents a single screen with a user interface (UI) and it will act as an entry point for the users to interact with the app.
For example, a contacts app that is having multiple activities like showing a list of contacts, adding a new contact, and another activity to search for the contacts. All these activities in the contact app are independent of each other but will work together to provide a better user experience.
Android Intents
In android, Intent is a messaging object which is used to request an action from another component.
In android, intents are mainly used to perform the following things.
Starting an Activity
Starting a Service
Delivering a Broadcast
There are two types of intents available in android, are
Implicit Intents
Explicit Intents
we Will see them in detail.
Android Services
In android, Service is a component that keeps an app running in the background to perform long-running operations based on our requirements. For Service, we don’t have any user interface and it will run the apps in the background like playing music in the background when the user is in a different app.
We have two types of services available in android, are
Local Services
Remote Services
Android Broadcast Receivers
In android, Broadcast Receiver is a component that will allow a system to deliver events to the app like sending a low-battery message to the app. The apps can also initiate broadcasts to let other apps know that required data is available in a device to use it.
Generally, we use Intents to deliver broadcast events to other apps and Broadcast Receivers use status bar notifications to let the user know that a broadcast event occurs.
Android Content Providers
In android, Content Providers are useful to exchange data between the apps based on the requests. The Content Providers can share the app data that stores in the file system, SQLite database, on the web, or any other storage location that our app can access.
By using Content Providers, other apps can query or modify the data of our app based on the permissions provided by the content provider. For example, android provides a Content Provider (ContactsContract.Data) to manage contacts information, by using proper permissions any app can query the content provider to perform read and write operations on contacts information.
Additional Components
In Android, we have additional components which are used to build the relationship between the above components (Activities, Intents, Content Providers, Services, and Broadcast Receivers) to implement our application logic, those are
Component | Description |
Fragments | These are used to represent the portion of the user interface in an activity |
Layouts | These are used to define the user interface (UI) for an activity or app |
Views | These are used to build a user interface for an app using UI elements like buttons, lists, etc. |
Resources | To build an android app we required external elements like images, audio files, etc. other than coding |
Manifest File | It’s a configuration file (AndroidManifest.xml) for the application and it will contain information about Activities, Intents, Content Providers, Services, Broadcast Receivers, permissions, etc. |
These are the main application components that are required to build an android application based on our requirements.