SlideShare a Scribd company logo
1 of 35
Download to read offline
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

Would argue that 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.
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 on/off for the past 2 years
  Enjoy working in new technologies
     VoIP
        Asterisk
        Adhearsion
     Mobile
        Android
        iPhone
  Looking to start a mobile developers monthly meetings
Summary
 Meet our friend quot;ANDYquot;
 History
 Anatomy of quot;ANDYquot;
 Setting up the environment
 Sample Applications
 Android Market
 Discuss
!=
ANDY




Android is NOT the G1!
What Android Is
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
What Android Is
 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
    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
How was quot;ANDYquot; born?
 In July 2005 Google bought Android, Inc.
 December 2006, rumors surface that Google was
 developing a Google-branded handset
 November 2007, the Open Handset Alliance was unveiled
 with the goal of open standards for mobile devices.
 January - April 2008, Android Developer Challenge. Google
 offers 10 million dollars (50 teams winning $25,000 each).
 The second round 10 teams received $275,000 and 10
 teams received $100,000 each.
 Since October 2008, Android source has been available as
 Open Source under the Apache license.
 Uses git. Details on source at: http://source.android.com
 October 22, 2008 the HTC Dream (T-Mobile G1) was
 launched as the first Android powered phone.
DNA of quot;ANDYquot;
Anatomy of quot;ANDYquot;
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 quot;ANDYquot;
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) {
    }
  }
Activity Life Cycle




source: Hello, Android by Pragmatic Programmers
Anatomy of quot;ANDYquot;
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 quot;ANDYquot;
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 quot;ANDYquot;
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
Face of quot;ANDYquot;
Various types of Layouts - Similar to 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.
XML File Layout Example
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>
Face of quot;ANDYquot;
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);
   }
Face of quot;ANDYquot;

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));
Face of quot;ANDYquot;
Android Manifest.xml
  What is any good Java program with a manifest file? =)
  Defines the version and package information
  Defines the permissions required by the application

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

                                          Class name
  <activity android:name=quot;.Resultquot;
                                          of the Activity
       android:label=quot;@string/resultquot;
       android:layout_width=quot;fill_parentquot;>
  </activity>
Developing Apps for quot;ANDYquot;
 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

 Demo of IDE and Basic Apps
  Localtone Radio
  PandaRiffic
Pimping quot;ANDYquot; for Profit
Listing apps in the Android Market
    Must be digitally signed
    Just opened up paid applications last week

Your Manifext.xml tells the story:
<manifest xmlns:android=quot;http://schemas.android.
com/apk/res/androidquot;
   package=quot;com.example.package.namequot;
   android:versionCode=quot;2quot;
   android:versionName=quot;1.1quot;
   android:minSdkVersion = 1.0>

Version code - The version relative to other versions
Version name - The version that people will see
Distribution of Apps
  Download applications as .apk file (Android PacKage)
  Can run inall .apk files on the device directly or even
  from the emulator using the command

 ./adb install FILENAME.apk

  No restricition on distribution and free to charge
  whatever you wish.

 Download right to the phone from the browser
  Upload your application to your webserver.
  Set the content type to be application/android-package
Pimping quot;ANDYquot; For Profit
Steps to sign and publish your application

1. Compile the application in release mode
   1. Export from Eclipse as an APK file
   2. Android Tools -> Export Unsigned Application
      Package
2. Obtain or create a suitable private key (you can not
   use the debug key that comes with the SDK)
   1. Use keytool
   2. keytool -genkey -v -keystore my-release-key.
      keystore -alias alias_name -keyalg RSA -validity
      10000
Pimping quot;ANDYquot; for Profit
Continued steps to sign and publish your application

1. Sign the application with your private key
   1. Use jarsigner tool
   2. jarsigner -verbose -keystore my-release-key.keystore
      my_application.apk alias_name
   3. jarsigner -verify my_signed.apk
