SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
I
SEMINAR REPORT
ON
ANDROID DEVELOPMENT
By
ATUL PANJWANI
(120120107013)
DEPARTMENT OF COMPUTER ENGINEERING
GANDHINAGAR INSTITUTE OF TECHNOLOGY
2014/2015
II
SEMINAR REPORT
ON
ANDROID DEVELOPMENT
By
ATUL PANJWANI
Guided by
Prof. MansiVithalani
(C.E. / I.T. Dept.)
DEPARTMENT OF COMPUTER ENGINEERING
GANDHINAGAR INSTITUTE OF TECHNOLOGY
2014/2015
III
GANDHINAGAR INSTITUTE OF TECHNOLOGY
DEPARTMENT OF COMPUTER ENGINEERING
CERTIFICATE
This is to certify that the project entitled ―ANDROID DEVELOPMENT” has
been carried out by ATUL PANJWANI under my guidance in partial
fulfilment ofthe degree of Bachelor of Engineering in Computer Engineering
of Gandhinagar Institute of Technology during the academic
year 2014. To the best of my knowledge and belief this work has been
submitted elsewhere for the award of Bachelor in Engineering degree.
Guided By Head of Department
Prof. Mansi Vithalani Prof. Kinjal Adhvaryu
(CE Department)
IV
ACKNOWLEDGEMENT
As I write this acknowledgement, I must clarify that this is not just a formal
acknowledgement, but also a sincere note of thanks and regard from my side. I
feel a deep sense of gratitude and affection for those who were associated with
this seminar. Without their co-operation and guidance this seminar could not
have been conducted properly. I am also indebted to my friends and family for
their constant support and their priceless reviews which helped me to take this
seminar to current level. I am also thankful to our Head of the Department
Prof. Kinjal Adhvaryu, for her indispensable suggestions and kind help
throughout the project.
ATUL PANJWANI
V
PAGE INDEX
Chapter Page
Abstract 1
1. Introduction 2
1.1 What is Android? 2
1.2 Why Android? 2
1.3 History 3
1.4 Architecture 5
1.5 Development Process 7
2. Training 8
2.1 Getting Started 8
2.2 Building Apps 12
2.3 Best Practices 15
3. API Guides 18
3.1 App Components 19
3.2 App Resources 19
3.3 User Interface 20
3.4 Animation & Graphics 21
3.5 Computation 21
3.6 Media 22
3.7 Connectivity 22
3.8 Data Storage 23
4. References ̶ Packages & Classes 24
VI
5. Tools 26
5.1 Eclipse ADT 26
5.2 Android Studio ─ beta 28
5.3 Difference 29
6. Interesting about Android 30
6.1 Google Services 30
6.2 Android Nomenclature 32
6.3 Conclusion 33
Bibliography 34
1
ABSTRACT
 Android is a mobile operating system (OS) based on the Linux kernel and
currently developed by Google.
 Android is designed primarily for touchscreen mobile devices such
as smartphones and tablet computers, with specialized user interfaces for
televisions (Android TV), cars (Android Auto), and wrist watches (Android
Wear).
 It also has been used in game consoles, digital cameras, regular PCs and
other electronics.
 Android has 4 layers: applications, applications framework, libraries &
LINUX kernel.
 Google sells the license to run android on third party hardwares.
 In May 2012, the number of available apps in the Google Play Store
amounted to 500,000 and surpassed 1 million apps in July 2013.
 The user interface of Android is based on the concept of direct
manipulation, using multi-touch gestures.
 Interaction with the OS includes gestures such as swiping, tapping,
pinching, and reverse pinching.
The report gives you the clear idea for development of android along with its
history and some interesting features. The idea of learning, rather practising
android has become an important ―course‖ and key to success for a computer
engineer.
2
Chapter 1: Introduction
1.1 WHAT IS ANDROID?
Android is a mobile operating system (OS) based on the Linux kernel and
currently developed by Google. With a user interface based on direct
manipulation, Android is designed primarily for touchscreen mobile devices
such as smartphones and tablet computers, with specialized user interfaces for
televisions (Android TV), cars (Android Auto), and wrist watches (Android
Wear). The OS uses touch inputs that loosely correspond to real-world actions,
like swiping, tapping, pinching, and reverse pinching to manipulate on-screen
objects, and a virtual keyboard. Despite being primarily designed for
touchscreen input, it also has been used in game consoles, digital cameras,
regular PCs and other electronics.
Android's source code is released by Google under open source licenses,
although most Android devices ultimately ship with a combination of open
source and proprietary software. Initially developed by Android, Inc., which
Google backed financially and later bought in 2005, Android was unveiled in
2007 along with the founding of the Open Handset Alliance—a consortium
of hardware, software, and telecommunication companies devoted to
advancing open standards for mobile devices.
1.2 WHY ANDROID?
Android is popular with technology companies which require a ready-made,
low-cost and customizable operating system for high-tech devices. Android's
open nature has encouraged a large community of developers and enthusiasts
to use the open-source code as a foundation for community-driven projects,
3
which add new features for advanced users or bring Android to devices which
were officially released running other operating systems. The operating
system's success has made it a target for patent litigation as part of the so-
called "smartphone wars" between technology companies.
Following features add to the day-by-day increasing usage of Android
devices in the market:
 Multitasking
 Ease of access of notification
 Access to millions of applications (through Google Play Store)
 Widgets
 Permission to install Custom ROM
 Google Support
1.3 HISTORY
Android, Inc. was founded in Palo Alto, California in October 2003 by Andy
Rubin (co-founder of Danger), Rich Miner (co-founder of Wildfire
Communications, Inc.), Nick Sears (once VP at T-Mobile), and Chris White
(headed design and interface development at WebTV) to develop, in Rubin's
words, "smarter mobile devices that are more aware of its owner's location and
preferences". The early intentions of the company were to develop an
advanced operating system for digital cameras, when it was realized that the
market for the devices was not large enough, and diverted their efforts to
producing a smartphone operating system to rival those
of Symbian and Windows Mobile. Despite the past accomplishments of the
founders and early employees, Android Inc. operated secretly, revealing only
that it was working on software for mobile phones.That same year, Rubin ran
4
out of money. Steve Perlman, a close friend of Rubin, brought him $10,000 in
cash in an envelope and refused a stake in the company.
Google acquired Android Inc. on August 17, 2005; key employees of
Android Inc., including Rubin, Miner, and White, stayed at the company after
the acquisition. Not much was known about Android Inc. at the time, but many
assumed that Google was planning to enter the mobile phone market with this
move. At Google, the team led by Rubin developed a mobile device platform
powered by the Linux kernel. Google marketed the platform to handset makers
and carriers on the promise of providing a flexible, upgradable system. Google
had lined up a series of hardware component and software partners and
signalled to carriers that it was open to various degrees of cooperation on their
part.
On November 5, 2007, the Open Handset Alliance, a consortium of
technology companies including Google, device manufacturers such
as HTC, Sony and Samsung, wireless carriers such as Sprint Nextel and T-
Mobile, and chipset makers such as Qualcomm and Texas Instruments,
unveiled itself, with a goal to develop open standards for mobile devices. That
day, Android was unveiled as its first product, a mobile device platformbuilt
on the Linux kernel version 2.6.25. The first commercially available
smartphone running Android was the HTC Dream, released on October 22,
2008.
In 2010, Google launched its Nexus series of devices – a line of
smartphones and tablets running the Android operating system, and built by
manufacturing partners. HTC collaborated with Google to release the first
Nexus smartphone, the Nexus One. Google has since updated the series with
newer devices, such as the Nexus 5 phone (made by LG) and
the Nexus 7 tablet (made by Asus). Google releases the Nexus phones and
5
tablets to act as their flagship Android devices, demonstrating Android's latest
software and hardware features.
Since 2008, Android has seen numerous updates which have incrementally
improved the operating system, adding new features and fixing bugs in
previous releases. Each major release is named in alphabetical order after a
dessert or sugary treat; for example, version 1.5 Cupcake was followed by
1.6 Donut. The latest released version, 4.4.4 KitKat, appeared as a security-
only update; it was released on June 19, 2014, shortly after the release of
4.4.3. As of October 2014, newest version of the Android operating system,
Android 5.0 "Lollipop", is available only as a developer preview.
1.4 ARCHITECTURE
6
Android operating system is a stack of software components which is roughly
divided into five sections and four main layers as shown above in the
architecture diagram.
1.4.1 Linux kernel
At the bottom of the layers is Linux - Linux 2.6 with approximately 115
patches. This provides basic system functionality like process management,
memory management, device management like camera, keypad, display etc.
Also, the kernel handles all the things that Linux is really good at such as
networking and a vast array of device drivers, which take the pain out of
interfacing to peripheral hardware.
1.4.2 Libraries
On top of Linux kernel there is a set of libraries including open-source Web
browser engine WebKit, well known library libc, SQLite database which is a
useful repository for storage and sharing of application data, libraries to play
and record audio and video, SSL libraries responsible for Internet security etc.
1.4.3 Android Runtime
This is the third section of the architecture and available on the second layer
from the bottom. This section provides a key component called Dalvik Virtual
Machine which is a kind of Java Virtual Machine specially designed and
optimized for Android.
The Dalvik VM makes use of Linux core features like memory
management and multi-threading, which is intrinsic in the Java language. The
Dalvik VM enables every Android application to run in its own process, with
its own instance of the Dalvik virtual machine.
7
The Android runtime also provides a set of core libraries which enable
Android application developers to write Android applications using standard
Java programming language.
1.4.4 Application Framework
The Application Framework layer provides many higher-level services to
applications in the form of Java classes. Application developers are allowed to
make use of these services in their applications.
1.4.5 Applications
You will find all the Android application at the top layer. You will write your
application to be installed on this layer only. Examples of such applications are
Contacts Books, Browser, Games etc.
1.5 DEVELOPMENT PROCESS
Android applications development process is mainly divided in following
categories:
 Training
 API Guides
 References & Packages
 Tools
 Google Services
