Submit Search
Upload
Android Development Workshop
•
33 likes
•
14,898 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 fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginners
Boom Shukla
Android's Multimedia Framework
Android's Multimedia Framework
Opersys inc.
Introduction to android
Introduction to android
zeelpatel0504
Window Phone
Window Phone
EdutechLearners
Android seminar ppt
Android seminar ppt
chakrapani tripathi
ppt based on android technology with great animations
ppt based on android technology with great animations
Hriday Garg
android-tutorial-for-beginner
android-tutorial-for-beginner
Ajailal Parackal
Android Internship report presentation
Android Internship report presentation
vinayh.vaghamshi _
More Related Content
What's hot
Android Things : Building Embedded Devices
Android Things : Building Embedded Devices
Emertxe Information Technologies Pvt Ltd
Android
Android
Milena Rebouças
Sistema operativo android
Sistema operativo android
ingrythf
Basic android-ppt
Basic android-ppt
Srijib Roy
Android Architecture
Android Architecture
deepakshare
Android presentation
Android presentation
Siva Ramakrishna kv
Android technology prepared by Hritika Raj (Shivalik college of engg.)
Android technology prepared by Hritika Raj (Shivalik college of engg.)
Hritika Raj
Introduction to Android
Introduction to Android
Ranjith Kumar
Embedded Android : System Development - Part III (Audio / Video HAL)
Embedded Android : System Development - Part III (Audio / Video HAL)
Emertxe Information Technologies Pvt Ltd
Android ppt
Android ppt
srikanth982
Android ppt
Android ppt
Pooja Garg
Presentation on Android application
Presentation on Android application
Atibur Rahman
Android architecture
Android architecture
Kartik Kalpande Patil
Android Operating System (Androrid OS)
Android Operating System (Androrid OS)
Siddharth Belbase
Render thead of hwui
Render thead of hwui
Rouyun Pan
Android PPT Presentation 2018
Android PPT Presentation 2018
Rao Purna
Introduction to Dynamic Analysis of Android Application
Introduction to Dynamic Analysis of Android Application
Kelwin Yang
Android report
Android report
blogger at indiandswad
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
Emertxe Information Technologies Pvt Ltd
Screenless display
Screenless display
Aditya Bansal
What's hot
(20)
Android Things : Building Embedded Devices
Android Things : Building Embedded Devices
Android
Android
Sistema operativo android
Sistema operativo android
Basic android-ppt
Basic android-ppt
Android Architecture
Android Architecture
Android presentation
Android presentation
Android technology prepared by Hritika Raj (Shivalik college of engg.)
Android technology prepared by Hritika Raj (Shivalik college of engg.)
Introduction to Android
Introduction to Android
Embedded Android : System Development - Part III (Audio / Video HAL)
Embedded Android : System Development - Part III (Audio / Video HAL)
Android ppt
Android ppt
Android ppt
Android ppt
Presentation on Android application
Presentation on Android application
Android architecture
Android architecture
Android Operating System (Androrid OS)
Android Operating System (Androrid OS)
Render thead of hwui
Render thead of hwui
Android PPT Presentation 2018
Android PPT Presentation 2018
Introduction to Dynamic Analysis of Android Application
Introduction to Dynamic Analysis of Android Application
Android report
Android report
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
Screenless display
Screenless display
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
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
Daniel Santiago Silva Capera
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Will Schroeder
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Aijun Zhang
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
DianaGray10
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
Mahmoud Rabie
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
shyamraj55
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
UiPathCommunity
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
Aggregage
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
Eric D. Schabell
20150722 - AGV
20150722 - AGV
Jamie (Taka) Wang
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
Adtran
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
Seth Reyes
Designing A Time bound resource download URL
Designing A Time bound resource download URL
Runcy Oommen
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
Liveplex
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
Udaiappa Ramachandran
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
infogdgmi
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
Precisely
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IES VE
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
DianaGray10
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
David Newbury
Recently uploaded
(20)
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
20150722 - AGV
20150722 - AGV
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
Designing A Time bound resource download URL
Designing A Time bound resource download URL
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
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