SlideShare a Scribd company logo
© Zühlke 2016
The ABC’s of Android: Learn Android
in 20 Minutes
ABC’s of Android 23 March 2018 Slide 1
© Zühlke 2016
So you know how to code
Assumptions:
• You know at least the basic concepts of programming
• You don’t mind a bit of Java / Kotlin every now and then
• You want to get to know Android, but don’t really know where to start
What the presentation assumes
ABC’s of Android 23 March 2018 Slide 2
© Zühlke 2016
What makes Android different
We know what a database is, we know what web pages are… but there are a few new
concepts that need to be grasped in Android as a system
ABC’s of Android 23 March 2018 Slide 3
Activities Broadcasts Content Providers Services
© Zühlke 2016
Activities
An activity provides the window in which the app draws its UI.
ABC’s of Android 23 March 2018 Slide 4
Activities
© Zühlke 2016
Activities
Project structure
ABC’s of Android 23 March 2018 Slide 5
Activities
© Zühlke 2016
Activities
Layout file
ABC’s of Android 23 March 2018 Slide 6
Activities
© Zühlke 2016
Activities
Manifest
ABC’s of Android 23 March 2018 Slide 7
Activities
© Zühlke 2016
Intents: Android glue
It is basically a passive data structure holding an abstract description of an
action to be performed
ABC’s of Android 23 March 2018 Slide 8
Activities
© Zühlke 2016
Activities: It’s a wonderful lifecycle
Always be aware that in Android your app can have different states
ABC’s of Android 23 March 2018 Slide 9
Activities
© Zühlke 2016
Broadcasts
Broadcasts can be used as a messaging system across apps
and outside of the normal user flow
ABC’s of Android 23 March 2018 Slide 10
Broadcasts
© Zühlke 2016
Content provider
A content provider manages access to a central repository of
data
ABC’s of Android 23 March 2018 Slide 11
© Zühlke 2016
Services
A Service is an application component that can perform long-
running operations in the background, and it does not provide
a user interface.
ABC’s of Android 23 March 2018 Slide 12
Services
Foreground Background Bound

More Related Content

What's hot

presentation
presentationpresentation
presentation
winnwang
 
GraphQL Summit 重點整理
GraphQL Summit 重點整理GraphQL Summit 重點整理
GraphQL Summit 重點整理
Chen-Tsu Lin
 
Ophir cohen dashboard in google analytics v5
Ophir cohen   dashboard in google analytics v5Ophir cohen   dashboard in google analytics v5
Ophir cohen dashboard in google analytics v5
Barry Schwartz
 
SMX Israel 2012 - Dashboard in Google Analytics
SMX Israel 2012 - Dashboard in Google AnalyticsSMX Israel 2012 - Dashboard in Google Analytics
SMX Israel 2012 - Dashboard in Google Analytics
UM Digital Tel-Aviv
 
MikeTaulty_Silverlight3_DevDays_Part1
MikeTaulty_Silverlight3_DevDays_Part1MikeTaulty_Silverlight3_DevDays_Part1
MikeTaulty_Silverlight3_DevDays_Part1
ukdpe
 
Recap NEXT 2017
Recap NEXT 2017Recap NEXT 2017
Recap NEXT 2017
Mario Fahlandt
 
#AI + #Cloud = #DigitalTransformation
#AI + #Cloud = #DigitalTransformation#AI + #Cloud = #DigitalTransformation
#AI + #Cloud = #DigitalTransformation
Craig Milroy
 
Predicting with GCP (Google Cloud Platform) by Giulia Bianchi, Data Scientist...
Predicting with GCP (Google Cloud Platform) by Giulia Bianchi, Data Scientist...Predicting with GCP (Google Cloud Platform) by Giulia Bianchi, Data Scientist...
Predicting with GCP (Google Cloud Platform) by Giulia Bianchi, Data Scientist...
Paris Women in Machine Learning and Data Science
 
30 days of google cloud 2021
30 days of google cloud 202130 days of google cloud 2021
30 days of google cloud 2021
SadhanaParameswaran
 
Autoscaling event driven apps
Autoscaling event driven appsAutoscaling event driven apps
Autoscaling event driven apps
LibbySchulze
 
SUGBLR - Dependency injection in sitecore
SUGBLR - Dependency injection in sitecoreSUGBLR - Dependency injection in sitecore
SUGBLR - Dependency injection in sitecore
Anindita Bhattacharya
 
Build 2016 - B859 - The Future of Visual Studio
Build 2016 - B859 - The Future of Visual StudioBuild 2016 - B859 - The Future of Visual Studio
Build 2016 - B859 - The Future of Visual Studio
Windows Developer
 

What's hot (12)

presentation
presentationpresentation
presentation
 
GraphQL Summit 重點整理
GraphQL Summit 重點整理GraphQL Summit 重點整理
GraphQL Summit 重點整理
 
Ophir cohen dashboard in google analytics v5
Ophir cohen   dashboard in google analytics v5Ophir cohen   dashboard in google analytics v5
Ophir cohen dashboard in google analytics v5
 
SMX Israel 2012 - Dashboard in Google Analytics
SMX Israel 2012 - Dashboard in Google AnalyticsSMX Israel 2012 - Dashboard in Google Analytics
SMX Israel 2012 - Dashboard in Google Analytics
 
MikeTaulty_Silverlight3_DevDays_Part1
MikeTaulty_Silverlight3_DevDays_Part1MikeTaulty_Silverlight3_DevDays_Part1
MikeTaulty_Silverlight3_DevDays_Part1
 
Recap NEXT 2017
Recap NEXT 2017Recap NEXT 2017
Recap NEXT 2017
 
#AI + #Cloud = #DigitalTransformation
#AI + #Cloud = #DigitalTransformation#AI + #Cloud = #DigitalTransformation
#AI + #Cloud = #DigitalTransformation
 
Predicting with GCP (Google Cloud Platform) by Giulia Bianchi, Data Scientist...
Predicting with GCP (Google Cloud Platform) by Giulia Bianchi, Data Scientist...Predicting with GCP (Google Cloud Platform) by Giulia Bianchi, Data Scientist...
Predicting with GCP (Google Cloud Platform) by Giulia Bianchi, Data Scientist...
 
30 days of google cloud 2021
30 days of google cloud 202130 days of google cloud 2021
30 days of google cloud 2021
 
Autoscaling event driven apps
Autoscaling event driven appsAutoscaling event driven apps
Autoscaling event driven apps
 
SUGBLR - Dependency injection in sitecore
SUGBLR - Dependency injection in sitecoreSUGBLR - Dependency injection in sitecore
SUGBLR - Dependency injection in sitecore
 
Build 2016 - B859 - The Future of Visual Studio
Build 2016 - B859 - The Future of Visual StudioBuild 2016 - B859 - The Future of Visual Studio
Build 2016 - B859 - The Future of Visual Studio
 

Similar to ABC'S of Android

7 Crucial Things Every Android Developer Should Know
7 Crucial Things Every Android Developer Should Know7 Crucial Things Every Android Developer Should Know
7 Crucial Things Every Android Developer Should Know
Mind IT Systems
 
Interim Report.docx - vsiogap3d.googlecode.com
Interim Report.docx - vsiogap3d.googlecode.comInterim Report.docx - vsiogap3d.googlecode.com
Interim Report.docx - vsiogap3d.googlecode.com
butest
 
Latest Android App Development Tools 2019
Latest Android App Development Tools 2019Latest Android App Development Tools 2019
Latest Android App Development Tools 2019
Elijahj Williams
 
SAP Mobile Business Intelligence
SAP Mobile Business IntelligenceSAP Mobile Business Intelligence
SAP Mobile Business Intelligence
tasmc
 
BIM Project Execution Plans and Open BIM via IFC2x3
BIM Project Execution Plans and Open BIM via IFC2x3BIM Project Execution Plans and Open BIM via IFC2x3
BIM Project Execution Plans and Open BIM via IFC2x3
Alfredo Carrato
 
API's for innovative cloud and mobile apps
API's for innovative cloud and mobile appsAPI's for innovative cloud and mobile apps
API's for innovative cloud and mobile apps
Manmohan Gupta
 
Angular vs react.pdf
Angular vs react.pdfAngular vs react.pdf
Angular vs react.pdf
Decoro Software Solutions
 
Pptx for ui deisgn field for general public at large
Pptx for ui deisgn field for general public at largePptx for ui deisgn field for general public at large
Pptx for ui deisgn field for general public at large
csservicesnm
 
Charting your path to app nirvana with AEM Mobile
Charting your path to app nirvana with AEM MobileCharting your path to app nirvana with AEM Mobile
Charting your path to app nirvana with AEM Mobile
Bruce Lefebvre
 
Introduction toAndroid Programming=Architecture, Basic building blocks, API ,...
Introduction toAndroid Programming=Architecture, Basic building blocks, API ,...Introduction toAndroid Programming=Architecture, Basic building blocks, API ,...
Introduction toAndroid Programming=Architecture, Basic building blocks, API ,...
shamli5
 
Using AEM in a customer global multi-channel program
Using AEM in a customer global multi-channel programUsing AEM in a customer global multi-channel program
Using AEM in a customer global multi-channel program
Meryll Blanchet
 
Android app development.pdf
Android app development.pdfAndroid app development.pdf
Android app development.pdf
Abanti Aazmin
 
10 Ways to Improve Your Flutter App Performance
10 Ways to Improve Your Flutter App Performance10 Ways to Improve Your Flutter App Performance
10 Ways to Improve Your Flutter App Performance
Windzoon Technologies
 
Developing for Offline First Mobile Experiences
Developing for Offline First Mobile ExperiencesDeveloping for Offline First Mobile Experiences
Developing for Offline First Mobile Experiences
Nic Raboy
 
Simple Calendar Application using C
Simple Calendar Application using CSimple Calendar Application using C
Simple Calendar Application using C
codewithc
 
Marketing in the Age of Mobile
Marketing in the Age of MobileMarketing in the Age of Mobile
Marketing in the Age of Mobile
Adobe Experience Cloud
 
Material design Android L
Material design Android LMaterial design Android L
Material design Android L
uzair khan
 
Porting business apps to Windows Phone
Porting business apps to Windows PhonePorting business apps to Windows Phone
Porting business apps to Windows Phone
Michele Capra
 
B1 90 tb1300_01
B1 90 tb1300_01B1 90 tb1300_01
B1 90 tb1300_01
CristhianMercado7
 
Modernising Android Architecture Using MVVM and Android Architecture Components
Modernising Android Architecture Using MVVM and Android Architecture ComponentsModernising Android Architecture Using MVVM and Android Architecture Components
Modernising Android Architecture Using MVVM and Android Architecture Components
Quintin Balsdon
 

Similar to ABC'S of Android (20)

7 Crucial Things Every Android Developer Should Know
7 Crucial Things Every Android Developer Should Know7 Crucial Things Every Android Developer Should Know
7 Crucial Things Every Android Developer Should Know
 
Interim Report.docx - vsiogap3d.googlecode.com
Interim Report.docx - vsiogap3d.googlecode.comInterim Report.docx - vsiogap3d.googlecode.com
Interim Report.docx - vsiogap3d.googlecode.com
 
Latest Android App Development Tools 2019
Latest Android App Development Tools 2019Latest Android App Development Tools 2019
Latest Android App Development Tools 2019
 
SAP Mobile Business Intelligence
SAP Mobile Business IntelligenceSAP Mobile Business Intelligence
SAP Mobile Business Intelligence
 
BIM Project Execution Plans and Open BIM via IFC2x3
BIM Project Execution Plans and Open BIM via IFC2x3BIM Project Execution Plans and Open BIM via IFC2x3
BIM Project Execution Plans and Open BIM via IFC2x3
 
API's for innovative cloud and mobile apps
API's for innovative cloud and mobile appsAPI's for innovative cloud and mobile apps
API's for innovative cloud and mobile apps
 
Angular vs react.pdf
Angular vs react.pdfAngular vs react.pdf
Angular vs react.pdf
 
Pptx for ui deisgn field for general public at large
Pptx for ui deisgn field for general public at largePptx for ui deisgn field for general public at large
Pptx for ui deisgn field for general public at large
 
Charting your path to app nirvana with AEM Mobile
Charting your path to app nirvana with AEM MobileCharting your path to app nirvana with AEM Mobile
Charting your path to app nirvana with AEM Mobile
 
Introduction toAndroid Programming=Architecture, Basic building blocks, API ,...
Introduction toAndroid Programming=Architecture, Basic building blocks, API ,...Introduction toAndroid Programming=Architecture, Basic building blocks, API ,...
Introduction toAndroid Programming=Architecture, Basic building blocks, API ,...
 
Using AEM in a customer global multi-channel program
Using AEM in a customer global multi-channel programUsing AEM in a customer global multi-channel program
Using AEM in a customer global multi-channel program
 
Android app development.pdf
Android app development.pdfAndroid app development.pdf
Android app development.pdf
 
10 Ways to Improve Your Flutter App Performance
10 Ways to Improve Your Flutter App Performance10 Ways to Improve Your Flutter App Performance
10 Ways to Improve Your Flutter App Performance
 
Developing for Offline First Mobile Experiences
Developing for Offline First Mobile ExperiencesDeveloping for Offline First Mobile Experiences
Developing for Offline First Mobile Experiences
 
Simple Calendar Application using C
Simple Calendar Application using CSimple Calendar Application using C
Simple Calendar Application using C
 
Marketing in the Age of Mobile
Marketing in the Age of MobileMarketing in the Age of Mobile
Marketing in the Age of Mobile
 
Material design Android L
Material design Android LMaterial design Android L
Material design Android L
 
Porting business apps to Windows Phone
Porting business apps to Windows PhonePorting business apps to Windows Phone
Porting business apps to Windows Phone
 
B1 90 tb1300_01
B1 90 tb1300_01B1 90 tb1300_01
B1 90 tb1300_01
 
Modernising Android Architecture Using MVVM and Android Architecture Components
Modernising Android Architecture Using MVVM and Android Architecture ComponentsModernising Android Architecture Using MVVM and Android Architecture Components
Modernising Android Architecture Using MVVM and Android Architecture Components
 

Recently uploaded

Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Public CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptxPublic CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptx
marufrahmanstratejm
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 

Recently uploaded (20)

Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Public CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptxPublic CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptx
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 

ABC'S of Android

  • 1. © Zühlke 2016 The ABC’s of Android: Learn Android in 20 Minutes ABC’s of Android 23 March 2018 Slide 1
  • 2. © Zühlke 2016 So you know how to code Assumptions: • You know at least the basic concepts of programming • You don’t mind a bit of Java / Kotlin every now and then • You want to get to know Android, but don’t really know where to start What the presentation assumes ABC’s of Android 23 March 2018 Slide 2
  • 3. © Zühlke 2016 What makes Android different We know what a database is, we know what web pages are… but there are a few new concepts that need to be grasped in Android as a system ABC’s of Android 23 March 2018 Slide 3 Activities Broadcasts Content Providers Services
  • 4. © Zühlke 2016 Activities An activity provides the window in which the app draws its UI. ABC’s of Android 23 March 2018 Slide 4 Activities
  • 5. © Zühlke 2016 Activities Project structure ABC’s of Android 23 March 2018 Slide 5 Activities
  • 6. © Zühlke 2016 Activities Layout file ABC’s of Android 23 March 2018 Slide 6 Activities
  • 7. © Zühlke 2016 Activities Manifest ABC’s of Android 23 March 2018 Slide 7 Activities
  • 8. © Zühlke 2016 Intents: Android glue It is basically a passive data structure holding an abstract description of an action to be performed ABC’s of Android 23 March 2018 Slide 8 Activities
  • 9. © Zühlke 2016 Activities: It’s a wonderful lifecycle Always be aware that in Android your app can have different states ABC’s of Android 23 March 2018 Slide 9 Activities
  • 10. © Zühlke 2016 Broadcasts Broadcasts can be used as a messaging system across apps and outside of the normal user flow ABC’s of Android 23 March 2018 Slide 10 Broadcasts
  • 11. © Zühlke 2016 Content provider A content provider manages access to a central repository of data ABC’s of Android 23 March 2018 Slide 11
  • 12. © Zühlke 2016 Services A Service is an application component that can perform long- running operations in the background, and it does not provide a user interface. ABC’s of Android 23 March 2018 Slide 12 Services Foreground Background Bound

Editor's Notes

  1. Introduce yourself – 2 minutes I have found the concepts here are particularly useful in getting across the core aspects of Android in an incremental way, and will get you developing your first app.
  2. I am hoping that this can eventually become part of a course that encourages younger people to start developing mobile applications for Android. While I don’t necessarily cover every aspect of Android programming, hopefully people will be more away of the different parts of Android to the point where they can go learn more things themselves
  3. These are 4 main concepts in Android, and they are used in varying degrees in your Android application. For example, you might never write a content provider, but you should be aware of them. You should also be aware that just because you can do something, doesn’t mean it’s the only way or even the best way. The hope is that with these four main ideas as hooks, we can start making sense of all the components in and Android application and how they all join together
  4. The android activity is the most essential component everyone should be aware of. Most apps have screens that are displayed to the user. When you create an Android app, it creates a default ”Main” activity for you. There are 3 files we now need to be aware of: The Activity class – this is the code behind the user interface The layout file – this is an XML file which we use to construct what the user actually sees on the screen The Android manifest – this is a application wide controller file. All activities, services, broadcasts, features and permissions must be listed here
  5. The android activity is the most essential component everyone should be aware of. There are tools to help you design user interfaces! I feel that we could get our designers to learn this markup and then they would be able to produce the exact interfaces they would like
  6. The manifest is kind of like a “flight controller” of your app. You cannot show an activity that is not here, you may not use a feature that is not listed.
  7. An Intent provides a facility for performing late runtime binding between the code in different applications. Its most significant use is in the launching of activities, where it can be thought of as the glue between activities. It is basically a passive data structure holding an abstract description of an action to be performed. Intents are how we access most of these new concepts. Intents are used to start services, pass data,
  8. An Intent provides a facility for performing late runtime binding between the code in different applications. Its most significant use is in the launching of activities, where it can be thought of as the glue between activities. It is basically a passive data structure holding an abstract description of an action to be performed. Intents are how we access most of these new concepts. Intents are used to start services, pass data,
  9. Publisher subscribe model However, you must be careful not to abuse the opportunity to respond to broadcasts and run jobs in the background that can contribute to a slow system performance,
  10. Provide database-style access to apps on the same device Do not be afraid of the diagram! Essentially as a “good citizen” you can have access to certain things on an Android device, like contacts, and read that information using standard database methods.
  11. it continues to run in the background even if the user switches to another application A foreground service performs some operation that is noticeable to the user. For example, an audio app would use a foreground service to play an audio track. Foreground services must display a notification. Foreground services continue running even when the user isn't interacting with the app. A background service performs an operation that isn't directly noticed by the user. For example, if an app used a service to compact its storage, that would usually be a background service. A bound service offers a client-server interface that allows components to interact with the service, send requests, receive results, and even do so across processes with inter-process communication (IPC). A bound service runs only as long as another application component is bound to it. Multiple components can bind to the service at once, but when all of them unbind, the service is destroyed. Caution: A service runs in the main thread of its hosting process; the service does not create its own thread and does not run in a separate process unless you specify otherwise. If your service is going to perform any CPU-intensive work or blocking operations, such as MP3 playback or networking, you should create a new thread within the service to complete that work. By using a separate thread, you can reduce the risk of Application Not Responding (ANR) errors, and the application's main thread can remain dedicated to user interaction with your activities. The IntentService class provides a straightforward structure for running an operation on a single background thread. This allows it to handle long-running operations without affecting your user interface's responsiveness. Also, an IntentService isn't affected by most user interface lifecycle events, so it continues to run in circumstances that would shut down an AsyncTask An IntentService has a few limitations: 1. It can't interact directly with your user interface. To put its results in the UI, you have to send them to an Activity. 2. Work requests run sequentially. If an operation is running in an IntentService, and you send it another request, the request waits until the first operation is finished. 3. An operation running on an IntentService can't be interrupted.