Top Banner
GANDHINAGAR INSTITUTE OF TECHNOLOGY Department of Computer Engineering Seminar (150705) ANDROID DEVELOPMENT Atul Panjwani (120120107013) Submitted to: Asst. Prof. Mansi Vithalani
40
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introduction to Android development - Presentation

GANDHINAGAR INSTITUTE OF TECHNOLOGY

Department of Computer Engineering

Seminar (150705)

ANDROID DEVELOPMENT

Atul Panjwani (120120107013)

Submitted to: Asst. Prof. Mansi Vithalani

Page 2: Introduction to Android development - Presentation

A QUICK RECAP FROM INTRODUCTION

PRESENTATION

Android is a mobile operating system (OS) based

on the Linux kernel that is currently developed

by Google.

Designed primarily for:

1. Touch screen mobile devices

2. With specialized user interfaces for televisions

(Android TV)

3. cars (Android Auto)

4. wrist watches (Android Wear)

5. in game consoles, digital cameras, and other

electronics

Page 3: Introduction to Android development - Presentation

ANDROID ARCHITECTURE

Page 4: Introduction to Android development - Presentation

REQUIREMENTS OF ANDROID

DEVELOPMENT

Android Development

API guides Reference ToolsGoogle

Services

Training

Page 5: Introduction to Android development - Presentation

STEP 1: TRAINING

In Training for Android developers you'll find sets of lessons

within classes that describe how to accomplish a specific task

with code samples you can re-use in your app. Classes are

organized into several groups and explained as under:

Training

Getting started

Building Apps

With content sharing

With multimedia

With connectivity

With location info

Best Practices

For interaction

For User interface

For User input

For testing

Page 6: Introduction to Android development - Presentation

TRAINING ̶ “GETTING STARTED”

Building Your First App

After you've installed the Android SDK, start with this

class to learn the basics about Android app

development.

Creating an Android Project

Running Your Application

Building a Simple User Interface

Starting Another Activity

Page 7: Introduction to Android development - Presentation

TRAINING ̶ “GETTING STARTED”

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

Supporting Different Devices

To build your app with alternative resources that provide

an optimized user experience on multiple device form

factors using a single APK.

Page 8: Introduction to Android development - Presentation

TRAINING ̶ “GETTING STARTED”

Supporting Different Devices

To build your app with alternative resources that provide

an optimized user experience on multiple device form

factors using a single APK.

Building a Dynamic UI with Fragments

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.

Page 9: Introduction to Android development - Presentation

TRAINING ̶ “GETTING STARTED”

Saving Data

To save data on the device, whether it's temporary files,

downloaded app assets, user media, structured data, or

something else.

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.

Page 10: Introduction to Android development - Presentation

TRAINING ̶ “BUILDING APPS WITH CONTENT

SHARING”

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

Sharing Files

To provide secure access to a file associated with your

app using a content URI and temporary access

permissions.

Sharing Files with NFC

To transfer files between devices using the NFC Android

Beam feature.

Page 11: Introduction to Android development - Presentation

TRAINING ̶ “BUILDING APPS WITH

MULTIMEDIA”

Managing Audio Playback

To respond to hardware audio key presses, request

audio focus when playing audio, and respond

appropriately to changes in audio focus.

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

Printing Content

To print photos, HTML documents, and custom

documents from your app.

Page 12: Introduction to Android development - Presentation

TRAINING ̶ “BUILDING APPS WITH

CONNECTIVITY & CLOUD”

Connecting Devices Wirelessly

To find and connect to local devices using Network

Service Discovery and how to create peer-to-peer

connections with Wi-Fi.

Performing Network Operations

To create a network connection, monitor the connection

for changes in connectivity, and perform transactions

with XML data.

Transferring Data Without Draining the Battery

To minimize your app's impact on the battery when

performing downloads and other network transactions.

Page 13: Introduction to Android development - Presentation

TRAINING ̶ “BUILDING APPS WITH

CONNECTIVITY & CLOUD”

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

Resolving Cloud Save Conflicts

To design a robust conflict resolution strategy for apps that save data to the cloud.

Transferring Data Using Sync Adapters

To transfer data between the cloud and the device using the Android sync adapter framework

Transmitting Network Data Using Volley

To perform fast, scalable UI operations over the network using Volley.

Page 14: Introduction to Android development - Presentation

TRAINING ̶ “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.

Accessing Contacts Data

