Ilias Tsagklis

About Ilias Tsagklis

Ilias Tsagklis is a senior software engineer working in the telecom domain. He is an applications developer in a wide variety of applications/services. Ilias is co-founder and Executive Editor at Java Code Geeks.

Embracing the Android awesomeness: A quick overview

Almost three years have passed since Google launched the Android OS, aiming to conquer the cut-throating mobile world, after having succeeded in the internet world. Android is an operating system for mobile devices that includes middleware and key applications. However, its use is not limited to smartphones, but it can also be found Tablet Computers, E-Reader Devices, even netbooks. There is Linux under the hood after all. Initially, only a few devices were supported, with the first one being the HTC Dream, released on October 2008. The list of Android devices is growing ever since.

Google has released most of the Android code under the Apache License. The Apache License is considered “enterprise friendly” and vendors can add proprietary extensions without submitting those back to the open source community. You can actually download the Android source code and build your own device intended to run the Android software stack. Or you know, just mess around with it.

Google is not alone in this difficult game. The Open Handset Alliance (OHA), a business alliance of 65 firms for developing open standards for mobile devices has been created (with Google on the front, of course). Big names have joined, namely HTC, Intel, Motorola, Qualcomm, Texas Instruments, Samsung, LG, T-Mobile etc.

OHA’s philosophy is to deliver an open platform, revolutionizing the way the mobile world operates. The moto behind the application creation is that “All applications are created equal”. This means that both phone’s core applications and third-party applications have equal access to a phone’s capabilities.

If you are a developer and want to develop for the Android OS, then the Android SDK is the way to go. The Android SDK is used, including a comprehensive set of development tools. All major platforms (Windows, Mac and Linux are supported). The main language used for building applications is… Java. However, the software does not run on your ordinary Java Virtual Machine, but rather on a very specialized one designed specifically for Android. It’s name is Dalvik and it is optimized for battery-powered mobile devices with limited memory and CPU. So yes, this has nothing to do with JME, totally different kind. This prevents compatibility among Java applications written for those platforms and those for the Android platform. Android only reuses the Java language syntax, but does not provide the full-class libraries and APIs bundled with Java SE or ME.

If you believe that performance is your number one priority, then what you need is the Android NDK, a companion tool to the Android SDK that lets Android application developers build performance-critical portions of their apps in native code.

The Dalvik Virtual Machine runs applications which have been converted into a compact Dalvik Executable (.dex) format suitable for systems that are constrained in terms of memory and processor speed. If you want to dig deeper on the Dalvik Virtual Machine, check the Dalvik VM Internals presentation. After Android’s version 2.2, Dalvik has a just-in-time compiler, boosting performance even more. As with most virtual machine’s code, there is a disassembler tool for DEX files. It’s name is Dedexer and it is open source software.

We have to mention that Dalvik use a subset of Apache’s Harmony project for the core of its Class Library. Apache Harmony is an open source, free Java implementation, starting with Java SE 5 and 6. As mentioned in its website, the project aims to provide:

  • A compatible, independent implementation of the Java SE 5 JDK under the Apache License v2
  • A community-developed modular runtime (VM and class library) architecture

To lure developers all over the world to create apps for its new OS, Google organized the Android Developer Challenge, a competition for the most innovative application for Android. What other way to inspire developers, than offering them 10 million dollars, right? There were two challenges, gathering the attention of developers all over the world. Check out the winners on the following links:

New Android applications, both free and commercial, can be found at the Android Market. Android Market is an online software store developed by Google. It offers a catalog of applications that can be downloaded and installed to target hardware over-the-air, without the use of a PC. Android Market has rapidly grown, currently hosting over 70,000 applications (as of June, 2010). Check the market statistics for yourself.

The current Android version is Froyo, offering a lot of improvements and new features. Of course developers also get improved tools both for the SDK and the NDK.

That’s it. A short introduction for a mobile platform that is here to stay. In the following posts, we will describe how to install Android OS in a virtual machine and provide tutorials on how to build apps with the SDK.

Stay tuned here, at JavaCodeGeeks.

Related Articles :

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

JPA Mini Book

Learn how to leverage the power of JPA in order to create robust and flexible Java applications. With this Mini Book, you will get introduced to JPA and smoothly transition to more advanced concepts.

JVM Troubleshooting Guide

The Java virtual machine is really the foundation of any Java EE platform. Learn how to master it with this advanced guide!

Given email address is already subscribed, thank you!
Oops. Something went wrong. Please try again later.
Please provide a valid email address.
Thank you, your sign-up request was successful! Please check your e-mail inbox.
Please complete the CAPTCHA.
Please fill in the required fields.

Leave a Reply


− 3 = one



Java Code Geeks and all content copyright © 2010-2014, Exelixis Media Ltd | Terms of Use | Privacy Policy | Contact
All trademarks and registered trademarks appearing on Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
Do you want to know how to develop your skillset and become a ...
Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

Get ready to Rock!
You can download the complementary eBooks using the links below:
Close