SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Summary
 About Me
 What is Android
 Anatomy of Android
 Setting up the environment
 Let's Code! quot;Contractoidquot;
 Deploy to the Market
About Me
Name: Justin Grammens
  Owner Localtone Interactive - http://www.localtone.com
     Focus on mobile, internet and voice applications
     Support and advocate for open formats (ogg, odf)
  Background in Java
  Working in Ruby/Rails/Grails on/off for the past 2 years
  Enjoy working in new technologies
     VoIP
         Asterisk
         Adhearsion
     Mobile
         Android
         iPhone
  Started MobileTC - http://mobiletwincities.com
What is Android?
Definition:

Android is a software platform and operating system
for mobile devices, based on the Linux kernel,
developed by Google and later the Open Handset
Alliance.

Source: Wikipedia

It's not just for mobile devices. Has the potential to
be used in all sorts of other areas where memory,
cpu and disk is limited.
!=
Android is NOT the G1!
What is Android?
A Project of the Open Handset Alliance (OHA)
  - More than 30 technology companies




Source: Presentation by Sean Sullivan - http://mobileportland.com/content/introduction-google-android
Anatomy of Android
 Built on the Linux kernel
 Uses the Dalvik virtual machine
    Register Based VM written by Dan Bornstein
    Very low memory footprint
 Core and 3rd party applications have equal access
 Multiple applications able to run at the same time
 Copy and Paste functionality
 Background services
 Able to embed HTML, Javascript and stylesheets
 100% fully customizable
 Handles native and streaming playback of mutimedia
 Currently supports developing apps in Java
What's the big deal?
 Truly open and FREE development platform.
    No quot;pay to playquot; developer agreement.
    Freely available tools (Eclipse) and no restrictions on OS
    you need to be on to develop.
 Component based architecture that can be extended
 Built in services out of the box.
    Location based (Gmail, Maps, Contacts)
    Multimedia - supports OGG!
    SQLite Database.
 Automatic management of application lifecycle.
 Portability across current and future hardware.
    Supports and plans for input from either trackball,
    keyboard or touch.
 Write your apps using Java!
Anatomy of Android
Anatomy of Android
Basic foundation of an Android application

  Activity
  Intent
  Service
  Content Provider

Your applications will not use all of these, but
they will use atleast one.
Anatomy of Android
Activity
  Describes a single screen of the application
  Implemented as a class that extends Activity
  Activities are pushed on the history stack using an
  Intent
  Uses callbacks to trigger events during state changes.

  public class LocaltoneAndroid extends ListActivity {
    @Override
    public void onCreate(Bundle init) {
    }
  }
Anatomy of Android
Activity Lifecycle




