A powerpoint presentation on Introduction to android development
prepared for college seminar
[Report is also uploaded named "Introduction to Android development - Presentation Report"]
Source: developer.android.com
1. GANDHINAGAR INSTITUTE OF TECHNOLOGY
Department of Computer Engineering
Seminar (150705)
ANDROID DEVELOPMENT
Atul Panjwani (120120107013)
Submitted to: Asst. Prof. Mansi Vithalani
2. 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
5. 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
6. 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
7. 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.
8. 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.
9. 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.
10. 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.
11. 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.
12. 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.
13. 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.
14. 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.
15. 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.
16. 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.
17. 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.
18. 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.
19. 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.
20. 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
21. STEP 2 : API GUIDES
APIguides
App
Components
App Manifests
App Resources
User Interface
Animation &
Graphics
Computation
Media
Data Storage
Connectivity
22. 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
23. 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.
24. 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.
25. 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
26. 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
27. 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
28. 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
29. 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
30. 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
31. 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 . . .
32. 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.
33. 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
34. 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.
35. 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
36. 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.
37. STEP 5 : SERVICES
Google
Services
Google+
Google
Wallet
Google
Cloud
Platform
Google
Analytics
Ads by
Google
38. †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.
40. 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!!!