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

Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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 Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Kürzlich hochgeladen (20)

Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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 Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

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