SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Open Intents
           Android Intents Mechanism

                                                Friedger Müffke

                                                @fmdroid
                                                #openintents




www.openintents.org   support@openintents.org    FOSDEM, February 6, 2010
Outline


●   Android intents and intents filter

●   OpenIntents

●   Dependency and intents manager
Android Platform
No monoliths ..



                  but interconnected
                         components

                  All apps are equal!
Modular Apps

●   Activity UI for one focused endeavor

●   Service no UI, used for long running processes

●   Broadcast receiver receives announcements


●   Content provider makes data available
Intents (1)
            Web browser                            Android
                                      Intents:

Intents:                              VIEW + www.google.com
VIEW + www.google.com                 VIEW + Contact
                                      VIEW + Image
                                      DIAL + 123
                                      PICK + Image
                                      EDIT + Contact
                                      SEND + Note
                                      .....
           Intent = Action + Data (+ Extras + Categories + Flags)
Intents (2)

●   Transition and messaging between components
          within application and beyond
●   Source component + target component + data
●   Expected behaviour, e.g. TAKE_PICTURE
●   Used throughout the system
●   Explicit vs. implict intents
          Named target
          or Tests against intent filters
Intent filters (1)

●   Advertising functionality of compontent

●   Registered at install / start up time
    part of Manifest.xml

●   Define tests for implicit intents
●   Multiple filters of component are ORed
Intent filters (2)
●   Action test
         e.g. TAKE_PICTURE
         One must match
         Intent without action always accepted
●   Data / Mime-type test
         e.g. content://contacts/people/1 geo:0,0?q=Pizza
           image/jpeg text/html
         filters with wildcards
         match everything specified
         content: and file: schema implicitly supported
Intent filters (3)
●   Category test
         e.g. CATEGORY_DEFAULT, CATEGORY_BROWSABLE
         All categories must match
         Intents for activities always include
           CATEGORY_DEFAULT


●   User can choose if more than one target found
●   Exception if no target found
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest . . . >
<application . . . >
   <activity
       android:name="org.openintents.shopping.ShoppingActivity"
       android:icon="@drawable/small_pic.png"
       android:label="@string/shopping" . . . >
      <intent-filter>
         <action android:name="android.intent.action.VIEW" />
         <action android:name="android.intent.action.INSERT" />
         <category
             android:name="android.intent.category.DEFAULT" />
         <data android:mimeType =
             "vnd.android.cursor.dir/vnd.openintents.shopping.item" />
       </intent-filter>
   </activity>

  <service . . ./>
 . . .
  <uses-permisson . . . />
  <uses-library . . . />
</application>
</manifest>
In Practice
e.g. in Activity