source: Hello, Android by Pragmatic Programmers
Anatomy of Android
Intent
   An Intent describes what you would like to have done.

  Create new screen using activity and intents
    Intent i = new Intent(this, MyNewActivity.class);
    startActivity(i);

  or open a web page

  new Intent(android.content.Intent.VIEW_ACTION,
    ContentURI.create(quot;http://localtone.comquot;));
Anatomy of Android
Service
  Code that is long running
  Runs without a UI
  Media Player is an good example
    Activity used to choose song
    Playback handled in a service

  public class MyService extends Service {
    public void onCreate() {
    }
  }
Anatomy of Android
Content Provider
     Set of data wrapped in a custom API
     Allow sharing of data between applications
     Processes register themselves as a Content Provider.
     Anyone can share data. Google shares contacts, address,
     phone, etc. can be accessed by applications.

   private String[]
      cols={android.provider.Contacts.PeopleColumns.NAME};
  private Cursor cur =
  managedQuery(android.provider.Contacts.People.CONTENT_URI,
cols, null, null);
http://developer.android.com/reference/android/provider/package-summary.html
Anatomy of Android
Various types of Layouts - Similar to Java Swing
   Linear Layout
      Arranges children in a single row/column. The most
      common type of layout you'll use.
   FrameLayout
      Arranges children so they start at the top left. Used
      mainly for tabbed views.
   Relative Layout
      Arranged in relation to eachother ( element X is
      above/below element Y for example ).
   TableLayout
      Arranged in a cells, like HTML table.
Anatomy of Android
XML file layout - About.xml

<LinearLayout xmlns:android=quot;http://schemas.android.
com/apk/res/androidquot;
     android:orientation=quot;verticalquot;
     android:layout_width=quot;fill_parentquot;
     android:layout_height=quot;fill_parentquot;>
     <TextView android:id=quot;@android:id/helloquot;
       android:layout_width=quot;wrap_contentquot;
       android:layout_height=quot;wrap_contentquot;
       android:text=quot;@string/helloquot; />
</LinearLayout>
Anatomy of Android
Declarative - In XML

Task: Define text in an quot;Aboutquot; screen
File: res/layout/about.xml
 <TextView android:id=quot;@+id/about_contentquot;
      android:layout_width=quot;wrap_contentquot;
      android:layout_height=quot;wrap_contentquot;
      android:text=quot;@string/about_textquot; />

File: About.java
   protected void onCreate(Bundle savedInstanceState) {
      setContentView(R.layout.about);
   }
Anatomy of Android

Procedural - In Code

   Create a TextView object, set the text and behavior

  TextView pressMe = new TextView(context);
  pressMe.setText(quot;Press Mequot;);
  addView(mDialogue, new LinearLayout.LayoutParams(
    FILL_PARENT, WRAP_CONTENT));
Anatomy of Android
Android Manifest.xml
  What is any good Java program without a manifest file? =)
  Defines the version and package information
  Defines the permissions required by the application

  <uses-permission              android:name=quot;android.
permission.INTERNETquot; />

  <activity android:name=quot;.Resultquot;        Class name
       android:label=quot;@string/resultquot;     of the Activity
       android:layout_width=quot;fill_parentquot;>
  </activity>
Development Environment
 Develop using Windows, Linux or Mac.
 Free to develop and deploy to your device.
 Recommend using to Eclipse IDE and Android Plugin
 Download IDE and from
    IDE - http://eclipse.org
    Install Android plugin through the Eclipse Plug-in
    Manager
 SDK
    http://code.google.com/android/intro/installing.html
Android Market
Android Market
Resources
 Books
     Hello, Android by Pragmatic Programmers
     Free PDF by AndDev.org - http://href.to/AB1
 Sites
     AndDev.org - Good online forum
     Google Samples - http://is.gd/knVZ
 IRC
     #Android-Dev
 Google Groups
     Android Developers
        http://is.gd/knWK
 Local Groups!
     Android Dev MN - http://is.gd/knVO
     Mobile Twin Cities - http://mobiletwincities.com
Let's Code!
Source code of
Contractoid at:

http://github.
com/justingrammens/contract
oid/tree/master

or at:
http://is.gd/TZFP

Video of this presentation
at:
http://is.gd/U4Zr
Thank you

Weitere ähnliche Inhalte

Was ist angesagt?

Mobile development
Mobile developmentMobile development
Mobile developmentSayed Ahmed
 
Day 1 Android: Before Getting Started
Day 1 Android: Before Getting StartedDay 1 Android: Before Getting Started
Day 1 Android: Before Getting StartedAhsanul Karim
 
Multiple Activity and Navigation Primer
Multiple Activity and Navigation PrimerMultiple Activity and Navigation Primer
Multiple Activity and Navigation PrimerAhsanul Karim
 
Android app development hybrid approach for beginners - Tools Installations ...
Android app development  hybrid approach for beginners - Tools Installations ...Android app development  hybrid approach for beginners - Tools Installations ...
Android app development hybrid approach for beginners - Tools Installations ...Khirulnizam Abd Rahman
 
Flutter Festival Session 1
Flutter Festival Session 1Flutter Festival Session 1
Flutter Festival Session 1PratikJH
 
Introduction to Android Development: Before Getting Started
Introduction to Android Development: Before Getting StartedIntroduction to Android Development: Before Getting Started
Introduction to Android Development: Before Getting StartedAhsanul Karim
 
Android application project presentation.
Android application project presentation.Android application project presentation.
Android application project presentation.Eyakub Sorkar
 
Android Development Training
Android Development TrainingAndroid Development Training
Android Development Trainingchandutata
 
Mobile Programming - 1 Introduction
Mobile Programming - 1 IntroductionMobile Programming - 1 Introduction
Mobile Programming - 1 IntroductionAndiNurkholis1
 
Android application structure
Android application structureAndroid application structure
Android application structureAlexey Ustenko
 
Android app development Hybrid approach for beginners
Android app development  Hybrid approach for beginnersAndroid app development  Hybrid approach for beginners
Android app development Hybrid approach for beginnersKhirulnizam Abd Rahman
 
Flutter dhaval solanki
Flutter   dhaval solankiFlutter   dhaval solanki
Flutter dhaval solankiDhaval Solanki
 
Dload mobile development
Dload mobile developmentDload mobile development
Dload mobile developmentSayed Ahmed
 
Android Introduction on Java Forum Stuttgart 11
Android Introduction on Java Forum Stuttgart 11 Android Introduction on Java Forum Stuttgart 11
Android Introduction on Java Forum Stuttgart 11 Lars Vogel
 
android-tutorial-for-beginner
android-tutorial-for-beginnerandroid-tutorial-for-beginner
android-tutorial-for-beginnerAjailal Parackal
 

Was ist angesagt? (20)

AndroidManifest
AndroidManifestAndroidManifest
AndroidManifest
 
Android Stsucture
Android StsuctureAndroid Stsucture
Android Stsucture
 
Mobile development
Mobile developmentMobile development
Mobile development
 
Android
AndroidAndroid
Android
 
Day 1 Android: Before Getting Started
Day 1 Android: Before Getting StartedDay 1 Android: Before Getting Started
Day 1 Android: Before Getting Started
 
Introduction to flutter
Introduction to flutter Introduction to flutter
Introduction to flutter
 
Multiple Activity and Navigation Primer
Multiple Activity and Navigation PrimerMultiple Activity and Navigation Primer
Multiple Activity and Navigation Primer
 
Android app development hybrid approach for beginners - Tools Installations ...
Android app development  hybrid approach for beginners - Tools Installations ...Android app development  hybrid approach for beginners - Tools Installations ...
Android app development hybrid approach for beginners - Tools Installations ...
 
Flutter Festival Session 1
Flutter Festival Session 1Flutter Festival Session 1
Flutter Festival Session 1
 
Introduction to Android Development: Before Getting Started
Introduction to Android Development: Before Getting StartedIntroduction to Android Development: Before Getting Started
Introduction to Android Development: Before Getting Started
 
Android application project presentation.
Android application project presentation.Android application project presentation.
Android application project presentation.
 
Android Development Training
Android Development TrainingAndroid Development Training
Android Development Training
 
Mobile Programming - 1 Introduction
Mobile Programming - 1 IntroductionMobile Programming - 1 Introduction
Mobile Programming - 1 Introduction
 
Android application structure
Android application structureAndroid application structure
Android application structure
 
Android Study Jams - Info Session
Android Study Jams - Info SessionAndroid Study Jams - Info Session
Android Study Jams - Info Session
 
Android app development Hybrid approach for beginners
Android app development  Hybrid approach for beginnersAndroid app development  Hybrid approach for beginners
Android app development Hybrid approach for beginners
 
Flutter dhaval solanki
Flutter   dhaval solankiFlutter   dhaval solanki
Flutter dhaval solanki
 
Dload mobile development
Dload mobile developmentDload mobile development
Dload mobile development
 
Android Introduction on Java Forum Stuttgart 11
Android Introduction on Java Forum Stuttgart 11 Android Introduction on Java Forum Stuttgart 11
Android Introduction on Java Forum Stuttgart 11
 
android-tutorial-for-beginner
android-tutorial-for-beginnerandroid-tutorial-for-beginner
android-tutorial-for-beginner
 

Andere mochten auch

Methods to set up android app development environment
Methods to set up android app development environmentMethods to set up android app development environment
Methods to set up android app development environmentastoria0128
 
Android Application Development Environment Setup
Android Application Development Environment SetupAndroid Application Development Environment Setup
Android Application Development Environment SetupIan Pinto
 
Android Development - Process & Tools
Android Development - Process & ToolsAndroid Development - Process & Tools
Android Development - Process & ToolsLope Emano
 
Developing Applications for Android - Lecture#3
Developing Applications for Android - Lecture#3Developing Applications for Android - Lecture#3
Developing Applications for Android - Lecture#3Usman Chaudhry
 
Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3Ahsanul Karim
 
Android tutorial ppt
Android tutorial pptAndroid tutorial ppt
Android tutorial pptRehna Renu
 
My presentation on Android in my college
My presentation on Android in my collegeMy presentation on Android in my college
My presentation on Android in my collegeSneha Lata
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentationconnectshilpa
 

Andere mochten auch (12)

Methods to set up android app development environment
Methods to set up android app development environmentMethods to set up android app development environment
Methods to set up android app development environment
 
Android Application Development Environment Setup
Android Application Development Environment SetupAndroid Application Development Environment Setup
Android Application Development Environment Setup
 
Android Development - Process & Tools
Android Development - Process & ToolsAndroid Development - Process & Tools
Android Development - Process & Tools
 
Android installation guide
Android installation guideAndroid installation guide
Android installation guide
 
Developing Applications for Android - Lecture#3
Developing Applications for Android - Lecture#3Developing Applications for Android - Lecture#3
Developing Applications for Android - Lecture#3
 
Android App development I
Android App development IAndroid App development I
Android App development I
 
Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3
 
Android tutorial ppt
Android tutorial pptAndroid tutorial ppt
Android tutorial ppt
 
My presentation on Android in my college
My presentation on Android in my collegeMy presentation on Android in my college
My presentation on Android in my college
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentation
 
Android seminar ppt
Android seminar pptAndroid seminar ppt
Android seminar ppt
 
Android ppt
Android ppt Android ppt
Android ppt
 

Ähnlich wie Android TCJUG

Basic android workshop
Basic android workshopBasic android workshop
Basic android workshopThagatpam Tech
 
Android Development project
Android Development projectAndroid Development project
Android Development projectMinhaj Kazi
 
Getting started with android dev and test perspective
Getting started with android   dev and test perspectiveGetting started with android   dev and test perspective
Getting started with android dev and test perspectiveGunjan Kumar
 
Android terminologies
Android terminologiesAndroid terminologies
Android terminologiesjerry vasoya
 
Part 2 android application development 101
Part 2 android application development 101Part 2 android application development 101
Part 2 android application development 101Michael Angelo Rivera
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android ProgrammingRaveendra R
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development pptsaitej15
 
Android In A Nutshell
Android In A NutshellAndroid In A Nutshell
Android In A NutshellTed Chien
 
Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Ahsanul Karim
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathonmarvin337
 
How to become an android developer
How to become an android developerHow to become an android developer
How to become an android developerum_adeveloper
 
Industrial Training in Android Application
Industrial Training in Android ApplicationIndustrial Training in Android Application
Industrial Training in Android ApplicationArcadian Learning
 
Android presentation
Android presentationAndroid presentation
Android presentationImam Raza
 

Ähnlich wie Android TCJUG (20)

Android Minnebar
Android MinnebarAndroid Minnebar
Android Minnebar
 
PPT Companion to Android
PPT Companion to AndroidPPT Companion to Android
PPT Companion to Android
 
Basic android workshop
Basic android workshopBasic android workshop
Basic android workshop
 
Android Development project
Android Development projectAndroid Development project
Android Development project
 
Android
AndroidAndroid
Android
 
Getting started with android dev and test perspective
Getting started with android   dev and test perspectiveGetting started with android   dev and test perspective
Getting started with android dev and test perspective
 
Android terminologies
Android terminologiesAndroid terminologies
Android terminologies
 
Intro to Android Programming
Intro to Android ProgrammingIntro to Android Programming
Intro to Android Programming
 
Part 2 android application development 101
Part 2 android application development 101Part 2 android application development 101
Part 2 android application development 101
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development ppt
 
Android In A Nutshell
Android In A NutshellAndroid In A Nutshell
Android In A Nutshell
 
Migrating JavaME Apps to Android
Migrating JavaME Apps to AndroidMigrating JavaME Apps to Android
Migrating JavaME Apps to Android
 
Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)
 