2. Secure your private key
   1. Select strong passwords for your keystore
   2. Do not specify password on the command line as they
      will be available in your shell history

Instructions and best practices
http://code.google.com/android/devel/sign-publish.html
Pimping quot;ANDYquot; For Profit
NOTE: You can distribute your .apk file and charge any
way you wish!

However, if you wish to use the Market
URL: http://www.android.com/market
1. Signup on the market
   1. http://market.android.com/publish/signup
   2. Pay $25 registration fee.
2. Uses Google Checkout for payment processing
3. 70% for you, 30% for the carrier (T-Mobile)
4. Google offers an unlocked G1 for $399
5. No other major restrictions that I know of
Pimping quot;ANDYquot; for Profit
Updates
1. The Market does not yet support user notification
   of updates to your application
2. Suggestions on how to overcome this in your
   application
    1. Have your application check for updates.
    2. market://details?id=<MarketAppIdString>
    3. Easy to use Intents to fire up the market
       application to download your update.
3. I have been getting updates for a number of
   applications I have downloaded.
Pimping quot;ANDYquot; for Profit
Pimping quot;ANDYquot; for Profit
Final Thoughts
iPhone's game changing success
   Central distribution through iTunes.
   Sexy design.
   quot;Openquot; (as they call it) Developer platform.
   Own the software AND the hardware.

Android
  Open Source and freely available
  Hardware independent. Phones set to be released in 2009
  year from Motorola, Samsung, Ericsson, Huawei, Lenovo
  Develop applications anywhere Java can run.
  Distribute applications for free. $25 if you choose to use
  Android Market.
Final Thoughts
It's not just mobile devices!
Recent Headlines:
    Asustek to Make Google Android Netbook, Says Report -PC
    World
    Android wants to be on any device, not just your phone -
    VentureBeat
    Android Beyond the Phone - moto.com (referring to Android
    running eInk devices)

Skins - Shows different devices
http://teavuihuang.com/android/

Wish Google would promote job postings like 37 Signals
ANDY's Future
 More phones set to be released later
 this year.
 Operating System supports multi-
 touch. Will they offically support it?
 Virtual keyboard with G2
 Official MS Exchange support?
 ASUS Netbooks
 Android is Linux's second chance
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
 Google Groups
     Android Developers
        http://is.gd/knWK
     Android Dev MN
        http://is.gd/knVO
 Performance/Developer Tips - http://is.gd/g5re
Thank you



            BYE

More Related Content

What's hot

Installing android sdk on net beans
Installing android sdk on net beansInstalling android sdk on net beans
Installing android sdk on net beansAravindharamanan S
 
Android deep dive
Android deep diveAndroid deep dive
Android deep diveAnuSahniNCI
 
Simple Android Project (SAP)... A Test Application
Simple Android Project (SAP)... A Test ApplicationSimple Android Project (SAP)... A Test Application
Simple Android Project (SAP)... A Test ApplicationAritra Mukherjee
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2Joemarie Amparo
 
Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...
Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...
Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...Droidcon Berlin
 
Appcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium EcosystemAppcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium EcosystemBoydlee Pollentine
 
Titanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersTitanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersAmbarish Hazarnis
 
Creating the first app with android studio
Creating the first app with android studioCreating the first app with android studio
Creating the first app with android studioParinita03
 
Being Epic: Best Practices for Android Development
Being Epic: Best Practices for Android DevelopmentBeing Epic: Best Practices for Android Development
Being Epic: Best Practices for Android DevelopmentReto Meier
 
Android development session
Android development sessionAndroid development session
Android development sessionEsraa Ibrahim
 
UI Testing for Your Xamarin.Forms Apps
UI Testing for Your Xamarin.Forms AppsUI Testing for Your Xamarin.Forms Apps
UI Testing for Your Xamarin.Forms AppsCodrina Merigo
 
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
 
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
 
Android studio
Android studioAndroid studio
Android studioAndri Yabu
 
