I hate theory.. But being at startup, I need to know this!
Android applications are written in the Java language. The compiled Java code with necessary files required by the application is bundled into an Android package (.apk file). Bundling is done by the android package aapt. All the compiled code in a .apk will be called as ‘application’, which will be redistributed and downloaded inside the phones.
Every application runs in its own Linux process. Android takes care of starting and shutting down the applications.
Each process has its own virtual machine (VM), so application code runs in isolation from the code of all other applications.
Each application is assigned a unique Linux user ID. Permissions are set so that the application’s files are visible only to that user and application only.
An activity presents a visual user interface for one focused task the user can do. An application can consist of one or more activities. One of the activities in the application will be marked as first, moving from one to another is performed by current activity start the next activity.
Service – it doesnt have a UI, but runs in the background for to do certain continuous tasks.
A broadcast receiver is a component that receives and reacts to broadcast announcements. Many broadcasts originate in system code — for example, announcements that the timezone has changed, that the battery is low, that a picture has been taken, or that the user changed a language preference. Applications can also initiate broadcasts — for example, to let other applications know that some data has been downloaded to the device and is available for them to use.
A content provider makes a specific set of the application’s data available to other applications. The data can be stored in the file system, in an SQLite database, or in any other manner that makes sense