Submit Search
Upload
Android Development Workshop
•
33 likes
•
14,901 views
Peter Robinett
Follow
Presentation by Diego Torres Milano at Mobile Dev Camp (www.mobiledevcamp.nl)
Read less
Read more
Technology
Report
Share
Report
Share
1 of 54
Download now
Download to read offline
Recommended
Android auto
Android auto
dhiraj007
Android Programming Basics
Android Programming Basics
Eueung Mulyana
Android app ppt
Android app ppt
ADI ADARSH
An Introduction to Google Chrome OS..........
An Introduction to Google Chrome OS..........
VAST TRICHUR
Android Project Presentation
Android Project Presentation
Laxmi Kant Yadav
Android Application Development Using Java
Android Application Development Using Java
amaankhan
Introduction to android
Introduction to android
zeelpatel0504
Copy of FOLDING PHONES C.pptx.pdf
Copy of FOLDING PHONES C.pptx.pdf
jagannathps3
Recommended
Android auto
Android auto
dhiraj007
Android Programming Basics
Android Programming Basics
Eueung Mulyana
Android app ppt
Android app ppt
ADI ADARSH
An Introduction to Google Chrome OS..........
An Introduction to Google Chrome OS..........
VAST TRICHUR
Android Project Presentation
Android Project Presentation
Laxmi Kant Yadav
Android Application Development Using Java
Android Application Development Using Java
amaankhan
Introduction to android
Introduction to android
zeelpatel0504
Copy of FOLDING PHONES C.pptx.pdf
Copy of FOLDING PHONES C.pptx.pdf
jagannathps3
Google chrome operating system.ppt
Google chrome operating system.ppt
bhubohara
Presentation of Turbo C++ || Railway Reservation System project || B.Sc. student
Presentation of Turbo C++ || Railway Reservation System project || B.Sc. student
Jiangxi University of Science and Technology (江西理工大学)
SOFTWARE REQUIREMENT SPECIFICATION FOR PROJECT
SOFTWARE REQUIREMENT SPECIFICATION FOR PROJECT
Ajeet Singh
Software Requirements Specification Final
Software Requirements Specification Final
jangjong
Android Booting Sequence
Android Booting Sequence
Jayanta Ghoshal
Android Synopsis
Android Synopsis
Niraj Rahi
Final year project presentation in android application
Final year project presentation in android application
Chirag Thaker
Android os: presentaion by Prerak
Android os: presentaion by Prerak
Prerak Rathore
CDMS-PPT-fzq94g.pptx
CDMS-PPT-fzq94g.pptx
AsifKoujaganur
Android Mp3 Player
Android Mp3 Player
Chirag Aggarwal
Online old books sales by hemraj gahlot
Online old books sales by hemraj gahlot
Hemraj Gahlot
SRS document
SRS document
COMSATS INFORMATION TECHNOLOGY
Creating the first app with android studio
Creating the first app with android studio
Parinita03
Android technical quiz app
Android technical quiz app
Jagdeep Singh
Android Camera
Android Camera
Michal Kostic
SYSTEM ANALYSIS AND DESIGN
SYSTEM ANALYSIS AND DESIGN
Deo Shao
Android Security
Android Security
Suminda Gunawardhana
Android ppt
Android ppt
Sunil Kumar
Android lollipop
Android lollipop
Nandakishor Sonkamble
Building visual basic application
Building visual basic application
Sara Corpuz
Android Development Workshop V2
Android Development Workshop V2
Diego Torres Milano
webthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzr
Phil www.rzr.online.fr
More Related Content
What's hot
Google chrome operating system.ppt
Google chrome operating system.ppt
bhubohara
Presentation of Turbo C++ || Railway Reservation System project || B.Sc. student
Presentation of Turbo C++ || Railway Reservation System project || B.Sc. student
Jiangxi University of Science and Technology (江西理工大学)
SOFTWARE REQUIREMENT SPECIFICATION FOR PROJECT
SOFTWARE REQUIREMENT SPECIFICATION FOR PROJECT
Ajeet Singh
Software Requirements Specification Final
Software Requirements Specification Final
jangjong
Android Booting Sequence
Android Booting Sequence
Jayanta Ghoshal
Android Synopsis
Android Synopsis
Niraj Rahi
Final year project presentation in android application
Final year project presentation in android application
Chirag Thaker
Android os: presentaion by Prerak
Android os: presentaion by Prerak
Prerak Rathore
CDMS-PPT-fzq94g.pptx
CDMS-PPT-fzq94g.pptx
AsifKoujaganur
Android Mp3 Player
Android Mp3 Player
Chirag Aggarwal
Online old books sales by hemraj gahlot
Online old books sales by hemraj gahlot
Hemraj Gahlot
SRS document
SRS document
COMSATS INFORMATION TECHNOLOGY
Creating the first app with android studio
Creating the first app with android studio
Parinita03
Android technical quiz app
Android technical quiz app
Jagdeep Singh
Android Camera
Android Camera
Michal Kostic
SYSTEM ANALYSIS AND DESIGN
SYSTEM ANALYSIS AND DESIGN
Deo Shao
Android Security
Android Security
Suminda Gunawardhana
Android ppt
Android ppt
Sunil Kumar
Android lollipop
Android lollipop
Nandakishor Sonkamble
Building visual basic application
Building visual basic application
Sara Corpuz
What's hot
(20)
Google chrome operating system.ppt
Google chrome operating system.ppt
Presentation of Turbo C++ || Railway Reservation System project || B.Sc. student
Presentation of Turbo C++ || Railway Reservation System project || B.Sc. student
SOFTWARE REQUIREMENT SPECIFICATION FOR PROJECT
SOFTWARE REQUIREMENT SPECIFICATION FOR PROJECT
Software Requirements Specification Final
Software Requirements Specification Final
Android Booting Sequence
Android Booting Sequence
Android Synopsis
Android Synopsis
Final year project presentation in android application
Final year project presentation in android application
Android os: presentaion by Prerak
Android os: presentaion by Prerak
CDMS-PPT-fzq94g.pptx
CDMS-PPT-fzq94g.pptx
Android Mp3 Player
Android Mp3 Player
Online old books sales by hemraj gahlot
Online old books sales by hemraj gahlot
SRS document
SRS document
Creating the first app with android studio
Creating the first app with android studio
Android technical quiz app
Android technical quiz app
Android Camera
Android Camera
SYSTEM ANALYSIS AND DESIGN
SYSTEM ANALYSIS AND DESIGN
Android Security
Android Security
Android ppt
Android ppt
Android lollipop
Android lollipop
Building visual basic application
Building visual basic application
Similar to Android Development Workshop
Android Development Workshop V2
Android Development Workshop V2
Diego Torres Milano
webthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzr
Phil www.rzr.online.fr
Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009
sullis
Android Development Tutorial V3
Android Development Tutorial V3
Diego Torres Milano
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
Vando Batista
Introduction to Android - Mobile Portland
Introduction to Android - Mobile Portland
sullis
Delivering Mobile Apps to the Field with Oracle JET
Delivering Mobile Apps to the Field with Oracle JET
Simon Haslam
X Means Y
X Means Y
CommonsWare
An Introduction To Android
An Introduction To Android
natdefreitas
webthing-iotjs-20181027rzr
webthing-iotjs-20181027rzr
Phil www.rzr.online.fr
Android ppt
Android ppt
Gateway Software Solutions
Dart on Arm - Flutter Bangalore June 2021
Dart on Arm - Flutter Bangalore June 2021
Chris Swan
The rise of microservices
The rise of microservices
Cloud Technology Experts
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Cisco DevNet
Øredev 2014
Øredev 2014
olataube
Web 20- 2: Architecture Patterns And Models For The New Internet
Web 20- 2: Architecture Patterns And Models For The New Internet
tvawler
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
InfluxData
Session1 j2me introduction
Session1 j2me introduction
muthusvm
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Cisco DevNet
Getting started with open mobile development on the Openmoko platform
Getting started with open mobile development on the Openmoko platform
Jean-Michel Bouffard
Similar to Android Development Workshop
(20)
Android Development Workshop V2
Android Development Workshop V2
webthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzr
Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009
Android Development Tutorial V3
Android Development Tutorial V3
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
Introduction to Android - Mobile Portland
Introduction to Android - Mobile Portland
Delivering Mobile Apps to the Field with Oracle JET
Delivering Mobile Apps to the Field with Oracle JET
X Means Y
X Means Y
An Introduction To Android
An Introduction To Android
webthing-iotjs-20181027rzr
webthing-iotjs-20181027rzr
Android ppt
Android ppt
Dart on Arm - Flutter Bangalore June 2021
Dart on Arm - Flutter Bangalore June 2021
The rise of microservices
The rise of microservices
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Øredev 2014
Øredev 2014
Web 20- 2: Architecture Patterns And Models For The New Internet
Web 20- 2: Architecture Patterns And Models For The New Internet
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
Session1 j2me introduction
Session1 j2me introduction
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Getting started with open mobile development on the Openmoko platform
Getting started with open mobile development on the Openmoko platform
Recently uploaded
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
MIND CTI
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Juan lago vázquez
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Andrey Devyatkin
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
The Digital Insurer
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
apidays
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Zilliz
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
Architecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
Zilliz
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
apidays
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Zilliz
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
apidays
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
The Digital Insurer
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Remote DBA Services
Recently uploaded
(20)
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
Architecting Cloud Native Applications
Architecting Cloud Native Applications
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Android Development Workshop
1.
mobile dev camp android development workshop
amsterdam, november 2008 diego torres milano diego@codtech.com copyright © 2008 cod technologies ltd www.codtech.com
2.
“I have always wished that my computer would be as easy to use as my telephone. My wish has come true. I no longer know how to use my telephone.”
Bjarne Stroustrup copyright © 2008 cod technologies ltd www.codtech.com
3.
agenda ●
introduction to android ● android architecture ● building blocks ● your first android application ● testing and performance ● best practices copyright © 2008 cod technologies ltd www.codtech.com
4.
introduction to android after this section you will...
● identify unique features of android platform ● compare android against other platforms ● understand android building blocks copyright © 2008 cod technologies ltd www.codtech.com
5.
what is android ? ●
android is the first complete, open and free mobile platform ● developed by Open Handset Alliance ● software stack than includes – operating system – middleware – key applications – rich set of APIs Portions of this page are reproduced from work created and shared by Google and used according to terms described in the Creative Commons 2.5 Attribution License. copyright © 2008 cod technologies ltd www.codtech.com
6.
is android linux ? NO, android is not linux !
android is based on a linux kernel but it's not GNU/Linux ● no native windowing system ● no glibc support ● no GNU/Linux utilities copyright © 2008 cod technologies ltd www.codtech.com
7.
so is android java ? NO, android is not java ! android is not an implementation of any of the Java variants ●
uses the java language ● implements part of the Java5 SE specification ● runs on a dalvik virtual machine instead of JVM copyright © 2008 cod technologies ltd www.codtech.com
8.
android linux kernel android is based on a linux 2.6 kernel, providing
rnel, p ● security ● memory management ● process management ● network stack ● driver model ● abstraction layer kernel source: source.android.com copyright © 2008 cod technologies ltd www.codtech.com
9.
linux kernel enhancements android introduces some linux kernel patches ●
alarm ● ashmem ● binder ● power management ● low memory killer (no swap space available) ● logger copyright © 2008 cod technologies ltd www.codtech.com
10.
unique platform characteristics android characteristics not found on other platforms ●
open source ● “all applications are equal” model ● dalvik virtual machine copyright © 2008 cod technologies ltd www.codtech.com
11.
other characteristics interesting features as well, but they are more common across other mobile platforms ●
application framework enabling reuse of components ● integrated browser based on WebKit OSS engine ● 3D graphics based on the OpenGL ES ● SQLite for structured data storage ● media support for common audio, video, and still images ● camera, GPS, compass, and accelerometer copyright © 2008 cod technologies ltd www.codtech.com
12.
courtesy of Google
android architecture copyright © 2008 cod technologies ltd www.codtech.com
13.
android building blocks after this section you will...
● recognize the fundamental building blocks ● use these building blocks to create applications ● understand applications lifecycle copyright © 2008 cod technologies ltd www.codtech.com
14.
building blocks
copyright © 2008 cod technologies ltd www.codtech.com
15.
Activities
● Activities are stacked like a deck of cards ● only one is visible ● only one is active ● new activities are placed on top copyright © 2008 cod technologies ltd www.codtech.com
16.
Activities lifecycle rectangles are callbacks where we can implement operations performed on state changes
copyright © 2008 cod technologies ltd www.codtech.com
17.
Activities states ●
active – at the top of the stack ● paused – lost focus but still visible – can be killed by LMK ● stopped – not at the top of th stack ● dropped – killed to reclaim its memory copyright © 2008 cod technologies ltd www.codtech.com
18.
Views ●
Views are basic building blocks ● know how to draw themselves ● respond to events ● organized as trees to build up GUIs ● described in XML in layout resources copyright © 2008 cod technologies ltd www.codtech.com
19.
pattern: load layout android compiles the XML layout code that is later loaded in code usually by
public void onCreate(Bundle savedInstanceState) { ... setContentView(R.layout.filename); ... } copyright © 2008 cod technologies ltd www.codtech.com
20.
Views and Viewgroups ●
Views and Viewgroups trees build up complex GUIs ● android framework is responsible for – measuring – laying out – drawing copyright © 2008 cod technologies ltd www.codtech.com
21.
pattern: ids using a unique id in a XML View definition permits locating it later in Java code
private View name; public void onCreate(Bundle savedInstanceState) { ... name = (View) findViewById(R.id.name); ... } copyright © 2008 cod technologies ltd www.codtech.com
22.
Intents ●
Intents are used to move from Activity to Activity ● describes what the application wants ● provides late runtime binding primary attributes attribute description action the general action to be performed, such as VIEW, EDIT, MAIN, etc. data the data to operate on, such as a person record in the contacts database, as URI copyright © 2008 cod technologies ltd www.codtech.com
23.
intents playground
http://codtech.com/android/IntentPlayground.apk copyright © 2008 cod technologies ltd www.codtech.com
24.
Services ●
services run in the background ● don't interact with the user ● run on the main thread of the process ● is kept running as long as – is started – has connections copyright © 2008 cod technologies ltd www.codtech.com
25.
Notifications ●
notify the user about events ● sent through NotificationManager ● types – persistent icon – turning leds – sound or vibration copyright © 2008 cod technologies ltd www.codtech.com
26.
ConentProviders ●
ContentProviders are objects that can – retrieve data – store data ● data is available to all applications ● only way to share data across packages ● usually the backend is SQLite ● they are loosely linked to clients ● data exposed as a unique URI copyright © 2008 cod technologies ltd www.codtech.com
27.
AndroidManifest.xml ●
control file that tells the system what to do and how the toplevel components are related ● it's the “glue” that actually specifies which Intents your Activities receive ● specifies permissions copyright © 2008 cod technologies ltd www.codtech.com
28.
your first android after this section you will...
● create your own android map project ● design the UI ● externalize resources ● react to events ● run the application copyright © 2008 cod technologies ltd www.codtech.com
29.
android project
copyright © 2008 cod technologies ltd www.codtech.com
30.
default application
● autogenerated application template ● default resources – icon – layout – strings ● default AndroidManifest.xml ● default run configuration copyright © 2008 cod technologies ltd www.codtech.com
31.
designing the UI
this simple UI designs contains ● the window title ● a spinner (drop down box) containing the desired location over the map ● a map displaying the selected location copyright © 2008 cod technologies ltd www.codtech.com
32.
create the layout
● remove old layout ● add a RelativeLayout ● add a View (MapView not supported by ADT) ● replace View by com.google.android.m apview ● change id to mapview ● add a Spinner filling parent width copyright © 2008 cod technologies ltd www.codtech.com
33.
run the application
● com.google.android. maps it's an optional library not included by default ● add <uses-library android:name=quot;com.go ogle.android.mapsquot; / > to manifest as application node copyright © 2008 cod technologies ltd www.codtech.com
34.
Google Maps API key ●
checking DDMS logcat we find java.lang.IllegalArgumentException: You need to specify an API Key for each MapView. ● to access Google Maps we need a key ● application must be signed with the same key ● key can be obtained from Google ● MapView should include android:apiKey=quot;0GNIO0J9wdmcNm4gCV6S0nlaFE8bHa9W XXXXXXquot; copyright © 2008 cod technologies ltd www.codtech.com
35.
MapActivy ●
checking DDMS logcat again java.lang.IllegalArgumentException: MapViews can only be created inside instances of MapActivity. ● change base class to MapActivity ● fix imports ● add unimplemented methods copyright © 2008 cod technologies ltd www.codtech.com
36.
where is the map ?
● still no map displayed ● check DDMS logcat ● lots of IOExceptions ! ● some uses permissions are missing – ACCESS_COARSE_LOCATION – INTERNET copyright © 2008 cod technologies ltd www.codtech.com
37.
finally our map
still some problems ... ● spinner is covered android:layout_alignPa rentTop=quot;truequot; ● has no prompt prompt: @string/prompt ● externalize resource copyright © 2008 cod technologies ltd www.codtech.com
38.
pattern: adapters an Adapter object acts as a bridge between an AdapterView and the underlying data for that view
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.array, android.R.layout.layout); view.setAdapter(adapter); The Adapter is also responsible for making a View for each item in the data set. copyright © 2008 cod technologies ltd www.codtech.com
39.
pattern: resources resources are external files (that is, noncode files) that are used by your code and compiled into your application at build time.
<resources> <string-array name=”array”> <item>item</item> </string-array> </resources> res = getResources().getType(id); copyright © 2008 cod technologies ltd www.codtech.com
40.
arrays.xml
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <resources> <!-- No support for multidimensional arrays or complex objects yet (1.0r1) --> <string-array name=quot;location_namesquot;> <item>Mediamatic Duintjer</item> <item>NH Hotel</item> <item>Airport</item> </string-array> <string-array name=quot;locationsquot;> <item>52.363125,4.892070,18</item> <item>37.244832,-115.811434,9</item> <item>-34.560047,-58.44924,16</item> </string-array> </resources> copyright © 2008 cod technologies ltd www.codtech.com
41.
complete the class ●
create the locations array locations = getResources().getStringArray(R.array.locations); ● get the views (ids pattern) spinner = (Spinner) findViewById(R.id.Spinner01); mapView = (MapView) findViewById(R.id.mapview); ● create the adapter ArrayAdapter<CharSequence> adapter = ArrayAdapter. createFromResource(this, R.array.location_names, android.R.layout.simple_spinner_item); spinner.setAdapter(adapter) copyright © 2008 cod technologies ltd www.codtech.com
42.
almost there
● map is displayed ● spinner is displayed ● drop down is displayed ● but there's no selection button ... adapter. setDropDownViewResource( android.R.layout. simple_spinner_dropdown_item ); copyright © 2008 cod technologies ltd www.codtech.com
43.
respond to events
● when an item is selected map should be centered at that location spinner. setOnItemSelectedListener( new OnItemSelectedListener() { }); ● invoke goToSelectedLocation(ar g2); copyright © 2008 cod technologies ltd www.codtech.com
44.
goToSelectedLocation protected void
goToSelectedLocation(int position) { String[] loc = locations[position].split(quot;,quot;); double lat = Double.parseDouble(loc[0]); double lon = Double.parseDouble(loc[1]); int zoom = Integer.parseInt(loc[2]); GeoPoint p = new GeoPoint((int)(lat * 1E6), (int)(lon * 1E6)); Log.d(TAG, quot;Should go to quot; + p); mapController.animateTo(p); mapController.setZoom(zoom); } copyright © 2008 cod technologies ltd www.codtech.com
45.
more events
● turn map clickable android:clickable=quot;true” ● override onKeyDown switch (keyCode) { case KeyEvent.KEYCODE_I: mapController.zoomIn(); break; case KeyEvent.KEYCODE_O: mapController.zoomOut(); break; case KeyEvent.KEYCODE_S: mapView.setSatellite( !mapView.isSatellite()); break; } copyright © 2008 cod technologies ltd www.codtech.com
46.
we did it !
● Some things to try – select a location – pan – zoom in – zoom out – toggle satellite copyright © 2008 cod technologies ltd www.codtech.com
47.
“Remember that there is no code faster than no code”
Taligent's Guide to Designing Programs copyright © 2008 cod technologies ltd www.codtech.com
48.
testing and performance after this section you will...
● understand the best practices to develop for android ● identify the alternatives to test units, services and applications ● performance copyright © 2008 cod technologies ltd www.codtech.com
49.
best practices ●
consider performance, android is not a desktop ● avoid creating objects ● use native methods ● prefer virtual over interface ● prefer static over virtual ● avoid internal getter/setters ● declares constants final ● avoid enums copyright © 2008 cod technologies ltd www.codtech.com
50.
testing ●
android sdk 1.0 introduces – ActivityUnitTestCase to run isolated unit tests – ServiceTestCase to test services – ActivityInstrumentationTestCase to run functional tests of activities ● ApiDemos includes some test samples ● monkey, generates pseudorandom of user events copyright © 2008 cod technologies ltd www.codtech.com
51.
1000000
1500000 2000000 2500000 3000000 500000 0 Add a local variable Add a member variable Call String.length() Call empty static native method Call empty static method performance Call empty virtual method Call empty interface method Call Iterator:next() on a HashMap Call put() on a HashMap Inflate 1 View from XML Inflate 1 LinearLayout with 1 TextView copyright © 2008 cod technologies ltd www.codtech.com Inflate 1 LinearLayout with 6 View Inflate 1 LinearLayout with 6 TextView Launch an empty activity Time
52.
summary ●
introduction to android ● android building blocks ● copyright © 2008 cod technologies ltd www.codtech.com
53.
“If things seem under control, you're not going fast enough.”
Mario Andretti copyright © 2008 cod technologies ltd www.codtech.com
54.
thank you android development workshop
diego torres milano diego@codtech.com copyright © 2008 cod technologies ltd www.codtech.com
Download now