1 - What is the Android system?

Android is a mobile operating system based on the Linux kernel and currently developed by Google.
Launched in June 2007 following Google's takeover in 2005 of the startup of the same name, the system was first designed for smartphones and tablets, and then diversified into connected objects and computers like televisions Android TV), cars (Android Auto), computers (Android-x86) and smartwatch (Android Wear).
In 2015, Android is the most widely used mobile operating system in the world, with Apple's iOS, with more than 80% market share in smartphones.

2 - Characteristics of Android OS

In the Developer's Guide, Android is defined as a software stack, a set of software designed to provide a turnkey solution for mobile devices - smartphones and tablets. This stack includes an operating system (including a Linux kernel), key applications such as web browser, phone and address book, and intermediate software between the operating system and applications. The set is organized into five distinct layers:

    The Linux kernel with the drivers;
    Software libraries such as WebKit / Blink, OpenGL ES, SQLite or FreeType;
    An execution environment and libraries to run programs intended for the Java platform;
    A framework - application development kit;
    A batch of standard applications including a desktop environment, an address book, a

web browser, and a phone. The services offered by Android make it easy to operate GSM, Bluetooth, Wi-Fi and UMTS telecommunications networks, manipulate media, including H.264 video, MP3 audio and JPEG images, Other formats, operation of sensors such as motion sensors, camera, compass and GPS receiver, use of touch screen, database storage, 2D or 3D rendering Using the graphics processor, web page display, multitasking applications and sending SMS8,7 messages. Although not part of the software stack, the development environment that includes a phone emulator and a plugin for Eclipse can also be considered a feature of Android7. And Google Play, an online store for purchasing and downloading apps for Android, plays a vital role in the popularity of this operating system. Android is distributed in open source under Apache license. The license allows manufacturers who incorporate Android into their devices to make changes to distinguish themselves from their competitors8 and has been adopted by many manufacturers of competing products of the iPhone. The Linux kernel, used for the foundations of Android, provides the classic services of operating systems: use of peripherals, access to telecommunication networks, memory and process manipulation and access control. This is a branch of the Linux kernel, modified for use on mobile devices. The X Window System, GNU tools, and some configuration files that are usually found in Linux distributions are not included in Android. The Android development team has made many improvements to the Linux kernel, and the decision was taken by the Linux development community to incorporate these improvements into the Linux kernel 3.39.

3 - Android Runtime (ART)

Starting with version 5.0 released in 2014, the runtime ART (Android RunTime) replaces the Dalvik virtual machine. This more powerful execution environment was developed by Google to mitigate the limited potential of Dalvik, created in 2007. With ART, unlike the java virtual machine, .apk files are no longer launched directly, but decompressed and launched with New libraries and APIs; The applications take up more space (+ 20%), but the gains in performance and autonomy of the batteries are consequent (+20 to 30%).

4 - Android and the Java Platform

Until version 4.4, Android has a virtual machine named Dalvik, which allows to execute programs planned for the Java platform. It is a virtual machine designed from the start for mobile devices and their resources reduced - little computing power and little memory7. Indeed contemporary mobile devices of 2011 have the computing power of a personal computer ten years old10. Most, if not all, of the applications are executed by the Dalvik10 virtual machine.
The Dalvik bytecode is different from the Oracle Java Virtual Machine (JVM), and the process of constructing an application is different: the application source code in Java is first compiled with a Standard compiler that produces bytecode for JVM (standard bytecode of the Java platform) then the latter is translated into bytecode for Dalvik by a program included in Android, bytecode which can then be executed7.
The entire standard library of Android looks like J2SE (Java Standard Edition) of the Java platform. The main difference is that the AWT and Swing GUI libraries are replaced with Android7 libraries.
The development of applications for Android is done with a personal computer on Mac OS, Windows or Linux using the JDK of the Java platform and tools for Android. Tools that allow you to manipulate the phone or tablet, simulate it with a virtual machine, create APK files (Android package files), debug applications and add a digital signature. These tools are provided as a plugin for the Eclipse8 development environment.
The library of Android allows the creation of graphical interfaces according to a process similar to the fourth generation frameworks that are XUL, JavaFX or Silverlight: the graphical interface can be constructed by declaration and can be used with several skins - graphic charts. Programming consists of declaring the composition of the interface in XML files; The description may include resources (texts and pictograms). These statements are then transformed into objects such as windows and buttons, which can be manipulated by Java10 programming. Screens or windows (activities in Android jargon), are filled with multiple views; Each view being a GUI part (button, list, checkbox ...). Android 3.0, for tablets, introduces the notion of fragments: panels containing several visual elements. A tablet having - unlike a telephone - usually enough space on the screen for several panels10.

Leave a Reply