+ All Categories
Home > Engineering > Introduction to Android development - Presentation Report

Introduction to Android development - Presentation Report

Date post: 16-Jul-2015
Category:
Upload: atul-panjwani
View: 389 times
Download: 3 times
Share this document with a friend
Popular Tags:
40
I SEMINAR REPORT ON ANDROID DEVELOPMENT By ATUL PANJWANI (120120107013) DEPARTMENT OF COMPUTER ENGINEERING GANDHINAGAR INSTITUTE OF TECHNOLOGY 2014/2015
Transcript
Page 1: Introduction to Android development - Presentation Report

I

SEMINAR REPORT

ON

ANDROID DEVELOPMENT

By

ATUL PANJWANI

(120120107013)

DEPARTMENT OF COMPUTER ENGINEERING

GANDHINAGAR INSTITUTE OF TECHNOLOGY

2014/2015

Page 2: Introduction to Android development - Presentation Report

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

Page 3: Introduction to Android development - Presentation Report

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)

Page 4: Introduction to Android development - Presentation Report

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

Page 5: Introduction to Android development - Presentation Report

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

Page 6: Introduction to Android development - Presentation Report

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

Page 7: Introduction to Android development - Presentation Report

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.

Page 8: Introduction to Android development - Presentation Report

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,

Page 9: Introduction to Android development - Presentation Report

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

Page 10: Introduction to Android development - Presentation Report

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

Page 11: Introduction to Android development - Presentation Report

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

Page 12: Introduction to Android development - Presentation Report

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.

Page 13: Introduction to Android development - Presentation Report

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.

Page 14: Introduction to Android development - Presentation Report

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.

Page 15: Introduction to Android development - Presentation Report

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.

Page 16: Introduction to Android development - Presentation Report

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.

Page 17: Introduction to Android development - Presentation Report

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.

Page 18: Introduction to Android development - Presentation Report

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.

Page 19: Introduction to Android development - Presentation Report

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.

Page 20: Introduction to Android development - Presentation Report

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.

Page 21: Introduction to Android development - Presentation Report

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.

Page 22: Introduction to Android development - Presentation Report

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.

Page 23: Introduction to Android development - Presentation Report

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.

Page 24: Introduction to Android development - Presentation Report

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

Page 25: Introduction to Android development - Presentation Report

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:

Page 26: Introduction to Android development - Presentation Report

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:

Page 27: Introduction to Android development - Presentation Report

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.

Page 28: Introduction to Android development - Presentation Report

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

Page 29: Introduction to Android development - Presentation Report

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

Page 30: Introduction to Android development - Presentation Report

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.

Page 31: Introduction to Android development - Presentation Report

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.

Page 32: Introduction to Android development - Presentation Report

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

Page 33: Introduction to Android development - Presentation Report

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

Page 34: Introduction to Android development - Presentation Report

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.

Page 35: Introduction to Android development - Presentation Report

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

Page 36: Introduction to Android development - Presentation Report

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.

Page 37: Introduction to Android development - Presentation Report

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.

Page 38: Introduction to Android development - Presentation Report

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

Page 39: Introduction to Android development - Presentation Report

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. . .

Page 40: Introduction to Android development - Presentation Report

34

BIBLIOGRAPHY

[1] developer.android.com

[2] en.wikipedia.org/wiki/Android_(operating_system)


Recommended