SlideShare a Scribd company logo
INTRODUCTION TO
ANDROID AND ANDROID
STUDIO
Suyash Srijan
ABOUT THE SPEAKER
• Computer science student at Oxford Brookes
• A kickass Android developer with nearly 6 years of experience
• Experience with building ROMs and porting Android to different devices
• Experience with other platforms (iOS, Windows, Blackberry) and Wearables (Pebble & Android Wear)
• Overall a very cool guy
@suyashsrijan
fb.com/suyashsrijan
github.com/theblixguy
WHAT WILL WE LEARN TODAY
• What is Android
• Why develop for Android
• Android platform overview
• Android app overview
• Android app lifecycle
• Android app fundamentals (activities, intents, etc)
• Design
• Device compatibility
• Distribution
• What we need to get started with Android development
• Android Studio and development tools
WHAT IS
Android is the world’s most popular and dominant mobile operating
system. It is based on Linux kernel 3.4/3.10 (depending on device) and is
open-source (with proprietary bits). It runs on a wide variety of hardware,
including smartphones, smart watches, cars, televisions, digital cameras,
game consoles and more. It was founded by Andy Rubin and three
others in October 2003 and got acquired by Google in August 2005.
WHY DEVELOP FOR
is gigantic
• Over 1B users
• Over 1.5M activations per day
• Over 200M smartphones running Android sold annually
• Over 1.43M apps available
• Over 76% smartphone operating system market share
is freedom
• Thousands of third party libraries available
• Free SDK, IDE and emulator
• No restrictions; access anything*
• Faster access to new form factors and hardware
• Distribute your app anywhere (Playstore, Amazon Appstore, …)
* well, not anything, but you get the point
PLATFORM OVERVIEW
Introduction to Android and Android Studio
APP OVERVIEW
• Java: Java class files containing app logic
• Res: Different resource files
• Anim: Animation resource files
• Drawable: Images
• Drawable-Xdpi: Images depending on screen density
• Layout: App layout files
• Menu: Layout menu files
• Values: Value files (strings, colors, arrays, etc)
• Values-vX: Value files depending on API level
• Values-Xdp: Value files depending on screen density
• XML: XML files (duh)
• AndroidManifest.xml: App metadata file
• build.gradle: Build related settings
Introduction to Android and Android Studio
APP LIFECYCLE
Introduction to Android and Android Studio
APP FUNDAMENTALS
ACTIVITY
• A window/interface which a user can interact with
• Every app has at least one activity
• Activities can be full-screen, floating or embedded
inside another activity
startActivity(new Intent(this, newActivity.class));
FRAGMENTS
• A piece of user interface that is meant to be reused
• Adds modularity to your app and makes dynamic UI
design easy
• It has its own layout, behavior and lifecycle callbacks,
but it killed/stop if the activity is too
getFragmentManager().beginTransaction().add(andr
oid.R.id.content, new MyFragment()).commit();
INTENTS
• An intent is an abstract description of an operation to
be performed. Think of it as an “intention” to do
something
• Intents can be used to start activities, services or send
a broadcast
• Intents are of two types – Explicit (when you know
what exactly you want to do), and Implicit (when
you’re not sure what you want to do)
Intent viewAmazon = new
Intent(android.content.Intent.ACTION_VIEW,
Uri.parse(“http://www.amazon.com”));
startActivity(viewAmazon);
SERVICES
• A service is a long running
operation in the background
• There are two types of services
in Android – Bounded (which
runs as long as components
which bind to it run) and
Unbounded (which runs
indefinitely) but a service can
also be both
• Services run on the main thread
of the application by default
startService(new Intent(this,
myService.class));
BROADCAST RECIEVERS
App/Service
System sends a
broadcast
Battery level
changes
SMS received
Photo captured
• A broadcast is a system or
app event that can be
“broadcasted” so other
apps/services can listen for it
• Broadcasts are handled by
a BroadcastReceiver, which
is a component that allows
you to listen for broadcasts
• A BroadcastReceiver can be
implemented in
AndroidManifest.xml, or
dynamically by calling
registerReceiver(), or both
• An app’s/services’s
BroadcastReceiver is never
called if the app/service
hasn’t been explicitly started
by the user
CONTENT PROVIDERS/RESOLVERS
App
Database
Insert
Update Delete
Fetch
• A content provider allows you
to store data in your app in a
structured way, similar to a
relational database like SQL, for
the purpose of providing it to
other apps. Example usage:
Contacts app, SMS app, etc
• A content resolver allows you
to get data from a content
provider or manipulate its data
(modify, delete, update, etc)
• You cannot request to read
data from a content provider
at runtime, it has to be
declared in
AndroidManifest.xml
ANDROIDMANIFEST.XML
Introduction to Android and Android Studio
LAYOUTS
• A layout defines the visual structure for a user
interface, such as the UI for an activity or app widget
• Layouts can be defined both in XML or
programmatically using View and ViewGroup objects
• There are 5 different types of Layouts in Android:
LinearLayout, RelativeLayout, FrameLayout,
TableLayout and AbsoluteLayout
DESIGN
Introduction to Android and Android Studio
DEVICE COMPATIBILITY
Android is designed to run on many different types of devices, from phones to tablets
and televisions. As a developer, the range of devices provides a huge potential
audience for your app. In order for your app to be successful on all these devices, it
should tolerate some feature variability and provide a flexible user interface that
adapts to different screen configurations. To facilitate your effort toward that goal,
Android provides a dynamic app framework in which you can provide configuration-
specific app resources in static files (such as different XML layouts for different screen
sizes). Android then loads the appropriate resources based on the current device
configuration. So with some forethought to your app design and some additional app
resources, you can publish a single application package (APK) that provides an
optimized user experience on a variety of devices. If necessary, however, you can
specify your app's feature requirements and control which types of devices can install
your app from Google Play Store.
Introduction to Android and Android Studio
DISTRIBUTION
Introduction to Android and Android Studio
WHAT DO I NEED TO BUILD AN
APP?
JAVA PROGRAMMING
LANGUAGE & XML
docs.oracle.com/javase/tutorial/java/
ANDROID SDK & SDK TOOLS
developer.android.com/sdk
ANDROID STUDIO
tools.android.com/download/studio
AND OF COURSE…
Introduction to Android and Android Studio
MORE ON ANDROID STUDIO
Introduction to Android and Android Studio
ADB
• Connect to an Android device or emulator
• Read logcat
• Install, reinstall or uninstall apps
• Send/retrieve files to/from device storage
• Forward ports
• Record screen or take screenshots
• Reboot your phone into boot loader or recovery
mode
• Take backups or restore them
• Execute shell commands
DEVICE MONITOR
Introduction to Android and Android Studio
LOGCAT
Introduction to Android and Android Studio
SDK MANAGER
Introduction to Android and Android Studio
WORKFLOW
Introduction to Android and Android Studio
THERE’S STILL A LOT TO COVER…
NDK, Support Library, Google services APIs, Monetization, etc.
THANK YOU
PLEASE FOLLOW US ON SOCIAL MEDIA CHANNELS
FOR INFORMATION ON UPCOMING EVENTS, TALKS
AND MORE
@gdgoxford
fb.com/gdgoxford
plus.google.com/+GdgoxfordUkGoogleDevelopers/

More Related Content

What's hot (20)

PPTX
Introduction to Android ppt
Taha Malampatti
 
PPTX
Introduction To Mobile Application Development
Syed Absar
 
PPTX
Development of Mobile Application -PPT
Dhivya T
 
PPSX
Introduction to mobile application
K Senthil Kumar
 
PDF
Layouts in android
Durai S
 
PDF
Android Programming Basics
Eueung Mulyana
 
PPTX
Android app development
Tanmoy Roy
 
PPTX
Linux.ppt
onu9
 
PPTX
Flutter
Himanshu Singh
 
PPT
Android Application Development Using Java
amaankhan
 
PDF
AndroidManifest
Ahsanul Karim
 
PDF
Introduction to flutter
Wan Muzaffar Wan Hashim
 
PDF
Android resources
ma-polimi
 
PPTX
Creating the first app with android studio
Parinita03
 
PPTX
Android architecture
Saurabh Kukreja
 
PPTX
Android Operating System
Bilal Mirza
 
PPT
android activity
Deepa Rani
 
PDF
Mobile Application Design & Development
Ronnie Liew
 
PPT
Android Architecture
deepakshare
 
PDF
Introduction to Mobile Application Development
Tharindu Dassanayake
 
Introduction to Android ppt
Taha Malampatti
 
Introduction To Mobile Application Development
Syed Absar
 
Development of Mobile Application -PPT
Dhivya T
 
Introduction to mobile application
K Senthil Kumar
 
Layouts in android
Durai S
 
Android Programming Basics
Eueung Mulyana
 
Android app development
Tanmoy Roy
 
Linux.ppt
onu9
 
Android Application Development Using Java
amaankhan
 
AndroidManifest
Ahsanul Karim
 
Introduction to flutter
Wan Muzaffar Wan Hashim
 
Android resources
ma-polimi
 
Creating the first app with android studio
Parinita03
 
Android architecture
Saurabh Kukreja
 
Android Operating System
Bilal Mirza
 
android activity
Deepa Rani
 
Mobile Application Design & Development
Ronnie Liew
 
Android Architecture
deepakshare
 
Introduction to Mobile Application Development
Tharindu Dassanayake
 

Similar to Introduction to Android and Android Studio (20)

PDF
Android Workshop_1
Purvik Rana
 
PPTX
Getting started with android programming
PERKYTORIALS
 
ODP
Intro To Android App Development
Mike Kvintus
 
PPTX
Intro to android (gdays)
Omolara Adejuwon
 
PPTX
Android development orientation for starters v2
Joemarie Amparo
 
PPT
Part 2 android application development 101
Michael Angelo Rivera
 
PDF
Android fundamentals and tutorial for beginners
Boom Shukla
 
PPTX
Android Penetration Testing - Day 1
Mohammed Adam
 
PPTX
Introduction to Android Development Part 1
Kainda Kiniel Daka
 
PPTX
Developing for Android-Types of Android Application
Nandini Prabhu
 
PPTX
architecture of android.pptx
allurestore
 
PDF
Android dev o_auth
lzongren
 
PPT
Android architecture
Deepa Rahul
 
PDF
Android Development
mclougm4
 
PPT
Introduction to android sessions new
Joe Jacob
 
PDF
Androidify workshop
Alexey Buzdin
 
PPT
PPT Companion to Android
Dharani Kumar Madduri
 
PPT
Android In A Nutshell
Ted Chien
 
PDF
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
DuckMa
 
PDF
Android dev o_auth
fantasy zheng
 
Android Workshop_1
Purvik Rana
 
Getting started with android programming
PERKYTORIALS
 
Intro To Android App Development
Mike Kvintus
 
Intro to android (gdays)
Omolara Adejuwon
 
Android development orientation for starters v2
Joemarie Amparo
 
Part 2 android application development 101
Michael Angelo Rivera
 
Android fundamentals and tutorial for beginners
Boom Shukla
 
Android Penetration Testing - Day 1
Mohammed Adam
 
Introduction to Android Development Part 1
Kainda Kiniel Daka
 
Developing for Android-Types of Android Application
Nandini Prabhu
 
architecture of android.pptx
allurestore
 
Android dev o_auth
lzongren
 
Android architecture
Deepa Rahul
 
Android Development
mclougm4
 
Introduction to android sessions new
Joe Jacob
 
Androidify workshop
Alexey Buzdin
 
PPT Companion to Android
Dharani Kumar Madduri
 
Android In A Nutshell
Ted Chien
 
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
DuckMa
 
Android dev o_auth
fantasy zheng
 
Ad

Recently uploaded (20)

PDF
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
Executive Business Intelligence Dashboards
vandeslie24
 
DOCX
Import Data Form Excel to Tally Services
Tally xperts
 
PPTX
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
 
PPTX
MiniTool Power Data Recovery Full Crack Latest 2025
muhammadgurbazkhan
 
PPTX
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
PPTX
Platform for Enterprise Solution - Java EE5
abhishekoza1981
 
PDF
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
 
PDF
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PDF
Understanding the Need for Systemic Change in Open Source Through Intersectio...
Imma Valls Bernaus
 
PDF
GetOnCRM Speeds Up Agentforce 3 Deployment for Enterprise AI Wins.pdf
GetOnCRM Solutions
 
PPTX
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Executive Business Intelligence Dashboards
vandeslie24
 
Import Data Form Excel to Tally Services
Tally xperts
 
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
 
MiniTool Power Data Recovery Full Crack Latest 2025
muhammadgurbazkhan
 
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
Platform for Enterprise Solution - Java EE5
abhishekoza1981
 
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
 
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
Understanding the Need for Systemic Change in Open Source Through Intersectio...
Imma Valls Bernaus
 
GetOnCRM Speeds Up Agentforce 3 Deployment for Enterprise AI Wins.pdf
GetOnCRM Solutions
 
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Ad

Introduction to Android and Android Studio

  • 1. INTRODUCTION TO ANDROID AND ANDROID STUDIO Suyash Srijan
  • 2. ABOUT THE SPEAKER • Computer science student at Oxford Brookes • A kickass Android developer with nearly 6 years of experience • Experience with building ROMs and porting Android to different devices • Experience with other platforms (iOS, Windows, Blackberry) and Wearables (Pebble & Android Wear) • Overall a very cool guy @suyashsrijan fb.com/suyashsrijan github.com/theblixguy
  • 3. WHAT WILL WE LEARN TODAY • What is Android • Why develop for Android • Android platform overview • Android app overview • Android app lifecycle • Android app fundamentals (activities, intents, etc) • Design • Device compatibility • Distribution • What we need to get started with Android development • Android Studio and development tools
  • 5. Android is the world’s most popular and dominant mobile operating system. It is based on Linux kernel 3.4/3.10 (depending on device) and is open-source (with proprietary bits). It runs on a wide variety of hardware, including smartphones, smart watches, cars, televisions, digital cameras, game consoles and more. It was founded by Andy Rubin and three others in October 2003 and got acquired by Google in August 2005.
  • 7. is gigantic • Over 1B users • Over 1.5M activations per day • Over 200M smartphones running Android sold annually • Over 1.43M apps available • Over 76% smartphone operating system market share
  • 8. is freedom • Thousands of third party libraries available • Free SDK, IDE and emulator • No restrictions; access anything* • Faster access to new form factors and hardware • Distribute your app anywhere (Playstore, Amazon Appstore, …) * well, not anything, but you get the point
  • 12. • Java: Java class files containing app logic • Res: Different resource files • Anim: Animation resource files • Drawable: Images • Drawable-Xdpi: Images depending on screen density • Layout: App layout files • Menu: Layout menu files • Values: Value files (strings, colors, arrays, etc) • Values-vX: Value files depending on API level • Values-Xdp: Value files depending on screen density • XML: XML files (duh) • AndroidManifest.xml: App metadata file • build.gradle: Build related settings
  • 18. • A window/interface which a user can interact with • Every app has at least one activity • Activities can be full-screen, floating or embedded inside another activity startActivity(new Intent(this, newActivity.class));
  • 20. • A piece of user interface that is meant to be reused • Adds modularity to your app and makes dynamic UI design easy • It has its own layout, behavior and lifecycle callbacks, but it killed/stop if the activity is too getFragmentManager().beginTransaction().add(andr oid.R.id.content, new MyFragment()).commit();
  • 22. • An intent is an abstract description of an operation to be performed. Think of it as an “intention” to do something • Intents can be used to start activities, services or send a broadcast • Intents are of two types – Explicit (when you know what exactly you want to do), and Implicit (when you’re not sure what you want to do) Intent viewAmazon = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(“http://www.amazon.com”)); startActivity(viewAmazon);
  • 24. • A service is a long running operation in the background • There are two types of services in Android – Bounded (which runs as long as components which bind to it run) and Unbounded (which runs indefinitely) but a service can also be both • Services run on the main thread of the application by default startService(new Intent(this, myService.class));
  • 26. App/Service System sends a broadcast Battery level changes SMS received Photo captured • A broadcast is a system or app event that can be “broadcasted” so other apps/services can listen for it • Broadcasts are handled by a BroadcastReceiver, which is a component that allows you to listen for broadcasts • A BroadcastReceiver can be implemented in AndroidManifest.xml, or dynamically by calling registerReceiver(), or both • An app’s/services’s BroadcastReceiver is never called if the app/service hasn’t been explicitly started by the user
  • 28. App Database Insert Update Delete Fetch • A content provider allows you to store data in your app in a structured way, similar to a relational database like SQL, for the purpose of providing it to other apps. Example usage: Contacts app, SMS app, etc • A content resolver allows you to get data from a content provider or manipulate its data (modify, delete, update, etc) • You cannot request to read data from a content provider at runtime, it has to be declared in AndroidManifest.xml
  • 32. • A layout defines the visual structure for a user interface, such as the UI for an activity or app widget • Layouts can be defined both in XML or programmatically using View and ViewGroup objects • There are 5 different types of Layouts in Android: LinearLayout, RelativeLayout, FrameLayout, TableLayout and AbsoluteLayout
  • 36. Android is designed to run on many different types of devices, from phones to tablets and televisions. As a developer, the range of devices provides a huge potential audience for your app. In order for your app to be successful on all these devices, it should tolerate some feature variability and provide a flexible user interface that adapts to different screen configurations. To facilitate your effort toward that goal, Android provides a dynamic app framework in which you can provide configuration- specific app resources in static files (such as different XML layouts for different screen sizes). Android then loads the appropriate resources based on the current device configuration. So with some forethought to your app design and some additional app resources, you can publish a single application package (APK) that provides an optimized user experience on a variety of devices. If necessary, however, you can specify your app's feature requirements and control which types of devices can install your app from Google Play Store.
  • 40. WHAT DO I NEED TO BUILD AN APP?
  • 41. JAVA PROGRAMMING LANGUAGE & XML docs.oracle.com/javase/tutorial/java/
  • 42. ANDROID SDK & SDK TOOLS developer.android.com/sdk
  • 46. MORE ON ANDROID STUDIO
  • 48. ADB
  • 49. • Connect to an Android device or emulator • Read logcat • Install, reinstall or uninstall apps • Send/retrieve files to/from device storage • Forward ports • Record screen or take screenshots • Reboot your phone into boot loader or recovery mode • Take backups or restore them • Execute shell commands
  • 58. THERE’S STILL A LOT TO COVER… NDK, Support Library, Google services APIs, Monetization, etc.
  • 60. PLEASE FOLLOW US ON SOCIAL MEDIA CHANNELS FOR INFORMATION ON UPCOMING EVENTS, TALKS AND MORE @gdgoxford fb.com/gdgoxford plus.google.com/+GdgoxfordUkGoogleDevelopers/