SlideShare a Scribd company logo
Mobile application
development
Android introduction
Alberto Rubalcaba
Oracle Certified Professional, Java SE Programmer
¿What is Android?
 Open source, open platform for mobile development
 All the SDK, API and platform source is available
 No need for licence or app review
 You can replace any system app with your own
 Official development site: developer.android.com
How it works?
Components architecture model
Every component provides his interface
Java programming
Useful programming tips
Avoid creating objects
Use native functions
Prefer static
Avoid internal getter o setter
Declare constants final
Avoid floats and enums
Android Architecture
Project architecture
Design principles
Delight me in surprising
Real objects are more fun than buttons and menus
Let me make it mine
Get to know me
Keep it brief
Pictures are faster than words
Decide for me, but let me have the final say
http://developer.android.com/design/get-started/principles.html
App components
Activities
Services
Content providers
Broadcast receivers
Activity life cycle
Services
Perform long operations on background
Runs trough applications
A component can bind to a service to interact with and perform
interprocess communication (IPC)
Service states
Started
Bound
http://developer.android.com/guide/components/services.html
Content providers
Manages access to structured set of data
Provide mechanisms for defining data security
Connects data in one process with code running in another process
http://developer.android.com/guide/topics/providers/content-
providers.html
Broadcast receivers
Send broadcasts across applications
Registered by the context of the application dynamically
Registered statically in the android manifest
http://developer.android.com/reference/android/content/BroadcastRe
ceiver.html
Intents
Abstract description of an operation to be performed
Can be used to start activities, send broadcasts, start or bind services
Intent structure
Action. The general action to be performed
Data. The data to operate on, such a record on contacts, as a URI
Category. Gives additional information about the action to execute
Type. Specifies an explicit type (MIME types) of the intent data
Extras. This is a Bundle of additional information
http://developer.android.com/reference/android/content/Intent.html
Application Context
Interface to global information about an application environment
Abstract class whose implementation is provided by Android system
Allows access to application-specific resources and classes
Calls for application-level operations such as launching activities,
broadcasting and receiving intents
http://developer.android.com/reference/android/content/Context.htm
l
Bundle
Mapping to String values to various Parcelable types (Serializable)
Has methods to put <key,value>’s to the map
Has methods to get <key,value>’s from the map
Has a method to clear() the whole map
http://developer.android.com/reference/android/os/Bundle.html
Manifest
All applications must have a manifest in the root directory
Presents essential information the system must have before running
the app
It names the java package for the application
It describes the components of the application
It determines which processes will host application components
Declares permissions to access protected parts of the API
http://developer.android.com/guide/topics/manifest/manifest-
intro.html
User interface
Built using View and ViewGroup objects
A View is an object that draws something on the screen to interact
with
A ViewGroup is an object that holds other View’s and ViewGroup’s
objects in order to define the layout of the app
http://developer.android.com/guide/topics/ui/index.html
User interface layout
User interface layout
The effective way to define your layout is via XML
The name of the XML element is respective to the Android class it
represents
http://developer.android.com/guide/topics/ui/declaring-layout.html
Example
Layouts
Defines the visual structure for a user interface
After declaring a layout in XML, it should be saved in the res/layout
project directory
When you compile your app, each layout is compiled into a View
resource
The layout should be loaded in the Activity.onCreate(Bundle b)
method
Call setContentView(R.layout.my_view)
Common Layouts
Linear layout
Relative layout
Web view
List view
Grid view
Input controls
Interactive components in your UI
Just add the control to the xml
http://developer.android.com/guide/topics/ui/controls.html
Common controls
Event listeners
Event listener example
Menus
Common UI component
Appears when the user touch the menu soft/hard button
Types of menus
Options menu and action bar
Context menu and contextual action menu
Pop up menu
http://developer.android.com/guide/topics/ui/menus.html
Defining a menu in XML
Defined in res/menu
Inflate the menu in the onCreate(Bundle b) method
Easier to visualize the menu structure in XML
Separates the content of the menu from the behavioral code
Allows to create alternative menu configurations
Allows to create submenus
Menu example
Handling menu events
Dialogs
AlertDialog
DatePickerDialog
TimePickerDialog
CustomDialogs
http://developer.android.com/guide/topics/ui/dialogs.html
Dialogs (1)
Dialogs content
Title
Optional, should be used only when the content area is occupied by a detailed message,
list or custom layout
Content area
This can display a message, a list or a custom layout
Action buttons
There should be no more than 3 action buttons in a dialog
Dialogs (2)
The alertDialog.Builder class provides API’s that allow you to create
an AlertDialog with the kinds of contents, including custom layouts
Dialogs (3)
To add action buttons call the setPositiveButton() and
setNegativeButton() methods
Dialogs (4)
Traditional single-choice list
Persistent single-choice list (radio buttons)
Persistent multiple-choice list (check boxes)
Toasts
Provides a simple feedback about an operation in a small popup
Fills the amount of space required for the message
http://developer.android.com/guide/topics/ui/notifiers/toasts.html
Toasts (1)
Instantiate a Toast object with one of the makeToast() methods
This method takes three parameters
Application context
String message
Toast duration (millis)
Custom Toasts
 You can create customized layout for your toast notification
 Define a view XML layout
 Pass the root view object to the setView(View) method
