SlideShare a Scribd company logo
1 of 60
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
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
APP LIFECYCLE
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
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
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.
DISTRIBUTION
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…
MORE ON 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
LOGCAT
SDK MANAGER
WORKFLOW
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

Introduction To Mobile Application Development
Introduction To Mobile Application DevelopmentIntroduction To Mobile Application Development
Introduction To Mobile Application DevelopmentSyed Absar
 
Introduction to Android ppt
Introduction to Android pptIntroduction to Android ppt
Introduction to Android pptTaha Malampatti
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to androidzeelpatel0504
 
Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application DevelopmentTharindu Dassanayake
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android Ranjith Kumar
 
Android PPT Presentation 2018
Android PPT Presentation 2018Android PPT Presentation 2018
Android PPT Presentation 2018Rao Purna
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android DevelopmentAly Abdelkareem
 
Introduction to fragments in android
Introduction to fragments in androidIntroduction to fragments in android
Introduction to fragments in androidPrawesh Shrestha
 
Development of Mobile Application -PPT
Development of Mobile Application -PPTDevelopment of Mobile Application -PPT
Development of Mobile Application -PPTDhivya T
 
Mobile application development
Mobile application developmentMobile application development
Mobile application developmentEric Cattoir
 
Location-Based Services on Android
Location-Based Services on AndroidLocation-Based Services on Android
Location-Based Services on AndroidJomar Tigcal
 
androidstudio.pptx
androidstudio.pptxandroidstudio.pptx
androidstudio.pptxSundaresanB5
 
Mobile application development ppt
Mobile application development pptMobile application development ppt
Mobile application development ppttirupathinews
 
Android Web app
Android Web app Android Web app
Android Web app Sumit Kumar
 
Data Storage In Android
Data Storage In Android Data Storage In Android
Data Storage In Android Aakash Ugale
 
Introduction to Mobile Development
Introduction to Mobile DevelopmentIntroduction to Mobile Development
Introduction to Mobile DevelopmentPragnesh Vaghela
 
Android Programming Basics
Android Programming BasicsAndroid Programming Basics
Android Programming BasicsEueung Mulyana
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 

What's hot (20)

Introduction To Mobile Application Development
Introduction To Mobile Application DevelopmentIntroduction To Mobile Application Development
Introduction To Mobile Application Development
 
Introduction to Android ppt
Introduction to Android pptIntroduction to Android ppt
Introduction to Android ppt
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application Development
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android
 
Android PPT Presentation 2018
Android PPT Presentation 2018Android PPT Presentation 2018
Android PPT Presentation 2018
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
AndroidManifest
AndroidManifestAndroidManifest
AndroidManifest
 
Introduction to fragments in android
Introduction to fragments in androidIntroduction to fragments in android
Introduction to fragments in android
 
Android User Interface
Android User InterfaceAndroid User Interface
Android User Interface
 
Development of Mobile Application -PPT
Development of Mobile Application -PPTDevelopment of Mobile Application -PPT
Development of Mobile Application -PPT
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Location-Based Services on Android
Location-Based Services on AndroidLocation-Based Services on Android
Location-Based Services on Android
 
androidstudio.pptx
androidstudio.pptxandroidstudio.pptx
androidstudio.pptx
 
Mobile application development ppt
Mobile application development pptMobile application development ppt
Mobile application development ppt
 
Android Web app
Android Web app Android Web app
Android Web app
 
Data Storage In Android
Data Storage In Android Data Storage In Android
Data Storage In Android
 
Introduction to Mobile Development
Introduction to Mobile DevelopmentIntroduction to Mobile Development
Introduction to Mobile Development
 
Android Programming Basics
Android Programming BasicsAndroid Programming Basics
Android Programming Basics
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 

Similar to Introduction to Android and Android Studio

Android Workshop_1
Android Workshop_1Android Workshop_1
Android Workshop_1Purvik Rana
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programmingPERKYTORIALS
 
Intro To Android App Development
Intro To Android App DevelopmentIntro To Android App Development
Intro To Android App DevelopmentMike Kvintus
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2Joemarie Amparo
 
Part 2 android application development 101
Part 2 android application development 101Part 2 android application development 101
Part 2 android application development 101Michael Angelo Rivera
 
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginnersAndroid fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginnersBoom Shukla
 
Android Penetration Testing - Day 1
Android Penetration Testing - Day 1Android Penetration Testing - Day 1
Android Penetration Testing - Day 1Mohammed Adam
 
Introduction to Android Development Part 1
Introduction to Android Development Part 1Introduction to Android Development Part 1
Introduction to Android Development Part 1Kainda Kiniel Daka
 
Developing for Android-Types of Android Application
Developing for Android-Types of Android ApplicationDeveloping for Android-Types of Android Application
Developing for Android-Types of Android ApplicationNandini Prabhu
 
architecture of android.pptx
architecture of android.pptxarchitecture of android.pptx
architecture of android.pptxallurestore
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_authlzongren
 
Android architecture
Android architectureAndroid architecture
Android architectureDeepa Rahul
 
Android Development
Android DevelopmentAndroid Development
Android Developmentmclougm4
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions newJoe Jacob
 
Android In A Nutshell
Android In A NutshellAndroid In A Nutshell
Android In A NutshellTed Chien
 
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionMatteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionDuckMa
 

Similar to Introduction to Android and Android Studio (20)

Android Workshop_1
Android Workshop_1Android Workshop_1
Android Workshop_1
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programming
 
Intro To Android App Development
Intro To Android App DevelopmentIntro To Android App Development
Intro To Android App Development
 
Intro to android (gdays)
Intro to android (gdays)Intro to android (gdays)
Intro to android (gdays)
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2
 
Part 2 android application development 101
Part 2 android application development 101Part 2 android application development 101
Part 2 android application development 101
 
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginnersAndroid fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginners
 
Android Penetration Testing - Day 1
Android Penetration Testing - Day 1Android Penetration Testing - Day 1
Android Penetration Testing - Day 1
 
Introduction to Android Development Part 1
Introduction to Android Development Part 1Introduction to Android Development Part 1
Introduction to Android Development Part 1
 
Developing for Android-Types of Android Application
Developing for Android-Types of Android ApplicationDeveloping for Android-Types of Android Application
Developing for Android-Types of Android Application
 
architecture of android.pptx
architecture of android.pptxarchitecture of android.pptx
architecture of android.pptx
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
Android Development
Android DevelopmentAndroid Development
Android Development
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions new
 
Androidify workshop
Androidify workshopAndroidify workshop
Androidify workshop
 
PPT Companion to Android
PPT Companion to AndroidPPT Companion to Android
PPT Companion to Android
 
Android In A Nutshell
Android In A NutshellAndroid In A Nutshell
Android In A Nutshell
 
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionMatteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 

Recently uploaded

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 

Recently uploaded (20)

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 

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
  • 10.
  • 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
  • 13.
  • 15.
  • 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
  • 30.
  • 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
  • 34.
  • 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.
  • 37.
  • 39.
  • 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
  • 45.
  • 46. MORE ON ANDROID STUDIO
  • 47.
  • 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
  • 51.
  • 53.
  • 55.
  • 57.
  • 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/