Android Jumpstart Jfokus
-
Upload
lars-vogel -
Category
Technology
-
view
2.617 -
download
5
description
Transcript of Android Jumpstart Jfokus
![Page 1: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/1.jpg)
Jumpstart to Android App development
Lars VogelLars Vogelhttp://www.vogella.de
Twitter: @vogella
![Page 2: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/2.jpg)
What is Android?
Fundamentals
Constructs of Android
Live Coding
Q&A
![Page 3: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/3.jpg)
Independent Eclipse and Android consultant, trainer and book author
Eclipse committer
Maintains http://www.vogella.de Java, Eclipse and Android related Tutorials with more then a million visitors per month.
About me – Lars Vogel
![Page 4: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/4.jpg)
Wednesday, 11.10 -12.00 - So whats so cool about Android 4.x
Thuersday – Friday – Full day Android training
More Android Sessions:
![Page 5: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/5.jpg)
Android Experience?
![Page 6: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/6.jpg)
What is Android?
![Page 7: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/7.jpg)
- Open Source- Full stack based on Linux- Java programming interface- Project is lead by Google- Tooling available for Eclipse (and other IDE's)
Android from 10 000 feet
![Page 8: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/8.jpg)
![Page 9: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/9.jpg)
On Android you develop in Java
(There is also the NDK which allows development in C / C++...)
![Page 10: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/10.jpg)
Rich UI components
Threads and Background Processing
Full network stack (Http, JSON)
Database available
Images
Access to the hardware (GPS, Camera, Phone)
and much more............
Overview of the API Capabilities
![Page 11: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/11.jpg)
Its like programming for hardware which is 10 years old
![Page 12: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/12.jpg)
… with insame performance
requirements
![Page 13: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/13.jpg)
On Android you develop in Java
Really?
![Page 14: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/14.jpg)
You use the Java programming language but Android does not run Java Bytecode
Android Programming
![Page 15: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/15.jpg)
Dalvik
Run Dalvik Executable Code (.dex)Tool dx converts Java Bytecode into .dex
• Register based VM vrs. stack based as the JVM• .dex Files contain more then one class• Approx. 50 % of the size of a class file• op codes are two bytes instead of one in the JVM• As of Android 2.2 Dalvik JIT compiler• Primary engineer: Dan Bornstein
![Page 16: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/16.jpg)
Developer Toolchain
![Page 17: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/17.jpg)
Android Development Tools (ADT) for Eclipse
Eclipse based tooling
• Provide the emulator• Wizard for creating new project• Additional Tooling, e.g views
![Page 18: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/18.jpg)
QEMU-based ARM emulator runs same image as a device
Use same toolchain to work with device or emulator
Inital startup is slooooowwwwww.....
Emulator
![Page 19: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/19.jpg)
Demo
![Page 20: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/20.jpg)
AndroidManifest.xml
•General configuration files for your application
•Contains all component definitions of your appication
![Page 21: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/21.jpg)
Resources from /res are automatically „indexed“
![Page 22: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/22.jpg)
ADT maintains a reference to all resources in the R.java
![Page 23: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/23.jpg)
Main Android programming constructs
Activity
Broadcast Receiver
Intents
Services
ContentProvider
Views
![Page 24: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/24.jpg)
Context
![Page 25: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/25.jpg)
Global information about an application environment.
Allows access to application-specific resources and classes
Support application-level operations such as launching activities, broadcasting and receiving intents, etc.
Basically all Android classes need a context
Activity extends Context
Context
![Page 26: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/26.jpg)
DemoYour first projectActivities
![Page 27: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/27.jpg)
Extends Context
An activity is a single, focused thing that the user can do.
Kind of a screen but not entirely...
Activity
![Page 28: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/28.jpg)
android.viewView: UI Widget - Button - TextView - EditText
View vrs ViewGroup
![Page 29: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/29.jpg)
Layouts
android.view.ViewGroup - Layout - extends View• Layouts are typically defined via XML files (resources)
• You can assign properties to the layout elements to influence their behavior.
![Page 30: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/30.jpg)
Demo – Hello JFokus
![Page 31: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/31.jpg)
Andoid is allowed to kill your app to save memory.
![Page 32: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/32.jpg)
Life Cyle of an Activity
void onCreate(Bundle savedInstanceState) void onStart() void onRestart() void onResume() void onPause() void onStop() void onDestroy()
Android may destroy you!
![Page 33: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/33.jpg)
States of an Activity
• Active/ Running – Visible and interacts with user• Paused – still visible but partically obscured (other
transparant activity, dialog or the phone screen), instance is running but might be killed by the system
• Stopped – completely obscured, e.g. User presses the home screen button, instance is running but might be killed by the system
• Killed – if stopped or paused, system might calling finish or by killing it
![Page 34: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/34.jpg)
![Page 35: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/35.jpg)
To test flip your device
![Page 36: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/36.jpg)
Defining Activities
![Page 37: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/37.jpg)
Calling Activities creates a stack -> Back button goes back to the previous activity
-> Think of it as a stack of cards
Calling Activities
![Page 38: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/38.jpg)
Defining Activities
• Create a class which extends „Activitiy“
• Create an entry in „AndroidManifest.xml“ for the activity.
• <activity android:name=“MyNewActivity“></activity>
![Page 39: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/39.jpg)
I had only the best intents....
![Page 40: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/40.jpg)
Message passing mechanism to start Activities, Services or to trigger (system) events.
Allow modular architecture
Can contain data (extra)
Intents
![Page 41: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/41.jpg)
Intents
• Explicit: Asking someone to do something• Implicit: Asking the system who can do something
Intent
![Page 42: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/42.jpg)
Demo Intents
![Page 43: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/43.jpg)
Implicit Intents
• new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.vogella.de"));
• new Intent(Intent.ACTION_CALL, Uri.parse("tel:(+49)12345789"));
• new Intent(Intent.ACTION_VIEW, Uri.parse("geo:50.123,7.1434?z=19"));
• new Intent("android.media.action.IMAGE_CAPTURE");
![Page 44: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/44.jpg)
Gettings results
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");startActivityForResult(intent, 0);
public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK && requestCode == 0) { String result = data.toURI(); Toast.makeText(this, result, Toast.LENGTH_LONG); }}
![Page 45: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/45.jpg)
XML Drawables
![Page 46: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/46.jpg)
XML Drawables
• XML Resources • Can be used to define transitions, shapes or stateA drawable resource is something that can be drawn to the screen
![Page 47: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/47.jpg)
Services and receiver
![Page 48: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/48.jpg)
Allow real multitasking and background processing
De-coupled from the Activity life-cyle
Services
![Page 49: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/49.jpg)
Services
Service runs in the background without interacting with the user.
Android provides a multitude of system services
• NotificationService• VibratorService• LocationService• AlarmService• ....
Access via context.getSystemService(Context.CONST);
You can define your own service for things that should run in the background
![Page 50: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/50.jpg)
Notification Manager
Demo
![Page 51: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/51.jpg)
Services
Service runs in the background without interacting with the user.
Android provides a multitude of system services
• NotificationService• VibratorService• LocationService• AlarmService• ....
Access via context.getSystemService(Context.CONST);
You can define your own service for things that should run in the background
![Page 52: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/52.jpg)
Broadcast Receiver – Listen to events
Example: BATTERY_LOW, ACTION_BOOT_COMPLETEDandroid.intent.action.PHONE_STATE
Defined statically in manifest or temporary via code
Broadcast Receiver only works within the onReceive() method
C2DM
![Page 53: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/53.jpg)
Own Service
• Extend Service or IntentService• start with startService(Intent) or
bindService(Intent).• onStartCommand is called in the service• bindService gets a ServiceConnection as
parameter which receives a Binder object which can be used to communicate with the service
![Page 54: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/54.jpg)
How to start a service
Broadcast Receiver – Event: BOOT_COMPLETED Or
ACTION_EXTERNAL_APPLICATIONS_AVAILABLE
startService in the onReceiveMethod()
Timer ServiceStart BroadcastReceiver which starts the
service
![Page 55: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/55.jpg)
Demo
alarmreceiver.phone
![Page 56: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/56.jpg)
Security
![Page 57: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/57.jpg)
Each apps gets into own Linux user and runs in its own process
![Page 58: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/58.jpg)
Android Application requires explicit permissions, e.g. for • DB access• Phone access• Contacts • Internet• System messages
![Page 59: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/59.jpg)
Background Processing
![Page 60: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/60.jpg)
Be fast!
Avoid ApplicationNotResponding Error
![Page 61: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/61.jpg)
Use Threads (not the UI one)
• Long running stuff should run in the background
• Thread cannot modify the UI• Synch with the UI thread
runOnUiThread(new Runnable)
![Page 62: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/62.jpg)
Handler and AsyncTask
• Handler runs in the UI thread• Allows to send Message object and or
to send Runnable to it handler.sendMessage(msg)
handler.post(runnable)
• AsyncTask for more complex work
![Page 63: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/63.jpg)
AsyncTask
• To use it subclass it
AsyncTask <TypeOfVarArgParams , ProgressValue , ResultValue>
doInBackground() – Do the work
onPostExecute() – Update the UI
![Page 64: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/64.jpg)
Saving the thread
• If a thread runs in your Activity you want to save it.
![Page 65: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/65.jpg)
Lifecycle - Thread
• If Activity is destroyed the Threads should be preserved.
• Close down Dialogs in the onDestroy() method
• One object can be saved via onRetainConConfigurationInstance()
• Access via getLastNonConfigurationInstance()
• Only use static inner classes in your Threads otherwise you create a memory leakage.
![Page 66: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/66.jpg)
Option Menus and Action Bar
![Page 67: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/67.jpg)
Option Menu & Action Bar
• Option Menu displays if „Menu“ button is pressed
• You can decided if the entries are displayed in the Action Bar or in a menu
• Use „ifRoom“ flag if possible.
![Page 68: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/68.jpg)
Option Menu & Action Bar
• Option Menu displays if „Menu“ button is pressed
• You can decided if the entries are displayed in the Action Bar or in a menu
• Use „ifRoom“ flag if possible.
![Page 69: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/69.jpg)
Preferences
![Page 70: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/70.jpg)
Read and Write Preferences
• Key – Value pairs
• PreferenceManager.getDefaultSharedPreferences(this); –To read: getString(key), get...–To change use edit(), putType(key, value), commit()
• To maintain use PreferenceActivity
![Page 71: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/71.jpg)
PreferenceActivity
• Create resource file (preference)• New Activity which extends PreferenceActivity
• To add preferences:–addPreferencesFromResource(R.xml.preferences);
• Saving and edits will be handled automatically by the PreferenceActivity
![Page 72: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/72.jpg)
ListView
![Page 73: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/73.jpg)
Can be used to display a list of items
Gets his data from an adapter
ListView
![Page 74: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/74.jpg)
Adapter
View per row defined by Adapter
Data for ListView defined by Adapter
![Page 75: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/75.jpg)
ListActivity has already a predefined ListView with the id @android:id/list which will be used automatically.
Provides nice method hooks for typical operations on lists
If you define your own layout this layout must contain a ListView with the ID:
@+android:id/list
ListActivity
![Page 76: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/76.jpg)
What if the layout should not be static?
![Page 77: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/77.jpg)
Define your own Adapter
![Page 78: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/78.jpg)
If convertView is not null -> reuse it
Saves memory and CPU power (approx. 150 % faster according to Google IO)
Holder Pattern saves 25%
Reuse existing rows
![Page 79: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/79.jpg)
Views and Touch
![Page 80: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/80.jpg)
There is more....
![Page 81: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/81.jpg)
Camera APIMotion DetectionLocation API (GIS)Heat SensorAccelerator
I have feelings
![Page 82: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/82.jpg)
Example Camera API
![Page 83: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/83.jpg)
Internet (java.net, Apache HttpClient, JSON...)BluetoothEmailSMSVoIP (SIP (Session Initiation Protocol))
I can talk and hear
![Page 84: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/84.jpg)
Other Capabilities
Push to device
Interactive Widgets on the homescreen
Live Wallpapers (as background)
Animations and Styling
Simple List handling
(Multi-) Touch
NFC
Canvas / OpenGL ES (Game programming....)
Native Rendering
![Page 85: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/85.jpg)
Android 4.0
![Page 86: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/86.jpg)
Whats so cool about Android 4.0?
• Come to my talk on Wednesday... ;-)
![Page 87: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/87.jpg)
Summary
Android powerful and well-designed development
platform
Easy to get started
Power to the developer
![Page 88: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/88.jpg)
![Page 89: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/89.jpg)
Android: Where to go from here:
Android Introduction Tutorial http://www.vogella.de/articles/Android/article.html
Or Google for „Android Development Tutorial“
Android SQLite and ContentProvider Bookhttp://www.amazon.com/dp/B006YUWEFE
More on Android http://www.vogella.de/android.html
![Page 90: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/90.jpg)
Thank you
For further questions:
[email protected]://www.vogella.deTwitter http://www.twitter.com/vogellaGoogle+ http://gplus.to/vogella
![Page 91: Android Jumpstart Jfokus](https://reader034.fdocuments.in/reader034/viewer/2022042714/555839e4d8b42acb078b4ada/html5/thumbnails/91.jpg)
License & Acknowledgements
• This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Germany License
– See http://creativecommons.org/licenses/by-nc-nd/3.0/de/deed.en_US