SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
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
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Kürzlich hochgeladen (20)

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
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
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

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