We will see the above stages in the succeeding chapters.
8
Chapter 2: Training
2.1 GETTING STARTED
Getting started, teaches you the bare essentials for Android app development.
If you're a new Android app developer, you should complete each of these
classes in order:
2.1.1 Building First App
This class teaches you how to build your first Android app. You’ll learn how
to create an Android project and run a debuggable version of the app. You'll
also learn some fundamentals of Android app design, including how to build a
simple user interface and handle user input.
Before you start this class, be sure you have your development
environment set up. You need to:
1. Download the Android SDK.
2. Install the ADT plugin for Eclipse (if you’ll use the Eclipse IDE).
3. Download the latest SDK tools and platforms using the SDK Manager.
2.1.1.1 Creating sample app using Eclipse
1. Click New in the toolbar.
2. In the window that appears, open the Android folder, select Android
Application Project, and click Next.
9
Figure 1. The New Android App Project wizard in Eclipse.
3. Fill in the form that appears:
o Application Name is the app name that appears to users. For this
project, use "My First App."
o Project Name is the name of your project directory and the name
visible in Eclipse.
o Package Name is the package namespace for your app (following
the same rules as packages in the Java programming language).
Your package name must be unique across all packages installed
on the Android system. For this reason, it's generally best if you
use a name that begins with the reverse domain name of your
organization or publisher entity. For this project, you can use
something like "com.example.myfirstapp." However, you cannot
publish your app on Google Play using the "com.example"
namespace.
10
o Minimum Required SDK is the lowest version of Android that
your app supports, indicated using the API level. To support as
many devices as possible, you should set this to the lowest
version available that allows your app to provide its core feature
set. If any feature of your app is possible only on newer versions
of Android and it's not critical to the app's core feature set, you
can enable the feature only when running on the versions that
support it (as discussed in Supporting Different Platform
Versions). Leave this set to the default value for this project.
o Target SDK indicates the highest version of Android (also using
the API level) with which you have tested with your application.
As new versions of Android become available, you should test your app on the
new version and update this value to match the latest API level in order to take
advantage of new platform features.
o Compile With is the platform version against which you will
compile your app. By default, this is set to the latest version of
Android available in your SDK. (It should be Android 4.1 or
greater; if you don't have such a version available, you must
install one using the SDK Manager). You can still build your app
to support older versions, but setting the build target to the latest
version allows you to enable new features and optimize your app
for a great user experience on the latest devices.
o Theme specifies the Android UI style to apply for your app. You
can leave this alone.
Click Next.
11
4. On the next screen to configure the project, leave the default selections
and click Next.
5. The next screen can help you create a launcher icon for your app.
You can customize an icon in several ways and the tool generates an icon for
all screen densities. Before you publish your app, you should be sure your icon
meets the specifications defined in the Iconographydesign guide.
Click Next.
6. Now you can select an activity template from which to begin building
your app.
For this project, select BlankActivity and click Next.
7. Leave all the details for the activity in their default state and
click Finish.
2.1.2 Adding Action Bar
The action bar is one of the most important design elements you can
implement for your app's activities. Although first introduced with API level
11, you can use the Support Library to include the action bar on devices
running Android 2.1 or higher.
2.1.3 Supporting Different Devices
How to build your app with alternative resources that provide an optimized
user experience on multiple device form factors using a single APK.
12
2.1.4 Building Dynamic UI
How to build a user interface for your app that is flexible enough to present
multiple UI components on large screens and a more constrained set of UI
components on smaller screens—essential for building a single APK for both
phones and tablets.
2.1.5 Saving Data
To save data on the device, whether it's temporary files, downloaded app
assets, user media, structured data, or something else.
2.1.6 Interacting With Other Apps
To build a user experience that leverages other apps available on the device to
perform advanced user tasks, such as capture a photo or view an address on a
map.
2.2 BUILDING APPS
2.2.1WithSharing Simple Data
To take your app interaction to the next level by sharing information with
other apps, receive information back, and provide a simple and scalable way to
perform Share actions with user content.
2.2.1.1 Sharing Files
To provide secure access to a file associated with your app using a content
URI and temporary access permissions.
2.2.1.2 Sharing Files with NFC
To transfer files between devices using the NFC Android Beam feature.
13
2.2.2BUILDING APPS WITH CONTENT MULTIMEDIA
2.2.2.1Managing Audio Playback
To respond to hardware audio key presses, request audio focus when playing
audio, and respond appropriately to changes in audio focus.
2.2.2.3Capturing Photos
To leverage existing camera apps on the user's device to capture photos or
control the camera hardware directly and build your own camera app.
2.2.2.4Printing Content
To print photos, HTML documents, and custom documents from your app.
2.2.3BUILDING APPS WITH CONNECTIVITY & CLOUD
2.2.3.1Connecting Devices Wirelessly
To find and connect to local devices using Network Service Discovery and
how to create peer-to-peer connections with Wi-Fi.
2.2.3.2Performing Network Operations
To create a network connection, monitor the connection for changes in
connectivity, and perform transactions with XML data.
2.2.3.3Transferring Data Without Draining the Battery
To minimize your app's impact on the battery when performing downloads and
other network transactions.
2.2.3.4Syncing to the Cloud
To sync and back up app and user data to remote web services in the cloud and
how to restore the data back to multiple devices.
14
2.2.3.5 Resolving Cloud Save Conflicts
To design a robust conflict resolution strategy for apps that save data to the
cloud.
2.2.3.6Transferring Data Using Sync Adapters
To transfer data between the cloud and the device using the Android sync
adapter framework
2.2.3.7Transmitting Network Data Using Volley
To perform fast, scalable UI operations over the network using Volley
2.2.4 BUILDING APPS WITH LOCATION INFO
These classes teach you how to add user personalization to your app. Some of
the ways you can do this is by identifying users, providing information that's
relevant to them, and providing information about the world around them.
2.2.4.1Accessing Contacts Data
To use Android's central address book, the Contacts Provider, to display
contacts and their details and modify contact information.
2.2.4.2Making Your App Location-Aware
To add location-aware features to your app by getting the user's current
location.
15
2.3 BEST PRACTICES
2.3.1 FOR INTERACTION
These classes teach you how to engage and retain your users by implementing
the best interaction patterns for Android. For instance, to help users quickly
discover content in your app, your app should match their expectations for user
interaction on Android. And to keep your users coming back, you should take
advantage of platform capabilities that reveal and open your content without
requiring users to go through the app launcher.
2.3.1.1Designing Effective Navigation
To plan your app's screen hierarchy and forms of navigation so users can
effectively and intuitively traverse your app content using various navigation
patterns.
2.3.1.2Implementing Effective Navigation
To implement various navigation patterns such as swipe views, a navigation
drawer, and up navigation.
2.3.1.3Notifying the User
To display messages called notifications outside of your application's UI.
2.3.1.4Adding Search Functionality
To properly add a search interface to your app and create a searchable
database.
16
2.3.1.5Making Your App Content Searchable by Google
To enable deep linking and indexing of your application content so that users
can open this content directly from their mobile search results.
2.3.2 FOR USER INTERFACE
These classes teach you how to build a user interface using Android layouts
for all types of devices. Android provides a flexible framework for UI design
that allows your app to display different layouts for different devices, create
custom UI widgets, and even control aspects of the system UI outside your
app's window.
2.3.2.1 Designing for Multiple Screens
To build a user interface that's flexible enough to fit perfectly on any screen
and how to create different interaction patterns that are optimized for different
screen sizes.
2.3.2.2 Creating Custom Views
To build custom UI widgets that are interactive and smooth.
2.3.2.3 Creating Backward-Compatible UIs
To use UI components and other APIs from the more recent versions of
Android while remaining compatible with older versions of the platform.
2.3.2.4 Implementing Accessibility
To make your app accessible to users with vision impairment or other physical
disabilities.
17
2.3.2.5 Managing the System UI
To hide and show status and navigation bars across different versions of
Android, while managing the display of other screen components.
18
Chapter 3: API Guides
In computer programming, application programming interface (API) is a set of
routines, protocols, and tools for building software applications. An API
expresses a software component in terms of its operations, inputs, outputs, and
underlying types. An API defines functionalities that are independent of their
respective implementations, which allows definitions and implementations to
vary without compromising each other. The API specifies how software
components should interact. An API is used when programminggraphical user
interface (GUI) components. A good API makes it easier to develop a program
by providing all the building blocks. A programmer then puts the blocks
together.
In addition to accessing databases or computer hardware, such as hard disk
drives or video cards, an API can ease the work of programming GUI
components. For example, an API can facilitate integration of new features
into existing applications (a so-called "plug-in API"). An API can also assist
otherwise distinct applications share data, which can help to integrate and
enhance the functionalities of the applications.
APIs often come in the form of a library that includes specifications
for routines, data structures, object classes, and variables. In other cases,
notably SOAP and REST services, an API is simply a specification of remote
calls exposed to the API consumers.
An API specification can take many forms, including an International
Standard, such as POSIX, vendor documentation, such as
the Microsoft Windows API, or the libraries of a programming language,
e.g., Standard Template Library in C++ or Java API. An API differs from
19
an application binary interface (ABI) in that an API is source code-based while
an ABI is a binary interface. For instance POSIX is an API, while the Linux
Standard Base is an ABI.
3.1 APP COMPONENTS
Android's application framework lets you create rich and innovative apps using
a set of reusable components. This section explains how you can build the
components that define the building blocks of your app and how to connect
them together using intents. These include:
 Intents and Intent Filters
 Activities
 Services
 Content Providers
 App Widgets
 Processes and Threads
