2. ¿What is Android?
Open source, open platform for mobile development
All the SDK, API and platform source is available
No need for licence or app review
You can replace any system app with your own
Official development site: developer.android.com
3. How it works?
Components architecture model
Every component provides his interface
Java programming
4. Useful programming tips
Avoid creating objects
Use native functions
Prefer static
Avoid internal getter o setter
Declare constants final
Avoid floats and enums
7. Design principles
Delight me in surprising
Real objects are more fun than buttons and menus
Let me make it mine
Get to know me
Keep it brief
Pictures are faster than words
Decide for me, but let me have the final say
http://developer.android.com/design/get-started/principles.html
10. Services
Perform long operations on background
Runs trough applications
A component can bind to a service to interact with and perform
interprocess communication (IPC)
Service states
Started
Bound
http://developer.android.com/guide/components/services.html
11. Content providers
Manages access to structured set of data
Provide mechanisms for defining data security
Connects data in one process with code running in another process
http://developer.android.com/guide/topics/providers/content-
providers.html
12. Broadcast receivers
Send broadcasts across applications
Registered by the context of the application dynamically
Registered statically in the android manifest
http://developer.android.com/reference/android/content/BroadcastRe
ceiver.html
13. Intents
Abstract description of an operation to be performed
Can be used to start activities, send broadcasts, start or bind services
Intent structure
Action. The general action to be performed
Data. The data to operate on, such a record on contacts, as a URI
Category. Gives additional information about the action to execute
Type. Specifies an explicit type (MIME types) of the intent data
Extras. This is a Bundle of additional information
http://developer.android.com/reference/android/content/Intent.html
14. Application Context
Interface to global information about an application environment
Abstract class whose implementation is provided by Android system
Allows access to application-specific resources and classes
Calls for application-level operations such as launching activities,
broadcasting and receiving intents
http://developer.android.com/reference/android/content/Context.htm
l
15. Bundle
Mapping to String values to various Parcelable types (Serializable)
Has methods to put <key,value>’s to the map
Has methods to get <key,value>’s from the map
Has a method to clear() the whole map
http://developer.android.com/reference/android/os/Bundle.html
16. Manifest
All applications must have a manifest in the root directory
Presents essential information the system must have before running
the app
It names the java package for the application
It describes the components of the application
It determines which processes will host application components
Declares permissions to access protected parts of the API
http://developer.android.com/guide/topics/manifest/manifest-
intro.html
17. User interface
Built using View and ViewGroup objects
A View is an object that draws something on the screen to interact
with
A ViewGroup is an object that holds other View’s and ViewGroup’s
objects in order to define the layout of the app
http://developer.android.com/guide/topics/ui/index.html
19. User interface layout
The effective way to define your layout is via XML
The name of the XML element is respective to the Android class it
represents
http://developer.android.com/guide/topics/ui/declaring-layout.html
21. Layouts
Defines the visual structure for a user interface
After declaring a layout in XML, it should be saved in the res/layout
project directory
When you compile your app, each layout is compiled into a View
resource
The layout should be loaded in the Activity.onCreate(Bundle b)
method
Call setContentView(R.layout.my_view)
27. Menus
Common UI component
Appears when the user touch the menu soft/hard button
Types of menus
Options menu and action bar
Context menu and contextual action menu
Pop up menu
http://developer.android.com/guide/topics/ui/menus.html
28. Defining a menu in XML
Defined in res/menu
Inflate the menu in the onCreate(Bundle b) method
Easier to visualize the menu structure in XML
Separates the content of the menu from the behavioral code
Allows to create alternative menu configurations
Allows to create submenus
32. Dialogs (1)
Dialogs content
Title
Optional, should be used only when the content area is occupied by a detailed message,
list or custom layout
Content area
This can display a message, a list or a custom layout
Action buttons
There should be no more than 3 action buttons in a dialog
33. Dialogs (2)
The alertDialog.Builder class provides API’s that allow you to create
an AlertDialog with the kinds of contents, including custom layouts
34. Dialogs (3)
To add action buttons call the setPositiveButton() and
setNegativeButton() methods
36. Toasts
Provides a simple feedback about an operation in a small popup
Fills the amount of space required for the message
http://developer.android.com/guide/topics/ui/notifiers/toasts.html
37. Toasts (1)
Instantiate a Toast object with one of the makeToast() methods
This method takes three parameters
Application context
String message
Toast duration (millis)
38. Custom Toasts
You can create customized layout for your toast notification
Define a view XML layout
Pass the root view object to the setView(View) method