2. • Android, Inc. was founded in Palo Alto, California, United States
in October, 2003
• Google acquired Android Inc. in August, 2005
• On the November 5, 2007 the Open Handset Alliance(OHA), a
consortium of several companies unveiled itself.
3. • Market share has been growing at an incredible pace.
• Market share jumped from 4.7% in Q42009 to 44% in Q2 2011
• As of Nov 2011 Android Market Share in USA is 43% (Among
smartphone).
• Android Device activations grew from 60,000 device
activations/day in Feb 2010 to 350,000 devices in March 2011 to
576000 in Oct.
• Android is now the world's second largest OS after windows
4. 1.5 Cupcake 1.6 Donut 2.1 Eclair 2.2 Froyo 2.3 Gingerbread
Apr 2009 Sep 2009 Oct 2009 May 2010 Dec 2010
3.0 Honeycomb 4.0 ICS
Feb 2011 Oct 2011
5. • 1.0 : Released 23 September 2008
• 1.1 : On 9 February 2009, Android 1.1 update for Android was
released for T-Mobile G1
• 1.5 (Cupcake) : 30 April 2009. Ability to record and watch videos
through camcorder mode, New widgets and folders that can
populate the Home screens.
• 1.6 (Donut) : 15 September 2009 . Support for WVGA screen
resolutions. Google free turn-by-turn navigation.
• 2.1 (Eclair) : 26 October 2009. New Browser UI and
HTML5 support. Exchange ActiveSync 2.5 support. Live
Wallpapers
• 2.2 (Froyo) : 20 May 2010. USB tethering and Wi-Fi hotspot
functionality, Adobe Flash support.
• 2.3 (Gingerbread) : Native support for SIP VoIP telephony, NFC.
• 3.0 (Honeycomb) : 22 February 2011. Tablet support.
6.
7.
8. “Android is a [open source] software stack for mobile devices that
includes an operating system, middleware and key applications.
The Android SDK provides the tools and APIs necessary to begin
developing applications on the Android platform using the Java
programming language.”
9. Android is not Linux.
Android does not have a windowing system.
Does not have all the Linux utilities.
11. Features:
GSM Telephony (hardware dependent)
Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
Camera, GPS, compass, and accelerometer (hardware
dependent)
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)
Media support for common audio, video, and still image
formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
12. Features:
Rich development environment including a device emulator,
tools for debugging, memory and performance profiling, and a
plugin for the Eclipse IDE
Application framework enabling reuse and replacement of
components
Dalvik virtual machine optimized for mobile devices
SQLite for structured data storage
13.
14. It is a virtual machine to…
o run on a slow CPU
o with relatively little RAM
o on an OS without swap space
Each App runs on its own instance of the VM
15. Applications are written in the Java programming language.
Android SDK tools compile the code—along with any data and
resource files—into an Android package, an archive file with an
.apk suffix.
Android system implements the principle of least privilege.
16. Activity
An activity represents a single screen with a user interface.
Launched in different ways : Launcher , Intents .
Services
A service is a component that runs in the background.
Used to perform long-running operations or to perform work
for remote processes.
Content Providers
A content provider manages a shared set of application data.
Allows applications to share data.
Broadcast receivers
A broadcast receiver is a component that responds to system-
wide broadcast announcements.
17. •Lets the system know what components exist in the application
•Identifies required user permissions ( e.g. read contacts ,
internet access )
•Declares the minimum API version
•Declare the hardware and software features used ( e.g.
Camera, GPS )
•Declares application info ( e.g. name , version )
18.
19. Project
src res assets gen Android Android …
Manifest.
drawabl xml
e-ldpi
drawabl
e-mdpi
drawabl
e-hdpi
layouts
values
20. Android – Different Screen Sizes
Low density Medium High density
(120), ldpi density (240), hdpi
(160), mdpi
Small screen QVGA
(240x320)
Normal screen WQVGA400 HVGA WVGA800
(240x400) (320x480) (480x800)
WQVGA432 WVGA854
(240x432) (480x854)
Large screen WVGA800*
(480x800)
WVGA854*
(480x854)
21. Android – Tools to get our hands dirty
• Eclipse
• Android ADT plug-in for eclipse
• Android SDK
25. Contact info
Ravi Vyas:
• twitter.com/ravivyas84
• ravivyas.com
•Google+ ravivyas.com/+
• contact@ravivyas.com
Editor's Notes
Answer from Google , my addition – opensourceAdvantage of open source : better understanding , better code , more & better reuse - I extended an AsyncTask Class to make it a Async HTTP Class which handled all the network interaction
Answer from Google , my addition – opensourceAdvantage of open source : better understanding , better code , more & better reuse - I extended an AsyncTask Class to make it a Async HTTP Class which handled all the network interactionmajority of the Android software is licensed with Apache 2.0. there may be exceptions which will be handled on a case-by-case basis. For example, the Linux kernel patches are under the GPLv2 license with system exceptions, which can be found on kernel.org.The Apache License requires preservation of the copyright notice and disclaimer, but it is not a copyleft license — it allows use of the source code for the development of proprietary software as well as free and open source software. The GPL is the first copyleft license for general use, which means that derived works can only be distributed under the same license terms.Repo is a tool that Google built on top of Git. Repo helps us manage the many Git repositories
Answer from Google
SQLite is an ACID-compliant embedded relational database management system contained in a relatively small (~275 kB)[4] C programming library. The source code for SQLite is in the public domain[1][5] and implements most of the SQL standard. In contrast to other databases, SQLite is not a separate process that is accessed from the client application, but an integral part of it.SQLite uses a dynamically and weakly typed SQL syntax that does not guarantee the domain integrity. SQLite is a multitasking database concerning reads. Writes can be done only one-at-a-time. It is a popular choice for local/client storage on web browsers. It has many bindings to programming languages. It is arguably the most widely used database engine, as it is used today by several widespread browsers, operating systems, embedded systems among others.[6]
Android will ship with 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:::By providing an open development platform, 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, and much, much more. Developers have full access to the same framework APIs used by the core applications. 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 (subject to security constraints enforced by the framework). This same mechanism allows components to be replaced by the user.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 browserContent Providers that enable applications to access data from other applications (such as Contacts), or to share their own dataA Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout filesA Notification Manager that enables all applications to display custom alerts in the status barAn Activity Manager that manages the lifecycle of applications and provides a common navigation backstack:::Libraries:::Android includes a set of C/C++ 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:System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devicesMedia Libraries - based on PacketVideo'sOpenCORE; 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 PNGSurface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applicationsLibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web viewSGL - the underlying 2D graphics engine3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizerFreeType - bitmap and vector font renderingSQLite - a powerful and lightweight relational database engine available to all applications:::Runtime:::Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.::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. Why Linux kernel? : Great memory and process management , permission based security model ( each android app has its own userID) , Already open source
Every Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.Own instance = added security , sandboxingThe Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.
That is, each application, by default, has access only to the components that it requires to do its work and no more. This creates a very secure environment in which an application cannot access parts of the system for which it is not given permission.
That is, each application, by default, has access only to the components that it requires to do its work and no more. This creates a very secure environment in which an application cannot access parts of the system for which it is not given permission.
On the Java platform, a manifest file is a specific file contained within a JAR archive[1]. It is used to define extension and package related data. It is a metadata file that contains name-value pairs organized in different sections. If a JAR file is intended to be used as an executable file, the manifest file specifies the main class of the application. The manifest file is named MANIFEST.MF.
On the Java platform, a manifest file is a specific file contained within a JAR archive[1]. It is used to define extension and package related data. It is a metadata file that contains name-value pairs organized in different sections. If a JAR file is intended to be used as an executable file, the manifest file specifies the main class of the application. The manifest file is named MANIFEST.MF.
Everything is free
Live demoLoad eclipse Create new projectCreate new AVDRun project
Blrdroid holds regular meetups and hands on sessions.
Blrdroid holds regular meetups and hands on sessions.
Blrdroid holds regular meetups and hands on sessions.