3.2 APP RESOURCES
The following documents provide a complete guide to how you can organize
your application resources, specify alternative resources, access them in your
application, and more:
The following documents provide a complete guide to how you can
organize your application resources, specify alternative resources, access them
in your application, and more:
20
3.2.1 Providing Resources
What kinds of resources you can provide in your app, where to save them, and
how to create alternative resources for specific device configurations.
3.2.2 Accessing Resources
To use the resources you've provided, either by referencing them from your
application code or from other XML resources.
3.2.3 Handling Runtime Changes
To manage configuration changes that occur while your Activity is running.
3.2.4 Localization
A bottom-up guide to localizing your application using alternative resources.
While this is just one specific use of alternative resources, it is very important
in order to reach more users.
3.2.5 Resource Types
A reference of various resource types you can provide, describing their XML
elements, attributes, and syntax. For example, this reference shows you how to
create a resource for application menus, drawables, animations, and more.
3.3 USER INTERFACE
Your app's user interface is everything that the user can see and interact with.
Android provides a variety of pre-build UI components such as structured
layout objects and UI controls that allow you to build the graphical user
interface for your app. Android also provides other UI modules for special
interfaces such as dialogs, notifications, and menus. These include:
21
3.4 ANIMATION & GRAPHICS
Make your apps look and perform their best using Android's powerful graphics
features such as OpenGL, hardware acceleration, and built-in UI animations.
 Property Animation
 View Animation
 Drawable Animation
 Canvas and Drawables
 OpenGL ES
 Hardware Acceleration
3.5 COMPUTATION
RenderScript provides a platform-independent computation engine that
operates at the native level. Use it to accelerate your apps that require
extensive computational horsepower.
22
 RenderScript
 Advanced RenderScript
 Runtime API Reference
3.6 MEDIA
Add video, audio, and photo capabilities to your app with Android's robust
APIs for playing and recording media.
 Media Playback
 Media Router
 Media Route Provider
 ExoPlayer
 Supported Media Formats
 Audio Capture
 JetPlayer
 Camera
3.7 CONNECTIVITY
Android provides rich APIs to let your app connect and interact with other
devices over Bluetooth, NFC, Wi-Fi P2P, USB, and SIP, in addition to
standard network connections.
 Bluetooth
 NFC
 Wi-Fi P2P
 USB
 SIP
23
3.8 DATA STORAGE
Store application data in databases, files, or preferences, in internal or
removable storage. You can also add a data backup service to let users store
and recover application and system data.
 Storage Options
 Data Backup
 App Install Location
24
Chapter 4: Packages & Classes
Below listed are some of the Packages used for android application
development. The programmers while app development, do not have to
remember a huge number of packages and the classes included in the
packages. So they use the reference from the official android development
website: http://developer.android.com/reference/packages.html
Some packages are listed hereby:
android
Contains resource classes used by applications
included in the platform and defines application
permissions for system features.
android.accessibilityservice
The classes in this package are used for development
of accessibility service that provide alternative or
augmented feedback to the user.
android.app.backup
Contains the backup and restore functionality
available to applications. If a user wipes the data on
their device or upgrades to a new Android-powered
device, all applications that have enabled backup can
restore the user's previous data when the application is
reinstalled.
android.appwidget
Contains the components necessary to create "app
widgets", which users can embed in other applications
(such as the home screen) to quickly access
application data and services without launching a new
activity.
For more information, see the App Widgets guide.
android.bluetooth
Provides classes that manage Bluetooth functionality,
such as scanning for devices, connecting with devices,
and managing data transfer between devices. The
Bluetooth API supports both "Classic Bluetooth" and
Bluetooth Low Energy.
android.database Contains classes to explore data returned through a
content provider.
25
android.graphics
Provides low level graphics tools such as canvases,
color filters, points, and rectangles that let you handle
drawing to the screen directly.
android.graphics.drawable
Provides classes to manage a variety of visual
elements that are intended for display only, such as
bitmaps and gradients.
android.graphics.drawable.shapes Contains classes for drawing geometric shapes.
android.graphics.pdf Contains classes for manipulation of PDF content.
android.hardware Provides support for hardware features, such as the
camera and other sensors.
android.hardware.camera2
The android.hardware.camera2 package provides an
interface to individual camera devices connected to an
Android device.
android.mtp
Provides APIs that let you interact directly with
connected cameras and other devices, using the PTP
(Picture Transfer Protocol) subset of the MTP (Media
Transfer Protocol) specification.
android.net Classes that help with network access, beyond the
normal java.net.* APIs.
android.net.wifi Provides classes to manage Wi-Fi functionality on the
device.
android.net.wifi.p2p Provides classes to create peer-to-peer (P2P)
connections with Wi-Fi Direct.
android.security Provides access to a few facilities of the Android
security subsystems.
26
Chapter 5: Tools
5.1 ECLIPSE
The Android SDK provides the API libraries and developer tools necessary to
build, test, and debug apps for Android.
Download the ADT Bundle to quickly start developing apps. It includes
the essential Android SDK components and a version of the Eclipse IDE with
built-in ADT (Android Developer Tools) to streamline your Android app
development.
With a single download, the Eclipse ADT bundle includes everything you
need to begin developing apps:
 Eclipse + ADT plug-in
 Android SDK Tools
 Android Platform-tools
 A version of the Android platform
 A version of the Android system image for the emulator
