SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
Unlocking Android
                              Frank Ableson
               MSI Services, Inc. (http://msiservices.com)
     Linux Magazine Mobile Editor (http://linux-mag.com/blogs/fableson)
          Unlocking Android author (http://manning.com/ableson)

This presentation available on blog @ http://www.msiservices.com/index.php/blog/




                                 Unlocking Android
Who am I & why am I here?
•I am a curious entrepreneur who “codes”.
•I’m here to learn and network – just like you
•If you want deep Android answers, you can ask,
though I will likely point you to the Google
developer mailing list . I presently have about
12,000 unread emails from that list alone!

                     Unlocking Android
What are we going to review today?

•Review some Android resources
•Look at an example application for Android
•Look at Android Scripting Environment
•Linux Magazine – how you can participate



                  Unlocking Android
Some Android Resources
•http://developer.android.com
     •SDK
     •Eclipse Plugin : https://dl-ssl.google.com/android/eclipse/
     •Developer Guides
     •Class References
     •Blog
     •Mailing Lists
          •Beginners
          •Developers
          •Discussion
          •NDK
          •Security
          •Market
•Unlocking Android, Published by Manning. http://manning.com/ableson
•http://code.google.com/p/unlocking-android/ source from the book (SVN)
•http://subclipse.tigris.org/update_1.6.x (SVN Plugin)



                               Unlocking Android
Unlocking Android Contents




Plus installing dev tools & signing applications
                              Unlocking Android
Any questions before we start?




            Unlocking Android
Field Service Application
•Enabling a mobile workforce
•Centrally dispatched
•Workers carrying Android devices (of course)
•“Hands and Feet” – not specialists
     •Need to augment their knowledge
     •Give them some navigational guidance
     •Capture signatures to confirm work was completed
•Fully un-tethered
     •Download jobs from server
     •Upload signatures
     •Confirm signatures



                             Unlocking Android
Data Model
Home office / dispatcher                              Mobile worker

   List of jobs sent to a
                                      Jobs
  specific mobile worker

          Each job contains
 Job id
 Customer name
 Address
 City, State, Zip
 Product needing repair
 URL to product information
 Comments
 Job status (updated by mobile)
 Signature (updated by mobile)




                                  Unlocking Android
Application Architecture
                             WWW Server
                            (Apache or IIS)
  MySQL
                               with PHP

                            getjoblist.php

                            closejob.php


                          Dispatch functions




Distributed dispatchers




                                   Unlocking Android
Application in action – Data
 http://android12.msi-wireless.com




             Unlocking Android
Application Flow
              Application launch                               Splash screen                        #2
     #1
                                                               (Splash Activity)




                                                               Main screen
                                                                                                   #3
                                                            (FieldService Activity)




              #4                                       #6                                                                #5

                      Refresh jobs                             Manage jobs                                          Settings
                   (RefreshJobs Activity)                   (ManageJobs Activity)                             (ShowSettings Activity)



                                                       #7


                                                             Show job details
                                                             (ShowJob Activity)



#8                                          #9
                                                                                             #10                              #11

     Map job location
                                        Look up product info                                             No                    Capture signature
                                                                                   Job closed?
     (Launch Google Maps)                   (Launch browser)                                                                        (CloseJob Activity)


                                                                                             Yes

                                                                          #12

                                                                            Display signature
                                                                                (Launch browser)




                                                    Unlocking Android
Application in action - Splash




            Unlocking Android
Application in action – Main Screen




               Unlocking Android
Application in action - Settings




            Unlocking Android
Application in action – Refresh




            Unlocking Android
Application in action – Job List




            Unlocking Android
Application in action - Details




            Unlocking Android
Application in action – Mapping




            Unlocking Android
Application in action – Product Info




              Unlocking Android
Application in action - Close




           Unlocking Android
Application in action – After Close




              Unlocking Android
Source Code Roadmap




       Unlocking Android
Twitter with the Android Scripting Environment




                  Unlocking Android
Twitter Python Code
import android   # core Android routines                                                  # connect to server
import httplib  # for talking to web servers                                              h = httplib.HTTP(twitterhost)
import urllib  # to format our status update nicely
import base64    # to encode our username and password for Basic authentication           # build url we want to request
                                                                                          fullurl = uri + statusupdate
print 'Cool, we're running!'   # sorry, had to do this...
                                                                                          #uncomment the next line to see the url printed
# get an instance of Android                                                              #print fullurl
droid = android.Android()
                                                                                          # POST our data. Twitter requires status updates to be POSTed
# where are we posting data to?                                                           h.putrequest('POST',uri + statusupdate)
twitterhost = 'twitter.com'
uri = '/statuses/update.xml?'                                                             # setup the authentication header
                                                                                          h.putheader('Authorization','Basic ' + base64.encodestring(credentials))
# get our status update from user
statusmsg = droid.getInput('Twitter Update','Whatcha Doin?')                              # setup the user agent
                                                                                          h.putheader('user-agent','Android-Scripting-Engine-Python')
#extract the "textual" portion of the response
statusdata = "%(result)s" % statusmsg                                                     # we're done with the headers....
                                                                                          h.endheaders()
# uncomment the next line to display the message to the terminal screen
#print statusdata                                                                         # get the response from the request
                                                                                          returncode,returnmsg,headers = h.getreply()
# uncomment the next line to display a notification to the user
#droid.makeToast(statusdata)                                                              # should compare the returncode to 200 for a good response, etc.

# clean up the data so it can be sent as the 'querystring'                                #display whatever the results are....
statusupdate = urllib.urlencode({'status':statusdata})                                    f = h.getfile()
                                                                                          print f.read()
# setup your username and password here...
username = 'yourusernamehere'
password = 'yourpasswordhere'

credentials = username + ":" + password

# uncomment the next line to see what credentials you are using....
#print credentials

encodedcredentials = base64.encodestring(credentials)




                                                                                  Unlocking Android
Native “C” application




        Unlocking Android
Linux Magazine Mobile Column
Author Archive
Open Source Solution for Multiple Mobile Platforms There is a never ending debate about which platform is best: Android, iPhone,
Palm, BlackBerry, Windows Mobile, or Symbian. But what if the correct answer is … JavaScript? Is this a joke? Not according to an
open source project named PhoneGap.
July 20, 2009
Best Practices for Troubleshooting Mobile Software During software projects, you often have to eat some bugs. Just try not to chew
on them.
July 13, 2009
Open Source iPhone Dev: XML to the Rescue? Can a project originating from San Francisco State University bridge the digital divide
and bring true open source development to the iPhone platform? It looks promising, but the climb is steep and the gap is wide.
July 6, 2009
An Open Source Recipe for the iPhone The platform that has defined “cool” for years has not had a reputation for being an open
platform, but that hasn’t discouraged a number of open source projects for iPhone/iPod Touch.
June 30, 2009
Is Palm a Player or Just a Pre-Tender? Once the leader and innovator in all things mobile, in recent years Palm has barely kept up
with the pack, let alone acted as a leader. With the introduction of the Palm Pre it appears that open source technology is helping
bring Palm back from the edge of irrelevancy.
June 23, 2009
Writing an Android Twitter Client with Python Get up and running with the Android Scripting Environment. Whip up a Twitter update
app in a matter of minutes and tell everyone what sandwich you’re eating from within Android!
June 16, 2009
Is Android The Perfect Mobile Software Platform? Is Android an iPhone killer or is it just another failed attempt at taking Linux
mainstream on a mobile phone?
June 8, 2009




                                                      Unlocking Android
Contact info
        Frank Ableson
  fableson@msiservices.com
http://www.linux-mag.com/blogs/fableson




               Unlocking Android

Más contenido relacionado

Ähnlich wie Unlocking Android

Connecting with the enterprise - The how and why of connecting to Enterprise ...
Connecting with the enterprise - The how and why of connecting to Enterprise ...Connecting with the enterprise - The how and why of connecting to Enterprise ...
Connecting with the enterprise - The how and why of connecting to Enterprise ...Kevin Poorman
 
The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014
The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014
The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014FalafelSoftware
 
Refactoring Wunderlist. UA Mobile 2016.
Refactoring Wunderlist. UA Mobile 2016.Refactoring Wunderlist. UA Mobile 2016.
Refactoring Wunderlist. UA Mobile 2016.UA Mobile
 
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016Loïc Knuchel
 
Marakana android-java developers
Marakana android-java developersMarakana android-java developers
Marakana android-java developersMarko Gargenta
 
Top Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentTop Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentSimon Guest
 
A gently introduction to AngularJS
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJSGregor Woiwode
 
Android app development basics
Android app development basicsAndroid app development basics
Android app development basicsAnton Narusberg
 
SignalR: Above & Beyond Chat
SignalR: Above & Beyond ChatSignalR: Above & Beyond Chat
SignalR: Above & Beyond ChatDavid Pine
 
Optimizing Apps for Better Performance
Optimizing Apps for Better PerformanceOptimizing Apps for Better Performance
Optimizing Apps for Better PerformanceElif Boncuk
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make itJonathan Snook
 
From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)Bramus Van Damme
 
Intro to Continuous Integration at SoundCloud
Intro to Continuous Integration at SoundCloudIntro to Continuous Integration at SoundCloud
Intro to Continuous Integration at SoundCloudgarriguv
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDee Sadler
 
Lecture #1 Creating your first android project
Lecture #1  Creating your first android projectLecture #1  Creating your first android project
Lecture #1 Creating your first android projectVitali Pekelis
 
Building native Android applications with Mirah and Pindah
Building native Android applications with Mirah and PindahBuilding native Android applications with Mirah and Pindah
Building native Android applications with Mirah and PindahNick Plante
 

Ähnlich wie Unlocking Android (20)

Ruby conf2012
Ruby conf2012Ruby conf2012
Ruby conf2012
 
Connecting with the enterprise - The how and why of connecting to Enterprise ...
Connecting with the enterprise - The how and why of connecting to Enterprise ...Connecting with the enterprise - The how and why of connecting to Enterprise ...
Connecting with the enterprise - The how and why of connecting to Enterprise ...
 
The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014
The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014
The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014
 
Refactoring Wunderlist. UA Mobile 2016.
Refactoring Wunderlist. UA Mobile 2016.Refactoring Wunderlist. UA Mobile 2016.
Refactoring Wunderlist. UA Mobile 2016.
 
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
 
Marakana android-java developers
Marakana android-java developersMarakana android-java developers
Marakana android-java developers
 
Top Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentTop Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web Development
 
A gently introduction to AngularJS
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJS
 
Android app development basics
Android app development basicsAndroid app development basics
Android app development basics
 
SignalR: Above & Beyond Chat
SignalR: Above & Beyond ChatSignalR: Above & Beyond Chat
SignalR: Above & Beyond Chat
 
Mobile optimization
Mobile optimizationMobile optimization
Mobile optimization
 
Intro to appcelerator
Intro to appceleratorIntro to appcelerator
Intro to appcelerator
 
Optimizing Apps for Better Performance
Optimizing Apps for Better PerformanceOptimizing Apps for Better Performance
Optimizing Apps for Better Performance
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make it
 
From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)
 
Intro to PhoneGap
Intro to PhoneGapIntro to PhoneGap
Intro to PhoneGap
 
Intro to Continuous Integration at SoundCloud
Intro to Continuous Integration at SoundCloudIntro to Continuous Integration at SoundCloud
Intro to Continuous Integration at SoundCloud
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile design
 
Lecture #1 Creating your first android project
Lecture #1  Creating your first android projectLecture #1  Creating your first android project
Lecture #1 Creating your first android project
 
Building native Android applications with Mirah and Pindah
Building native Android applications with Mirah and PindahBuilding native Android applications with Mirah and Pindah
Building native Android applications with Mirah and Pindah
 

Mehr von 360|Conferences

Metaio Mobile Augmented Reality
Metaio Mobile Augmented RealityMetaio Mobile Augmented Reality
Metaio Mobile Augmented Reality360|Conferences
 
Mobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the ManagerMobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the Manager360|Conferences
 
Making Real Money with Mobile Apps
Making Real Money with Mobile AppsMaking Real Money with Mobile Apps
Making Real Money with Mobile Apps360|Conferences
 
Inside Mobile Widgets Publish
Inside Mobile Widgets PublishInside Mobile Widgets Publish
Inside Mobile Widgets Publish360|Conferences
 
Ignite Denver 4 Master Deck
Ignite Denver 4 Master DeckIgnite Denver 4 Master Deck
Ignite Denver 4 Master Deck360|Conferences
 
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...360|Conferences
 
Tyler Wright - Undo History with Flight
Tyler Wright - Undo History with FlightTyler Wright - Undo History with Flight
Tyler Wright - Undo History with Flight360|Conferences
 
Chad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from VenusChad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from Venus360|Conferences
 
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!360|Conferences
 
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex GumboErik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo360|Conferences
 
Ryan Phelan - Bending and Flexing
Ryan Phelan - Bending and FlexingRyan Phelan - Bending and Flexing
Ryan Phelan - Bending and Flexing360|Conferences
 
Giorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity FrameworkGiorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity Framework360|Conferences
 
Douglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash UpDouglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash Up360|Conferences
 
Wes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your ApplicationWes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your Application360|Conferences
 
Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1360|Conferences
 
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy ApplicationsAdrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications360|Conferences
 
Samuel Asher Rivello - PureMVC Hands On Part 2
Samuel Asher Rivello - PureMVC Hands On Part 2Samuel Asher Rivello - PureMVC Hands On Part 2
Samuel Asher Rivello - PureMVC Hands On Part 2360|Conferences
 

Mehr von 360|Conferences (20)

InsideMobile Keynote
InsideMobile KeynoteInsideMobile Keynote
InsideMobile Keynote
 
Metaio Mobile Augmented Reality
Metaio Mobile Augmented RealityMetaio Mobile Augmented Reality
Metaio Mobile Augmented Reality
 
Web Os Hands On
Web Os Hands OnWeb Os Hands On
Web Os Hands On
 
Mobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the ManagerMobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the Manager
 
Making Real Money with Mobile Apps
Making Real Money with Mobile AppsMaking Real Money with Mobile Apps
Making Real Money with Mobile Apps
 
Inside Mobile Widgets Publish
Inside Mobile Widgets PublishInside Mobile Widgets Publish
Inside Mobile Widgets Publish
 
You Know WebOS
You Know WebOSYou Know WebOS
You Know WebOS
 
Ignite Denver 4 Master Deck
Ignite Denver 4 Master DeckIgnite Denver 4 Master Deck
Ignite Denver 4 Master Deck
 
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
 
Tyler Wright - Undo History with Flight
Tyler Wright - Undo History with FlightTyler Wright - Undo History with Flight
Tyler Wright - Undo History with Flight
 
Chad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from VenusChad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from Venus
 
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
 
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex GumboErik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
 
Ryan Phelan - Bending and Flexing
Ryan Phelan - Bending and FlexingRyan Phelan - Bending and Flexing
Ryan Phelan - Bending and Flexing
 
Giorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity FrameworkGiorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity Framework
 
Douglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash UpDouglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash Up
 
Wes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your ApplicationWes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your Application
 
Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1
 
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy ApplicationsAdrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
 
Samuel Asher Rivello - PureMVC Hands On Part 2
Samuel Asher Rivello - PureMVC Hands On Part 2Samuel Asher Rivello - PureMVC Hands On Part 2
Samuel Asher Rivello - PureMVC Hands On Part 2
 

Último

LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0DanBrown980551
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...DianaGray10
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameKapil Thakar
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInThousandEyes
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and businessFrancesco Corti
 
Technical SEO for Improved Accessibility WTS FEST
Technical SEO for Improved Accessibility  WTS FESTTechnical SEO for Improved Accessibility  WTS FEST
Technical SEO for Improved Accessibility WTS FESTBillieHyde
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kitJamie (Taka) Wang
 
How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Libraryshyamraj55
 
Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.IPLOOK Networks
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdfThe Good Food Institute
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024Brian Pichman
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsDianaGray10
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNeo4j
 
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)codyslingerland1
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingMAGNIntelligence
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTxtailishbaloch
 
Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updateadam112203
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingFrancesco Corti
 