Android development session 5 - Debug android studio
Android development   session 5 - Debug android studioAndroid development   session 5 - Debug android studio
Android development session 5 - Debug android studioFarabi Technology Middle East
 
01 04 - android set up and creating an android project
01  04 - android set up and creating an android project01  04 - android set up and creating an android project
01 04 - android set up and creating an android projectSiva Kumar reddy Vasipally
 

What's hot (20)

Installing android sdk on net beans
Installing android sdk on net beansInstalling android sdk on net beans
Installing android sdk on net beans
 
Android deep dive
Android deep diveAndroid deep dive
Android deep dive
 
Simple Android Project (SAP)... A Test Application
Simple Android Project (SAP)... A Test ApplicationSimple Android Project (SAP)... A Test Application
Simple Android Project (SAP)... A Test Application
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2
 
Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...
Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...
Droidcon2013 pro guard, optimizer and obfuscator in the android sdk_eric lafo...
 
Appcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium EcosystemAppcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium Ecosystem
 
Titanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersTitanium Appcelerator - Beginners
Titanium Appcelerator - Beginners
 
Creating the first app with android studio
Creating the first app with android studioCreating the first app with android studio
Creating the first app with android studio
 
Android programming basics
Android programming basicsAndroid programming basics
Android programming basics
 
Being Epic: Best Practices for Android Development
Being Epic: Best Practices for Android DevelopmentBeing Epic: Best Practices for Android Development
Being Epic: Best Practices for Android Development
 
Android development session
Android development sessionAndroid development session
Android development session
 
Desarrollo AIR Mobile
Desarrollo AIR MobileDesarrollo AIR Mobile
Desarrollo AIR Mobile
 
UI Testing for Your Xamarin.Forms Apps
UI Testing for Your Xamarin.Forms AppsUI Testing for Your Xamarin.Forms Apps
UI Testing for Your Xamarin.Forms Apps
 
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
 
Part 2 android application development 101
Part 2 android application development 101Part 2 android application development 101
Part 2 android application development 101
 
Geekcamp Android
Geekcamp AndroidGeekcamp Android
Geekcamp Android
 
Android studio
Android studioAndroid studio
Android studio
 
Android Development Tutorial V3
Android Development Tutorial   V3Android Development Tutorial   V3
Android Development Tutorial V3
 
Android development session 5 - Debug android studio
Android development   session 5 - Debug android studioAndroid development   session 5 - Debug android studio
Android development session 5 - Debug android studio
 
01 04 - android set up and creating an android project
01  04 - android set up and creating an android project01  04 - android set up and creating an android project
01 04 - android set up and creating an android project
 

Similar to Android Intro

Android Development project
Android Development projectAndroid Development project
Android Development projectMinhaj Kazi
 
Industrial Training in Android Application
Industrial Training in Android ApplicationIndustrial Training in Android Application
Industrial Training in Android ApplicationArcadian Learning
 
Android terminologies
Android terminologiesAndroid terminologies
Android terminologiesjerry vasoya
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorialAbid Khan
 
Getting Started with Android 1.5
Getting Started with Android 1.5Getting Started with Android 1.5
Getting Started with Android 1.5Gaurav Kohli
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android DevelopmentProf. Erwin Globio
 
Java Meetup - 12-03-15 - Android Development Workshop
Java Meetup - 12-03-15 - Android Development WorkshopJava Meetup - 12-03-15 - Android Development Workshop
Java Meetup - 12-03-15 - Android Development WorkshopKasun Dananjaya Delgolla
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development pptsaitej15
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathonmarvin337
 
Android Lab Mannual 18SUITSP5.docx
Android Lab Mannual 18SUITSP5.docxAndroid Lab Mannual 18SUITSP5.docx
Android Lab Mannual 18SUITSP5.docxkarthikaparthasarath
 
Mobile Application Development With Android
Mobile Application Development With AndroidMobile Application Development With Android
Mobile Application Development With Androidguest213e237
 

