SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
Android 101 workshop
Getting started with Android development
Benjamin Weiss
http://gplus.to/keyboardsurfer
Twitter: @keyboardsurfer

Senior Software Developer
at ImmobilienScout24

Organizer: GDG Android in Berlin

Co-Organizer:
 ●Global Android Dev Camp
 ●GTUG Community Weekend
 ●Google I/O Extended Berlin 2012
 ●DevFest Berlin 2012
Agenda
●   The Setup
●   Hello Android
●   AndroidManifest.xml
●   Intents
●   Views
●   Respond to user-interaction
●   Using libraries
●   Hands on
The Setup
Platform of choice

Linux
Mac
Windows
Android
The Setup
      Development Environment

      http://eclipse.org


      https://www.jetbrains.com/idea


      AIDE
      https://play.google.com/store/apps/details?
      id=com.aide.ui
The Setup
Android SDK




https://developer.android.com/sdk/index.html
Hello Android
AndroidManifest.xml




https://developer.android.com/
     guide/topics/manifest/
                manifest-intro.html
AndroidManifest.xml
<manifest>
                                       <activity-alias>
    <uses-permission />                    <intent-filter> . . . </intent-filter>
    <permission />                         <meta-data />
    <permission-tree />                </activity-alias>
    <permission-group />
    <instrumentation />                <service>
    <uses-sdk />                           <intent-filter> . . . </intent-filter>
    <uses-configuration />                 <meta-data/>
    <uses-feature />                   </service>
    <supports-screens />
    <compatible-screens />             <receiver>
    <supports-gl-texture />                <intent-filter> . . . </intent-filter>
                                           <meta-data />
    <application>                      </receiver>

        <activity>                     <provider>
            <intent-filter>                <grant-uri-permission />
                <action />                 <meta-data />
                <category />           </provider>
                <data />
            </intent-filter>           <uses-library />
            <meta-data />
        </activity>               </application>

                               </manifest>
AndroidManifest.xml
<manifest>
                                          <activity-alias>
    <uses-permission />                       <intent-filter> . . . </intent-filter>
    <permission />                            <meta-data />
    <permission-tree />                   </activity-alias>
    <permission-group />
    <instrumentation />                   <service>
    <uses-sdk />                              <intent-filter> . . . </intent-filter>
<manifest xmlns:android= "http://schemas.android.
    <uses-configuration />                    <meta-data/>
    <uses-feature />                      </service>
com/apk/res/android"
    <supports-screens />
  android:installLocation="auto" <receiver>
    <compatible-screens />
                                     <intent-filter> . . . </intent-filter>
    <supports-gl-texture />
  package="my.package.name"          <meta-data />
                                 </receiver>
  android:versionCode="42"
   <application>

  android:versionName="theLifeTheUniverseAndEverything-Beta"
       <activity>                <provider>
           <intent-filter>           <grant-uri-permission />
>              <action />            <meta-data />
                <category />              </provider>
                <data />
            </intent-filter>              <uses-library />
            <meta-data />
        </activity>                  </application>

                                  </manifest>
AndroidManifest.xml
<manifest>
                                       <activity-alias>
    <uses-permission />                    <intent-filter> . . . </intent-filter>
    <permission />                         <meta-data />
    <permission-tree />                </activity-alias>
    <permission-group />
    <instrumentation />                <service>
    <uses-sdk />                           <intent-filter> . . . </intent-filter>
    <uses-configuration />                 <meta-data/>
                                       </service>
    <uses-feature />
                      <uses-permission />
    <supports-screens />
    <compatible-screens />             <receiver>
    <supports-gl-texture />                <intent-filter> . . . </intent-filter>
                                           <meta-data />
    <application>                      </receiver>

        <activity>                     <provider>
            <intent-filter>                <grant-uri-permission />
                <action />                 <meta-data />
                <category />           </provider>
                <data />
            </intent-filter>           <uses-library />
            <meta-data />
        </activity>               </application>

                               </manifest>