Google Android
Google AndroidGoogle Android
Google Android
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathon
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
How to become an android developer
How to become an android developerHow to become an android developer
How to become an android developer
 
Industrial Training in Android Application
Industrial Training in Android ApplicationIndustrial Training in Android Application
Industrial Training in Android Application
 
Android presentation
Android presentationAndroid presentation
Android presentation
 

Mehr von Justin Grammens

Scope Creep - Damned if I Do, Damned if I Don't
Scope Creep - Damned if I Do, Damned if I Don'tScope Creep - Damned if I Do, Damned if I Don't
Scope Creep - Damned if I Do, Damned if I Don'tJustin Grammens
 
Deep Learning with TensorFlow
Deep Learning with TensorFlowDeep Learning with TensorFlow
Deep Learning with TensorFlowJustin Grammens
 
Speaking at John Carrol University on the Internet of Things
Speaking at John Carrol University on the Internet of ThingsSpeaking at John Carrol University on the Internet of Things
Speaking at John Carrol University on the Internet of ThingsJustin Grammens
 
NDC Minnesota 2019 - Fundamentals of Azure IoT
NDC Minnesota 2019 - Fundamentals of Azure IoTNDC Minnesota 2019 - Fundamentals of Azure IoT
NDC Minnesota 2019 - Fundamentals of Azure IoTJustin Grammens
 