Similar to Android Intro (20)

Android Minnebar
Android MinnebarAndroid Minnebar
Android Minnebar
 
Android Development project
Android Development projectAndroid Development project
Android Development project
 
PPT Companion to Android
PPT Companion to AndroidPPT Companion to Android
PPT Companion to Android
 
Intro to Android Programming
Intro to Android ProgrammingIntro to Android Programming
Intro to Android Programming
 
Android
AndroidAndroid
Android
 
Android
AndroidAndroid
Android
 
Industrial Training in Android Application
Industrial Training in Android ApplicationIndustrial Training in Android Application
Industrial Training in Android Application
 
Android terminologies
Android terminologiesAndroid terminologies
Android terminologies
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Getting Started with Android 1.5
Getting Started with Android 1.5Getting Started with Android 1.5
Getting Started with Android 1.5
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Java Meetup - 12-03-15 - Android Development Workshop
Java Meetup - 12-03-15 - Android Development WorkshopJava Meetup - 12-03-15 - Android Development Workshop
Java Meetup - 12-03-15 - Android Development Workshop
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development ppt
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathon
 
Android Lab Mannual 18SUITSP5.docx
Android Lab Mannual 18SUITSP5.docxAndroid Lab Mannual 18SUITSP5.docx
Android Lab Mannual 18SUITSP5.docx
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Synapseindia android apps application
Synapseindia android apps applicationSynapseindia android apps application
Synapseindia android apps application
 
Introduction to Android Environment
Introduction to Android EnvironmentIntroduction to Android Environment
Introduction to Android Environment
 
Android Stsucture
Android StsuctureAndroid Stsucture
Android Stsucture
 
Mobile Application Development With Android
Mobile Application Development With AndroidMobile Application Development With Android
Mobile Application Development With Android
 

More from 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
 

More from 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
 

Recently uploaded

Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

