Android Development

The mythic Google phone is lifeless. Long live Android - is an open-source platform for building the next generation of mobile devices. Google looks forward to bring the mobile-phone industry to its head with a development model almost the same like of the Web.

Dan Morrill, the developer advocate of Google Developer Programs said that there are 3 billion of handsets all over the world and in multitude places these handsets principally mean the access to the Internet. He also added that as these handsets getting more and more sophisticated, Google wants users to get the same great experience they get on the Web.

As to users, Android signifies that they may easily download applications, then install them on the device and freely utilize them on the network they wish. As to developers, Android noticeably reduces the barriers to access because it is not necessary to jump through hoops to create, market and sell apps for users.

Like such similar efforts as JavaFX, Sun Microsystems Inc.'s, LiMo Foundation and OpenMoko Inc. Android is a full software stack which comprises of a middleware, operating system and the key applications that are required to provide Internet and mobile-phone functionality. Thanks to Apple Inc.'s iPhone the bar for what functionalities user expect from their phones has significantly increased and in order to succeed, Android will require the same capacity, even though in a more open manner.

Apple declares that it will release SDK for the iPhone, but it is expected that the company will keep tight control over the voice telephony functionality of the device, so that allows developers to create other kinds of apps for the device. Professional Android developers may substitute any function as for instance voice telephony - for the one they have built themselves.

Despite the fact it is based on Linux, Android is a separate as well (Google declares complementary) effort from Linux Phone Standards Forum (LiPS) specification which for the first time was announced in 2005 and released in December 2007. Whereas that effort comprises of APIs for messaging , calendar, telephony, user-interface components and instant-messaging presence, that is not meant as a full phone stack, whereas Android is. The other difference stems from reliance of Android on a special Linux accomplishment, while LiPS supports interoperable, multiple implementations.

Key features of Android:
  • A run time environment and Java Development is based on the Dalvik virtual machine (according to Google it has been optimized for mobile devices). Partly uncommon, any Android application works on its own process, for example with its own Dalvik.
  • An application framework which empower replacement and reuse of components.
  • A custom 2D and 3D graphics library based on Open GL.
  • An integrated browser that is based on the open-source WebKit (the same engine is employed in Apple's Safari). The deployment of the WebKit is important as it allows users to easily browse the whole Internet, not only mobile-specific sites. It is not necessary for Web designers to change what they are making to support the mobile devices because the browser itself may (but with some exceptions) present any Web page precisely the same way it will appear on the desktop, panning and zooming as required to adapt a smaller screen.
  • Support for GPS, camera, accelerometer and compass hardware.
  • Media support for common video, audio and still-image formats (such as PNG, GIG and JPEG, MP3, AMR, AAC, MPEG-4 and H.264).
  • SQLite that is for structured data storage.
  • Global System for Mobile communication (GSM) but not Code Division Multiple Access (CDMA) telephony.

The SDK provides with the indispensable APIs as well as programming tools for creating applications in Java to operate on the platform, including debugging tools, performance profiling, device emulator, a plug-in for the Eclipse IDE and memory.

Applications for Android are created in Java and operate on Google's Dalvik virtual machine instead of on the more popular Java framework. According to Google the option to go in-house was essential to reach the level of openness and the performance characteristics which the company was seeking. But Google has been already charge with fragmenting the Java standard.

So Android will be shipped with several core applications such as SMS (Short Message Service) program, an email client, a browser, maps, contacts and a calendar.

These applications will be on head of the application framework that supplies with a set of libraries and system services for creating and interoperating with Android apps. The framework shows applications to a set of main C/C++ libraries for such staff as recording and media playback, bitmap, 2D and 3D graphics, Web browsing, the SQLite relational database and vector font rendering. You may forget that Android has to do anything with Goggle as it is not for such features as a MapView API that integrates Google Maps to Android and supports location-based services such as GPS. The first Android release is lacking native APIs for Wi-Fi and Bluetooth, but Google states that they are forthcoming.

At the bottom of the heap is Linux of version 2.6 that manages core system services such as memory management, driver model, security, and network stack during acting as an abstraction layer among the hardware and the others of the software stack.

Outstanding Interface

Match with a user friendly interface for a mobile device is difficult, as Microsoft evidenced how long it took to produce a handy version of Windows Mobile. As each phone has a particular design, screen, control layout, keypad (QWERTY versus numeric), it seems almost impossible to denote a general-purpose platform as it can be made with the PC. Partially due to that, the interface of Android (which according to Morrill is a work in progress) doesn't appear as radical of that kinds of interfaces noticed on Motorola Inc. and Nokia devices as these one of the iPhone, where Apple is keeping the luxury of designing both software and hardware. The actual UI elements that are expected to be provided are radio buttons, pull down menus and standard check boxes, but Google has novelized other areas.

As Morrill said the one of the key notions filling the design of the interface is the recognition that programs reach and go more they could do on the desktop. As the screen is little, you may see only one application at a time.

Owing to this, Android offers a "activity class" which handles the life cycle of application, assuring that apps may coexist without clashing. Furthermore, a Web-browser-like history helps navigation through allowing user to come back to what you have been doing beforehand, for instance, SMS message has popped up on the screen.

Layout classes of Android allow developers to organize the user interface in that a way it will acquit appropriately - indifferent whether it is in landscape orientation or in portrait.

Android, in its first release, supports touch-screen phones but it is not that of the iPhone's multitouch technology. If to dig around in the SDK also displays only support for 320x240-pixel resolution that is standard on majority smartphones, but Morrill also stated that in future there will be supported other resolutions as well.

Before Android's SDK may compete with the commercial development of environments for Symbian, Windows Mobile, Palm OS and other mobile platforms it has a way to go. Thus developers face a hard choice provided the existence of rival open-source mobile initiatives. Anyway these current limitations must not be a deterrent as Android will just get better than more developers reach on board. 10$ million of bounty of Google is for the best Android apps should offer great number of motive for jumping in.