This Time, It’s Personal: Why Security and the IoT Is Different
This Time, It’s Personal: Why Security and the IoT Is DifferentThis Time, It’s Personal: Why Security and the IoT Is Different
This Time, It’s Personal: Why Security and the IoT Is DifferentJustin Grammens
 
Looking into the Future: Using Google's Prediction API
Looking into the Future: Using Google's Prediction APILooking into the Future: Using Google's Prediction API
Looking into the Future: Using Google's Prediction APIJustin Grammens
 
The Internet of Things - What It Is, Where Its Headed and Its Applications
The Internet of Things - What It Is, Where Its Headed and Its ApplicationsThe Internet of Things - What It Is, Where Its Headed and Its Applications
The Internet of Things - What It Is, Where Its Headed and Its ApplicationsJustin Grammens
 
Internet of Things: What It Is, Where's Headed and Its Applications
Internet of Things: What It Is, Where's Headed and Its ApplicationsInternet of Things: What It Is, Where's Headed and Its Applications
Internet of Things: What It Is, Where's Headed and Its ApplicationsJustin Grammens
 
Collaborative Learning - The Role Communities Play in IoT
Collaborative Learning - The Role Communities Play in IoTCollaborative Learning - The Role Communities Play in IoT
Collaborative Learning - The Role Communities Play in IoTJustin Grammens
 
Internet of Things: What it is, where it is going and how it is being applied.
Internet of Things: What it is, where it is going and how it is being applied.Internet of Things: What it is, where it is going and how it is being applied.
Internet of Things: What it is, where it is going and how it is being applied.Justin Grammens
 
Arduino, Open Source and The Internet of Things Landscape
Arduino, Open Source and The Internet of Things LandscapeArduino, Open Source and The Internet of Things Landscape
Arduino, Open Source and The Internet of Things LandscapeJustin Grammens
 
Gobot Meets IoT : Using the Go Programming Language to Control The “Things” A...
Gobot Meets IoT : Using the Go Programming Language to Control The “Things” A...Gobot Meets IoT : Using the Go Programming Language to Control The “Things” A...
Gobot Meets IoT : Using the Go Programming Language to Control The “Things” A...Justin Grammens
 
Physical Computing Using Go and Arduino
Physical Computing Using Go and ArduinoPhysical Computing Using Go and Arduino
Physical Computing Using Go and ArduinoJustin Grammens
 
The State of Arduino and IoT
The State of Arduino and IoTThe State of Arduino and IoT
The State of Arduino and IoTJustin Grammens
 
Voice Enabled Applications
Voice Enabled ApplicationsVoice Enabled Applications
Voice Enabled ApplicationsJustin Grammens
 
Adhearsion and Telegraph Framework Presentation
Adhearsion and Telegraph Framework PresentationAdhearsion and Telegraph Framework Presentation
Adhearsion and Telegraph Framework PresentationJustin Grammens
 
Asterisk-Java Framework Presentation
Asterisk-Java Framework PresentationAsterisk-Java Framework Presentation
Asterisk-Java Framework PresentationJustin Grammens
 

Mehr von Justin Grammens (17)

Scope Creep - Damned if I Do, Damned if I Don't
Scope Creep - Damned if I Do, Damned if I Don'tScope Creep - Damned if I Do, Damned if I Don't
Scope Creep - Damned if I Do, Damned if I Don't
 
Deep Learning with TensorFlow
Deep Learning with TensorFlowDeep Learning with TensorFlow
Deep Learning with TensorFlow
 
Speaking at John Carrol University on the Internet of Things
Speaking at John Carrol University on the Internet of ThingsSpeaking at John Carrol University on the Internet of Things
Speaking at John Carrol University on the Internet of Things
 
NDC Minnesota 2019 - Fundamentals of Azure IoT
NDC Minnesota 2019 - Fundamentals of Azure IoTNDC Minnesota 2019 - Fundamentals of Azure IoT
NDC Minnesota 2019 - Fundamentals of Azure IoT
 
This Time, It’s Personal: Why Security and the IoT Is Different
This Time, It’s Personal: Why Security and the IoT Is DifferentThis Time, It’s Personal: Why Security and the IoT Is Different
This Time, It’s Personal: Why Security and the IoT Is Different
 
Looking into the Future: Using Google's Prediction API
Looking into the Future: Using Google's Prediction APILooking into the Future: Using Google's Prediction API
Looking into the Future: Using Google's Prediction API
 
The Internet of Things - What It Is, Where Its Headed and Its Applications
The Internet of Things - What It Is, Where Its Headed and Its ApplicationsThe Internet of Things - What It Is, Where Its Headed and Its Applications
The Internet of Things - What It Is, Where Its Headed and Its Applications
 
Internet of Things: What It Is, Where's Headed and Its Applications
Internet of Things: What It Is, Where's Headed and Its ApplicationsInternet of Things: What It Is, Where's Headed and Its Applications
Internet of Things: What It Is, Where's Headed and Its Applications
 
Collaborative Learning - The Role Communities Play in IoT
Collaborative Learning - The Role Communities Play in IoTCollaborative Learning - The Role Communities Play in IoT
Collaborative Learning - The Role Communities Play in IoT
 
Internet of Things: What it is, where it is going and how it is being applied.
Internet of Things: What it is, where it is going and how it is being applied.Internet of Things: What it is, where it is going and how it is being applied.
Internet of Things: What it is, where it is going and how it is being applied.
 
Arduino, Open Source and The Internet of Things Landscape
Arduino, Open Source and The Internet of Things LandscapeArduino, Open Source and The Internet of Things Landscape
Arduino, Open Source and The Internet of Things Landscape
 
Gobot Meets IoT : Using the Go Programming Language to Control The “Things” A...
Gobot Meets IoT : Using the Go Programming Language to Control The “Things” A...Gobot Meets IoT : Using the Go Programming Language to Control The “Things” A...
Gobot Meets IoT : Using the Go Programming Language to Control The “Things” A...
 
Physical Computing Using Go and Arduino
Physical Computing Using Go and ArduinoPhysical Computing Using Go and Arduino
Physical Computing Using Go and Arduino
 
The State of Arduino and IoT
The State of Arduino and IoTThe State of Arduino and IoT
The State of Arduino and IoT
 
Voice Enabled Applications
Voice Enabled ApplicationsVoice Enabled Applications
Voice Enabled Applications
 
Adhearsion and Telegraph Framework Presentation
Adhearsion and Telegraph Framework PresentationAdhearsion and Telegraph Framework Presentation
Adhearsion and Telegraph Framework Presentation
 
Asterisk-Java Framework Presentation
Asterisk-Java Framework PresentationAsterisk-Java Framework Presentation
Asterisk-Java Framework Presentation
 

Kürzlich hochgeladen

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
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
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
[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
 

Kürzlich hochgeladen (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
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
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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...
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
[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
 

Android TCJUG

  • 1.
  • 2. Summary About Me What is Android Anatomy of Android Setting up the environment Let's Code! quot;Contractoidquot; Deploy to the Market
  • 3. About Me Name: Justin Grammens Owner Localtone Interactive - http://www.localtone.com Focus on mobile, internet and voice applications Support and advocate for open formats (ogg, odf) Background in Java Working in Ruby/Rails/Grails on/off for the past 2 years Enjoy working in new technologies VoIP Asterisk Adhearsion Mobile Android iPhone Started MobileTC - http://mobiletwincities.com
  • 4. What is Android? Definition: Android is a software platform and operating system for mobile devices, based on the Linux kernel, developed by Google and later the Open Handset Alliance. Source: Wikipedia It's not just for mobile devices. Has the potential to be used in all sorts of other areas where memory, cpu and disk is limited.
  • 6. What is Android? A Project of the Open Handset Alliance (OHA) - More than 30 technology companies Source: Presentation by Sean Sullivan - http://mobileportland.com/content/introduction-google-android
  • 7. Anatomy of Android Built on the Linux kernel Uses the Dalvik virtual machine Register Based VM written by Dan Bornstein Very low memory footprint Core and 3rd party applications have equal access Multiple applications able to run at the same time Copy and Paste functionality Background services Able to embed HTML, Javascript and stylesheets 100% fully customizable Handles native and streaming playback of mutimedia Currently supports developing apps in Java
  • 8. What's the big deal? Truly open and FREE development platform. No quot;pay to playquot; developer agreement. Freely available tools (Eclipse) and no restrictions on OS you need to be on to develop. Component based architecture that can be extended Built in services out of the box. Location based (Gmail, Maps, Contacts) Multimedia - supports OGG! SQLite Database. Automatic management of application lifecycle. Portability across current and future hardware. Supports and plans for input from either trackball, keyboard or touch. Write your apps using Java!
  • 10. Anatomy of Android Basic foundation of an Android application Activity Intent Service Content Provider Your applications will not use all of these, but they will use atleast one.
  • 11. Anatomy of Android Activity Describes a single screen of the application Implemented as a class that extends Activity Activities are pushed on the history stack using an Intent Uses callbacks to trigger events during state changes. public class LocaltoneAndroid extends ListActivity { @Override public void onCreate(Bundle init) { } }
  • 12. Anatomy of Android Activity Lifecycle source: Hello, Android by Pragmatic Programmers
  • 13. Anatomy of Android Intent An Intent describes what you would like to have done. Create new screen using activity and intents Intent i = new Intent(this, MyNewActivity.class); startActivity(i); or open a web page new Intent(android.content.Intent.VIEW_ACTION, ContentURI.create(quot;http://localtone.comquot;));
  • 14. Anatomy of Android Service Code that is long running Runs without a UI Media Player is an good example Activity used to choose song Playback handled in a service public class MyService extends Service { public void onCreate() { } }
  • 15. Anatomy of Android Content Provider Set of data wrapped in a custom API Allow sharing of data between applications Processes register themselves as a Content Provider. Anyone can share data. Google shares contacts, address, phone, etc. can be accessed by applications. private String[] cols={android.provider.Contacts.PeopleColumns.NAME}; private Cursor cur = managedQuery(android.provider.Contacts.People.CONTENT_URI, cols, null, null); http://developer.android.com/reference/android/provider/package-summary.html
  • 16. Anatomy of Android Various types of Layouts - Similar to Java Swing Linear Layout Arranges children in a single row/column. The most common type of layout you'll use. FrameLayout Arranges children so they start at the top left. Used mainly for tabbed views. Relative Layout Arranged in relation to eachother ( element X is above/below element Y for example ). TableLayout Arranged in a cells, like HTML table.
  • 17. Anatomy of Android XML file layout - About.xml <LinearLayout xmlns:android=quot;http://schemas.android. com/apk/res/androidquot; android:orientation=quot;verticalquot; android:layout_width=quot;fill_parentquot; android:layout_height=quot;fill_parentquot;> <TextView android:id=quot;@android:id/helloquot; android:layout_width=quot;wrap_contentquot; android:layout_height=quot;wrap_contentquot; android:text=quot;@string/helloquot; /> </LinearLayout>
  • 18. Anatomy of Android Declarative - In XML Task: Define text in an quot;Aboutquot; screen File: res/layout/about.xml <TextView android:id=quot;@+id/about_contentquot; android:layout_width=quot;wrap_contentquot; android:layout_height=quot;wrap_contentquot; android:text=quot;@string/about_textquot; /> File: About.java protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.about); }
  • 19. Anatomy of Android Procedural - In Code Create a TextView object, set the text and behavior TextView pressMe = new TextView(context); pressMe.setText(quot;Press Mequot;); addView(mDialogue, new LinearLayout.LayoutParams( FILL_PARENT, WRAP_CONTENT));
  • 20. Anatomy of Android Android Manifest.xml What is any good Java program without a manifest file? =) Defines the version and package information Defines the permissions required by the application <uses-permission android:name=quot;android. permission.INTERNETquot; /> <activity android:name=quot;.Resultquot; Class name android:label=quot;@string/resultquot; of the Activity android:layout_width=quot;fill_parentquot;> </activity>
  • 21. Development Environment Develop using Windows, Linux or Mac. Free to develop and deploy to your device. Recommend using to Eclipse IDE and Android Plugin Download IDE and from IDE - http://eclipse.org Install Android plugin through the Eclipse Plug-in Manager SDK http://code.google.com/android/intro/installing.html
  • 24. Resources Books Hello, Android by Pragmatic Programmers Free PDF by AndDev.org - http://href.to/AB1 Sites AndDev.org - Good online forum Google Samples - http://is.gd/knVZ IRC #Android-Dev Google Groups Android Developers http://is.gd/knWK Local Groups! Android Dev MN - http://is.gd/knVO Mobile Twin Cities - http://mobiletwincities.com
  • 25. Let's Code! Source code of Contractoid at: http://github. com/justingrammens/contract oid/tree/master or at: http://is.gd/TZFP Video of this presentation at: http://is.gd/U4Zr