Custom Toasts
You must use the ID of your custom layout to inflate it from the XML
Sensors
Sensors (1)
Sensor framwork
SensorManager
Sensor
SensorEvent
SensorEventListener
http://developer.android.com/guide/topics/sensors/index.html
Sensors (2)
Identifying sensors
Get the sensor service
Get the sensor that you are looking for
Sensors (3)
• Monitoring events
Let’s code 

More Related Content

What's hot

03 android application structure
03 android application structure03 android application structure
03 android application structure
Sokngim Sa
 
Ppt 2 android_basics
Ppt 2 android_basicsPpt 2 android_basics
Ppt 2 android_basics
Headerlabs Infotech Pvt. Ltd.
 
01 introduction to android
01 introduction to android01 introduction to android
01 introduction to android
Sokngim Sa
 
View groups containers
View groups containersView groups containers
View groups containersMani Selvaraj
 
Android resources in android-chapter9
Android resources in android-chapter9Android resources in android-chapter9
Android resources in android-chapter9
Dr. Ramkumar Lakshminarayanan
 
Beginning android
Beginning android Beginning android
Beginning android
Igor R
 
Android session 3
Android session 3Android session 3
Android session 3
Ahesanali Suthar
 
Android session 2
Android session 2Android session 2
Android session 2
Ahesanali Suthar
 
Android programming basics
Android programming basicsAndroid programming basics
Android programming basics
Egerton University
 
Android session 1
Android session 1Android session 1
Android session 1
Ahesanali Suthar
 
01 08 - graphical user interface - layouts
01  08 - graphical user interface - layouts01  08 - graphical user interface - layouts
01 08 - graphical user interface - layouts
Siva Kumar reddy Vasipally
 
01 11 - graphical user interface - fonts-web-tab
01  11 - graphical user interface - fonts-web-tab01  11 - graphical user interface - fonts-web-tab
01 11 - graphical user interface - fonts-web-tabSiva Kumar reddy Vasipally
 
Android app fundamentals
Android app fundamentalsAndroid app fundamentals
Android app fundamentals
Amr Salman
 
Android Programming.pptx
Android Programming.pptxAndroid Programming.pptx
Android Programming.pptx
vishal choudhary
 
Day 4: Android: UI Widgets
Day 4: Android: UI WidgetsDay 4: Android: UI Widgets
Day 4: Android: UI WidgetsAhsanul Karim
 
Android development orientation for starters v4 seminar
Android development orientation for starters v4   seminarAndroid development orientation for starters v4   seminar
Android development orientation for starters v4 seminar
Joemarie Amparo
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2
Joemarie Amparo
 
Learn Xamarin Absolute Beginners - Permissions, Building the App GUI & Menus
Learn Xamarin Absolute Beginners - Permissions, Building the App GUI & MenusLearn Xamarin Absolute Beginners - Permissions, Building the App GUI & Menus
Learn Xamarin Absolute Beginners - Permissions, Building the App GUI & Menus
Eng Teong Cheah
 

What's hot (20)

03 android application structure
03 android application structure03 android application structure
03 android application structure
 
Ppt 2 android_basics
Ppt 2 android_basicsPpt 2 android_basics
Ppt 2 android_basics
 
01 introduction to android
01 introduction to android01 introduction to android
01 introduction to android
 
View groups containers
View groups containersView groups containers
View groups containers
 
Android resources in android-chapter9
Android resources in android-chapter9Android resources in android-chapter9
Android resources in android-chapter9
 
Beginning android
Beginning android Beginning android
Beginning android
 
Android session 3
Android session 3Android session 3
Android session 3
 
Lesson 10
Lesson 10Lesson 10
Lesson 10
 
Android session 2
Android session 2Android session 2
Android session 2
 
Android programming basics
Android programming basicsAndroid programming basics
Android programming basics
 
Android session 1
Android session 1Android session 1
Android session 1
 
01 08 - graphical user interface - layouts
01  08 - graphical user interface - layouts01  08 - graphical user interface - layouts
01 08 - graphical user interface - layouts
 