Android Intro

  • 1.
  • 2. 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 Would argue that 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.
  • 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 on/off for the past 2 years Enjoy working in new technologies VoIP Asterisk Adhearsion Mobile Android iPhone Looking to start a mobile developers monthly meetings
  • 4. Summary Meet our friend quot;ANDYquot; History Anatomy of quot;ANDYquot; Setting up the environment Sample Applications Android Market Discuss
  • 6. What Android Is 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. What Android Is 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 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
  • 9. How was quot;ANDYquot; born? In July 2005 Google bought Android, Inc. December 2006, rumors surface that Google was developing a Google-branded handset November 2007, the Open Handset Alliance was unveiled with the goal of open standards for mobile devices. January - April 2008, Android Developer Challenge. Google offers 10 million dollars (50 teams winning $25,000 each). The second round 10 teams received $275,000 and 10 teams received $100,000 each. Since October 2008, Android source has been available as Open Source under the Apache license. Uses git. Details on source at: http://source.android.com October 22, 2008 the HTC Dream (T-Mobile G1) was launched as the first Android powered phone.
  • 11. Anatomy of quot;ANDYquot; 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.
  • 12. Anatomy of quot;ANDYquot; 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) { } }
  • 13. Activity Life Cycle source: Hello, Android by Pragmatic Programmers
  • 14. Anatomy of quot;ANDYquot; 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;));
  • 15. Anatomy of quot;ANDYquot; 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() { } }
  • 16. Anatomy of quot;ANDYquot; 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
  • 17. Face of quot;ANDYquot; Various types of Layouts - Similar to 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.
  • 18. XML File Layout Example 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>
  • 19. Face of quot;ANDYquot; 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); }
  • 20. Face of quot;ANDYquot; 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));
  • 21. Face of quot;ANDYquot; Android Manifest.xml What is any good Java program with a manifest file? =) Defines the version and package information Defines the permissions required by the application <uses-permission android:name=quot;android. permission.INTERNETquot; /> Class name <activity android:name=quot;.Resultquot; of the Activity android:label=quot;@string/resultquot; android:layout_width=quot;fill_parentquot;> </activity>
  • 22. Developing Apps for quot;ANDYquot; 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 Demo of IDE and Basic Apps Localtone Radio PandaRiffic
  • 23. Pimping quot;ANDYquot; for Profit Listing apps in the Android Market Must be digitally signed Just opened up paid applications last week Your Manifext.xml tells the story: <manifest xmlns:android=quot;http://schemas.android. com/apk/res/androidquot; package=quot;com.example.package.namequot; android:versionCode=quot;2quot; android:versionName=quot;1.1quot; android:minSdkVersion = 1.0> Version code - The version relative to other versions Version name - The version that people will see
  • 24. Distribution of Apps Download applications as .apk file (Android PacKage) Can run inall .apk files on the device directly or even from the emulator using the command ./adb install FILENAME.apk No restricition on distribution and free to charge whatever you wish. Download right to the phone from the browser Upload your application to your webserver. Set the content type to be application/android-package
  • 25. Pimping quot;ANDYquot; For Profit Steps to sign and publish your application 1. Compile the application in release mode 1. Export from Eclipse as an APK file 2. Android Tools -> Export Unsigned Application Package 2. Obtain or create a suitable private key (you can not use the debug key that comes with the SDK) 1. Use keytool 2. keytool -genkey -v -keystore my-release-key. keystore -alias alias_name -keyalg RSA -validity 10000
  • 26. Pimping quot;ANDYquot; for Profit Continued steps to sign and publish your application 1. Sign the application with your private key 1. Use jarsigner tool 2. jarsigner -verbose -keystore my-release-key.keystore my_application.apk alias_name 3. jarsigner -verify my_signed.apk 2. Secure your private key 1. Select strong passwords for your keystore 2. Do not specify password on the command line as they will be available in your shell history Instructions and best practices http://code.google.com/android/devel/sign-publish.html
  • 27. Pimping quot;ANDYquot; For Profit NOTE: You can distribute your .apk file and charge any way you wish! However, if you wish to use the Market URL: http://www.android.com/market 1. Signup on the market 1. http://market.android.com/publish/signup 2. Pay $25 registration fee. 2. Uses Google Checkout for payment processing 3. 70% for you, 30% for the carrier (T-Mobile) 4. Google offers an unlocked G1 for $399 5. No other major restrictions that I know of
  • 28. Pimping quot;ANDYquot; for Profit Updates 1. The Market does not yet support user notification of updates to your application 2. Suggestions on how to overcome this in your application 1. Have your application check for updates. 2. market://details?id=<MarketAppIdString> 3. Easy to use Intents to fire up the market application to download your update. 3. I have been getting updates for a number of applications I have downloaded.
  • 31. Final Thoughts iPhone's game changing success Central distribution through iTunes. Sexy design. quot;Openquot; (as they call it) Developer platform. Own the software AND the hardware. Android Open Source and freely available Hardware independent. Phones set to be released in 2009 year from Motorola, Samsung, Ericsson, Huawei, Lenovo Develop applications anywhere Java can run. Distribute applications for free. $25 if you choose to use Android Market.
  • 32. Final Thoughts It's not just mobile devices! Recent Headlines: Asustek to Make Google Android Netbook, Says Report -PC World Android wants to be on any device, not just your phone - VentureBeat Android Beyond the Phone - moto.com (referring to Android running eInk devices) Skins - Shows different devices http://teavuihuang.com/android/ Wish Google would promote job postings like 37 Signals
  • 33. ANDY's Future More phones set to be released later this year. Operating System supports multi- touch. Will they offically support it? Virtual keyboard with G2 Official MS Exchange support? ASUS Netbooks Android is Linux's second chance
  • 34. 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 Google Groups Android Developers http://is.gd/knWK Android Dev MN http://is.gd/knVO Performance/Developer Tips - http://is.gd/g5re
  • 35. Thank you BYE