Último (20)

LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First Frame
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and business
 
Technical SEO for Improved Accessibility WTS FEST
Technical SEO for Improved Accessibility  WTS FESTTechnical SEO for Improved Accessibility  WTS FEST
Technical SEO for Improved Accessibility WTS FEST
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kit
 
How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Library
 
Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projects
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4j
 
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced Computing
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
 
Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 update
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is going
 

Unlocking Android

  • 1. Unlocking Android Frank Ableson MSI Services, Inc. (http://msiservices.com) Linux Magazine Mobile Editor (http://linux-mag.com/blogs/fableson) Unlocking Android author (http://manning.com/ableson) This presentation available on blog @ http://www.msiservices.com/index.php/blog/ Unlocking Android
  • 2. Who am I & why am I here? •I am a curious entrepreneur who “codes”. •I’m here to learn and network – just like you •If you want deep Android answers, you can ask, though I will likely point you to the Google developer mailing list . I presently have about 12,000 unread emails from that list alone! Unlocking Android
  • 3. What are we going to review today? •Review some Android resources •Look at an example application for Android •Look at Android Scripting Environment •Linux Magazine – how you can participate Unlocking Android
  • 4. Some Android Resources •http://developer.android.com •SDK •Eclipse Plugin : https://dl-ssl.google.com/android/eclipse/ •Developer Guides •Class References •Blog •Mailing Lists •Beginners •Developers •Discussion •NDK •Security •Market •Unlocking Android, Published by Manning. http://manning.com/ableson •http://code.google.com/p/unlocking-android/ source from the book (SVN) •http://subclipse.tigris.org/update_1.6.x (SVN Plugin) Unlocking Android
  • 5. Unlocking Android Contents Plus installing dev tools & signing applications Unlocking Android
  • 6. Any questions before we start? Unlocking Android
  • 7. Field Service Application •Enabling a mobile workforce •Centrally dispatched •Workers carrying Android devices (of course) •“Hands and Feet” – not specialists •Need to augment their knowledge •Give them some navigational guidance •Capture signatures to confirm work was completed •Fully un-tethered •Download jobs from server •Upload signatures •Confirm signatures Unlocking Android
  • 8. Data Model Home office / dispatcher Mobile worker List of jobs sent to a Jobs specific mobile worker Each job contains Job id Customer name Address City, State, Zip Product needing repair URL to product information Comments Job status (updated by mobile) Signature (updated by mobile) Unlocking Android
  • 9. Application Architecture WWW Server (Apache or IIS) MySQL with PHP getjoblist.php closejob.php Dispatch functions Distributed dispatchers Unlocking Android
  • 10. Application in action – Data http://android12.msi-wireless.com Unlocking Android
  • 11. Application Flow Application launch Splash screen #2 #1 (Splash Activity) Main screen #3 (FieldService Activity) #4 #6 #5 Refresh jobs Manage jobs Settings (RefreshJobs Activity) (ManageJobs Activity) (ShowSettings Activity) #7 Show job details (ShowJob Activity) #8 #9 #10 #11 Map job location Look up product info No Capture signature Job closed? (Launch Google Maps) (Launch browser) (CloseJob Activity) Yes #12 Display signature (Launch browser) Unlocking Android
  • 12. Application in action - Splash Unlocking Android
  • 13. Application in action – Main Screen Unlocking Android
  • 14. Application in action - Settings Unlocking Android
  • 15. Application in action – Refresh Unlocking Android
  • 16. Application in action – Job List Unlocking Android
  • 17. Application in action - Details Unlocking Android
  • 18. Application in action – Mapping Unlocking Android
  • 19. Application in action – Product Info Unlocking Android
  • 20. Application in action - Close Unlocking Android
  • 21. Application in action – After Close Unlocking Android
  • 22. Source Code Roadmap Unlocking Android
  • 23. Twitter with the Android Scripting Environment Unlocking Android
  • 24. Twitter Python Code import android # core Android routines # connect to server import httplib # for talking to web servers h = httplib.HTTP(twitterhost) import urllib # to format our status update nicely import base64 # to encode our username and password for Basic authentication # build url we want to request fullurl = uri + statusupdate print 'Cool, we're running!' # sorry, had to do this... #uncomment the next line to see the url printed # get an instance of Android #print fullurl droid = android.Android() # POST our data. Twitter requires status updates to be POSTed # where are we posting data to? h.putrequest('POST',uri + statusupdate) twitterhost = 'twitter.com' uri = '/statuses/update.xml?' # setup the authentication header h.putheader('Authorization','Basic ' + base64.encodestring(credentials)) # get our status update from user statusmsg = droid.getInput('Twitter Update','Whatcha Doin?') # setup the user agent h.putheader('user-agent','Android-Scripting-Engine-Python') #extract the "textual" portion of the response statusdata = "%(result)s" % statusmsg # we're done with the headers.... h.endheaders() # uncomment the next line to display the message to the terminal screen #print statusdata # get the response from the request returncode,returnmsg,headers = h.getreply() # uncomment the next line to display a notification to the user #droid.makeToast(statusdata) # should compare the returncode to 200 for a good response, etc. # clean up the data so it can be sent as the 'querystring' #display whatever the results are.... statusupdate = urllib.urlencode({'status':statusdata}) f = h.getfile() print f.read() # setup your username and password here... username = 'yourusernamehere' password = 'yourpasswordhere' credentials = username + ":" + password # uncomment the next line to see what credentials you are using.... #print credentials encodedcredentials = base64.encodestring(credentials) Unlocking Android
  • 25. Native “C” application Unlocking Android
  • 26. Linux Magazine Mobile Column Author Archive Open Source Solution for Multiple Mobile Platforms There is a never ending debate about which platform is best: Android, iPhone, Palm, BlackBerry, Windows Mobile, or Symbian. But what if the correct answer is … JavaScript? Is this a joke? Not according to an open source project named PhoneGap. July 20, 2009 Best Practices for Troubleshooting Mobile Software During software projects, you often have to eat some bugs. Just try not to chew on them. July 13, 2009 Open Source iPhone Dev: XML to the Rescue? Can a project originating from San Francisco State University bridge the digital divide and bring true open source development to the iPhone platform? It looks promising, but the climb is steep and the gap is wide. July 6, 2009 An Open Source Recipe for the iPhone The platform that has defined “cool” for years has not had a reputation for being an open platform, but that hasn’t discouraged a number of open source projects for iPhone/iPod Touch. June 30, 2009 Is Palm a Player or Just a Pre-Tender? Once the leader and innovator in all things mobile, in recent years Palm has barely kept up with the pack, let alone acted as a leader. With the introduction of the Palm Pre it appears that open source technology is helping bring Palm back from the edge of irrelevancy. June 23, 2009 Writing an Android Twitter Client with Python Get up and running with the Android Scripting Environment. Whip up a Twitter update app in a matter of minutes and tell everyone what sandwich you’re eating from within Android! June 16, 2009 Is Android The Perfect Mobile Software Platform? Is Android an iPhone killer or is it just another failed attempt at taking Linux mainstream on a mobile phone? June 8, 2009 Unlocking Android
  • 27. Contact info Frank Ableson fableson@msiservices.com http://www.linux-mag.com/blogs/fableson Unlocking Android