AndroidManifest.xml
<manifest>
                                       <activity-alias>
    <uses-permission />                    <intent-filter> . . . </intent-filter>
    <permission />                         <meta-data />
    <permission-tree />                </activity-alias>
    <permission-group />
    <instrumentation />                <service>
    <uses-sdk />                           <intent-filter> . . . </intent-filter>
                                           <meta-data/>




                                                                           !
    <uses-configuration />
                                       </service>
    <uses-feature />
                      <uses-permission />
    <supports-screens />
    <compatible-screens />             <receiver>
    <supports-gl-texture />                <intent-filter> . . . </intent-filter>
                                           <meta-data />
    <application>                      </receiver>

        <activity>                     <provider>
            <intent-filter>                <grant-uri-permission />
                <action />                 <meta-data />
                <category />           </provider>
                <data />
            </intent-filter>           <uses-library />
            <meta-data />
        </activity>               </application>

                               </manifest>
AndroidManifest.xml
<manifest>
                                                  <activity-alias>
    <uses-permission />                               <intent-filter> . . . </intent-filter>
    <permission />                                    <meta-data />
    <permission-tree />         <activity>        </activity-alias>
    <permission-group />
    <instrumentation />
                                  <intent-filter>
                                             <service>
    <uses-sdk />                    <action /> <intent-filter>
                                                 <meta-data/>
                                                                     . . . </intent-filter>
    <uses-configuration />
    <uses-feature />                <category />
                                             </service>
    <supports-screens />
    <compatible-screens />
                                    <data /> <receiver>
    <supports-gl-texture />       </intent-filter>
                                                 <intent-filter>     . . . </intent-filter>
                                                 <meta-data />
    <application>
                                  <meta-data </receiver>
                                              />
                               </activity>   <provider>
        <activity>
            <intent-filter>                           <grant-uri-permission />
                <action />                            <meta-data />
                <category />                      </provider>
                <data />
            </intent-filter>                      <uses-library />
            <meta-data />
        </activity>                          </application>

                                          </manifest>
AndroidManifest.xml
<manifest>
                                                  <activity-alias>
    <uses-permission />                               <intent-filter> . . . </intent-filter>
    <permission />                                    <meta-data />
    <permission-tree />         <activity>        </activity-alias>
    <permission-group />
    <instrumentation />
                                  <intent-filter>
                                             <service>
    <uses-sdk />                    <action /> <intent-filter>
                                                 <meta-data/>
                                                                     . . . </intent-filter>




                                                                        !
    <uses-configuration />
    <uses-feature />                <category />
                                             </service>
    <supports-screens />
    <compatible-screens />
                                    <data /> <receiver>
    <supports-gl-texture />       </intent-filter>
                                                 <intent-filter>     . . . </intent-filter>
                                                 <meta-data />
    <application>
                                  <meta-data </receiver>
                                              />
                               </activity>   <provider>
        <activity>
            <intent-filter>                           <grant-uri-permission />
                <action />                            <meta-data />
                <category />                      </provider>
                <data />
            </intent-filter>                      <uses-library />
            <meta-data />
        </activity>                          </application>

                                          </manifest>
