Sunday, July 18, 2010

Android #1: Getting to know the Android basics

Introduction to Android:

Android is an open source software stack that includes operating system, middleware, and key applications with a set of APIs for creating new mobile applications.

Unlike other mobile software stack like iPhone that provides their own proprietary operating system that requires proprietary development tools offering native applications given priority over third party applications and the restriction on access to native phone data, communication across applications, Android software stack provides both native applications (such as personal information management, short messaging service, mobile map, e-mail client, mobile web browser, instant message client, music player, image viewer, etc ) and third party applications (generated by us) sharing the same APIs and runtime, offering an open development environment built on Linux kernel. Thus it provides access to hardware as well as across application interaction.

Android APIs:

Android APIs provide features for handling hardware access, location-based services, background services, map-based services, relational database, p2p messaging and graphics (2D & 3D).

Setting up the Development Environment:

One other good feature of Android is that we can set our development environment on operating systems like Windows, Mac OS, Linux unlike iPhone App development pack that needs the Mac OS to my understanding and knowledge

Following are the step-by-step process of setting up Android Software Development Kit (SDK) for development of Android applications:

  • Install Java Development Kit (JDK) 1.5 or higher version and Apache ANT 1.6.5 or higher
  • Install the Android SDK starter pack for the appropriate operating system
  • Install Eclipse IDE 3.4 or higher version but would recommend going on with Eclipse Classic versions without much of other popular plug-ins to make it light
  • Install the Android Development Tools (ADT) plug-in for the Eclipse IDE

The ADT Eclipse Plug-in actually comes with an Android Emulator which is a virtual mobile emulating device that runs on our computer to prototype, develop and test the Android applications without using a actual physical mobile phone. It actually mimics the hardware and software features of an actual mobile phone except it cannot use the calling and other mobile specific features. To use the emulators, we need to create Android Virtual Device (AVD) configurations that has information's on the Android platform to run.

Screenshots: Android Virtual Devices:

Key Components of Android:

Following are the key components of Android

  • Activities: Are the building blocks of User Interface (UI) and are similar to dialog boxes/windows in a typical desktop application scenario
  • Content Providers: Provides control over the data stored on a device that are accessible by multiple applications. That is, they provide a level of abstraction of data accessible across multiple application
  • Services: Activities and Content Providers are short lived components and can be shut down any time whereas Services are designed to keep running if required as an independent Activity. Example, Services can check for any updates on RSS feed or playing background music even if the controlling Activity is no longer operating
  • Intents: They are like event notifiers thus notifying applications about an event. Example, notifies when a SMS arrives, or SD card inserted into the device etc


2 comments: