SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
DevFest Berlin 2013

You are not alone
on this
phone
+Christian Ketterer / cketti
Christian Ketterer
cketti
●

Freelancer, Android!

●

K-9 Mail core contributor

●

Open source enthusiast

●

Co-Organizer:
–

Android Stammtisch Berlin

–

Google I/O Extended Berlin

–

DevFest Berlin

DevFest Berlin 2013

2
What's this all about?
Android offers a lot of opportunities to integrate
with other apps → use them!
●

use functionality provided by other apps

●

provide functionality other apps can use

DevFest Berlin 2013

3
Application components
●

Activities

●

Services

●

Content providers

●

Broadcast receivers

All application components can be used across
app boundaries
DevFest Berlin 2013

4
What are Intents again?
●

„An intent is an abstract description of an
operation to be performed.“
→ stores data that is interpreted by others

●

Contains:
–

Action

–

Data (URI)

–

Type

–

Extras („simple“ data types)

DevFest Berlin 2013

5
Activity
●

●

„An activity is a single, focused thing that the
user can do.“
You can start activities of other apps
–

startActivity(Intent)

–

startActivityForResult(Intent, int)

DevFest Berlin 2013

6
Expose your activity
<activity android:name=".ShareActivity">
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
<data android:mimeType="image/*"/>
</intent-filter>
</activity>

<activity
android:name=".InterestingActivity"
android:label="Do something"
android:exported="true">
</activity>

DevFest Berlin 2013

7
Service
●

●

●

„A Service is an application component that
can perform long-running operations in the
background and does not provide a user
interface.“
Can be used for interprocess communication
(IPC) → Context.bindService()
Allows you to call exposed methods in another
app

DevFest Berlin 2013

8
AIDL
package com.example.aidl;
interface IRemoteService {
int giveMeAnInt();
void basicTypes(int anInt, long aLong, boolean aBoolean,
float aFloat, double aDouble, String aString);
}

oneway void setCallback(in ICallback callback);

DevFest Berlin 2013

9
Examples
●

DashClock Widget (extensions)

●

OpenPGP Keychain

●

OpenIntents Safe

If you know of any other (open source) app
making use of this functionality, please let me
know.

DevFest Berlin 2013

10
Content provider
●

●

●
●

„Content providers are the standard interface
that connects data in one process with code
running in another process.“
Exposes structured set of data (think: table in
an SQL database)
Read and write data blobs
Notification mechanism when data has
changed

DevFest Berlin 2013

11
Give me your content://
●

ContentResolver is used to access a content

provider
●

Needs a content:// URI
–
–

●

Authority: specifies which content provider to use
Path: specifies what data to access

Example:
content://com.fsck.k9.messageprovider/inbox_messages

DevFest Berlin 2013

12
Structured data
●

CRUD
–
–

Retrieve (query)

–

Update

–

_id
1
2

Create (insert)

Delete
name
keyboardsurfer
cketti

DevFest Berlin 2013

title
Señor Developer
Procrastinator extraordinaire
13
Notification mechanism
●

Be notified when data managed by the content
provider changes:
ContentResolver.registerContentObserver()

●

Notify when data was changed:
ContentResolver.notifyChange(Uri, …)

DevFest Berlin 2013

14
Examples
●

Gmail (labels only)

●

K-9 Mail

●

Android
–

Contacts

–

Calendar

–

Call log

–

android.provider.*

DevFest Berlin 2013

15
Broadcast receiver
●

Receives Intents broadcasted via
Context.sendBroadcast()

●

Examples:
–

SMS received

–

Time changed

–

Boot complete

–

Connectivity change

–

Email received

DevFest Berlin 2013

16
Finding components to talk to
●

Use PackageManager.queryIntent*()

●

<intent-filter>

●

<meta-data>

<service android:name=".FancyService">
<intent-filter>…</intent-filter>
<meta-data android:name="protocolVersion"
android:value="1"/>
<meta-data android:name="settingsActivity"
android:value="com.example.app.SettingsActivity"/>
</service>

DevFest Berlin 2013

17
Important
●

●

Protect components exposing sensitive data
using Android permissions
It's a public API!
–
–

●

Use versioning
If you make a mistake not only your app will break

Make sure you read the official documentation
when adding support for standard intent
actions*

DevFest Berlin 2013

18
Summary
●

●

●

●

Expose an Activity to provide some
functionality requiring an user interface
Use a Service to allow performing
(background) actions
Allow others to read/write your data using a
content provider
Send broadcast intents to notify others of
important events

DevFest Berlin 2013

19
Take-away

Make the Android experience
more awesome by allowing
other apps to integrate with
yours

DevFest Berlin 2013

20
Questions?
DevFest Berlin 2013

21
Storage Access Framework

DevFest Berlin 2013

22

Weitere ähnliche Inhalte

Ähnlich wie You are not alone on this phone

04 programmation mobile - android - (db, receivers, services...)
04 programmation mobile - android - (db, receivers, services...)04 programmation mobile - android - (db, receivers, services...)
04 programmation mobile - android - (db, receivers, services...)TECOS
 
Android App Development - 01 Introduction
Android App Development - 01 IntroductionAndroid App Development - 01 Introduction
Android App Development - 01 IntroductionDiego Grancini
 
Delegating user tasks in applications
Delegating user tasks in applicationsDelegating user tasks in applications
Delegating user tasks in applicationsFriedger Müffke
 
Android development - the basics, FI MUNI, 2012
Android development - the basics, FI MUNI, 2012Android development - the basics, FI MUNI, 2012
Android development - the basics, FI MUNI, 2012Tomáš Kypta
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_authlzongren
 
Basics of Android
Basics of Android Basics of Android
Basics of Android sabi_123
 
Introduction to Android Development and Security
Introduction to Android Development and SecurityIntroduction to Android Development and Security
Introduction to Android Development and SecurityKelwin Yang
 
Swift at IBM: Mobile, open source and the drive to the cloud
Swift at IBM: Mobile, open source and the drive to the cloudSwift at IBM: Mobile, open source and the drive to the cloud
Swift at IBM: Mobile, open source and the drive to the cloudDev_Events
 
Android overview
Android overviewAndroid overview
Android overviewHas Taiar
 
Introduction to Android Development.pptx
Introduction to Android Development.pptxIntroduction to Android Development.pptx
Introduction to Android Development.pptxSarthak kashikar
 
Open Data Node - Platform and Methodology - 2015-May
Open Data Node - Platform and Methodology - 2015-MayOpen Data Node - Platform and Methodology - 2015-May
Open Data Node - Platform and Methodology - 2015-MayComsode - FP7 project
 
Drupal for Higher Education and Virtual Learning
Drupal for Higher Education and Virtual LearningDrupal for Higher Education and Virtual Learning
Drupal for Higher Education and Virtual LearningGabriel Dragomir
 
Do you know what your Drupal is doing_ Observe it!
Do you know what your Drupal is doing_ Observe it!Do you know what your Drupal is doing_ Observe it!
Do you know what your Drupal is doing_ Observe it!sparkfabrik
 
Serverless Computing with Google Cloud
Serverless Computing with Google CloudServerless Computing with Google Cloud
Serverless Computing with Google Cloudwesley chun
 

Ähnlich wie You are not alone on this phone (20)

04 programmation mobile - android - (db, receivers, services...)
04 programmation mobile - android - (db, receivers, services...)04 programmation mobile - android - (db, receivers, services...)
04 programmation mobile - android - (db, receivers, services...)
 
Android App Development - 01 Introduction
Android App Development - 01 IntroductionAndroid App Development - 01 Introduction
Android App Development - 01 Introduction
 
Delegating user tasks in applications
Delegating user tasks in applicationsDelegating user tasks in applications
Delegating user tasks in applications
 
Mobile web development
Mobile web developmentMobile web development
Mobile web development
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Android development - the basics, FI MUNI, 2012
Android development - the basics, FI MUNI, 2012Android development - the basics, FI MUNI, 2012
Android development - the basics, FI MUNI, 2012
 
Hoalq
HoalqHoalq
Hoalq
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Stmik bandung
Stmik bandungStmik bandung
Stmik bandung
 
Basics of Android
Basics of Android Basics of Android
Basics of Android
 
Introduction to Android Development and Security
Introduction to Android Development and SecurityIntroduction to Android Development and Security
Introduction to Android Development and Security
 
Swift at IBM: Mobile, open source and the drive to the cloud
Swift at IBM: Mobile, open source and the drive to the cloudSwift at IBM: Mobile, open source and the drive to the cloud
Swift at IBM: Mobile, open source and the drive to the cloud
 
Android overview
Android overviewAndroid overview
Android overview
 
Introduction to Android Development.pptx
Introduction to Android Development.pptxIntroduction to Android Development.pptx
Introduction to Android Development.pptx
 
Open Data Node - Platform and Methodology - 2015-May
Open Data Node - Platform and Methodology - 2015-MayOpen Data Node - Platform and Methodology - 2015-May
Open Data Node - Platform and Methodology - 2015-May
 
Drupal for Higher Education and Virtual Learning
Drupal for Higher Education and Virtual LearningDrupal for Higher Education and Virtual Learning
Drupal for Higher Education and Virtual Learning
 
Do you know what your Drupal is doing_ Observe it!
Do you know what your Drupal is doing_ Observe it!Do you know what your Drupal is doing_ Observe it!
Do you know what your Drupal is doing_ Observe it!
 
Android Technology
Android TechnologyAndroid Technology
Android Technology
 
Serverless Computing with Google Cloud
Serverless Computing with Google CloudServerless Computing with Google Cloud
Serverless Computing with Google Cloud
 
