Saltar al contenido principal
GANDHINAGAR INSTITUTE OF TECHNOLOGY
Department of Computer Engineering
Seminar (150705)
ANDROID DEVELOPMENT
Atul Panjwani (120120107013)
Submitted to: Asst. Prof. Mansi Vithalani
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
ANDROID ARCHITECTURE
REQUIREMENTS OF ANDROID
DEVELOPMENT
Android
Development
API guides Reference Tools
Google
Services
Training
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
TRAINING ̶ “BEST PRACTICE FOR TESTING
THE APPLICATION”
 Testing Your Activity
 To test Activities in your Android applications.
 Setting Up Your Test Environment
 Creating and Running a Test Case
 Testing UI Components
 Creating Unit Tests
 Creating Functional Tests
STEP 2 : API GUIDES
APIguides
App
Components
App Manifests
App Resources
User Interface
Animation &
Graphics
Computation
Media
Data Storage
Connectivity
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
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.
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.
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
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
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
API GUIDES ̶ “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
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
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
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 . . .
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.
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
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.
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 refactoring
No Yes
Graphical layout editor Yes Yes
APK signing and keystore
management
Yes Yes
NDK support
Yes
Coming
soon
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.
STEP 5 : SERVICES
Google
Services
Google+
Google
Wallet
Google
Cloud
Platform
Google
Analytics
Ads by
Google
†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.
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
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!!!