Android is a Linux-based operating system, mostly used in mobile devices. The distribution of Android also includes key applications and middleware.
The Android SDK allows the development of applications using the Java programming language, and also includes various development tools with many utilities, including testing applications on different versions of Android through a simulator, code debugging and access to physical terminals.
In 2005 Google bought the company Android Inc., the original developer of Android. It recently released version 4.2 which includes new features such as being able to take 360-degree pictures, multi-user support, native support for connecting to TV wirelessly, etc. Curiously enough, Android versions are named after desserts:
- Version 1.5: Cupcake
- Version 1.6: Donut
- Version 2.0 / 2.1: Eclair
- Version 2.2: Froyo
- Version 2.3: Gingerbread
- Version 3.0: Honeycomb
- Version 4.0: Ice Cream Sandwich
- Version 4.1/4.2: Jelly Bean
Android architecture consists of the following layers:
- Linux kernel: Based on version 2.6 of the Linux kernel.
- Libraries: Including view managers, 3D library, SGL, multimedia framework, FreeType, SSL, SQLite, WebKit, C system library, etc.
- Android Runtime: Formed by core libraries equivalent to the standard Java API and Davlik, which is equivalent to the Java virtual machine.
- Application Framework: Application layer reusable components.
- Applications: Set of basic applications, third-party applications, widgets and native applications.
From our experience developing in Android we feel its strengths are:
- Rapid adaptation of J2EE professionals. This is because the application programming language is Java and the recommended development IDE is Eclipse. It is only necessary to assimilate specific Android programming concepts such as Activity, Notifications, etc.
- A large and growing market.
- A wide community of developers.
- Constantly evolving.
- Backed by major companies in the sector: the Open Handset Alliance (OHA) including Google.
Its weaknesses are:
- Too many live versions installed at the same time on the market (fragmentation) due to:
– Versions being released too often.
– Customisation by manufacturers slows updates.
- Incompatibility between versions: Difficulty in covering a large percentage of the installed versions on the market. If API functions of the latest versions are used they will not be compatible with many devices on the market that use older APIs.
- Need for numerous tests, due to the large number of devices, screen sizes and densities.
- Immaturityin code packets generated by the community, which are not robust because they are very recent and not all errors have been debugged.
- Different behaviours in the same software caused by evolution changing the structure in version changes.
To Alvantia, Android is a bet on the future, because we believe that the future is in mobile devices. We also strongly believe in the Open Source model on which it is based, and which several years ago led to the development of Java. Open Source means that Android is a living product driven by a large number of developers sharing code and making their expertise available to the growing community of developers