Android is an open source which is introduced by the google. It is software package to develop application which can be further executed on different device like mobile, tablet etc. Android runs on the Linux kernel system. We use SQLite database in android.
It supports so many languages like java, C++, C# etc. But java is the most commonly language used in android.
Why Android ?
|Sr.No.||Feature & Description|
|1||Beautiful UI: Android OS basic screen provides a beautiful and intuitive user interface.|
|2||Connectivity: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX.|
|3||Storage: SQLite, a lightweight relational database, is used for data storage purposes.|
|4||Media support: H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1, MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP.|
|5||Messaging: SMS and MMS|
|7||Multi-touch: Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero.|
|8||Multi-tasking: User can jump from one task to another and same time various application can run simultaneously.|
|9||Resizable widgets: Widgets are resizable hence, users can expand them to show more content or shrink them to save space.|
|10||Multi-Language: Supports both single direction and bi-directional text.|
|11||GCM: Google Cloud Messaging (GCM) is a service that lets developers send short message data to their users on Android devices, without needing a proprietary sync solution.|
|12||Wi-Fi Direct: A technology that lets apps discover and pair directly, over a high-bandwidth peer-to-peer connection.|
|13||Android Beam: A popular NFC-based technology that lets users instantly share, just by touching two NFC-enabled phones together.|
Categories of applications
Android operating system is a stack of software components which is roughly divided into five sections and four main layers, such as
At the bottom of the layers is Linux – Linux 3.6 with approximately 115 patches. This provides a level of abstraction between the device hardware, additionally it contains all the essential hardware drivers like camera, keypad, display etc. Also, the kernel handles all the things that Linux is really good at such as networking and a vast array of device drivers, which take the pain out of interfacing to peripheral hardware.
On the top of linux kernel, their are Native libraries such as WebKit, OpenGL, FreeType, SQLite, Media, C runtime library (libc) etc. The WebKit library is responsible for browser support. SQLite is for database. FreeType for font support. Media for playing and recording audio and video formats.
This is the third section of the architecture and available on the second layer from the bottom. This section provides a key component called Dalvik Virtual Machine which is a kind of Java Virtual Machine especially designed and optimized for Android.
The Dalvik VM makes use of Linux core features. Such as memory management and multi-threading, which is intrinsic in the Java language. The Dalvik VM enables every Android application to run in its own process, with its own instance of the Dalvik virtual machine.
The Android runtime also provides a set of core libraries which enable Android application developers to write Android applications using standard Java programming language.
The Application Framework layer provides many higher-level services to applications in the form of Java classes. Application developers are also allowed to make use of these services in their applications.
You will find all the Android application at the top layer. You will write your application to be installed on this layer only. Application examples such as Contacts Books, Browser, Games etc.
Android Studio is the official Integrated Development Environment (IDE) for Android app development, based on IntelliJ IDEA . On top of IntelliJ’s powerful code editor and developer tools, Android Studio offers even more features that enhance your productivity when building Android apps, such as:
- A flexible Gradle-based build system
- A fast and feature-rich emulator
- A unified environment where you can develop for all Android devices
- Apply Changes to push code and resource changes to your running app without restarting your app
- Code templates and GitHub integration to help you build common app features and further import sample code
- Extensive testing tools and frameworks too
- Lint tools to catch performance, usability, version compatibility, and other problems as well
- C++ and NDK support too
- Built-in support for Google Cloud Platform, further making it easy to integrate Google Cloud Messaging and App Engine
- Screen reader compatibility: Screen readers are currently only supported for Android Studio on Windows. A variety of screen readers are available for Windows, but the compatibility with Android Studio varies.
- Activate support for screen readers: This setting ensures that the Android Studio experience is optimized for screen reader users, for example by customizing keyboard navigation. If you are using Jaws, remember that you must start Jaws before you start Android Studio in order for this setting to take effect.
- Disable code folding: By default, the Android Studio editor folds part of the text into expandable regions. For example, the “import” list at the beginning of a Java source file is folded into a single line containing the text “
- Disable auto-insertion features: By default, Android Studio automatically inserts closing curly braces, quotes, or parentheses.
- Use the keyboard: You can use keyboard shortcuts to navigate through all controls in Android Studio.
- Disable automatic code completion popup: By default, Studio automatically shows the code completion popup when certain keystrokes are typed, and if it finds only a single match, auto-inserts that match. This behavior can create a confusing experience with screen readers.
- Access errors, warnings, and code inspections: Use your keyboard to view and navigate through errors, warnings, and code inspections.
- Use tab indentation: By default, Android Studio uses the space character for indentation. Screen reader users may prefer tab indentation because the verbalization is more concise.
- Use Layout Editor