Jones "Working with Scholarly APIs: A NISO Training Series, Session One: Foun...
Jones "Working with Scholarly APIs: A NISO Training Series, Session One: Foun...Jones "Working with Scholarly APIs: A NISO Training Series, Session One: Foun...
Jones "Working with Scholarly APIs: A NISO Training Series, Session One: Foun...
 

Kürzlich hochgeladen

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Kürzlich hochgeladen (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

You are not alone on this phone

  • 1. DevFest Berlin 2013 You are not alone on this phone +Christian Ketterer / cketti
  • 2. Christian Ketterer cketti ● Freelancer, Android! ● K-9 Mail core contributor ● Open source enthusiast ● Co-Organizer: – Android Stammtisch Berlin – Google I/O Extended Berlin – DevFest Berlin DevFest Berlin 2013 2
  • 3. What's this all about? Android offers a lot of opportunities to integrate with other apps → use them! ● use functionality provided by other apps ● provide functionality other apps can use DevFest Berlin 2013 3
  • 4. Application components ● Activities ● Services ● Content providers ● Broadcast receivers All application components can be used across app boundaries DevFest Berlin 2013 4
  • 5. What are Intents again? ● „An intent is an abstract description of an operation to be performed.“ → stores data that is interpreted by others ● Contains: – Action – Data (URI) – Type – Extras („simple“ data types) DevFest Berlin 2013 5
  • 6. Activity ● ● „An activity is a single, focused thing that the user can do.“ You can start activities of other apps – startActivity(Intent) – startActivityForResult(Intent, int) DevFest Berlin 2013 6
  • 7. Expose your activity <activity android:name=".ShareActivity"> <intent-filter> <action android:name="android.intent.action.SEND"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="text/plain"/> <data android:mimeType="image/*"/> </intent-filter> </activity> <activity android:name=".InterestingActivity" android:label="Do something" android:exported="true"> </activity> DevFest Berlin 2013 7
  • 8. Service ● ● ● „A Service is an application component that can perform long-running operations in the background and does not provide a user interface.“ Can be used for interprocess communication (IPC) → Context.bindService() Allows you to call exposed methods in another app DevFest Berlin 2013 8
  • 9. AIDL package com.example.aidl; interface IRemoteService { int giveMeAnInt(); void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat, double aDouble, String aString); } oneway void setCallback(in ICallback callback); DevFest Berlin 2013 9
  • 10. Examples ● DashClock Widget (extensions) ● OpenPGP Keychain ● OpenIntents Safe If you know of any other (open source) app making use of this functionality, please let me know. DevFest Berlin 2013 10
  • 11. Content provider ● ● ● ● „Content providers are the standard interface that connects data in one process with code running in another process.“ Exposes structured set of data (think: table in an SQL database) Read and write data blobs Notification mechanism when data has changed DevFest Berlin 2013 11
  • 12. Give me your content:// ● ContentResolver is used to access a content provider ● Needs a content:// URI – – ● Authority: specifies which content provider to use Path: specifies what data to access Example: content://com.fsck.k9.messageprovider/inbox_messages DevFest Berlin 2013 12
  • 13. Structured data ● CRUD – – Retrieve (query) – Update – _id 1 2 Create (insert) Delete name keyboardsurfer cketti DevFest Berlin 2013 title Señor Developer Procrastinator extraordinaire 13
  • 14. Notification mechanism ● Be notified when data managed by the content provider changes: ContentResolver.registerContentObserver() ● Notify when data was changed: ContentResolver.notifyChange(Uri, …) DevFest Berlin 2013 14
  • 15. Examples ● Gmail (labels only) ● K-9 Mail ● Android – Contacts – Calendar – Call log – android.provider.* DevFest Berlin 2013 15
  • 16. Broadcast receiver ● Receives Intents broadcasted via Context.sendBroadcast() ● Examples: – SMS received – Time changed – Boot complete – Connectivity change – Email received DevFest Berlin 2013 16
  • 17. Finding components to talk to ● Use PackageManager.queryIntent*() ● <intent-filter> ● <meta-data> <service android:name=".FancyService"> <intent-filter>…</intent-filter> <meta-data android:name="protocolVersion" android:value="1"/> <meta-data android:name="settingsActivity" android:value="com.example.app.SettingsActivity"/> </service> DevFest Berlin 2013 17
  • 18. Important ● ● Protect components exposing sensitive data using Android permissions It's a public API! – – ● Use versioning If you make a mistake not only your app will break Make sure you read the official documentation when adding support for standard intent actions* DevFest Berlin 2013 18
  • 19. Summary ● ● ● ● Expose an Activity to provide some functionality requiring an user interface Use a Service to allow performing (background) actions Allow others to read/write your data using a content provider Send broadcast intents to notify others of important events DevFest Berlin 2013 19
  • 20. Take-away Make the Android experience more awesome by allowing other apps to integrate with yours DevFest Berlin 2013 20