If you’re interested in developing an Android app, you should download the Android SDK (Software Development Kit), as it will provide API libraries and necessary tools to build, test and debug applications.
For first timers, the ADT (Android Developer Tools) Bundle is highly recommended, as it includes all the essential SDK components.
All Android applications are written in the Java programming language and are composed of one or more components, including activities, services, content providers and broadcast receivers. Each of these performs a different role and can be activated individually.
Essential, Android is a multi-user Linux system where each application is a different user. Each of these will be assigned a unique Linux ID while the system sets permissions for the application’s entire file.
All of the applications components must be contained in the manifest file, which has to be at the root of the project directory. This should declare all components and requirements, such as the minimum version of Android required and hardware configurations.
There should also be alternatives for images, strings and layout files for different device configurations, such as contrasting languages and screen sizes.
An application’s code runs in isolation from others, as each process has its own virtual machine (VM). Each application only has access to the components it requires and no more. This means Android is an incredibly secure environment as permission is always required.
However, it is still possible to share data across applications by using the same Linux user ID. To conserve system resources, applications with the same ID can also run in the same Linux process and share a VM.
An application can also request permission to access device and personal data such as contacts, photos and messages.