Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
Flutter
Himanshu Singh
android layouts
Deepa Rani
Implement text editor
Amaan Shaikh
Android Internship report presentation
vinayh.vaghamshi _
Manual Testing
Pavan Kumar
Flutter workshop
Vishnu Suresh
Introduction to Android Development
donnfelker
Introduction to Android
Ranjith Kumar
1
of
54
Top clipped slide
Android Development Workshop
Nov. 30, 2008
•
0 likes
33 likes
×
Be the first to like this
Show More
•
14,886 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
Presentation by Diego Torres Milano at Mobile Dev Camp (www.mobiledevcamp.nl)
Peter Robinett
Follow
Bubble Foundry
Advertisement
Advertisement
Advertisement
Recommended
Android fundamentals and tutorial for beginners
Boom Shukla
11.2K views
•
48 slides
Android ppt
Ansh Singh
63.4K views
•
33 slides
Introduction to selenium
Archana Krushnan
6.2K views
•
21 slides
Selenium
Rakshitha Raviprakash
1.8K views
•
40 slides
Introduction to Android and Android Studio
Suyash Srijan
24K views
•
60 slides
Android app development ppt
saitej15
5.5K views
•
28 slides
More Related Content
Slideshows for you
(20)
Flutter
Himanshu Singh
•
23.3K views
android layouts
Deepa Rani
•
6.2K views
Implement text editor
Amaan Shaikh
•
5K views
Android Internship report presentation
vinayh.vaghamshi _
•
3K views
Manual Testing
Pavan Kumar
•
141.3K views
Flutter workshop
Vishnu Suresh
•
10.8K views
Introduction to Android Development
donnfelker
•
3.2K views
Introduction to Android
Ranjith Kumar
•
13.3K views
Introduction to Mobile Development
Pragnesh Vaghela
•
6.9K views
Introduction to Android Development
Aly Abdelkareem
•
16K views
Introduction of Xcode
Dhaval Kaneria
•
4.9K views
Android Operating System (Androrid OS)
Siddharth Belbase
•
781 views
Android User Interface
Shakib Hasan Sumon
•
1.6K views
android-tutorial-for-beginner
Ajailal Parackal
•
4.7K views
Android chapter02-setup2-emulator
guru472
•
3.7K views
Understanding the Android System Server
Opersys inc.
•
52.7K views
Flutter Tutorial For Beginners | Edureka
Edureka!
•
4.1K views
Basic android-ppt
Srijib Roy
•
20.2K views
Android studio ppt
Swapanpreet Kaur
•
3.3K views
Selenium ppt
Pavan Kumar
•
80.6K views
Similar to Android Development Workshop
(20)
Android Development Workshop V2
Diego Torres Milano
•
1.5K views
webthing-iotjs-tizenrt-cdl2018-20181117rzr
Phil www.rzr.online.fr
•
8.7K views
Getting Started with Android - OSSPAC 2009
sullis
•
2.2K views
Android Development Tutorial V3
Diego Torres Milano
•
11.1K views
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
Vando Batista
•
1.3K views
Introduction to Android - Mobile Portland
sullis
•
15.3K views
Delivering Mobile Apps to the Field with Oracle JET
Simon Haslam
•
129 views
X Means Y
CommonsWare
•
815 views
An Introduction To Android
natdefreitas
•
10.6K views
webthing-iotjs-20181027rzr
Phil www.rzr.online.fr
•
5.9K views
Android ppt
Gateway Software Solutions
•
6 views
Dart on Arm - Flutter Bangalore June 2021
Chris Swan
•
189 views
The rise of microservices
Cloud Technology Experts
•
133 views
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Cisco DevNet
•
716 views
Øredev 2014
olataube
•
294 views
Web 20- 2: Architecture Patterns And Models For The New Internet
tvawler
•
629 views
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
InfluxData
•
2.3K views
Session1 j2me introduction
muthusvm
•
260 views
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Cisco DevNet
•
671 views
Getting started with open mobile development on the Openmoko platform
Jean-Michel Bouffard
•
639 views
Advertisement
Recently uploaded
(20)
Technology Companies Development Story
Hamidreza Soleimani
•
0 views
Crewlogout Overview
livestimes
•
0 views
Intro to Text Classification with TensorFlow
Elizabeth (Lizzie) Siegle
•
8 views
【本科生、研究生】美国德鲁大学毕业证文凭购买指南
sutseu
•
0 views
Do Reinvent the Wheel - Nov 2021 - DigiNext.pdf
Hamidreza Soleimani
•
0 views
proposal (2).pdf
mennaHendy
•
3 views
#9 Calicut MuleSoft Meetup - Munits in Mule 4.pptx
JohnMathewPhilip
•
0 views
NS-CUK Seminar: V.T.Hoang, Review on "Graph Clustering with Graph Neural Netw...
ssuser4b1f48
•
0 views
Excel 2010.docx
RobertoMarcelinodaSi1
•
5 views
【本科生、研究生】美国南达科他大学毕业证文凭购买指南
sutseu
•
0 views
CyberEthics.ppt
ANKITKUMAR920995
•
2 views
Bosch BSG8_8100 Service Manual.pdf
ssuser78bec11
•
0 views
Pill Camera.pptx
Md Refatul Amin Refat
•
0 views
Digital Marketing Plan.pdf
mennaHendy
•
4 views
ChIP-Sequencing
Hajra Qayyum
•
0 views
Unit 5.pdf
BALASHANMUGAVADIVUPM
•
0 views
KPIs&Goals.pdf
mennaHendy
•
2 views
What are the Reactjs Properties
TutorialsFreak
•
0 views
PEMBANGKIT_1.ppt
DediTriLaksono1
•
1 view
Our Business Goals.pdf
mennaHendy
•
4 views
Android Development Workshop
mobile dev camp android development workshop
amsterdam, november 2008 diego torres milano diego@codtech.com copyright © 2008 cod technologies ltd www.codtech.com
“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
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
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
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
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
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
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
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
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
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
courtesy of Google
android architecture copyright © 2008 cod technologies ltd www.codtech.com
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
building blocks
copyright © 2008 cod technologies ltd www.codtech.com
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
Activities lifecycle rectangles are callbacks where we can implement operations performed on state changes
copyright © 2008 cod technologies ltd www.codtech.com
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
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
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
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
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
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
intents playground
http://codtech.com/android/IntentPlayground.apk copyright © 2008 cod technologies ltd www.codtech.com
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
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
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
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
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
android project
copyright © 2008 cod technologies ltd www.codtech.com
default application
● autogenerated application template ● default resources – icon – layout – strings ● default AndroidManifest.xml ● default run configuration copyright © 2008 cod technologies ltd www.codtech.com
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
“Remember that there is no code faster than no code”
Taligent's Guide to Designing Programs copyright © 2008 cod technologies ltd www.codtech.com
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
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
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
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
summary ●
introduction to android ● android building blocks ● copyright © 2008 cod technologies ltd www.codtech.com
“If things seem under control, you're not going fast enough.”
Mario Andretti copyright © 2008 cod technologies ltd www.codtech.com
thank you android development workshop
diego torres milano diego@codtech.com copyright © 2008 cod technologies ltd www.codtech.com
Advertisement