Android

From LUG Manipal Wiki

Jump to: navigation, search

Contents

What's going on right now

There has been a very recent boom in the mobile computing sector, and the mobile devices market, on the whole. We have seen the back-to-back releases of more than a dozen devices that either fall into the category of high end Smart Phones or even palm top computers, so much so that these devices are a rage among the business class, though it is very unlikely that they will replace the desktop computers or laptops in the near future. Nevertheless, these devices are proved to be very powerful in their scope of usage. One of such mobile devices that has recently been released is the T-Mobile and HTC's G1, which is also known as the Android Phone. This Android phone promises a lot to offer, and is constantly being rated on its ups and downs by the critics. Not going particularly into the hardware specifications of the phone, lets have a look at what the Open Source Android platform is all about, and how one can make full use of the flexibility and robustness of this Software Development Kit (SDK, from this point on).


What is Android?

Not in agreement with a very common misconception that Android is an OPERATING SYSTEM for the android phones, I would first like to clarify that android is more of a Software Stack, and not an operating system, as such. It was the brainchild of Open Handset Alliance, which is a group of companies and organizations, with google being one of the most prominent ones, who decided to invent an open source mobile platform, for developers to work on and design applications for. A major initiative taken by Google to promote Android was the launching of Android Developers Challenge, which met huge success, and saw participations from all over the world in large numbers, with about 50 of the contesting entries making it to the next level.


What makes it different

The most promising feature of Android platform, which clearly demarkates it from other mobile computing systems is its ability to not differentiate between the base operating system and third party apps. This essentially means that you can customize or totally revamp basically every aspect of the OS, from SMS reciever to the home screen.


The architecture of Android

Android makes use of, what they call as, "Intent Receivers" to trigger actions based on them. Intent Receivers are nothing but notifications which are automatic, in the sense that they are dependent only on the providers alerts to the user. The example of an intent receiver may be an incoming text message, an incoming call, voice mail etc. These intent receivers can then be used to trigger various methods, which also form a part of this software stack. One of the methods deployed is an Activity. An Activity is simply a screen (or what programmers might call, a single Form) which forms a part of the larger UI of the application. So you might have an Activity to show your contact list, and another activity to dial the selected contact. These two screens can form a UI for dialer app. The various activities of an UI are linked using Intents, which decides what-to-do(intent). Then there are intent filters which decide whether the activity would be able to implement a certain Intent.

SDK- The Software Development Kit

The above writeup, very briefly explains the basic building blocks of the Android software stack. Google has also provided the developers with a amazing lot of APIs to work with, which also includes its landmarked Google Maps API, that provides beautiful functionality of an android phone as a GPS device. The android SDK includes a phone emulator, on which you can take ur applications for a spin, providing you with nothing less than a complete phone system in itself. This, particularly, makes developing android apps a fun task too. Though, these apps have to be written essentially in Java syntax, so a basic working knowledge of java is needed before you dive into programming on android SDK. Then there always is Googles official documentation.


Development in Eclipse

There is also an Android plugin for eclipse users known as the Android Developer Tools(ADT), which is pretty useful too.

Personal tools