SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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 Applications
Android ApplicationsAndroid Applications
Android Applications
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Android ppt
Android ppt Android ppt
Android ppt
 
Unit I- ANDROID OVERVIEW.ppt
Unit I- ANDROID OVERVIEW.pptUnit I- ANDROID OVERVIEW.ppt
Unit I- ANDROID OVERVIEW.ppt
 

Plus de 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
 

Plus de 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
 

Dernier

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 

Dernier (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 

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