Intent i = new
Intent(Intent.ACTION_VIEW);
i.setData(„http://www.openintents.org“);

this.startActivity(i);
this.startActivityForResult(i, RESCODE);
this.startService(i);
this.bindService(i, con, 0);
this.sendBroadcast(i);
Benefits
●   Focus on core functionality
●   Reuse
●   Exchange system components, e.g.
    home screen, keyboard, address book,
    dialer
●   Automatic handling


    Tasks, plug-ins, menus, live folders
    Don't forget performance and security!
OI Extensions
                                        OI applications work together




              OI Voice notes

 OI Notepad                                           OI Shopping list

                               OI Delete all




                               OI Convert CSV



                 OI About
OI Safe                                                OI File manager
Create new intents
Every developer can create their own new intents:


         VIEW                                  SHOW



     DISPLAY


                                                       EXHIBIT



     EXPOSE


                                           REVEAL



                     The Tower of Babel by Pieter Brueghel the Elder (1563)
OpenIntents.org
●
    Discussion group since 2007
●
    All about open applications and interoperability
●
    Open source
●
    List of Android libraries
●
    Intents registry

●
    Backed by OpenIntents UG
    (haftungsbeschränkt)
    –   Closed source apps
    –   Organizer of droidcon
Intent registry
                               www.openintents.org


 Browse and find
 intents, actions,
 applications, URIs,
 extras
 Promote your own
 intents and applications

As of January 2010:
 >50 registered intents



 Reuse components!
Don't reinvent the wheel!
Dependency Manager (1)
●   Intents create dependencies
       between components
●   Standard implementation:
       –   run-time dependency check
             late binding
       –   nearly constantly connected
       –   Programs handles missing components
            e.g. direct user to app store or
            explain missing feature
Dependency Manager (2)

●   Components that rely on dependent components
       –   A la distro package managers
       –   Light-weight, late binding still possible
       –   Helper library
       –   Declaration in Manifest.xml uses-intent
●   Resolution helper with UI
       –   Interface to various sources, e.g. app stores,
             personal listings, etc.
droidcon 2010
                           Brussels, Berlin
                          Barcelona, London

All information at
  droidcon.be and droidcon.de
Free barcamp
Conference

Participate as speaker, sponsor or attendee
Get in touch with Android community
  and decision makers
Present and discuss ideas and results
More info

Web site:
       www.openintents.org
Developer group:
http://groups.google.com/group/openintents
Code repository:
http://openintents.googlecode.com
Twitter:
http://twitter.com/openintents

Weitere ähnliche Inhalte

Andere mochten auch

Broadcast Receivers in Android
Broadcast Receivers in AndroidBroadcast Receivers in Android
Broadcast Receivers in Androidma-polimi
 
Android Application Fundamentals
Android Application FundamentalsAndroid Application Fundamentals
Android Application FundamentalsVikalp Jain
 
Events and Listeners in Android
Events and Listeners in AndroidEvents and Listeners in Android
Events and Listeners in Androidma-polimi
 
Android Components & Manifest
Android Components & ManifestAndroid Components & Manifest
Android Components & Manifestma-polimi
 
Intents in Android
Intents in AndroidIntents in Android
Intents in Androidma-polimi
 
Android User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & SpinnerAndroid User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & SpinnerAhsanul Karim
 
Android User Interface: Basic Form Widgets
Android User Interface: Basic Form WidgetsAndroid User Interface: Basic Form Widgets
Android User Interface: Basic Form WidgetsAhsanul Karim
 
Android Lesson 3 - Intent
Android Lesson 3 - IntentAndroid Lesson 3 - Intent
Android Lesson 3 - IntentDaniela Da Cruz
 
Android Development: The Basics
Android Development: The BasicsAndroid Development: The Basics
Android Development: The BasicsMike Desjardins
 

Andere mochten auch (10)

Broadcast Receivers in Android
Broadcast Receivers in AndroidBroadcast Receivers in Android
Broadcast Receivers in Android
 
Android Fundamentals
Android FundamentalsAndroid Fundamentals
Android Fundamentals
 
Android Application Fundamentals
Android Application FundamentalsAndroid Application Fundamentals
Android Application Fundamentals
 
Events and Listeners in Android
Events and Listeners in AndroidEvents and Listeners in Android
Events and Listeners in Android
 
Android Components & Manifest
Android Components & ManifestAndroid Components & Manifest
Android Components & Manifest
 
Intents in Android
Intents in AndroidIntents in Android
Intents in Android
 
Android User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & SpinnerAndroid User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & Spinner
 
Android User Interface: Basic Form Widgets
Android User Interface: Basic Form WidgetsAndroid User Interface: Basic Form Widgets
Android User Interface: Basic Form Widgets
 
Android Lesson 3 - Intent
Android Lesson 3 - IntentAndroid Lesson 3 - Intent
Android Lesson 3 - Intent
 
Android Development: The Basics
Android Development: The BasicsAndroid Development: The Basics
Android Development: The Basics
 

Ähnlich wie Open Intents - Android Intents Mechanism and Dependency Management

Android Development in a Nutshell
Android Development in a NutshellAndroid Development in a Nutshell
Android Development in a NutshellAleix Solé
 
Delegating user tasks in applications
Delegating user tasks in applicationsDelegating user tasks in applications
Delegating user tasks in applicationsFriedger Müffke
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app developmentAbhishekKumar4779
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump StartConFoo
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android DevelopmentAly Abdelkareem
 
Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2012Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2012Tomáš Kypta
 
Mobile application development
Mobile application developmentMobile application development
Mobile application developmentumesh patil
 
Basics of Android
Basics of Android Basics of Android
Basics of Android sabi_123
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android DevelopmentCan Elmas
 
Android_Workshop
Android_WorkshopAndroid_Workshop
Android_WorkshopSenthil ACS
 
From Containerization to Modularity
From Containerization to ModularityFrom Containerization to Modularity
From Containerization to Modularityoasisfeng
 
Os eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdfOs eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdfweerabahu
 
android development training in mumbai
android development training in mumbaiandroid development training in mumbai
android development training in mumbaifaizrashid1995
 

Ähnlich wie Open Intents - Android Intents Mechanism and Dependency Management (20)

Android Development in a Nutshell
Android Development in a NutshellAndroid Development in a Nutshell
Android Development in a Nutshell
 
Delegating user tasks in applications
Delegating user tasks in applicationsDelegating user tasks in applications
Delegating user tasks in applications
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app development
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump Start
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2012Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2012
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Basics of Android
Basics of Android Basics of Android
Basics of Android
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Android development first steps
Android development   first stepsAndroid development   first steps
Android development first steps
 
Android platform
Android platform Android platform
Android platform
 
Android_Workshop
Android_WorkshopAndroid_Workshop
Android_Workshop
 
From Containerization to Modularity
From Containerization to ModularityFrom Containerization to Modularity
From Containerization to Modularity
 
Os eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdfOs eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdf
 
android development training in mumbai
android development training in mumbaiandroid development training in mumbai
android development training in mumbai
 
Android ppt
Android ppt Android ppt
Android ppt
 
Android Applications
Android ApplicationsAndroid Applications
Android Applications
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Unit I- ANDROID OVERVIEW.ppt
Unit I- ANDROID OVERVIEW.pptUnit I- ANDROID OVERVIEW.ppt
Unit I- ANDROID OVERVIEW.ppt
 

Mehr von Friedger Müffke

Level Up Your Android Build -Droidcon Berlin 2015
Level Up Your Android Build -Droidcon Berlin 2015Level Up Your Android Build -Droidcon Berlin 2015
Level Up Your Android Build -Droidcon Berlin 2015Friedger Müffke
 
Android Evolution, AppForum 2014, Brussels, Friedger Müffke
Android Evolution, AppForum 2014, Brussels, Friedger MüffkeAndroid Evolution, AppForum 2014, Brussels, Friedger Müffke
Android Evolution, AppForum 2014, Brussels, Friedger MüffkeFriedger Müffke
 
Web Wishes, Intents, Extensions, .. Friedger Müffke, droidcon London 2014
Web Wishes, Intents, Extensions, ..  Friedger Müffke, droidcon London 2014Web Wishes, Intents, Extensions, ..  Friedger Müffke, droidcon London 2014
Web Wishes, Intents, Extensions, .. Friedger Müffke, droidcon London 2014Friedger Müffke
 
Open Governance in Mobile - SFD 2013 - HSBXL
Open Governance in Mobile -  SFD 2013 - HSBXLOpen Governance in Mobile -  SFD 2013 - HSBXL
Open Governance in Mobile - SFD 2013 - HSBXLFriedger Müffke
 
Google Integration in Android Apps - Mooscon 2013 Cebit
Google Integration in Android Apps - Mooscon 2013 CebitGoogle Integration in Android Apps - Mooscon 2013 Cebit
Google Integration in Android Apps - Mooscon 2013 CebitFriedger Müffke
 
Serverless Apps - droidcon london 2012
Serverless Apps - droidcon london 2012Serverless Apps - droidcon london 2012
Serverless Apps - droidcon london 2012Friedger Müffke
 
UXperts 2012: Connectivity Beyond the Web (Android), Friedger Müffke
UXperts 2012: Connectivity Beyond the Web (Android), Friedger MüffkeUXperts 2012: Connectivity Beyond the Web (Android), Friedger Müffke
UXperts 2012: Connectivity Beyond the Web (Android), Friedger MüffkeFriedger Müffke
 
Open intents Open Governance
Open intents Open GovernanceOpen intents Open Governance
Open intents Open GovernanceFriedger Müffke
 
Open intents Aggregating Apps
Open intents Aggregating AppsOpen intents Aggregating Apps
Open intents Aggregating AppsFriedger Müffke
 
Highlights Google I/O 2011
Highlights Google I/O 2011Highlights Google I/O 2011
Highlights Google I/O 2011Friedger Müffke
 
Open Android Apps - Hidden Treasures on Android phones
Open Android Apps - Hidden Treasures on Android phonesOpen Android Apps - Hidden Treasures on Android phones
Open Android Apps - Hidden Treasures on Android phonesFriedger Müffke
 
Google Workshop at International Congress of Youth Enterpreneurship by Friedg...
Google Workshop at International Congress of Youth Enterpreneurship by Friedg...Google Workshop at International Congress of Youth Enterpreneurship by Friedg...
Google Workshop at International Congress of Youth Enterpreneurship by Friedg...Friedger Müffke
 
Open intents, open apps and dependencies
Open intents, open apps and dependenciesOpen intents, open apps and dependencies
Open intents, open apps and dependenciesFriedger Müffke
 
App inventor for android and similar tools
App inventor for android and similar toolsApp inventor for android and similar tools
App inventor for android and similar toolsFriedger Müffke
 

Mehr von Friedger Müffke (15)

Level Up Your Android Build -Droidcon Berlin 2015
Level Up Your Android Build -Droidcon Berlin 2015Level Up Your Android Build -Droidcon Berlin 2015
Level Up Your Android Build -Droidcon Berlin 2015
 
Android Evolution, AppForum 2014, Brussels, Friedger Müffke
Android Evolution, AppForum 2014, Brussels, Friedger MüffkeAndroid Evolution, AppForum 2014, Brussels, Friedger Müffke
Android Evolution, AppForum 2014, Brussels, Friedger Müffke
 
Web Wishes, Intents, Extensions, .. Friedger Müffke, droidcon London 2014
Web Wishes, Intents, Extensions, ..  Friedger Müffke, droidcon London 2014Web Wishes, Intents, Extensions, ..  Friedger Müffke, droidcon London 2014
Web Wishes, Intents, Extensions, .. Friedger Müffke, droidcon London 2014
 
Open Governance in Mobile - SFD 2013 - HSBXL
Open Governance in Mobile -  SFD 2013 - HSBXLOpen Governance in Mobile -  SFD 2013 - HSBXL
Open Governance in Mobile - SFD 2013 - HSBXL
 
Google Integration in Android Apps - Mooscon 2013 Cebit
Google Integration in Android Apps - Mooscon 2013 CebitGoogle Integration in Android Apps - Mooscon 2013 Cebit
Google Integration in Android Apps - Mooscon 2013 Cebit
 
Serverless Apps - droidcon london 2012
Serverless Apps - droidcon london 2012Serverless Apps - droidcon london 2012
Serverless Apps - droidcon london 2012
 
UXperts 2012: Connectivity Beyond the Web (Android), Friedger Müffke
UXperts 2012: Connectivity Beyond the Web (Android), Friedger MüffkeUXperts 2012: Connectivity Beyond the Web (Android), Friedger Müffke
UXperts 2012: Connectivity Beyond the Web (Android), Friedger Müffke
 
Open intents Open Governance
Open intents Open GovernanceOpen intents Open Governance
Open intents Open Governance
 
Open intents Aggregating Apps
Open intents Aggregating AppsOpen intents Aggregating Apps
Open intents Aggregating Apps
 
Highlights Google I/O 2011
Highlights Google I/O 2011Highlights Google I/O 2011
Highlights Google I/O 2011
 
Open Android Apps - Hidden Treasures on Android phones
Open Android Apps - Hidden Treasures on Android phonesOpen Android Apps - Hidden Treasures on Android phones
Open Android Apps - Hidden Treasures on Android phones
 
Google Workshop at International Congress of Youth Enterpreneurship by Friedg...
Google Workshop at International Congress of Youth Enterpreneurship by Friedg...Google Workshop at International Congress of Youth Enterpreneurship by Friedg...
Google Workshop at International Congress of Youth Enterpreneurship by Friedg...
 
Open intents, open apps and dependencies
Open intents, open apps and dependenciesOpen intents, open apps and dependencies
Open intents, open apps and dependencies
 
Glass
GlassGlass
Glass
 
App inventor for android and similar tools
App inventor for android and similar toolsApp inventor for android and similar tools
App inventor for android and similar tools
 

Kürzlich hochgeladen

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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
 
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
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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
 
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
 

Kürzlich hochgeladen (20)

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
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
 

Open Intents - Android Intents Mechanism and Dependency Management

  • 1. Open Intents Android Intents Mechanism Friedger Müffke @fmdroid #openintents www.openintents.org support@openintents.org FOSDEM, February 6, 2010
  • 2. Outline ● Android intents and intents filter ● OpenIntents ● Dependency and intents manager
  • 4. No monoliths .. but interconnected components All apps are equal!
  • 5. Modular Apps ● Activity UI for one focused endeavor ● Service no UI, used for long running processes ● Broadcast receiver receives announcements ● Content provider makes data available
  • 6. Intents (1) Web browser Android Intents: Intents: VIEW + www.google.com VIEW + www.google.com VIEW + Contact VIEW + Image DIAL + 123 PICK + Image EDIT + Contact SEND + Note ..... Intent = Action + Data (+ Extras + Categories + Flags)
  • 7. Intents (2) ● Transition and messaging between components within application and beyond ● Source component + target component + data ● Expected behaviour, e.g. TAKE_PICTURE ● Used throughout the system ● Explicit vs. implict intents Named target or Tests against intent filters
  • 8. Intent filters (1) ● Advertising functionality of compontent ● Registered at install / start up time part of Manifest.xml ● Define tests for implicit intents ● Multiple filters of component are ORed
  • 9. Intent filters (2) ● Action test e.g. TAKE_PICTURE One must match Intent without action always accepted ● Data / Mime-type test e.g. content://contacts/people/1 geo:0,0?q=Pizza image/jpeg text/html filters with wildcards match everything specified content: and file: schema implicitly supported
  • 10. Intent filters (3) ● Category test e.g. CATEGORY_DEFAULT, CATEGORY_BROWSABLE All categories must match Intents for activities always include CATEGORY_DEFAULT ● User can choose if more than one target found ● Exception if no target found
  • 11. Manifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest . . . > <application . . . > <activity android:name="org.openintents.shopping.ShoppingActivity" android:icon="@drawable/small_pic.png" android:label="@string/shopping" . . . > <intent-filter> <action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.INSERT" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType = "vnd.android.cursor.dir/vnd.openintents.shopping.item" /> </intent-filter> </activity> <service . . ./> . . . <uses-permisson . . . /> <uses-library . . . /> </application> </manifest>
  • 12. In Practice e.g. in Activity Intent i = new Intent(Intent.ACTION_VIEW); i.setData(„http://www.openintents.org“); this.startActivity(i); this.startActivityForResult(i, RESCODE); this.startService(i); this.bindService(i, con, 0); this.sendBroadcast(i);
  • 13. Benefits ● Focus on core functionality ● Reuse ● Exchange system components, e.g. home screen, keyboard, address book, dialer ● Automatic handling Tasks, plug-ins, menus, live folders Don't forget performance and security!
  • 14. OI Extensions OI applications work together OI Voice notes OI Notepad OI Shopping list OI Delete all OI Convert CSV OI About OI Safe OI File manager
  • 15. Create new intents Every developer can create their own new intents: VIEW SHOW DISPLAY EXHIBIT EXPOSE REVEAL The Tower of Babel by Pieter Brueghel the Elder (1563)
  • 16. OpenIntents.org ● Discussion group since 2007 ● All about open applications and interoperability ● Open source ● List of Android libraries ● Intents registry ● Backed by OpenIntents UG (haftungsbeschränkt) – Closed source apps – Organizer of droidcon
  • 17. Intent registry www.openintents.org Browse and find intents, actions, applications, URIs, extras Promote your own intents and applications As of January 2010: >50 registered intents Reuse components! Don't reinvent the wheel!
  • 18. Dependency Manager (1) ● Intents create dependencies between components ● Standard implementation: – run-time dependency check late binding – nearly constantly connected – Programs handles missing components e.g. direct user to app store or explain missing feature
  • 19. Dependency Manager (2) ● Components that rely on dependent components – A la distro package managers – Light-weight, late binding still possible – Helper library – Declaration in Manifest.xml uses-intent ● Resolution helper with UI – Interface to various sources, e.g. app stores, personal listings, etc.
  • 20. droidcon 2010 Brussels, Berlin Barcelona, London All information at droidcon.be and droidcon.de Free barcamp Conference Participate as speaker, sponsor or attendee Get in touch with Android community and decision makers Present and discuss ideas and results
  • 21. More info Web site: www.openintents.org Developer group: http://groups.google.com/group/openintents Code repository: http://openintents.googlecode.com Twitter: http://twitter.com/openintents