SlideShare a Scribd company logo
Android Development
- the basics
Tomáš Kypta
Agenda
• Android platform and ecosystem	

• Android SDK and development tools	

• Hello World	

• building blocks of Android apps & the
manifest file	


• activities, widgets, intents
Agenda
• dialogs, toasts, notifications	

• fragments
Android platform
• Linux-based operating system	

• open-source (http://source.android.com/)	

• originally phone OS	

• tablet support (since Honeycomb, Android
3.0)	


• Google TV
History
• 2003, Android inc.	

• 2005, acquired by Google	

• Sep 2008, the first Android phone	

• T-Mobile G1	

• May 2010, Froyo (Android 2.2)	

• Feb 2011, Honeycomb (Android 3.0)
History
• Oct 2011, Ice Cream Sandwich (Android
4.0)	


• July 2012, Jelly Bean (Android 4.1)	

• July 2013, Jelly Bean (Android 4.3)	

• Oct 2013, KitKat (Android 4.4)
Platform Versions
Android ecosystem
• thousands of devices	

• the most popular mobile platform	

• 1.5 million new devices activated every day	

• September 3, 2013, 1 billion Android
devices have been activated	


• most devices made by Samsung
Google Play
• app can be acquired by app stores	

• Google Play, http://play.google.com	

• other stores	

• > 50 billion apps have been installed from
Google Play	


• July 2013, 1 million apps
Google Play
• purchasing	

• selling	

• Play Music, Play Books, ...
Google Play
• selling apps	

• 15 min return period	

• ads	

• AdMob, ...	

• in-app billing
Android “problems”
• fragmentation	

• manufacturer/carrier enhancements	

• updates & support	

• openness - low quality apps in Google Play	

• malware	

• users
Android security
• app can be installed directly	

• .apk file	

• user accepts app permissions when
installing or updating the app
Android security
• Verify Apps (Android 2.3+)	

• checks every app install	

• Google Play can remotely uninstall harmful
app
Android development - the basics, MFF UK, 2013
Android development - the basics, MFF UK, 2013
Development
• programming in “Java”	

• native apps possible (C++)	

• development tools platform friendly	

• Windows, Linux, Mac OS X
Development
• IDE support	

• Android Studio, IntelliJ IDEA, ADT plugin
for Eclispse, Netbeans	


• you can freely develop on any device
Android SDK
• android - Android SDK and AVD Manager	

• adb - Android Debug Bridge	

• monitor - (ddms & hierarchyviewer)	

• emulator	

• lint, Traceview, ProGuard	

• docs, samples
Libraries
• compatibility libraries	

• v4 - backports lots of newer functionality
to Android 1.6+	


• Google Play In-app Billing
Libraries
• Google Play Services	

• Google Maps	

• Games	

• Google+	

• Authorization
Libraries
• AdMob	

• Google Analytics, Flurry, Crittercism	

• Google Cloud Messaging
Android development - the basics, MFF UK, 2013
Hello World
Build
Android development - the basics, MFF UK, 2013
Android development - the basics, MFF UK, 2013
Android building blocks
• Activity	

• Service	

• Content provider	

• Broadcast receiver	

• AndroidManifest.xml
Activity
• screen with user interface	

• the only visual component	

• example - an email app	

• list of emails	

• details of an email	

• email composition
Service
• has no UI	

• long-running tasks	

• examples	

• music playback service	

• download service	

• sync service
Content Provider
• managers and shares application data	

• data storage doesn’t matter (db, web,
filesystem)	


• apps can query and modify data through
content provider	


• r/w permissions can be defined	

• examples - all system dbs (SMS, contacts, ...)
Broadcast Receiver
• responds to broadcasts	

• broadcasts are system wide	

• can be registered statically or dynamically	

• system or custom messages	

• examples - incoming SMS, incoming call,

screen turned off, low baterry, removed SD
card, BT device available, ...
AndroidManifest.xml
• defines what parts the app have	

• defines which endpoints are exposed	

• minimum/maximum API level	

• permissions	

• declare hardware and software features	

• require configuration
Intent
• asynchronous message	

• binds components together (all except
Content Provider)	


• starting activities	

• starting services and binding to services	

• sending broadcasts
Activity
• a subclass of android.app.Activity	

• app usually has many activities	

• activities managed in activity stack	

• newly started activity is placed on the top
of the stack
Activity Lifecycle
• activity can be in different states during its
lifecycle	


• foreground, visible, stopped, killed	


• when activity state changes a system
callback is called
Activity callbacks
• onCreate() - activity created	

• onStart() - activity visible for the user	

• onResume() - activity gains user focus	

• onPause() - system resuming another
activity	


• onStop() - activity becoming invisible to
the user
Activity callbacks
• onDestroy() - before activity is
destroyed	


• onRestart() - called if activity was

previously stopped, called prior to onStart()
Android development - the basics, MFF UK, 2013
Android development - the basics, MFF UK, 2013
Configuration changes
• when configuration changes, activities are
destroyed and recreated	


• default behaviour, can be changed	


• properly handle config changes	

•

onSaveInstanceState(Bundle)
Intent & Activity
• starting activity explicitly	

•

new Intent(context, MyActivity.class)!

•

new Intent(Intent.ACTION_VIEW, Uri.parse(“http://
developer.android.com”))!

• starting activity implicitly	

• starting activity for result
User Interface
• defined by a hierarchy of views	

• layouts = containers	

•

LinearLayout, RelativeLayout, FrameLayout, ...
User Interface
• widgets	

• UI objects	

• Button, TextView, EditText,
RadioButton, ...	


• WebView
User Interface
• list widgets	

• subclasses of AdapterView	

• display a list of items	

• use adapter to bind list do data	

•

ListView, GridView, Spinner, ...
Resources
• drawables	

• bitmaps	

• 9-patch png	

• state lists	

• layer lists	

• shape drawables
Resources
• layout	

• strings	

• colors	

• menus	

• dimensions	

• animations
Resources
• arrays	

• ids	

• raw	

• xml	

• ...
Screen sizes and
densities
Screen sizes and
densities
• How to handle different screen sizes and
densities?
Resources
• resources can be created in several
versions	


• the best version is selected according to
current device configuration in runtime	


• resource units	

• dp - density-independent pixel	

• sp - scale-independent pixel (for fonts)
Resource qualifiers
• suffixes for resource folders	

• drawables, drawable-mdpi, ...	

• values, values-cs	

• layout, layout-sw640dp	

• drawable-hdpi-v11
Resource qualifiers
• screen density - ldpi, mdpi, hdpi, xhdpi, ...	

• screen size - small, normal, large, xlarge	

• screen orientation - port, land	

• language - en, cs, sk, ...	

• version - v11, v14, ...
Resource qualifiers
• since Android 3.2	

• w<N>dp - available screen width, w600dp	

• h<N>dp - available screen heights, h720dp	

• sw<N>dp - smallest width (does not
change with orientation)
Resources
• accessed from code via generated R.java file
and resource ids	

• view.findViewById(R.id.txt_name)!
• txtName.setText(R.string.txt_name_label)
Android version
fragmentation
• How to handle different API levels available
on different devices?
Android version
fragmentation
• build target	

• API level the app is compiled against	

• AndroidManifest.xml	

•

<uses-sdk android:minSdkVersion="8"
android:targetSdkVersion="16" />
Android version
fragmentation
• handling versions in code	

if (Build.VERSION.SDK_INT <
Build.VERSION_CODES.GINGERBREAD) {!
// code for Android < 2.3!
}
Android version
fragmentation
private boolean functionalitySupported = false;!

!
static {!
try {!
checkFunctionalitySupported();!
} catch (NoClassDefFoundError e) {!
!

functionalitySupported = false;!

}!
}!

!
private static void checkFunctionalitySupported() throws !
!

!

!

!

!

!

NoClassDefFoundError {!

!
functionalitySupported = android.app.Fragment.class != null;!
}!
Fragments
• a piece of application UI	

• introduced to support more flexible UI	

• phones and tablets together in one app	

• fragment != activity	

• fragments are used within activities
Fragments
• since Android 3.0	

• support library v4 backports them to
Android 1.6+
Threads
• main thread = UI thread	

• do not ever block the UI thread!!!	

• use worker threads for time consuming
operations	


• UI toolkit not thread safe - never

manipulate UI from a worker thread
Menu
• menu resource	

• Android < 3.0 the whole menu hidden
under menu button	


• ActionBar since Android 3.0	

• items can be displayed in the action bar
Menu
• behaviour for items that don’t fit in the
action bar	


• hidden under menu button (if the device
has one)	


• system overflow icon in the action bar
Dialogs
• floating window screen
Dialogs
• standard dialogs	

• custom dialogs	

• activity with dialog style	

• since fragments used via DialogFragment
Dialogs
• might be tedious to create	

• difficult to style	

• StyledDialogs	

•

https://github.com/inmite/android-styled-dialogs	


• the library makes styling and using dialogs
a piece of cake
Toast
• simple non-modal information	

• displayed for a short period of time	

• doesn’t have user focus
Notifications
• a message that can be displayed to the user
outside your normal UI	


• displayed in notification area
Notifications
• user can open notification drawer to see
the details	


• app can define UI and click action	

•

NotificationCompat.Builder
Preferences
SharedPreferences prefs = PreferenceManager!
.getDefaultSharedPreferences(context);!

!
SharedPreferences prefs =

!

config.getSharedPreferences(PREFS_FILE_NAME,!
Activity.MODE_PRIVATE);!

!
int storedValue = prefs.getInt(SOME_KEY, defaultValue);!

!
SharedPreferences.Editor editor = prefs.edit();!
editor.putInt(SOME_KEY, storedValue);!
editor.commit();
Sources
• developer.android.com	

• android-developers.blogspot.com	

• source.android.com	

• stackoverflow.com	

• youtube.com/androiddevelopers	

• svetandroida.cz
THE END

More Related Content

PDF
Android development - the basics, MFF UK, 2012
PDF
Android development - the basics, MFF UK, 2014
PDF
Android development - the basics, FI MUNI, 2012
KEY
Android app development basics
PPT
Android Programming Basic
PDF
Android Programming
PPTX
Android Development for Beginners with Sample Project - Day 1
PDF
Android - From Zero to Hero @ DEVit 2017
Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2014
Android development - the basics, FI MUNI, 2012
Android app development basics
Android Programming Basic
Android Programming
Android Development for Beginners with Sample Project - Day 1
Android - From Zero to Hero @ DEVit 2017

What's hot (20)

PDF
Android Presentation
PPTX
Tehran's 1st Android bootcamp - Part1
PPTX
Android
PPTX
Android Apps Development Basic
PPTX
What’s new in aNdroid [Google I/O Extended Bangkok 2016]
PPTX
Basics of Android
PPTX
Android terminologies
PPTX
Arduino - Android Workshop Presentation
PPTX
Android basic principles
PPT
Android Application Development Using Java
PDF
Android Development Workshop
PPTX
Android Development Basics
PDF
Introduction to Android Development
PPTX
Android Development Made Easy - With Sample Project
PPTX
Android overview
PDF
Android fundamentals and tutorial for beginners
PPT
Android application development
PPTX
Basic android-ppt
PDF
Android Development Tutorial V3
PPT
Introduction to Android, Architecture & Components
Android Presentation
Tehran's 1st Android bootcamp - Part1
Android
Android Apps Development Basic
What’s new in aNdroid [Google I/O Extended Bangkok 2016]
Basics of Android
Android terminologies
Arduino - Android Workshop Presentation
Android basic principles
Android Application Development Using Java
Android Development Workshop
Android Development Basics
Introduction to Android Development
Android Development Made Easy - With Sample Project
Android overview
Android fundamentals and tutorial for beginners
Android application development
Basic android-ppt
Android Development Tutorial V3
Introduction to Android, Architecture & Components
Ad

Similar to Android development - the basics, MFF UK, 2013 (20)

PDF
Android development first steps
PPTX
Windows 8 DevUnleashed - Session 1
PPT
Introduction to Android Development
PPTX
Android quick talk
PPT
android
PPT
Synapseindia android apps application development
PPT
Android OS
PDF
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
PPT
Introduction to android sessions new
PDF
Android Workshop_1
PPTX
Android Presentation
PPT
Google android os
PPT
Android Application Development Training by NITIN GUPTA
PPTX
Android development
PPT
Google android os
PDF
Android : Deep dive into developing MobileApp using Android
PPTX
Introduction to Android (before 2015)
PPTX
MDAD 2 - Introduction to the Android Framework
PDF
Don Thorp & Marshall Culpepper: Advanced Titanium Development for Android
PPSX
Android Introduction
Android development first steps
Windows 8 DevUnleashed - Session 1
Introduction to Android Development
Android quick talk
android
Synapseindia android apps application development
Android OS
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Introduction to android sessions new
Android Workshop_1
Android Presentation
Google android os
Android Application Development Training by NITIN GUPTA
Android development
Google android os
Android : Deep dive into developing MobileApp using Android
Introduction to Android (before 2015)
MDAD 2 - Introduction to the Android Framework
Don Thorp & Marshall Culpepper: Advanced Titanium Development for Android
Android Introduction
Ad

More from Tomáš Kypta (18)

PDF
Modern Android app library stack
PDF
Guide to the jungle of testing frameworks
PDF
Guide to the jungle of testing frameworks
PDF
Practical RxJava for Android
PDF
Practical RxJava for Android
PDF
Reactive programming on Android
PDF
Android Develpment vol. 3, MFF UK, 2015
PDF
Writing testable Android apps
PDF
Android Develpment vol. 2, MFF UK, 2015
PDF
ProGuard
PDF
Unit testing and Android
PDF
Android Development for Phone and Tablet
PDF
Reactive programming on Android
PDF
Android Libraries
PDF
Android Development 201
PDF
Užitečné Android knihovny pro vývoj a testování
PDF
Programování pro Android - úvod, FI MUNI, 2013
PDF
Stylování ActionBaru
Modern Android app library stack
Guide to the jungle of testing frameworks
Guide to the jungle of testing frameworks
Practical RxJava for Android
Practical RxJava for Android
Reactive programming on Android
Android Develpment vol. 3, MFF UK, 2015
Writing testable Android apps
Android Develpment vol. 2, MFF UK, 2015
ProGuard
Unit testing and Android
Android Development for Phone and Tablet
Reactive programming on Android
Android Libraries
Android Development 201
Užitečné Android knihovny pro vývoj a testování
Programování pro Android - úvod, FI MUNI, 2013
Stylování ActionBaru

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
KodekX | Application Modernization Development
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
cuic standard and advanced reporting.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Cloud computing and distributed systems.
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Approach and Philosophy of On baking technology
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
KodekX | Application Modernization Development
Encapsulation_ Review paper, used for researhc scholars
NewMind AI Weekly Chronicles - August'25 Week I
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Advanced methodologies resolving dimensionality complications for autism neur...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
cuic standard and advanced reporting.pdf
sap open course for s4hana steps from ECC to s4
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Cloud computing and distributed systems.
Review of recent advances in non-invasive hemoglobin estimation
Understanding_Digital_Forensics_Presentation.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Digital-Transformation-Roadmap-for-Companies.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy

Android development - the basics, MFF UK, 2013

  • 1. Android Development - the basics Tomáš Kypta
  • 2. Agenda • Android platform and ecosystem • Android SDK and development tools • Hello World • building blocks of Android apps & the manifest file • activities, widgets, intents
  • 3. Agenda • dialogs, toasts, notifications • fragments
  • 4. Android platform • Linux-based operating system • open-source (http://source.android.com/) • originally phone OS • tablet support (since Honeycomb, Android 3.0) • Google TV
  • 5. History • 2003, Android inc. • 2005, acquired by Google • Sep 2008, the first Android phone • T-Mobile G1 • May 2010, Froyo (Android 2.2) • Feb 2011, Honeycomb (Android 3.0)
  • 6. History • Oct 2011, Ice Cream Sandwich (Android 4.0) • July 2012, Jelly Bean (Android 4.1) • July 2013, Jelly Bean (Android 4.3) • Oct 2013, KitKat (Android 4.4)
  • 8. Android ecosystem • thousands of devices • the most popular mobile platform • 1.5 million new devices activated every day • September 3, 2013, 1 billion Android devices have been activated • most devices made by Samsung
  • 9. Google Play • app can be acquired by app stores • Google Play, http://play.google.com • other stores • > 50 billion apps have been installed from Google Play • July 2013, 1 million apps
  • 10. Google Play • purchasing • selling • Play Music, Play Books, ...
  • 11. Google Play • selling apps • 15 min return period • ads • AdMob, ... • in-app billing
  • 12. Android “problems” • fragmentation • manufacturer/carrier enhancements • updates & support • openness - low quality apps in Google Play • malware • users
  • 13. Android security • app can be installed directly • .apk file • user accepts app permissions when installing or updating the app
  • 14. Android security • Verify Apps (Android 2.3+) • checks every app install • Google Play can remotely uninstall harmful app
  • 17. Development • programming in “Java” • native apps possible (C++) • development tools platform friendly • Windows, Linux, Mac OS X
  • 18. Development • IDE support • Android Studio, IntelliJ IDEA, ADT plugin for Eclispse, Netbeans • you can freely develop on any device
  • 19. Android SDK • android - Android SDK and AVD Manager • adb - Android Debug Bridge • monitor - (ddms & hierarchyviewer) • emulator • lint, Traceview, ProGuard • docs, samples
  • 20. Libraries • compatibility libraries • v4 - backports lots of newer functionality to Android 1.6+ • Google Play In-app Billing
  • 21. Libraries • Google Play Services • Google Maps • Games • Google+ • Authorization
  • 22. Libraries • AdMob • Google Analytics, Flurry, Crittercism • Google Cloud Messaging
  • 25. Build
  • 28. Android building blocks • Activity • Service • Content provider • Broadcast receiver • AndroidManifest.xml
  • 29. Activity • screen with user interface • the only visual component • example - an email app • list of emails • details of an email • email composition
  • 30. Service • has no UI • long-running tasks • examples • music playback service • download service • sync service
  • 31. Content Provider • managers and shares application data • data storage doesn’t matter (db, web, filesystem) • apps can query and modify data through content provider • r/w permissions can be defined • examples - all system dbs (SMS, contacts, ...)
  • 32. Broadcast Receiver • responds to broadcasts • broadcasts are system wide • can be registered statically or dynamically • system or custom messages • examples - incoming SMS, incoming call, screen turned off, low baterry, removed SD card, BT device available, ...
  • 33. AndroidManifest.xml • defines what parts the app have • defines which endpoints are exposed • minimum/maximum API level • permissions • declare hardware and software features • require configuration
  • 34. Intent • asynchronous message • binds components together (all except Content Provider) • starting activities • starting services and binding to services • sending broadcasts
  • 35. Activity • a subclass of android.app.Activity • app usually has many activities • activities managed in activity stack • newly started activity is placed on the top of the stack
  • 36. Activity Lifecycle • activity can be in different states during its lifecycle • foreground, visible, stopped, killed • when activity state changes a system callback is called
  • 37. Activity callbacks • onCreate() - activity created • onStart() - activity visible for the user • onResume() - activity gains user focus • onPause() - system resuming another activity • onStop() - activity becoming invisible to the user
  • 38. Activity callbacks • onDestroy() - before activity is destroyed • onRestart() - called if activity was previously stopped, called prior to onStart()
  • 41. Configuration changes • when configuration changes, activities are destroyed and recreated • default behaviour, can be changed • properly handle config changes • onSaveInstanceState(Bundle)
  • 42. Intent & Activity • starting activity explicitly • new Intent(context, MyActivity.class)! • new Intent(Intent.ACTION_VIEW, Uri.parse(“http:// developer.android.com”))! • starting activity implicitly • starting activity for result
  • 43. User Interface • defined by a hierarchy of views • layouts = containers • LinearLayout, RelativeLayout, FrameLayout, ...
  • 44. User Interface • widgets • UI objects • Button, TextView, EditText, RadioButton, ... • WebView
  • 45. User Interface • list widgets • subclasses of AdapterView • display a list of items • use adapter to bind list do data • ListView, GridView, Spinner, ...
  • 46. Resources • drawables • bitmaps • 9-patch png • state lists • layer lists • shape drawables
  • 47. Resources • layout • strings • colors • menus • dimensions • animations
  • 48. Resources • arrays • ids • raw • xml • ...
  • 50. Screen sizes and densities • How to handle different screen sizes and densities?
  • 51. Resources • resources can be created in several versions • the best version is selected according to current device configuration in runtime • resource units • dp - density-independent pixel • sp - scale-independent pixel (for fonts)
  • 52. Resource qualifiers • suffixes for resource folders • drawables, drawable-mdpi, ... • values, values-cs • layout, layout-sw640dp • drawable-hdpi-v11
  • 53. Resource qualifiers • screen density - ldpi, mdpi, hdpi, xhdpi, ... • screen size - small, normal, large, xlarge • screen orientation - port, land • language - en, cs, sk, ... • version - v11, v14, ...
  • 54. Resource qualifiers • since Android 3.2 • w<N>dp - available screen width, w600dp • h<N>dp - available screen heights, h720dp • sw<N>dp - smallest width (does not change with orientation)
  • 55. Resources • accessed from code via generated R.java file and resource ids • view.findViewById(R.id.txt_name)! • txtName.setText(R.string.txt_name_label)
  • 56. Android version fragmentation • How to handle different API levels available on different devices?
  • 57. Android version fragmentation • build target • API level the app is compiled against • AndroidManifest.xml • <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />
  • 58. Android version fragmentation • handling versions in code if (Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD) {! // code for Android < 2.3! }
  • 59. Android version fragmentation private boolean functionalitySupported = false;! ! static {! try {! checkFunctionalitySupported();! } catch (NoClassDefFoundError e) {! ! functionalitySupported = false;! }! }! ! private static void checkFunctionalitySupported() throws ! ! ! ! ! ! ! NoClassDefFoundError {! ! functionalitySupported = android.app.Fragment.class != null;! }!
  • 60. Fragments • a piece of application UI • introduced to support more flexible UI • phones and tablets together in one app • fragment != activity • fragments are used within activities
  • 61. Fragments • since Android 3.0 • support library v4 backports them to Android 1.6+
  • 62. Threads • main thread = UI thread • do not ever block the UI thread!!! • use worker threads for time consuming operations • UI toolkit not thread safe - never manipulate UI from a worker thread
  • 63. Menu • menu resource • Android < 3.0 the whole menu hidden under menu button • ActionBar since Android 3.0 • items can be displayed in the action bar
  • 64. Menu • behaviour for items that don’t fit in the action bar • hidden under menu button (if the device has one) • system overflow icon in the action bar
  • 66. Dialogs • standard dialogs • custom dialogs • activity with dialog style • since fragments used via DialogFragment
  • 67. Dialogs • might be tedious to create • difficult to style • StyledDialogs • https://github.com/inmite/android-styled-dialogs • the library makes styling and using dialogs a piece of cake
  • 68. Toast • simple non-modal information • displayed for a short period of time • doesn’t have user focus
  • 69. Notifications • a message that can be displayed to the user outside your normal UI • displayed in notification area
  • 70. Notifications • user can open notification drawer to see the details • app can define UI and click action • NotificationCompat.Builder
  • 71. Preferences SharedPreferences prefs = PreferenceManager! .getDefaultSharedPreferences(context);! ! SharedPreferences prefs = ! config.getSharedPreferences(PREFS_FILE_NAME,! Activity.MODE_PRIVATE);! ! int storedValue = prefs.getInt(SOME_KEY, defaultValue);! ! SharedPreferences.Editor editor = prefs.edit();! editor.putInt(SOME_KEY, storedValue);! editor.commit();
  • 72. Sources • developer.android.com • android-developers.blogspot.com • source.android.com • stackoverflow.com • youtube.com/androiddevelopers • svetandroida.cz