Eclipse uses plug-ins to provide all the functionality within and on top of
the runtime system. Its runtime system is based on Equinox, an
implementation of the OSGi core framework specification.
In addition to allowing the Eclipse Platform to be extended using
other programming languages, such as C and Python, the plug-in framework
allows the Eclipse Platform to work with typesetting languages
like LaTeX and networking applications such as telnet and database
27
management systems. The plug-in architecture supports writing any desired
extension to the environment, such as for configuration management. Java
and CVS support is provided in the Eclipse SDK, with support for
other version control systemsprovided by third-party plug-ins.
With the exception of a small run-time kernel, everything in Eclipse is a
plug-in. This means that every plug-in developed integrates with Eclipse in
exactly the same way as other plug-ins; in this respect, all features are "created
equal". Eclipse provides plug-ins for a wide variety of features, some of which
are through third parties using both free and commercial models. Examples of
plug-ins include for UML, for Sequence and other UML diagrams, a plug-in
for DB Explorer, and many others.
The Eclipse SDK includes the Eclipse Java development tools (JDT),
offering an IDE with a built-in incremental Java compiler and a full model of
the Java source files. This allows for advanced refactoring techniques and code
analysis. The IDE also makes use of a workspace, in this case a set
of metadata over a flat filespace allowing external file modifications as long as
the corresponding workspace "resource" is refreshed afterwards.
Eclipse implements, uses the graphical control elements of the Java toolkit
called SWT, whereas most Java applications use the Java standard Abstract
Window Toolkit (AWT) orSwing. Eclipse's user interface also uses an
intermediate graphical user interface layer called JFace, which simplifies the
construction of applications based on SWT. Eclipse was made to run
on Wayland during a GSoC-Project in 2014.
In addition to this Eclipse supports development for Tomcat, GlassFish and
many other servers and is often capable of installing the required server (for
development) directly from the IDE. It supports remote debugging, allowing
28
the user to watch variables and step through the code of an application that is
running on the attached server.
5.2 ANDROID STUDIO – BETA
Android Studio is a new Android development environment based on IntelliJ
IDEA. It provides new features and improvements over Eclipse ADT and will
be the official Android IDE once it's ready. On top of the capabilities you
expect from IntelliJ, Android Studio offers:
 Flexible Gradle-based build system.
 Build variants and multiple APK generation.
 Expanded template support for Google Services and various device types.
 Rich layout editor with support for theme editing.
 Lint tools to catch performance, usability, version compatibility, and other
problems.
 ProGuard and app-signing capabilities.
 Built-in support for Google Cloud Platform, making it easy to integrate
Google Cloud Messaging and App Engine.
29
5.3 ANDROID STUDIO vs. ECLIPSE ADT
FEATURE ECLIPSE ADT ANDROID
STUDIO
Build system Ant Gradle
Maven-based build dependencies No Yes
Build variants and multiple-APK
generation (great for Android Wear)
No Yes
Advanced Android code completion and
refactoring
No Yes
Graphical layout editor Yes Yes
APK signing and keystore management Yes Yes
NDK support Yes Coming soon
30
Chapter 6: Interesting about Android
6.1 GOOGLE SERVICES
The most significant factor which makes android successful software is
Google. Google offers a variety of services that help you build new revenue
streams, manage app distribution, track app usage, and enhance your app with
features such as maps, sign-in, and cloud messaging.
Although these Google services are not included in the Android platform,
they are supported by most Android-powered devices. When using these
services, you can distribute your app on Google Play to all devices running
Android 2.3 or higher, and some services support even more devices.
Google Maps
Include the power of Google Maps in your app with an embeddable map
view. You can customize the map with markers and overlays, control the user's
perspective, draw lines and shapes, and much more.
Google+
Allow users to sign in with their Google account, customize the user
experience with Google+ info, pull people into your app with interactive posts,
and add +1 buttons so users can recommend your content.
31
Google Cloud Platform
Build and host the backend for your Android app at Google-scale. With an
infrastructure that is managed automatically, you can focus on your app. Then,
scale to support millions of users.
Google Cloud Messaging
Immediately notify your users about timely events by delivering
lightweight messages from your web server. There are no quotas or charges to
use Google Cloud Messaging.
Google Cloud Save
Enable per-user data storage and sync in your apps with no backend
programming required.
Google Play In-App Billing
Build an app with a steady revenue stream that keeps users engaged by
offering new content or virtual goods directly in your app. All transactions are
handled by Google Play Store for a simple user experience.
Google Wallet Instant Buy
Provide fast and easy checkout in your app when selling physical goods
and services. Increase conversions by streamlining your purchase flow and
reducing the amount of information your customers need to enter.
32
Google Analytics
Measure your success and gain insights into how users engage with your
app content by integrating Google Analytics. You can track in-app purchases,
the number of active users, interaction patterns, and much more.
Google Mobile Ads
Display ads from Google Mobile Ads offer you an alternative revenue
opportunity that leverages multiple ad networks with targeted ads and several
display formats.
6.2 ANDROID NOMENCLATURE
Since April 2009, Android versions have been developed under
a confectionery-themed code name and released in alphabetical order; the
exceptions are versions 1.0 and 1.1 as they were not released under specific
code names.
Version Name Version # Release Year
Alpha 1.0 (Pre-commercial) 2007-2008
Beta 1.1 (Pre-commercial) 2007-2008
Cupcake 1.5 2009
Donut 1.6 2009
Éclair 2.0 – 2.1 2009-2010
Froyo 2.2 – 2.2.3 2010-2011
Gingerbread 2.3 – 2.3.7 2010-2011
33
Honeycomb 3.0 – 3.2.6 2011-2012
Ice-cream Sandwich 4.0 – 4.0.4 2011-2012
Jelly Bean 4.1 – 4.3.1 2013
KitKat 4.4 – 4.4.4 2013
Lollipop 5.0 2014
6.3 CONCLUSION
Due to advantages of Android like:
Multitasking, Ease of notification, Access to millions of Apps, Widgets,
Access to install custom ROM and the biggest factor ̶ Google support, it has
attracted the users all over the globe and has changed the concept
―CellPhones‖ to ―SmartPhones‖ and thus it has commercially acquired a huge
market which is still expanding. . .
34
BIBLIOGRAPHY
[1] developer.android.com
[2] en.wikipedia.org/wiki/Android_(operating_system)

Weitere ähnliche Inhalte

Was ist angesagt?

Presentation On Android
Presentation On AndroidPresentation On Android
Presentation On Android
TeachMission
 

Was ist angesagt? (20)

Android
AndroidAndroid
Android
 
PPT on Android
PPT on AndroidPPT on Android
PPT on Android
 
ppt on Android os- vinit
ppt on Android os- vinitppt on Android os- vinit
ppt on Android os- vinit
 
Android Operating System
Android Operating SystemAndroid Operating System
Android Operating System
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Android Operating System (Androrid OS)
Android Operating System (Androrid OS)Android Operating System (Androrid OS)
Android Operating System (Androrid OS)
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
Android application development ppt
Android application development pptAndroid application development ppt
Android application development ppt
 
Android Technology
Android TechnologyAndroid Technology
Android Technology
 
ppt based on android technology with great animations
ppt based on android technology with great animationsppt based on android technology with great animations
ppt based on android technology with great animations
 
Presentation On Android
Presentation On AndroidPresentation On Android
Presentation On Android
 
Android Training Report
Android Training ReportAndroid Training Report
Android Training Report
 
My presentation on Android in my college
My presentation on Android in my collegeMy presentation on Android in my college
My presentation on Android in my college
 
Android
AndroidAndroid
Android
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
History and development of Android OS
History and development of Android OSHistory and development of Android OS
History and development of Android OS
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Android Operating System
Android Operating SystemAndroid Operating System
Android Operating System
 
Basic android-ppt
Basic android-pptBasic android-ppt
Basic android-ppt
 

Andere mochten auch

Android seminar ppt
Android seminar pptAndroid seminar ppt
Android seminar ppt
chakrapani tripathi
 
Android OS Presentation
Android OS PresentationAndroid OS Presentation
Android OS Presentation
hession25819
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentation
connectshilpa
 

Andere mochten auch (14)

Android seminar ppt
Android seminar pptAndroid seminar ppt
Android seminar ppt
 
Android report
Android reportAndroid report
Android report
 
All about Android app development -Texavi presentation
All about Android app development -Texavi presentationAll about Android app development -Texavi presentation
All about Android app development -Texavi presentation
 
Android Report
Android ReportAndroid Report
Android Report
 
