Enviar pesquisa
Carregar
Android Development Workshop
•
33 gostaram
•
14,901 visualizações
Peter Robinett
Seguir
Presentation by Diego Torres Milano at Mobile Dev Camp (www.mobiledevcamp.nl)
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 54
Baixar agora
Baixar para ler offline
Recomendados
Android studio ppt
Android studio ppt
Swapanpreet Kaur
Android Basic Components
Android Basic Components
Jussi Pohjolainen
Android architecture
Android architecture
Saurabh Kukreja
android layouts
android layouts
Deepa Rani
Android - Application Framework
Android - Application Framework
Yong Heui Cho
Android Button
Android Button
bhavin joshi
Supporting multiple screens on android
Supporting multiple screens on android
Li SUN
Introduction to android
Introduction to android
zeelpatel0504
Recomendados
Android studio ppt
Android studio ppt
Swapanpreet Kaur
Android Basic Components
Android Basic Components
Jussi Pohjolainen
Android architecture
Android architecture
Saurabh Kukreja
android layouts
android layouts
Deepa Rani
Android - Application Framework
Android - Application Framework
Yong Heui Cho
Android Button
Android Button
bhavin joshi
Supporting multiple screens on android
Supporting multiple screens on android
Li SUN
Introduction to android
Introduction to android
zeelpatel0504
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginners
Boom Shukla
Introduction to Android ppt
Introduction to Android ppt
Taha Malampatti
Mobile App Development
Mobile App Development
Chris Morrell
Android application development ppt
Android application development ppt
Gautam Kumar
Mobile operating system by Shabeeb
Mobile operating system by Shabeeb
Shabeeb Shabi
Introduction to Android, Architecture & Components
Introduction to Android, Architecture & Components
Vijay Rastogi
React Native Workshop
React Native Workshop
Amazon Web Services
Android ppt
Android ppt
Ansh Singh
Android Architecture
Android Architecture
deepakshare
Android architecture
Android architecture
Kartik Kalpande Patil
android-tutorial-for-beginner
android-tutorial-for-beginner
Ajailal Parackal
Introduction To Mobile Application Development
Introduction To Mobile Application Development
Syed Absar
iOS Architecture
iOS Architecture
Jacky Lian
A deep dive into Android OpenSource Project(AOSP)
A deep dive into Android OpenSource Project(AOSP)
Siji Sunny
How native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App Development
Devathon
Android app development
Android app development
Tanmoy Roy
Mobile Project Management
Mobile Project Management
Lee Schlenker
androidstudio.pptx
androidstudio.pptx
SundaresanB5
Introduction to Android Development
Introduction to Android Development
Aly Abdelkareem
Android Seminar Presentation [March 2019]
Android Seminar Presentation [March 2019]
Jowin John Chemban
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
Mais conteúdo relacionado
Mais procurados
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginners
Boom Shukla
Introduction to Android ppt
Introduction to Android ppt
Taha Malampatti
Mobile App Development
Mobile App Development
Chris Morrell
Android application development ppt
Android application development ppt
Gautam Kumar
Mobile operating system by Shabeeb
Mobile operating system by Shabeeb
Shabeeb Shabi
Introduction to Android, Architecture & Components
Introduction to Android, Architecture & Components
Vijay Rastogi
React Native Workshop
React Native Workshop
Amazon Web Services
Android ppt
Android ppt
Ansh Singh
Android Architecture
Android Architecture
deepakshare
Android architecture
Android architecture
Kartik Kalpande Patil
android-tutorial-for-beginner
android-tutorial-for-beginner
Ajailal Parackal
Introduction To Mobile Application Development
Introduction To Mobile Application Development
Syed Absar
iOS Architecture
iOS Architecture
Jacky Lian
A deep dive into Android OpenSource Project(AOSP)
A deep dive into Android OpenSource Project(AOSP)
Siji Sunny
How native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App Development
Devathon
Android app development
Android app development
Tanmoy Roy
Mobile Project Management
Mobile Project Management
Lee Schlenker
androidstudio.pptx
androidstudio.pptx
SundaresanB5
Introduction to Android Development
Introduction to Android Development
Aly Abdelkareem
Android Seminar Presentation [March 2019]
Android Seminar Presentation [March 2019]
Jowin John Chemban
Mais procurados
(20)
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginners
Introduction to Android ppt
Introduction to Android ppt
Mobile App Development
Mobile App Development
Android application development ppt
Android application development ppt
Mobile operating system by Shabeeb
Mobile operating system by Shabeeb
Introduction to Android, Architecture & Components
Introduction to Android, Architecture & Components
React Native Workshop
React Native Workshop
Android ppt
Android ppt
Android Architecture
Android Architecture
Android architecture
Android architecture
android-tutorial-for-beginner
android-tutorial-for-beginner
Introduction To Mobile Application Development
Introduction To Mobile Application Development
iOS Architecture
iOS Architecture
A deep dive into Android OpenSource Project(AOSP)
A deep dive into Android OpenSource Project(AOSP)
How native is React Native? | React Native vs Native App Development
How native is React Native? | React Native vs Native App Development
Android app development
Android app development
Mobile Project Management
Mobile Project Management
androidstudio.pptx
androidstudio.pptx
Introduction to Android Development
Introduction to Android Development
Android Seminar Presentation [March 2019]
Android Seminar Presentation [March 2019]
Semelhante a 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
Semelhante a 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
Último
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
V3cube
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
Pixlogix Infotech
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
Boston Institute of Analytics
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
hans926745
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Remote DBA Services
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
UK Journal
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Antenna Manufacturer Coco
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Neo4j
Último
(20)
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
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
Baixar agora