While diving into development we must know the basic things briefly, then only we can build things better. We need to setting strong foundation, then we can easily build blocks on top of it.
An Activity is an application component that provides a screen with which users can interact in order to do something, such as dial the phone, take a photo, send an email, or view a map. Each activity is given a window in which to draw its user interface.
A Fragment represents a behaviour or a portion of user interface in an Activity. You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities.(In viewpager every tab shows an individual fragment)
Intents are an essential part of the Android ecosystem. They are used to express an action to be performed. Intents allow you to interact with components from the same applications as well as with components contributed by other applications. It can be classified into implicit and explicit intents.
Implicit intent : It does not name a specific component, but instead declare a general action to perform, which allows a component from another app to handle it.
Explicit Intent : It specifies the component to start by name. You’ll typically use an explicit intent to start a component in your own app, because you know the class name of the activity or service you want to start.
Base class for maintaining global application state.The Application class, or your subclass of the Application class, is instantiated before any other class when the process for your application/package is created.
Content Provider :
A content provider component supplies data from one application to others on request. Such requests are handled by the methods of the ContentResolver class. A content provider can use different ways to store its data and the data can be stored in a database, in files, or even over a network.