Presentation on Android operating system
Presentation on Android operating systemPresentation on Android operating system
Presentation on Android operating system
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Android OS Presentation
Android OS PresentationAndroid OS Presentation
Android OS Presentation
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentation
 
Android ppt
Android pptAndroid ppt
Android ppt
 
My Project Report Documentation with Abstract & Snapshots
My Project Report Documentation with Abstract & SnapshotsMy Project Report Documentation with Abstract & Snapshots
My Project Report Documentation with Abstract & Snapshots
 
Android College Application Project Report
Android College Application Project ReportAndroid College Application Project Report
Android College Application Project Report
 
Android ppt
Android ppt Android ppt
Android ppt
 
Report Writing - Introduction section
Report Writing - Introduction sectionReport Writing - Introduction section
Report Writing - Introduction section
 

Ähnlich wie Introduction to Android development - Presentation Report

Power point activity 2
Power point activity 2Power point activity 2
Power point activity 2
ELaii Dancel
 
Power pointactivity2
Power pointactivity2Power pointactivity2
Power pointactivity2
CL Abinoja
 
Power point activity 2
Power point activity 2Power point activity 2
Power point activity 2
RancieCastro
 
Power point activity 2
Power point activity 2Power point activity 2
Power point activity 2
ianoblepias
 
Android / Android Phones
Android / Android PhonesAndroid / Android Phones
Android / Android Phones
kevinlaurenz
 
Android and Android Phones
Android and Android PhonesAndroid and Android Phones
Android and Android Phones
Alyzza Joy Glipo
 

Ähnlich wie Introduction to Android development - Presentation Report (20)

Know about Android Operating System
Know about Android Operating SystemKnow about Android Operating System
Know about Android Operating System
 
Android Operating System
Android Operating SystemAndroid Operating System
Android Operating System
 
Power point activity 2
Power point activity 2Power point activity 2
Power point activity 2
 
Power pointactivity2
Power pointactivity2Power pointactivity2
Power pointactivity2
 
Android
AndroidAndroid
Android
 
Evolution of android operating system
Evolution of android operating systemEvolution of android operating system
Evolution of android operating system
 
Power point activity 2
Power point activity 2Power point activity 2
Power point activity 2
 
Android
AndroidAndroid
Android
 
Android
AndroidAndroid
Android
 
Power point activity 2
Power point activity 2Power point activity 2
Power point activity 2
 
Android / Android Phones
Android / Android PhonesAndroid / Android Phones
Android / Android Phones
 
(Android)_REPORT - Copgvasvgsavsavsahvsavsa
(Android)_REPORT - Copgvasvgsavsavsahvsavsa(Android)_REPORT - Copgvasvgsavsavsahvsavsa
(Android)_REPORT - Copgvasvgsavsavsahvsavsa
 
Android
AndroidAndroid
Android
 
Android and Android Phones
Android and Android PhonesAndroid and Android Phones
Android and Android Phones
 
Android versions
Android versionsAndroid versions
Android versions
 
Android OS
Android OSAndroid OS
Android OS
 
Andriod (operating system)
Andriod (operating system)Andriod (operating system)
Andriod (operating system)
 
Android and android phones
Android and android phonesAndroid and android phones
Android and android phones
 
About android
About androidAbout android
About android
 
Powerpoint activity 2
Powerpoint activity 2Powerpoint activity 2
Powerpoint activity 2
 

Kürzlich hochgeladen

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Kürzlich hochgeladen (20)

NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
Introduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdfIntroduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdf
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Learn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksLearn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic Marks
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 