01 11 - graphical user interface - fonts-web-tab
01  11 - graphical user interface - fonts-web-tab01  11 - graphical user interface - fonts-web-tab
01 11 - graphical user interface - fonts-web-tab
 
Android app fundamentals
Android app fundamentalsAndroid app fundamentals
Android app fundamentals
 
Android Programming.pptx
Android Programming.pptxAndroid Programming.pptx
Android Programming.pptx
 
Day 4: Android: UI Widgets
Day 4: Android: UI WidgetsDay 4: Android: UI Widgets
Day 4: Android: UI Widgets
 
Android development orientation for starters v4 seminar
Android development orientation for starters v4   seminarAndroid development orientation for starters v4   seminar
Android development orientation for starters v4 seminar
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2
 
Learn Xamarin Absolute Beginners - Permissions, Building the App GUI & Menus
Learn Xamarin Absolute Beginners - Permissions, Building the App GUI & MenusLearn Xamarin Absolute Beginners - Permissions, Building the App GUI & Menus
Learn Xamarin Absolute Beginners - Permissions, Building the App GUI & Menus
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 

Viewers also liked

Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
Benny Skogberg
 
Android Development: The Basics
Android Development: The BasicsAndroid Development: The Basics
Android Development: The Basics
Mike Desjardins
 
Android ppt
Android pptAndroid ppt
Android ppt
Ansh Singh
 

Viewers also liked (6)

Google Android
Google AndroidGoogle Android
Google Android
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Android Development: The Basics
Android Development: The BasicsAndroid Development: The Basics
Android Development: The Basics
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Android ppt
Android ppt Android ppt
Android ppt
 

Similar to Android App Development (Basics)

Industrial Training in Android Application
Industrial Training in Android ApplicationIndustrial Training in Android Application
Industrial Training in Android Application
Arcadian Learning
 
Android Tutorial
Android TutorialAndroid Tutorial
Android Tutorial
Fun2Do Labs
 
Intro To Android App Development
Intro To Android App DevelopmentIntro To Android App Development
Intro To Android App Development
Mike Kvintus
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
katayoon_bz
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
Keshav Chauhan
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
Ed Zel
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
Avinash Nandakumar
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
Aly Abdelkareem
 
Android Tutorial For Beginners Part-1
Android Tutorial For Beginners Part-1Android Tutorial For Beginners Part-1
Android Tutorial For Beginners Part-1
Amit Saxena
 
Android Development project
Android Development projectAndroid Development project
Android Development projectMinhaj Kazi
 
Android For Java Developers
Android For Java DevelopersAndroid For Java Developers
Android For Java Developers
Mike Wolfson
 
Nativa Android Applications development
Nativa Android Applications developmentNativa Android Applications development
Nativa Android Applications development
Alfredo Morresi
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
Shrijan Tiwari
 
Android best training-in-mumbai
Android best training-in-mumbaiAndroid best training-in-mumbai
Android best training-in-mumbai
vibrantuser
 
What is Android?
What is Android?What is Android?
What is Android?
ndalban
 
Android Development Basics
Android Development BasicsAndroid Development Basics
Android Development Basics
Prajakta Dharmpurikar
 
architecture of android.pptx
architecture of android.pptxarchitecture of android.pptx
architecture of android.pptx
allurestore
 

Similar to Android App Development (Basics) (20)

Industrial Training in Android Application
Industrial Training in Android ApplicationIndustrial Training in Android Application
Industrial Training in Android Application
 
Android Tutorial
Android TutorialAndroid Tutorial
Android Tutorial
 
Intro To Android App Development
Intro To Android App DevelopmentIntro To Android App Development
Intro To Android App Development
 
Android
AndroidAndroid
Android
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android-Tutorial.ppt
Android-Tutorial.pptAndroid-Tutorial.ppt
Android-Tutorial.ppt
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Android Tutorial For Beginners Part-1
Android Tutorial For Beginners Part-1Android Tutorial For Beginners Part-1
Android Tutorial For Beginners Part-1
 
Android Development project
Android Development projectAndroid Development project
Android Development project
 
Android For Java Developers
Android For Java DevelopersAndroid For Java Developers
Android For Java Developers
 
Nativa Android Applications development
Nativa Android Applications developmentNativa Android Applications development
Nativa Android Applications development
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Android best training-in-mumbai
Android best training-in-mumbaiAndroid best training-in-mumbai
Android best training-in-mumbai
 
What is Android?
What is Android?What is Android?
What is Android?
 
Android Development Basics
Android Development BasicsAndroid Development Basics
Android Development Basics
 
architecture of android.pptx
architecture of android.pptxarchitecture of android.pptx
architecture of android.pptx
 

Recently uploaded

AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 

Recently uploaded (20)

AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 

Android App Development (Basics)