To use Android's central address book, the Contacts

Provider, to display contacts and their details and

modify contact information.

Making Your App Location-Aware

To add location-aware features to your app by getting

the user's current location.

Page 15: Introduction to Android development - Presentation

TRAINING ̶ “BEST PRACTICE 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.

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

Page 16: Introduction to Android development - Presentation

TRAINING ̶ “BEST PRACTICE FOR

INTERACTION”

Implementing Effective Navigation

To implement various navigation patterns such as swipe views, a navigation drawer, and up navigation.

Notifying the User

To display messages called notifications outside of your application's UI.

Adding Search Functionality

To properly add a search interface to your app and create a searchable database.

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

Page 17: Introduction to Android development - Presentation

TRAINING ̶ “BEST PRACTICE 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.

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.

Page 18: Introduction to Android development - Presentation

TRAINING ̶ “BEST PRACTICE FOR USER

INTERFACE”

Creating Custom Views

To build custom UI widgets that are interactive and smooth.

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.

Implementing Accessibility

To make your app accessible to users with vision impairment or other physical disabilities.

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 19: Introduction to Android development - Presentation

TRAINING ̶ “BEST PRACTICE FOR USER

INPUT”

These classes cover various subjects of user input, such as

touch screen gestures and text input through on-screen input

methods and hardware keyboards.

Using Touch Gestures

To write apps that allow users to interact with the touch

screen via touch gestures.

Handling Keyboard Input

To specify the appearance and behaviors of soft input

methods (such as on-screen keyboards) and how to

optimize the experience with hardware keyboards.

Supporting Game Controllers

To write apps that support game controllers.

Page 21: Introduction to Android development - Presentation

STEP 2 : API GUIDES

AP

I g

uid

es

App Components

App Manifests

App Resources

User Interface

Animation & Graphics

Computation

Media

Data Storage

Connectivity

Page 22: Introduction to Android development - Presentation

API GUIDES ̶ “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

Page 23: Introduction to Android development - Presentation

API GUIDES ̶ “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:

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.

Accessing Resources

To use the resources you've provided, either by referencing them from your application code or from other XML resources.

Handling Runtime Changes

To manage configuration changes that occur while your Activity is running.

Page 24: Introduction to Android development - Presentation

API GUIDES ̶ “APP RESOURCES”

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.

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.

Page 25: Introduction to Android development - Presentation

API GUIDES ̶ “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:

Layout

Input Control

Input Events

Menus

Action Bar

Style & Themes

Custom Components

Settings

Dialogues

Notifications

Toasts

Search

Drag & Drop

Accessibility

Page 26: Introduction to Android development - Presentation

API GUIDES ̶ “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

Page 27: Introduction to Android development - Presentation

API GUIDES ̶ “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.

RenderScript

Advanced RenderScript

Runtime API Reference

Page 29: Introduction to Android development - Presentation

API GUIDES ̶ “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 30: Introduction to Android development - Presentation

API GUIDES ̶ “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 31: Introduction to Android development - Presentation

STEP 3 : REFERENCES & PACKAGES

Various Packages references used which include

packages such as:

1. android.accessibility

2. android.app.backup

3. android.bluetooth

4. android.database

5. android.widget and so on . . .

Page 32: Introduction to Android development - Presentation

STEP 4 : TOOLS

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.

Page 33: Introduction to Android development - Presentation

TOOLS : “ECLIPSE”

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

Page 34: Introduction to Android development - Presentation

TOOLS : “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

SPECIAL SLIDE : “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 refactoringNo Yes

Graphical layout editor Yes Yes

APK signing and keystore

managementYes Yes

NDK supportYes

Coming

soon

Page 36: Introduction to Android development - Presentation

STEP 5 : SERVICES

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.

Page 37: Introduction to Android development - Presentation

STEP 5 : SERVICES

Google Services

Google+Google Wallet

Google Cloud Platform

Google Analytics

Ads by Google

Page 38: Introduction to Android development - Presentation

†ANDROID ̶ SOMETHING “SWEET”†

Android has set the trend of sweet names of its

various versions. Android is under ongoing

development by Google and the Open Handset

Alliance (OHA), and has seen a number of

updates to its base operating system since its initial

release.

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.

Page 39: Introduction to Android development - Presentation

ANDROID VERSIONS

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

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

Page 40: Introduction to Android development - Presentation

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

THANK YOU!!!