Introduction to Android development - Presentation Report

  • 1. I SEMINAR REPORT ON ANDROID DEVELOPMENT By ATUL PANJWANI (120120107013) DEPARTMENT OF COMPUTER ENGINEERING GANDHINAGAR INSTITUTE OF TECHNOLOGY 2014/2015
  • 2. II SEMINAR REPORT ON ANDROID DEVELOPMENT By ATUL PANJWANI Guided by Prof. MansiVithalani (C.E. / I.T. Dept.) DEPARTMENT OF COMPUTER ENGINEERING GANDHINAGAR INSTITUTE OF TECHNOLOGY 2014/2015
  • 3. III GANDHINAGAR INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER ENGINEERING CERTIFICATE This is to certify that the project entitled ―ANDROID DEVELOPMENT” has been carried out by ATUL PANJWANI under my guidance in partial fulfilment ofthe degree of Bachelor of Engineering in Computer Engineering of Gandhinagar Institute of Technology during the academic year 2014. To the best of my knowledge and belief this work has been submitted elsewhere for the award of Bachelor in Engineering degree. Guided By Head of Department Prof. Mansi Vithalani Prof. Kinjal Adhvaryu (CE Department)
  • 4. IV ACKNOWLEDGEMENT As I write this acknowledgement, I must clarify that this is not just a formal acknowledgement, but also a sincere note of thanks and regard from my side. I feel a deep sense of gratitude and affection for those who were associated with this seminar. Without their co-operation and guidance this seminar could not have been conducted properly. I am also indebted to my friends and family for their constant support and their priceless reviews which helped me to take this seminar to current level. I am also thankful to our Head of the Department Prof. Kinjal Adhvaryu, for her indispensable suggestions and kind help throughout the project. ATUL PANJWANI
  • 5. V PAGE INDEX Chapter Page Abstract 1 1. Introduction 2 1.1 What is Android? 2 1.2 Why Android? 2 1.3 History 3 1.4 Architecture 5 1.5 Development Process 7 2. Training 8 2.1 Getting Started 8 2.2 Building Apps 12 2.3 Best Practices 15 3. API Guides 18 3.1 App Components 19 3.2 App Resources 19 3.3 User Interface 20 3.4 Animation & Graphics 21 3.5 Computation 21 3.6 Media 22 3.7 Connectivity 22 3.8 Data Storage 23 4. References ̶ Packages & Classes 24
  • 6. VI 5. Tools 26 5.1 Eclipse ADT 26 5.2 Android Studio ─ beta 28 5.3 Difference 29 6. Interesting about Android 30 6.1 Google Services 30 6.2 Android Nomenclature 32 6.3 Conclusion 33 Bibliography 34
  • 7. 1 ABSTRACT  Android is a mobile operating system (OS) based on the Linux kernel and currently developed by Google.  Android is designed primarily for touchscreen mobile devices such as smartphones and tablet computers, with specialized user interfaces for televisions (Android TV), cars (Android Auto), and wrist watches (Android Wear).  It also has been used in game consoles, digital cameras, regular PCs and other electronics.  Android has 4 layers: applications, applications framework, libraries & LINUX kernel.  Google sells the license to run android on third party hardwares.  In May 2012, the number of available apps in the Google Play Store amounted to 500,000 and surpassed 1 million apps in July 2013.  The user interface of Android is based on the concept of direct manipulation, using multi-touch gestures.  Interaction with the OS includes gestures such as swiping, tapping, pinching, and reverse pinching. The report gives you the clear idea for development of android along with its history and some interesting features. The idea of learning, rather practising android has become an important ―course‖ and key to success for a computer engineer.
  • 8. 2 Chapter 1: Introduction 1.1 WHAT IS ANDROID? Android is a mobile operating system (OS) based on the Linux kernel and currently developed by Google. With a user interface based on direct manipulation, Android is designed primarily for touchscreen mobile devices such as smartphones and tablet computers, with specialized user interfaces for televisions (Android TV), cars (Android Auto), and wrist watches (Android Wear). The OS uses touch inputs that loosely correspond to real-world actions, like swiping, tapping, pinching, and reverse pinching to manipulate on-screen objects, and a virtual keyboard. Despite being primarily designed for touchscreen input, it also has been used in game consoles, digital cameras, regular PCs and other electronics. Android's source code is released by Google under open source licenses, although most Android devices ultimately ship with a combination of open source and proprietary software. Initially developed by Android, Inc., which Google backed financially and later bought in 2005, Android was unveiled in 2007 along with the founding of the Open Handset Alliance—a consortium of hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices. 1.2 WHY ANDROID? Android is popular with technology companies which require a ready-made, low-cost and customizable operating system for high-tech devices. Android's open nature has encouraged a large community of developers and enthusiasts to use the open-source code as a foundation for community-driven projects,
  • 9. 3 which add new features for advanced users or bring Android to devices which were officially released running other operating systems. The operating system's success has made it a target for patent litigation as part of the so- called "smartphone wars" between technology companies. Following features add to the day-by-day increasing usage of Android devices in the market:  Multitasking  Ease of access of notification  Access to millions of applications (through Google Play Store)  Widgets  Permission to install Custom ROM  Google Support 1.3 HISTORY Android, Inc. was founded in Palo Alto, California in October 2003 by Andy Rubin (co-founder of Danger), Rich Miner (co-founder of Wildfire Communications, Inc.), Nick Sears (once VP at T-Mobile), and Chris White (headed design and interface development at WebTV) to develop, in Rubin's words, "smarter mobile devices that are more aware of its owner's location and preferences". The early intentions of the company were to develop an advanced operating system for digital cameras, when it was realized that the market for the devices was not large enough, and diverted their efforts to producing a smartphone operating system to rival those of Symbian and Windows Mobile. Despite the past accomplishments of the founders and early employees, Android Inc. operated secretly, revealing only that it was working on software for mobile phones.That same year, Rubin ran
  • 10. 4 out of money. Steve Perlman, a close friend of Rubin, brought him $10,000 in cash in an envelope and refused a stake in the company. Google acquired Android Inc. on August 17, 2005; key employees of Android Inc., including Rubin, Miner, and White, stayed at the company after the acquisition. Not much was known about Android Inc. at the time, but many assumed that Google was planning to enter the mobile phone market with this move. At Google, the team led by Rubin developed a mobile device platform powered by the Linux kernel. Google marketed the platform to handset makers and carriers on the promise of providing a flexible, upgradable system. Google had lined up a series of hardware component and software partners and signalled to carriers that it was open to various degrees of cooperation on their part. On November 5, 2007, the Open Handset Alliance, a consortium of technology companies including Google, device manufacturers such as HTC, Sony and Samsung, wireless carriers such as Sprint Nextel and T- Mobile, and chipset makers such as Qualcomm and Texas Instruments, unveiled itself, with a goal to develop open standards for mobile devices. That day, Android was unveiled as its first product, a mobile device platformbuilt on the Linux kernel version 2.6.25. The first commercially available smartphone running Android was the HTC Dream, released on October 22, 2008. In 2010, Google launched its Nexus series of devices – a line of smartphones and tablets running the Android operating system, and built by manufacturing partners. HTC collaborated with Google to release the first Nexus smartphone, the Nexus One. Google has since updated the series with newer devices, such as the Nexus 5 phone (made by LG) and the Nexus 7 tablet (made by Asus). Google releases the Nexus phones and
  • 11. 5 tablets to act as their flagship Android devices, demonstrating Android's latest software and hardware features. Since 2008, Android has seen numerous updates which have incrementally improved the operating system, adding new features and fixing bugs in previous releases. Each major release is named in alphabetical order after a dessert or sugary treat; for example, version 1.5 Cupcake was followed by 1.6 Donut. The latest released version, 4.4.4 KitKat, appeared as a security- only update; it was released on June 19, 2014, shortly after the release of 4.4.3. As of October 2014, newest version of the Android operating system, Android 5.0 "Lollipop", is available only as a developer preview. 1.4 ARCHITECTURE
  • 12. 6 Android operating system is a stack of software components which is roughly divided into five sections and four main layers as shown above in the architecture diagram. 1.4.1 Linux kernel At the bottom of the layers is Linux - Linux 2.6 with approximately 115 patches. This provides basic system functionality like process management, memory management, device management like camera, keypad, display etc. Also, the kernel handles all the things that Linux is really good at such as networking and a vast array of device drivers, which take the pain out of interfacing to peripheral hardware. 1.4.2 Libraries On top of Linux kernel there is a set of libraries including open-source Web browser engine WebKit, well known library libc, SQLite database which is a useful repository for storage and sharing of application data, libraries to play and record audio and video, SSL libraries responsible for Internet security etc. 1.4.3 Android Runtime This is the third section of the architecture and available on the second layer from the bottom. This section provides a key component called Dalvik Virtual Machine which is a kind of Java Virtual Machine specially designed and optimized for Android. The Dalvik VM makes use of Linux core features like memory management and multi-threading, which is intrinsic in the Java language. The Dalvik VM enables every Android application to run in its own process, with its own instance of the Dalvik virtual machine.
  • 13. 7 The Android runtime also provides a set of core libraries which enable Android application developers to write Android applications using standard Java programming language. 1.4.4 Application Framework The Application Framework layer provides many higher-level services to applications in the form of Java classes. Application developers are allowed to make use of these services in their applications. 1.4.5 Applications You will find all the Android application at the top layer. You will write your application to be installed on this layer only. Examples of such applications are Contacts Books, Browser, Games etc. 1.5 DEVELOPMENT PROCESS Android applications development process is mainly divided in following categories:  Training  API Guides  References & Packages  Tools  Google Services We will see the above stages in the succeeding chapters.
  • 14. 8 Chapter 2: Training 2.1 GETTING STARTED Getting started, teaches you the bare essentials for Android app development. If you're a new Android app developer, you should complete each of these classes in order: 2.1.1 Building First App This class teaches you how to build your first Android app. You’ll learn how to create an Android project and run a debuggable version of the app. You'll also learn some fundamentals of Android app design, including how to build a simple user interface and handle user input. Before you start this class, be sure you have your development environment set up. You need to: 1. Download the Android SDK. 2. Install the ADT plugin for Eclipse (if you’ll use the Eclipse IDE). 3. Download the latest SDK tools and platforms using the SDK Manager. 2.1.1.1 Creating sample app using Eclipse 1. Click New in the toolbar. 2. In the window that appears, open the Android folder, select Android Application Project, and click Next.
  • 15. 9 Figure 1. The New Android App Project wizard in Eclipse. 3. Fill in the form that appears: o Application Name is the app name that appears to users. For this project, use "My First App." o Project Name is the name of your project directory and the name visible in Eclipse. o Package Name is the package namespace for your app (following the same rules as packages in the Java programming language). Your package name must be unique across all packages installed on the Android system. For this reason, it's generally best if you use a name that begins with the reverse domain name of your organization or publisher entity. For this project, you can use something like "com.example.myfirstapp." However, you cannot publish your app on Google Play using the "com.example" namespace.
  • 16. 10 o Minimum Required SDK is the lowest version of Android that your app supports, indicated using the API level. To support as many devices as possible, you should set this to the lowest version available that allows your app to provide its core feature set. If any feature of your app is possible only on newer versions of Android and it's not critical to the app's core feature set, you can enable the feature only when running on the versions that support it (as discussed in Supporting Different Platform Versions). Leave this set to the default value for this project. o Target SDK indicates the highest version of Android (also using the API level) with which you have tested with your application. As new versions of Android become available, you should test your app on the new version and update this value to match the latest API level in order to take advantage of new platform features. o Compile With is the platform version against which you will compile your app. By default, this is set to the latest version of Android available in your SDK. (It should be Android 4.1 or greater; if you don't have such a version available, you must install one using the SDK Manager). You can still build your app to support older versions, but setting the build target to the latest version allows you to enable new features and optimize your app for a great user experience on the latest devices. o Theme specifies the Android UI style to apply for your app. You can leave this alone. Click Next.
  • 17. 11 4. On the next screen to configure the project, leave the default selections and click Next. 5. The next screen can help you create a launcher icon for your app. You can customize an icon in several ways and the tool generates an icon for all screen densities. Before you publish your app, you should be sure your icon meets the specifications defined in the Iconographydesign guide. Click Next. 6. Now you can select an activity template from which to begin building your app. For this project, select BlankActivity and click Next. 7. Leave all the details for the activity in their default state and click Finish. 2.1.2 Adding Action Bar The action bar is one of the most important design elements you can implement for your app's activities. Although first introduced with API level 11, you can use the Support Library to include the action bar on devices running Android 2.1 or higher. 2.1.3 Supporting Different Devices How to build your app with alternative resources that provide an optimized user experience on multiple device form factors using a single APK.
  • 18. 12 2.1.4 Building Dynamic UI How to build a user interface for your app that is flexible enough to present multiple UI components on large screens and a more constrained set of UI components on smaller screens—essential for building a single APK for both phones and tablets. 2.1.5 Saving Data To save data on the device, whether it's temporary files, downloaded app assets, user media, structured data, or something else. 2.1.6 Interacting With Other Apps To build a user experience that leverages other apps available on the device to perform advanced user tasks, such as capture a photo or view an address on a map. 2.2 BUILDING APPS 2.2.1WithSharing Simple Data To take your app interaction to the next level by sharing information with other apps, receive information back, and provide a simple and scalable way to perform Share actions with user content. 2.2.1.1 Sharing Files To provide secure access to a file associated with your app using a content URI and temporary access permissions. 2.2.1.2 Sharing Files with NFC To transfer files between devices using the NFC Android Beam feature.
  • 19. 13 2.2.2BUILDING APPS WITH CONTENT MULTIMEDIA 2.2.2.1Managing Audio Playback To respond to hardware audio key presses, request audio focus when playing audio, and respond appropriately to changes in audio focus. 2.2.2.3Capturing Photos To leverage existing camera apps on the user's device to capture photos or control the camera hardware directly and build your own camera app. 2.2.2.4Printing Content To print photos, HTML documents, and custom documents from your app. 2.2.3BUILDING APPS WITH CONNECTIVITY & CLOUD 2.2.3.1Connecting Devices Wirelessly To find and connect to local devices using Network Service Discovery and how to create peer-to-peer connections with Wi-Fi. 2.2.3.2Performing Network Operations To create a network connection, monitor the connection for changes in connectivity, and perform transactions with XML data. 2.2.3.3Transferring Data Without Draining the Battery To minimize your app's impact on the battery when performing downloads and other network transactions. 2.2.3.4Syncing to the Cloud To sync and back up app and user data to remote web services in the cloud and how to restore the data back to multiple devices.
  • 20. 14 2.2.3.5 Resolving Cloud Save Conflicts To design a robust conflict resolution strategy for apps that save data to the cloud. 2.2.3.6Transferring Data Using Sync Adapters To transfer data between the cloud and the device using the Android sync adapter framework 2.2.3.7Transmitting Network Data Using Volley To perform fast, scalable UI operations over the network using Volley 2.2.4 BUILDING APPS WITH LOCATION INFO These classes teach you how to add user personalization to your app. Some of the ways you can do this is by identifying users, providing information that's relevant to them, and providing information about the world around them. 2.2.4.1Accessing Contacts Data To use Android's central address book, the Contacts Provider, to display contacts and their details and modify contact information. 2.2.4.2Making Your App Location-Aware To add location-aware features to your app by getting the user's current location.
  • 21. 15 2.3 BEST PRACTICES 2.3.1 FOR INTERACTION These classes teach you how to engage and retain your users by implementing the best interaction patterns for Android. For instance, to help users quickly discover content in your app, your app should match their expectations for user interaction on Android. And to keep your users coming back, you should take advantage of platform capabilities that reveal and open your content without requiring users to go through the app launcher. 2.3.1.1Designing Effective Navigation To plan your app's screen hierarchy and forms of navigation so users can effectively and intuitively traverse your app content using various navigation patterns. 2.3.1.2Implementing Effective Navigation To implement various navigation patterns such as swipe views, a navigation drawer, and up navigation. 2.3.1.3Notifying the User To display messages called notifications outside of your application's UI. 2.3.1.4Adding Search Functionality To properly add a search interface to your app and create a searchable database.
  • 22. 16 2.3.1.5Making Your App Content Searchable by Google To enable deep linking and indexing of your application content so that users can open this content directly from their mobile search results. 2.3.2 FOR USER INTERFACE These classes teach you how to build a user interface using Android layouts for all types of devices. Android provides a flexible framework for UI design that allows your app to display different layouts for different devices, create custom UI widgets, and even control aspects of the system UI outside your app's window. 2.3.2.1 Designing for Multiple Screens To build a user interface that's flexible enough to fit perfectly on any screen and how to create different interaction patterns that are optimized for different screen sizes. 2.3.2.2 Creating Custom Views To build custom UI widgets that are interactive and smooth. 2.3.2.3 Creating Backward-Compatible UIs To use UI components and other APIs from the more recent versions of Android while remaining compatible with older versions of the platform. 2.3.2.4 Implementing Accessibility To make your app accessible to users with vision impairment or other physical disabilities.
  • 23. 17 2.3.2.5 Managing the System UI To hide and show status and navigation bars across different versions of Android, while managing the display of other screen components.
  • 24. 18 Chapter 3: API Guides In computer programming, application programming interface (API) is a set of routines, protocols, and tools for building software applications. An API expresses a software component in terms of its operations, inputs, outputs, and underlying types. An API defines functionalities that are independent of their respective implementations, which allows definitions and implementations to vary without compromising each other. The API specifies how software components should interact. An API is used when programminggraphical user interface (GUI) components. A good API makes it easier to develop a program by providing all the building blocks. A programmer then puts the blocks together. In addition to accessing databases or computer hardware, such as hard disk drives or video cards, an API can ease the work of programming GUI components. For example, an API can facilitate integration of new features into existing applications (a so-called "plug-in API"). An API can also assist otherwise distinct applications share data, which can help to integrate and enhance the functionalities of the applications. APIs often come in the form of a library that includes specifications for routines, data structures, object classes, and variables. In other cases, notably SOAP and REST services, an API is simply a specification of remote calls exposed to the API consumers. An API specification can take many forms, including an International Standard, such as POSIX, vendor documentation, such as the Microsoft Windows API, or the libraries of a programming language, e.g., Standard Template Library in C++ or Java API. An API differs from
  • 25. 19 an application binary interface (ABI) in that an API is source code-based while an ABI is a binary interface. For instance POSIX is an API, while the Linux Standard Base is an ABI. 3.1 APP COMPONENTS Android's application framework lets you create rich and innovative apps using a set of reusable components. This section explains how you can build the components that define the building blocks of your app and how to connect them together using intents. These include:  Intents and Intent Filters  Activities  Services  Content Providers  App Widgets  Processes and Threads 3.2 APP RESOURCES The following documents provide a complete guide to how you can organize your application resources, specify alternative resources, access them in your application, and more: The following documents provide a complete guide to how you can organize your application resources, specify alternative resources, access them in your application, and more:
  • 26. 20 3.2.1 Providing Resources What kinds of resources you can provide in your app, where to save them, and how to create alternative resources for specific device configurations. 3.2.2 Accessing Resources To use the resources you've provided, either by referencing them from your application code or from other XML resources. 3.2.3 Handling Runtime Changes To manage configuration changes that occur while your Activity is running. 3.2.4 Localization A bottom-up guide to localizing your application using alternative resources. While this is just one specific use of alternative resources, it is very important in order to reach more users. 3.2.5 Resource Types A reference of various resource types you can provide, describing their XML elements, attributes, and syntax. For example, this reference shows you how to create a resource for application menus, drawables, animations, and more. 3.3 USER INTERFACE Your app's user interface is everything that the user can see and interact with. Android provides a variety of pre-build UI components such as structured layout objects and UI controls that allow you to build the graphical user interface for your app. Android also provides other UI modules for special interfaces such as dialogs, notifications, and menus. These include:
  • 27. 21 3.4 ANIMATION & GRAPHICS Make your apps look and perform their best using Android's powerful graphics features such as OpenGL, hardware acceleration, and built-in UI animations.  Property Animation  View Animation  Drawable Animation  Canvas and Drawables  OpenGL ES  Hardware Acceleration 3.5 COMPUTATION RenderScript provides a platform-independent computation engine that operates at the native level. Use it to accelerate your apps that require extensive computational horsepower.
  • 28. 22  RenderScript  Advanced RenderScript  Runtime API Reference 3.6 MEDIA Add video, audio, and photo capabilities to your app with Android's robust APIs for playing and recording media.  Media Playback  Media Router  Media Route Provider  ExoPlayer  Supported Media Formats  Audio Capture  JetPlayer  Camera 3.7 CONNECTIVITY Android provides rich APIs to let your app connect and interact with other devices over Bluetooth, NFC, Wi-Fi P2P, USB, and SIP, in addition to standard network connections.  Bluetooth  NFC  Wi-Fi P2P  USB  SIP
  • 29. 23 3.8 DATA STORAGE Store application data in databases, files, or preferences, in internal or removable storage. You can also add a data backup service to let users store and recover application and system data.  Storage Options  Data Backup  App Install Location
  • 30. 24 Chapter 4: Packages & Classes Below listed are some of the Packages used for android application development. The programmers while app development, do not have to remember a huge number of packages and the classes included in the packages. So they use the reference from the official android development website: http://developer.android.com/reference/packages.html Some packages are listed hereby: android Contains resource classes used by applications included in the platform and defines application permissions for system features. android.accessibilityservice The classes in this package are used for development of accessibility service that provide alternative or augmented feedback to the user. android.app.backup Contains the backup and restore functionality available to applications. If a user wipes the data on their device or upgrades to a new Android-powered device, all applications that have enabled backup can restore the user's previous data when the application is reinstalled. android.appwidget Contains the components necessary to create "app widgets", which users can embed in other applications (such as the home screen) to quickly access application data and services without launching a new activity. For more information, see the App Widgets guide. android.bluetooth Provides classes that manage Bluetooth functionality, such as scanning for devices, connecting with devices, and managing data transfer between devices. The Bluetooth API supports both "Classic Bluetooth" and Bluetooth Low Energy. android.database Contains classes to explore data returned through a content provider.
  • 31. 25 android.graphics Provides low level graphics tools such as canvases, color filters, points, and rectangles that let you handle drawing to the screen directly. android.graphics.drawable Provides classes to manage a variety of visual elements that are intended for display only, such as bitmaps and gradients. android.graphics.drawable.shapes Contains classes for drawing geometric shapes. android.graphics.pdf Contains classes for manipulation of PDF content. android.hardware Provides support for hardware features, such as the camera and other sensors. android.hardware.camera2 The android.hardware.camera2 package provides an interface to individual camera devices connected to an Android device. android.mtp Provides APIs that let you interact directly with connected cameras and other devices, using the PTP (Picture Transfer Protocol) subset of the MTP (Media Transfer Protocol) specification. android.net Classes that help with network access, beyond the normal java.net.* APIs. android.net.wifi Provides classes to manage Wi-Fi functionality on the device. android.net.wifi.p2p Provides classes to create peer-to-peer (P2P) connections with Wi-Fi Direct. android.security Provides access to a few facilities of the Android security subsystems.
  • 32. 26 Chapter 5: Tools 5.1 ECLIPSE The Android SDK provides the API libraries and developer tools necessary to build, test, and debug apps for Android. Download the ADT Bundle to quickly start developing apps. It includes the essential Android SDK components and a version of the Eclipse IDE with built-in ADT (Android Developer Tools) to streamline your Android app development. With a single download, the Eclipse ADT bundle includes everything you need to begin developing apps:  Eclipse + ADT plug-in  Android SDK Tools  Android Platform-tools  A version of the Android platform  A version of the Android system image for the emulator Eclipse uses plug-ins to provide all the functionality within and on top of the runtime system. Its runtime system is based on Equinox, an implementation of the OSGi core framework specification. In addition to allowing the Eclipse Platform to be extended using other programming languages, such as C and Python, the plug-in framework allows the Eclipse Platform to work with typesetting languages like LaTeX and networking applications such as telnet and database
  • 33. 27 management systems. The plug-in architecture supports writing any desired extension to the environment, such as for configuration management. Java and CVS support is provided in the Eclipse SDK, with support for other version control systemsprovided by third-party plug-ins. With the exception of a small run-time kernel, everything in Eclipse is a plug-in. This means that every plug-in developed integrates with Eclipse in exactly the same way as other plug-ins; in this respect, all features are "created equal". Eclipse provides plug-ins for a wide variety of features, some of which are through third parties using both free and commercial models. Examples of plug-ins include for UML, for Sequence and other UML diagrams, a plug-in for DB Explorer, and many others. The Eclipse SDK includes the Eclipse Java development tools (JDT), offering an IDE with a built-in incremental Java compiler and a full model of the Java source files. This allows for advanced refactoring techniques and code analysis. The IDE also makes use of a workspace, in this case a set of metadata over a flat filespace allowing external file modifications as long as the corresponding workspace "resource" is refreshed afterwards. Eclipse implements, uses the graphical control elements of the Java toolkit called SWT, whereas most Java applications use the Java standard Abstract Window Toolkit (AWT) orSwing. Eclipse's user interface also uses an intermediate graphical user interface layer called JFace, which simplifies the construction of applications based on SWT. Eclipse was made to run on Wayland during a GSoC-Project in 2014. In addition to this Eclipse supports development for Tomcat, GlassFish and many other servers and is often capable of installing the required server (for development) directly from the IDE. It supports remote debugging, allowing
  • 34. 28 the user to watch variables and step through the code of an application that is running on the attached server. 5.2 ANDROID STUDIO – BETA Android Studio is a new Android development environment based on IntelliJ IDEA. It provides new features and improvements over Eclipse ADT and will be the official Android IDE once it's ready. On top of the capabilities you expect from IntelliJ, Android Studio offers:  Flexible Gradle-based build system.  Build variants and multiple APK generation.  Expanded template support for Google Services and various device types.  Rich layout editor with support for theme editing.  Lint tools to catch performance, usability, version compatibility, and other problems.  ProGuard and app-signing capabilities.  Built-in support for Google Cloud Platform, making it easy to integrate Google Cloud Messaging and App Engine.
  • 35. 29 5.3 ANDROID STUDIO vs. ECLIPSE ADT FEATURE ECLIPSE ADT ANDROID STUDIO Build system Ant Gradle Maven-based build dependencies No Yes Build variants and multiple-APK generation (great for Android Wear) No Yes Advanced Android code completion and refactoring No Yes Graphical layout editor Yes Yes APK signing and keystore management Yes Yes NDK support Yes Coming soon
  • 36. 30 Chapter 6: Interesting about Android 6.1 GOOGLE SERVICES The most significant factor which makes android successful software is Google. Google offers a variety of services that help you build new revenue streams, manage app distribution, track app usage, and enhance your app with features such as maps, sign-in, and cloud messaging. Although these Google services are not included in the Android platform, they are supported by most Android-powered devices. When using these services, you can distribute your app on Google Play to all devices running Android 2.3 or higher, and some services support even more devices. Google Maps Include the power of Google Maps in your app with an embeddable map view. You can customize the map with markers and overlays, control the user's perspective, draw lines and shapes, and much more. Google+ Allow users to sign in with their Google account, customize the user experience with Google+ info, pull people into your app with interactive posts, and add +1 buttons so users can recommend your content.
  • 37. 31 Google Cloud Platform Build and host the backend for your Android app at Google-scale. With an infrastructure that is managed automatically, you can focus on your app. Then, scale to support millions of users. Google Cloud Messaging Immediately notify your users about timely events by delivering lightweight messages from your web server. There are no quotas or charges to use Google Cloud Messaging. Google Cloud Save Enable per-user data storage and sync in your apps with no backend programming required. Google Play In-App Billing Build an app with a steady revenue stream that keeps users engaged by offering new content or virtual goods directly in your app. All transactions are handled by Google Play Store for a simple user experience. Google Wallet Instant Buy Provide fast and easy checkout in your app when selling physical goods and services. Increase conversions by streamlining your purchase flow and reducing the amount of information your customers need to enter.
  • 38. 32 Google Analytics Measure your success and gain insights into how users engage with your app content by integrating Google Analytics. You can track in-app purchases, the number of active users, interaction patterns, and much more. Google Mobile Ads Display ads from Google Mobile Ads offer you an alternative revenue opportunity that leverages multiple ad networks with targeted ads and several display formats. 6.2 ANDROID NOMENCLATURE Since April 2009, Android versions have been developed under a confectionery-themed code name and released in alphabetical order; the exceptions are versions 1.0 and 1.1 as they were not released under specific code names. Version Name Version # Release Year Alpha 1.0 (Pre-commercial) 2007-2008 Beta 1.1 (Pre-commercial) 2007-2008 Cupcake 1.5 2009 Donut 1.6 2009 Éclair 2.0 – 2.1 2009-2010 Froyo 2.2 – 2.2.3 2010-2011 Gingerbread 2.3 – 2.3.7 2010-2011
  • 39. 33 Honeycomb 3.0 – 3.2.6 2011-2012 Ice-cream Sandwich 4.0 – 4.0.4 2011-2012 Jelly Bean 4.1 – 4.3.1 2013 KitKat 4.4 – 4.4.4 2013 Lollipop 5.0 2014 6.3 CONCLUSION Due to advantages of Android like: Multitasking, Ease of notification, Access to millions of Apps, Widgets, Access to install custom ROM and the biggest factor ̶ Google support, it has attracted the users all over the globe and has changed the concept ―CellPhones‖ to ―SmartPhones‖ and thus it has commercially acquired a huge market which is still expanding. . .