History of Android In 2007, a group of manufacturers, wireless carriers & software developers formed the “Open Handset Alliance” Some of these include Broadcom Corporation HTC Intel LG Motorola Samsung T-Mobile Google
History of Android The goal was to develop the next generation of wireless platform The new platform would be nonproprietary & based on open standards This would lead to lower development costs & increases profits RIM Blackberry & Apple iOS were proprietary platforms, so the mobile development community eagerly waited for this new potential platform In 2008, the OHA announces the Android platform and launched a beta program for developers.
History of Android Several pre-release versions of the Android SDK were released The first Android handset (T-Mobile G1) began shipping in late 2008
History of Android Almost all major manufacturers have Android based handsets The following companies do not have Android Phones Apple RIM Nokia
Easy Development Android breaks the proprietary concept of mobile development Unlike with other mobile platforms, there are virtually no costs to developing Android Applications The Android SDK and tools are freely available on the Android developer website http://developer.android.com The freely available Eclipse is the most popular IDE for Android Development So basically the setup itself is very cheap
Easy Development The best part is the development language Android applications are written in Java Language Java being the popular language among the developer community The learning curve for developers is quite less since they already know Java The main thing that they have to understand is the SDK and Tools for development
Some pre-requisites for Android Java Language XML Eclipse IDE SDK
What is Android? Android is a software stack for mobile devices that includes an operating system Middleware key applications The Android SDK provides the tools and APIs necessary to begin developing applications.
Features of Android Application framework enabling reuse and replacement of components Dalvik virtual machine optimized for mobile devices Integrated browser based on the open source WebKit engine Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional) SQLite for structured data storage
Features of Android Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) GSM Telephony (hardware dependent) Bluetooth, EDGE, 3G, and WiFi (hardware dependent) Camera, GPS, compass, and accelerometer (hardware dependent) Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE
Applications Android provides a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. All applications are written using the Java programming language.
Application Framework Android offers developers the ability to build extremely rich and innovative applications. Developers are free to take advantage of the device hardware, access location information, run background services, set alarms, add notifications to the status bar & much more Developers have full access to the same framework APIs used by the core applications
Application Framework The application architecture is designed to simplify the reuse of components Any application can publish its capabilities and any other application may then make use of those capabilities This same mechanism allows components to be replaced by the user
Application Framework Underlying all applications is a set of services and systems, including: A rich and extensible set of Views that can be used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data A Resource Manager, providing access to non- code resources such as localized strings, graphics, and layout files A Notification Manager that enables all applications to display custom alerts in the status bar
Libraries Android includes a set of libraries used by various components of the Android system. These capabilities are exposed to developers through the Android application framework. Some of the core libraries are listed below: Media Libraries - the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view 3D libraries - an implementation based on OpenGL ES 1.0 APIs; FreeType - bitmap and vector font rendering
Android Runtime Every Android application runs in its own process, with its own instance of the Dalvik virtual machine (DVM) Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files which are optimized for minimal memory footprint. The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.
Linux Kernel Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack
Android Development ToolsPlugin ADT Plugin is available for Eclipse It provides the following:- Android project wizard Android specific resource editors Android SDK & AVD (Android Virtual Device) Manager DDMS (Dalvik Debug Monitor Service) perspective for debugging/monitoring apps Integration with Android LogCat Logging Automated builds & application deployment to Android emulators and handsets Application packaging and code signing tools for release deployment
Eclipse ? Is Eclipse Necessary for development? NO Developers can develop Android apps without using the Eclipse IDE However by doing so, they are missing the ease of development that Eclipse provides
Remember… When developing any mobile application, always remember: Screen Size is small Processing power is less Resources should be managed properly