Intent
An intent is an abstract description of an
operation to be performed.
It can be used with startActivity to launch
an Activity, broadcastIntent to send it
to any interested BroadcastReceiver
components, and startService(Intent)
or bindService(Intent,
ServiceConnection, int) to
communicate with a background Service.
Intent
An intent is an abstract description of an
operation to be performed.
It can be used with startActivity to launch
an Activity, broadcastIntent to send it
to any interested BroadcastReceiver
components, and startService(Intent)
or bindService(Intent,
ServiceConnection, int) to
communicate with a background Service.
Intent
An Intent provides a facility for performing late
runtime binding between the code in different
applications.
Its most significant use is in the launching of
activities, where it can be thought of as the
glue between activities.
It is basically a passive data structure holding
an abstract description of an action to be
performed.
Intent
An Intent provides a facility for performing late
runtime binding between the code in different
applications.
Its most significant use is in the launching of
activities, where it can be thought of as the
glue between activities.
It is basically a passive data structure holding
an abstract description of an action to be
performed.
Intent
Views
<?xml version ="1.0" encoding ="utf-8"?>
<LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
    android:layout_width ="fill_parent"
    android:layout_height ="fill_parent"
    android:paddingLeft ="16dp"
    android:paddingRight ="16dp"
    android:orientation ="vertical" >
    <EditText
        android:layout_width ="fill_parent"
        android:layout_height ="wrap_content"
        android:hint ="@string/to" />
    <EditText
        android:layout_width ="fill_parent"
        android:layout_height ="wrap_content"
        android:hint ="@string/subject" />
    <EditText
        android:layout_width ="fill_parent"
        android:layout_height ="0dp"
        android:layout_weight ="1"
        android:gravity ="top"
        android:hint ="@string/message" />
    <Button
        android:layout_width ="100dp"
        android:layout_height ="wrap_content"
        android:layout_gravity ="right"
        android:text ="@string/send" />
</LinearLayout>
Views

public class OneOhOneDemo extends Activity{
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
    }
...
}
Views
User interaction


  someView.setOnClickListener(new OnClickListener() {
          public void onClick(View view) {
            //handle event
          }
        });
Libraries
Libraries




            ●   Support Library
            ●   android-json-rpc
            ●   oauth-signpost
            ●   greenDAO
            ●   GSON
            ●   ...
Important links
https://developer.android.com
https://developer.android.com/sdk/index.html
https://developer.android.com/guide/components/index.html
https://developer.android.com/training/basics/firstapp/index.html

https://stackoverflow.com

http://www.openintents.org/en/libraries
Questions
Get your keyboards
     clicking!
Thank you
Benjamin Weiss
http://gplus.to/keyboardsurfer
Twitter: @keyboardsurfer
Image Sources
●   http://www.devfest.info/images/vhabig.png
●   https://en.wikipedia.org/wiki/Linux
●   https://en.wikipedia.org/wiki/Windows
●   https://en.wikipedia.org/wiki/Windows
●   https://d.android.com
●   http://www.eclipse.org/artwork/
●   https://www.jetbrains.com/img/logos/logo_intellij_idea.gif
●   https://play.google.com/store/apps/details?id=com.aide.ui
●   https://developer.android.com/sdk/index.html
●   https://developer.android.com/reference/packages.html
●   https://developer.android.com/guide/topics/ui/layout/linear.html
●   http://curiousexpeditions.org/?p=78
●   http://actionbarsherlock.com
●   https://code.google.com/p/roboguice
●   http://marie-schweiz.de

Más contenido relacionado

Destacado

Forecasting total cost and duration of Product Backlog
Forecasting total cost and duration of Product BacklogForecasting total cost and duration of Product Backlog
Forecasting total cost and duration of Product BacklogRussell Pannone
 
Android activity lifecycle
Android activity lifecycleAndroid activity lifecycle
Android activity lifecycleSoham Patel
 
Intent in android
Intent in androidIntent in android
Intent in androidDurai S
 
Object oriented testing
Object oriented testingObject oriented testing
Object oriented testingHaris Jamil
 
Pre-Con Ed: Test Data Management and Compliance: Is your Test Data Ready for ...
Pre-Con Ed: Test Data Management and Compliance: Is your Test Data Ready for ...Pre-Con Ed: Test Data Management and Compliance: Is your Test Data Ready for ...
Pre-Con Ed: Test Data Management and Compliance: Is your Test Data Ready for ...CA Technologies
 
Android: Intent, Intent Filter, Broadcast Receivers
Android: Intent, Intent Filter, Broadcast ReceiversAndroid: Intent, Intent Filter, Broadcast Receivers
Android: Intent, Intent Filter, Broadcast ReceiversCodeAndroid
 
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...op205
 
structured programming
structured programmingstructured programming
structured programmingAhmad54321
 
Understanding android security model
Understanding android security modelUnderstanding android security model
Understanding android security modelPragati Rai
 
