Enviar búsqueda
Cargar
Android Dev Camp - Build Your First Android App
•
33 recomendaciones
•
14,901 vistas
Título mejorado por IA
Peter Robinett
Seguir
Presentation by Diego Torres Milano at Mobile Dev Camp (www.mobiledevcamp.nl)
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 54
Descargar ahora
Descargar para leer sin conexión
Recomendados
Android ppt
Android ppt
Tarun Bamba
Android Booting Sequence
Android Booting Sequence
Jayanta Ghoshal
Introduction to android
Introduction to android
zeelpatel0504
Android application development ppt
Android application development ppt
Gautam Kumar
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new Platforms
Linaro
Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
Emertxe Information Technologies Pvt Ltd
Ios development
Ios development
Shakil Ahmed
Android ppt
Android ppt
Govind Raj
Recomendados
Android ppt
Android ppt
Tarun Bamba
Android Booting Sequence
Android Booting Sequence
Jayanta Ghoshal
Introduction to android
Introduction to android
zeelpatel0504
Android application development ppt
Android application development ppt
Gautam Kumar
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new Platforms
Linaro
Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
Emertxe Information Technologies Pvt Ltd
Ios development
Ios development
Shakil Ahmed
Android ppt
Android ppt
Govind Raj
Android Operating System
Android Operating System
renoy reji
Android - A brief introduction
Android - A brief introduction
Roshan Gautam
Presentation on Wear OS (Android Wear)
Presentation on Wear OS (Android Wear)
Adwait Hegde
Embedded Android Workshop with Pie
Embedded Android Workshop with Pie
Opersys inc.
Android architecture
Android architecture
Kartik Kalpande Patil
Project meeting: Android Graphics Architecture Overview
Project meeting: Android Graphics Architecture Overview
Yu-Hsin Hung
Presentation On Android
Presentation On Android
TeachMission
Low Level View of Android System Architecture
Low Level View of Android System Architecture
National Cheng Kung University
Android Things : Building Embedded Devices
Android Things : Building Embedded Devices
Emertxe Information Technologies Pvt Ltd
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginners
Boom Shukla
Android OTA updates
Android OTA updates
Gary Bisson
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Opersys inc.
Learning AOSP - Android Booting Process
Learning AOSP - Android Booting Process
Nanik Tolaram
Hacking Android OS
Hacking Android OS
Jimmy Software
Android Programming Basics
Android Programming Basics
Eueung Mulyana
Android ppt
Android ppt
Ansh Singh
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Opersys inc.
Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part IV (Android System Services)
Emertxe Information Technologies Pvt Ltd
Android Operating System
Android Operating System
Bilal Mirza
Android crash debugging
Android crash debugging
Ashish Agrawal
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
Más contenido relacionado
La actualidad más candente
Android Operating System
Android Operating System
renoy reji
Android - A brief introduction
Android - A brief introduction
Roshan Gautam
Presentation on Wear OS (Android Wear)
Presentation on Wear OS (Android Wear)
Adwait Hegde
Embedded Android Workshop with Pie
Embedded Android Workshop with Pie
Opersys inc.
Android architecture
Android architecture
Kartik Kalpande Patil
Project meeting: Android Graphics Architecture Overview
Project meeting: Android Graphics Architecture Overview
Yu-Hsin Hung
Presentation On Android
Presentation On Android
TeachMission
Low Level View of Android System Architecture
Low Level View of Android System Architecture
National Cheng Kung University
Android Things : Building Embedded Devices
Android Things : Building Embedded Devices
Emertxe Information Technologies Pvt Ltd
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginners
Boom Shukla
Android OTA updates
Android OTA updates
Gary Bisson
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Opersys inc.
Learning AOSP - Android Booting Process
Learning AOSP - Android Booting Process
Nanik Tolaram
Hacking Android OS
Hacking Android OS
Jimmy Software
Android Programming Basics
Android Programming Basics
Eueung Mulyana
Android ppt
Android ppt
Ansh Singh
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Opersys inc.
Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part IV (Android System Services)
Emertxe Information Technologies Pvt Ltd
Android Operating System
Android Operating System
Bilal Mirza
Android crash debugging
Android crash debugging
Ashish Agrawal
La actualidad más candente
(20)
Android Operating System
Android Operating System
Android - A brief introduction
Android - A brief introduction
Presentation on Wear OS (Android Wear)
Presentation on Wear OS (Android Wear)
Embedded Android Workshop with Pie
Embedded Android Workshop with Pie
Android architecture
Android architecture
Project meeting: Android Graphics Architecture Overview
Project meeting: Android Graphics Architecture Overview
Presentation On Android
Presentation On Android
Low Level View of Android System Architecture
Low Level View of Android System Architecture
Android Things : Building Embedded Devices
Android Things : Building Embedded Devices
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginners
Android OTA updates
Android OTA updates
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Learning AOSP - Android Booting Process
Learning AOSP - Android Booting Process
Hacking Android OS
Hacking Android OS
Android Programming Basics
Android Programming Basics
Android ppt
Android ppt
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part IV (Android System Services)
Android Operating System
Android Operating System
Android crash debugging
Android crash debugging
Similar a Android Dev Camp - Build Your First Android App
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 a Android Dev Camp - Build Your First Android App
(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
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Databarracks
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
IES VE
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
HarshalMandlekar2
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Curtis Poe
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
LoriGlavin3
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
Hiroshi SHIBATA
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
LoriGlavin3
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
AliaaTarek5
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
LoriGlavin3
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
LoriGlavin3
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
Kari Kakkonen
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
Raghuram Pandurangan
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Scott Andery
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
ThousandEyes
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
DianaGray10
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
UiPathCommunity
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
Wes McKinney
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
Alan Dix
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
Lonnie McRorey
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
LoriGlavin3
Último
(20)
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Android Dev Camp - Build Your First Android App
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
Descargar ahora