structured programming Introduction to c fundamentals
structured programming Introduction to c fundamentalsstructured programming Introduction to c fundamentals
structured programming Introduction to c fundamentalsOMWOMA JACKSON
 
ABAP Event-driven Programming &Selection Screen
ABAP Event-driven Programming &Selection ScreenABAP Event-driven Programming &Selection Screen
ABAP Event-driven Programming &Selection Screensapdocs. info
 
Testing Plan Test Case
Testing Plan Test CaseTesting Plan Test Case
Testing Plan Test Caseguest4c6fd6
 
Risk-management
 Risk-management Risk-management
Risk-managementUmesh Gupta
 

Destacado (15)

Forecasting total cost and duration of Product Backlog
Forecasting total cost and duration of Product BacklogForecasting total cost and duration of Product Backlog
Forecasting total cost and duration of Product Backlog
 
Android activity lifecycle
Android activity lifecycleAndroid activity lifecycle
Android activity lifecycle
 
Intent in android
Intent in androidIntent in android
Intent in android
 
Object oriented testing
Object oriented testingObject oriented testing
Object oriented testing
 
Pre-Con Ed: Test Data Management and Compliance: Is your Test Data Ready for ...
Pre-Con Ed: Test Data Management and Compliance: Is your Test Data Ready for ...Pre-Con Ed: Test Data Management and Compliance: Is your Test Data Ready for ...
Pre-Con Ed: Test Data Management and Compliance: Is your Test Data Ready for ...
 
Android: Intent, Intent Filter, Broadcast Receivers
Android: Intent, Intent Filter, Broadcast ReceiversAndroid: Intent, Intent Filter, Broadcast Receivers
Android: Intent, Intent Filter, Broadcast Receivers
 
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
 
Introduction to White box testing
Introduction to White box testingIntroduction to White box testing
Introduction to White box testing
 
structured programming
structured programmingstructured programming
structured programming
 
Understanding android security model
Understanding android security modelUnderstanding android security model
Understanding android security model
 
structured programming Introduction to c fundamentals
structured programming Introduction to c fundamentalsstructured programming Introduction to c fundamentals
structured programming Introduction to c fundamentals
 
ABAP Event-driven Programming &Selection Screen
ABAP Event-driven Programming &Selection ScreenABAP Event-driven Programming &Selection Screen
ABAP Event-driven Programming &Selection Screen
 
Testing Plan Test Case
Testing Plan Test CaseTesting Plan Test Case
Testing Plan Test Case
 
Hirarc
HirarcHirarc
Hirarc
 
Risk-management
 Risk-management Risk-management
Risk-management
 

Similar a Android 101 workshop

Pom configuration java xml
Pom configuration java xmlPom configuration java xml
Pom configuration java xmlakmini
 
Fine-grained authorization with XACML
Fine-grained authorization with XACMLFine-grained authorization with XACML
Fine-grained authorization with XACMLPrabath Siriwardena
 
Обзор Android M
Обзор Android MОбзор Android M
Обзор Android MWOX APP
 
I/O Rewind 215: What's new in Android
I/O Rewind 215: What's new in AndroidI/O Rewind 215: What's new in Android
I/O Rewind 215: What's new in AndroidSittiphol Phanvilai
 
Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!cyrilpicat
 
Dundee University HackU 2013 - Mojito
Dundee University HackU 2013 - MojitoDundee University HackU 2013 - Mojito
Dundee University HackU 2013 - Mojitosmartads
 
Soft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developmentsSoft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developmentsrfelden
 
Spring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorialsSpring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorialsRaghavan Mohan
 
Building a Recommendation Engine Using Diverse Features by Divyanshu Vats
Building a Recommendation Engine Using Diverse Features by Divyanshu VatsBuilding a Recommendation Engine Using Diverse Features by Divyanshu Vats
Building a Recommendation Engine Using Diverse Features by Divyanshu VatsSpark Summit
 
Resource and view
Resource and viewResource and view
Resource and viewPapp Laszlo
 
Using JIRA to build a culture of innovation - Atlassian Summit 2012
Using JIRA to build a culture of innovation - Atlassian Summit 2012Using JIRA to build a culture of innovation - Atlassian Summit 2012
Using JIRA to build a culture of innovation - Atlassian Summit 2012Atlassian
 
Going with style: Themes and apps for Magento Go
Going with style: Themes and apps for Magento GoGoing with style: Themes and apps for Magento Go
Going with style: Themes and apps for Magento GoX.commerce
 
Spring I/O 2019 Recap - Moduliths
Spring I/O 2019 Recap - ModulithsSpring I/O 2019 Recap - Moduliths
Spring I/O 2019 Recap - ModulithsTakeshi Ogawa
 
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010Arun Gupta
 
Apache Falcon - Data Management Platform For Hadoop
Apache Falcon - Data Management Platform For HadoopApache Falcon - Data Management Platform For Hadoop
Apache Falcon - Data Management Platform For HadoopAjay Yadava
 

Similar a Android 101 workshop (20)

Pom configuration java xml
Pom configuration java xmlPom configuration java xml
Pom configuration java xml
 
Pom
PomPom
Pom
 
Fine-grained authorization with XACML
Fine-grained authorization with XACMLFine-grained authorization with XACML
Fine-grained authorization with XACML
 
Обзор Android M
Обзор Android MОбзор Android M
Обзор Android M
 
I/O Rewind 215: What's new in Android
I/O Rewind 215: What's new in AndroidI/O Rewind 215: What's new in Android
I/O Rewind 215: What's new in Android
 
Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!
 
Jsf
JsfJsf
Jsf
 
Introduction to struts
Introduction to strutsIntroduction to struts
Introduction to struts
 
Dundee University HackU 2013 - Mojito
Dundee University HackU 2013 - MojitoDundee University HackU 2013 - Mojito
Dundee University HackU 2013 - Mojito
 
Soft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developmentsSoft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developments
 
Spring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorialsSpring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorials
 
Building a Recommendation Engine Using Diverse Features by Divyanshu Vats
Building a Recommendation Engine Using Diverse Features by Divyanshu VatsBuilding a Recommendation Engine Using Diverse Features by Divyanshu Vats
Building a Recommendation Engine Using Diverse Features by Divyanshu Vats
 
Resource and view
Resource and viewResource and view
Resource and view
 
Using JIRA to build a culture of innovation - Atlassian Summit 2012
Using JIRA to build a culture of innovation - Atlassian Summit 2012Using JIRA to build a culture of innovation - Atlassian Summit 2012
Using JIRA to build a culture of innovation - Atlassian Summit 2012
 
Going with style: Themes and apps for Magento Go
Going with style: Themes and apps for Magento GoGoing with style: Themes and apps for Magento Go
Going with style: Themes and apps for Magento Go
 
Android search
Android searchAndroid search
Android search
 
Android search
Android searchAndroid search
Android search
 
Spring I/O 2019 Recap - Moduliths
Spring I/O 2019 Recap - ModulithsSpring I/O 2019 Recap - Moduliths
Spring I/O 2019 Recap - Moduliths
 
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
 
Apache Falcon - Data Management Platform For Hadoop
Apache Falcon - Data Management Platform For HadoopApache Falcon - Data Management Platform For Hadoop
Apache Falcon - Data Management Platform For Hadoop
 

Último

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 

Último (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Android 101 workshop

  • 1. Android 101 workshop Getting started with Android development
  • 2. Benjamin Weiss http://gplus.to/keyboardsurfer Twitter: @keyboardsurfer Senior Software Developer at ImmobilienScout24 Organizer: GDG Android in Berlin Co-Organizer: ●Global Android Dev Camp ●GTUG Community Weekend ●Google I/O Extended Berlin 2012 ●DevFest Berlin 2012
  • 3. Agenda ● The Setup ● Hello Android ● AndroidManifest.xml ● Intents ● Views ● Respond to user-interaction ● Using libraries ● Hands on
  • 4. The Setup Platform of choice Linux Mac Windows Android
  • 5. The Setup Development Environment http://eclipse.org https://www.jetbrains.com/idea AIDE https://play.google.com/store/apps/details? id=com.aide.ui
  • 8. AndroidManifest.xml https://developer.android.com/ guide/topics/manifest/ manifest-intro.html
  • 9. AndroidManifest.xml <manifest> <activity-alias> <uses-permission /> <intent-filter> . . . </intent-filter> <permission /> <meta-data /> <permission-tree /> </activity-alias> <permission-group /> <instrumentation /> <service> <uses-sdk /> <intent-filter> . . . </intent-filter> <uses-configuration /> <meta-data/> <uses-feature /> </service> <supports-screens /> <compatible-screens /> <receiver> <supports-gl-texture /> <intent-filter> . . . </intent-filter> <meta-data /> <application> </receiver> <activity> <provider> <intent-filter> <grant-uri-permission /> <action /> <meta-data /> <category /> </provider> <data /> </intent-filter> <uses-library /> <meta-data /> </activity> </application> </manifest>
  • 10. AndroidManifest.xml <manifest> <activity-alias> <uses-permission /> <intent-filter> . . . </intent-filter> <permission /> <meta-data /> <permission-tree /> </activity-alias> <permission-group /> <instrumentation /> <service> <uses-sdk /> <intent-filter> . . . </intent-filter> <manifest xmlns:android= "http://schemas.android. <uses-configuration /> <meta-data/> <uses-feature /> </service> com/apk/res/android" <supports-screens /> android:installLocation="auto" <receiver> <compatible-screens /> <intent-filter> . . . </intent-filter> <supports-gl-texture /> package="my.package.name" <meta-data /> </receiver> android:versionCode="42" <application> android:versionName="theLifeTheUniverseAndEverything-Beta" <activity> <provider> <intent-filter> <grant-uri-permission /> > <action /> <meta-data /> <category /> </provider> <data /> </intent-filter> <uses-library /> <meta-data /> </activity> </application> </manifest>
  • 11. AndroidManifest.xml <manifest> <activity-alias> <uses-permission /> <intent-filter> . . . </intent-filter> <permission /> <meta-data /> <permission-tree /> </activity-alias> <permission-group /> <instrumentation /> <service> <uses-sdk /> <intent-filter> . . . </intent-filter> <uses-configuration /> <meta-data/> </service> <uses-feature /> <uses-permission /> <supports-screens /> <compatible-screens /> <receiver> <supports-gl-texture /> <intent-filter> . . . </intent-filter> <meta-data /> <application> </receiver> <activity> <provider> <intent-filter> <grant-uri-permission /> <action /> <meta-data /> <category /> </provider> <data /> </intent-filter> <uses-library /> <meta-data /> </activity> </application> </manifest>
  • 12. AndroidManifest.xml <manifest> <activity-alias> <uses-permission /> <intent-filter> . . . </intent-filter> <permission /> <meta-data /> <permission-tree /> </activity-alias> <permission-group /> <instrumentation /> <service> <uses-sdk /> <intent-filter> . . . </intent-filter> <meta-data/> ! <uses-configuration /> </service> <uses-feature /> <uses-permission /> <supports-screens /> <compatible-screens /> <receiver> <supports-gl-texture /> <intent-filter> . . . </intent-filter> <meta-data /> <application> </receiver> <activity> <provider> <intent-filter> <grant-uri-permission /> <action /> <meta-data /> <category /> </provider> <data /> </intent-filter> <uses-library /> <meta-data /> </activity> </application> </manifest>
  • 13. AndroidManifest.xml <manifest> <activity-alias> <uses-permission /> <intent-filter> . . . </intent-filter> <permission /> <meta-data /> <permission-tree /> <activity> </activity-alias> <permission-group /> <instrumentation /> <intent-filter> <service> <uses-sdk /> <action /> <intent-filter> <meta-data/> . . . </intent-filter> <uses-configuration /> <uses-feature /> <category /> </service> <supports-screens /> <compatible-screens /> <data /> <receiver> <supports-gl-texture /> </intent-filter> <intent-filter> . . . </intent-filter> <meta-data /> <application> <meta-data </receiver> /> </activity> <provider> <activity> <intent-filter> <grant-uri-permission /> <action /> <meta-data /> <category /> </provider> <data /> </intent-filter> <uses-library /> <meta-data /> </activity> </application> </manifest>
  • 14. AndroidManifest.xml <manifest> <activity-alias> <uses-permission /> <intent-filter> . . . </intent-filter> <permission /> <meta-data /> <permission-tree /> <activity> </activity-alias> <permission-group /> <instrumentation /> <intent-filter> <service> <uses-sdk /> <action /> <intent-filter> <meta-data/> . . . </intent-filter> ! <uses-configuration /> <uses-feature /> <category /> </service> <supports-screens /> <compatible-screens /> <data /> <receiver> <supports-gl-texture /> </intent-filter> <intent-filter> . . . </intent-filter> <meta-data /> <application> <meta-data </receiver> /> </activity> <provider> <activity> <intent-filter> <grant-uri-permission /> <action /> <meta-data /> <category /> </provider> <data /> </intent-filter> <uses-library /> <meta-data /> </activity> </application> </manifest>
  • 15. Intent An intent is an abstract description of an operation to be performed. It can be used with startActivity to launch an Activity, broadcastIntent to send it to any interested BroadcastReceiver components, and startService(Intent) or bindService(Intent, ServiceConnection, int) to communicate with a background Service.
  • 16. Intent An intent is an abstract description of an operation to be performed. It can be used with startActivity to launch an Activity, broadcastIntent to send it to any interested BroadcastReceiver components, and startService(Intent) or bindService(Intent, ServiceConnection, int) to communicate with a background Service.
  • 17. Intent An Intent provides a facility for performing late runtime binding between the code in different applications. Its most significant use is in the launching of activities, where it can be thought of as the glue between activities. It is basically a passive data structure holding an abstract description of an action to be performed.
  • 18. Intent An Intent provides a facility for performing late runtime binding between the code in different applications. Its most significant use is in the launching of activities, where it can be thought of as the glue between activities. It is basically a passive data structure holding an abstract description of an action to be performed.
  • 20. Views <?xml version ="1.0" encoding ="utf-8"?> <LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android" android:layout_width ="fill_parent" android:layout_height ="fill_parent" android:paddingLeft ="16dp" android:paddingRight ="16dp" android:orientation ="vertical" > <EditText android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:hint ="@string/to" /> <EditText android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:hint ="@string/subject" /> <EditText android:layout_width ="fill_parent" android:layout_height ="0dp" android:layout_weight ="1" android:gravity ="top" android:hint ="@string/message" /> <Button android:layout_width ="100dp" android:layout_height ="wrap_content" android:layout_gravity ="right" android:text ="@string/send" /> </LinearLayout>
  • 21. Views public class OneOhOneDemo extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } ... }
  • 22. Views
  • 23. User interaction someView.setOnClickListener(new OnClickListener() { public void onClick(View view) { //handle event } });
  • 25. Libraries ● Support Library ● android-json-rpc ● oauth-signpost ● greenDAO ● GSON ● ...
  • 28. Get your keyboards clicking!
  • 30. Image Sources ● http://www.devfest.info/images/vhabig.png ● https://en.wikipedia.org/wiki/Linux ● https://en.wikipedia.org/wiki/Windows ● https://en.wikipedia.org/wiki/Windows ● https://d.android.com ● http://www.eclipse.org/artwork/ ● https://www.jetbrains.com/img/logos/logo_intellij_idea.gif ● https://play.google.com/store/apps/details?id=com.aide.ui ● https://developer.android.com/sdk/index.html ● https://developer.android.com/reference/packages.html ● https://developer.android.com/guide/topics/ui/layout/linear.html ● http://curiousexpeditions.org/?p=78 ● http://actionbarsherlock.com ● https://code.google.com/p/roboguice ● http://marie-schweiz.de