Anda di halaman 1dari 296

LeoNguyen.

com

Outline
- Lab 01: An introduction to Android
- Lab 02.1: Linear Layout
- Lab 02.2: Layout
- Lab 02.3: List View Layout
- Lab 02.4: Menu
- Lab 02.5: Dialog
- Lab 02.6: Widget
- Lab 03.1: Shares Preferences
- Lab 03.2: SQLite
- Lab 03.3: Internal and External
- Lab 04.1: Intent
- Lab 04.2: Content Provider
- Lab 04.3: Broadcast Receiver

Outline (cont)
- Lab 05: An introduction to PhoneGap

References
- Developer Android (developer.android.com)
- Mobile Tus (mobile.tutsplus.com)
- Androidhive (www.androidhive.info)
- Code Of A Ninja (www.codeofaninja.com)
- Vogella (www.vogella.com/android.html)
- Java Papers (www.javapapers.com)
- Android-er (android-er.blogspot.com)
- Mkyong (http://bit.ly/12XCJOW)
- Java2s (www.java2s.com)
- Dan Clarke (dan.clarke.name)
- My Sample Code (www.mysamplecode.com)
- Android Design Patterns (www.androiddesignpatterns.com)
- Wagied Davids (w2davids.wordpress.com)

References (cont)
- MyDoople (www.mydoople.com)
- Android Dev (http://bit.ly/10IFFRm)
- Viralpatel (http://bit.ly/18ICNZd)
- Scaloid (blog.scaloid.org)
- Android UI (androiduiux.com)
- Android Begin (http://bit.ly/11f1Lri)
- Android Exp (http://bit.ly/Zm0ktu)
- Developer Feed (http://bit.ly/11MY1lR)
- Programmer Guru (android.programmerguru.com)
- Suvendu (http://bit.ly/10IHKge)
- Xamarin (http://bit.ly/15sGkpW)
- Marakana (http://bit.ly/13vM0y6)
- Grokking Android (www.grokkingandroid.com)

References (cont)
- Android Mobile Develope (http://bit.ly/148e7Wr)
- Android Patterns (www.androidpatterns.com)
- Tutorial Point (http://bit.ly/13vMmF9)
- Android Education (android-ed.blogspot.com)
- Tech Blog On (http://bit.ly/11f2Wa5)
- Android App Market (www.android-app-market.com)
- Java Code Geeks (http://bit.ly/18IFOsh)
- New Think Tank (http://bit.ly/13cXN5G)
- Android Aspect (www.androidaspect.com)
- Android Hub 4 You (www.androidhub4you.com)
- Surviving With Android (www.survivingwithandroid.com)
- Sachin Shelke (http://bit.ly/10R5kUG)
- Knowledge of Experience (http://bit.ly/13vNLv7)

References (cont)
- Android For Beginners (http://bit.ly/Zm2wRS)
- Clean Code (http://bit.ly/19yBbzX)
- Think Android (thinkandroid.wordpress.com)
- Romain Guy (http://bit.ly/13vOc91)
- Mr Bool (mrbool.commrbool.com)
- Android Guide Tips (http://bit.ly/Zm2Rns)
- The Android (http://bit.ly/12XIJHl)
- Android Tuts (androidituts.com)
- Traintelco (bit.ly/15YprUo)
- Pavand (bit.ly/15sWbqS)

Lab 01
An introduction to Android

Outline
- Download and install JDK
- Download Android Developer Tools (ADT)
- Write a Helloworld program (Use ADT)
- Download Android Studio
- Write a Helloworld program (Use AS)

Exercise 1

Download and install JDK

JDK & JRE

Task 1 - Download JDK


- Goto Java download site http://www.oracle.
com/technetwork/java/javase/downloads/index.html

Task 1 - Download JDK (cont)


- Select Java Platform (JDK), choose your operation platform (eg
Window X86) and download it

Task 2 - Install JDK


- Run the downloaded installer, which installs both the JDK (Java
Development Kit) and JRE (Java Runtime). By default the JDK and
JRE will be installed into directories C:\Program Files\Java

Task 3 - Config PATH environment variables


- Windows Operating System searches the current directory and the
directories listed in the PATH environment variable for executable
programs invoked from the CMD shell. It helps programmer can
compile Java code in CMD shell.
- Click the "Start" button > "Control Panel" > "System" > (Vista/7 only)
"Advanced system settings"

Task 3 - Config PATH .. (cont)

Task 4 - Verify the JDK Installation


- Launch a CMD shell > type java version to check that JDK is
properly installed and display its version, and javac to check Path work
properly too.

Exercise 2

Download ADT

Task 1: Download ADT


- Go to: http://developer.android.com/sdk/index.html

Task 2: Open Android SDK Manager


- Install Android API

Task 3: Create Android Virtual Device


- Goto Tools > Manage AVDs

Task 3: Create Android Virtual Device (cont)


- Choose New.

Task 3: Create Android Virtual Device (cont)


- Choose Start.

Exercise 3

Write a Helloworld program (Use ADT)

Task 1: Run Eclipse ADT


- Open eclipse.exe

Task 2: Create Android Application


- Go to File > New > Android Application Project

Task 2: Create Android Application (cont)

Task 2: Create Android Application (cont)


- The Main XML Layout: https://gist.github.
com/leonguyen/5351679

Task 3: Write a MainActivity program


- Open MainActivity.java: https://gist.github.
com/leonguyen/5351695

Task 3: Write a MainActivity program (cont)


- Enter code: https://gist.github.com/leonguyen/5301102

Task 4: Execute your program


- Choose "Run As" > "Android Application"

Task 4: Execute your program (cont)


- Select and start AVD.

Task 4: Execute your program (cont)


- Choose running Android device.

Task 4: Execute your program (cont)


- Choose AndroidLab.

Exercise 4

Download AS

Task 1: Download AS
- Go to: http://developer.android.com/sdk/installing/studio.html

Exercise 5

Write a Helloworld program (Use AS)

Task 1: Run AS
- Open Android Studio shortcut.

Task 2: Create Android Application


- Select New Project...

Task 2: Create Android Application (cont)


- Input Android application name.

Task 2: Create Android Application (cont)


- Input Android application icon.

Task 2: Create Android Application (cont)


- Select Android application activity.

Task 2: Create Android Application (cont)


- Input Android application activity name.

Lab 02.1
Linear Layout

Outline
- Linear Layout
- Linear Layout - Message
- Linear Layout - Quiz
- Linear Layout - Login
- Linear Layout - Register
- Linear Layout - Home

Exercise 1

Linear Layout

Linear Layout
- A layout is a view group that aligns all children in a single
direction, vertically or horizontally.
- All children of a LinearLayout are stacked one after the other,
so a vertical list will only have one child per row, no matter how
wide they are, and a horizontal list will only be one row high (the
height of the tallest child, plus padding). A LinearLayout respects
margins between children and the gravity (right, center, or left
alignment) of each child.

Layout weight
- To create a linear layout in which each child uses the same
amount of space on the screen, set the android:layout_height of
each view to "0dp" (for a vertical layout) or the android:
layout_width of each view to "0dp" (for a horizontal layout). Then
set the android:layout_weight of each view to "1".

Task 1: Create XML Layout


- Right click on the res/layout folder.

Task 2: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5308746

Task 3: Execute your program


- Choose "Run As" > "Android Application"

Exercise 2

Linear Layout - Message

Task 1: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5325407

Task 2: Execute your program


- Choose "Run As" > "Android Application"

Exercise 3

Linear Layout - Quiz

Task 1: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5325424

Task 2: Execute your program


- Choose "Run As" > "Android Application"

Exercise 4

Linear Layout - Login

Task 1: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5329665

Task 2: Execute your program


- Choose "Run As" > "Android Application"

Exercise 5

Linear Layout - Register

Task 1: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5329865

Task 2: Execute your program


- Choose "Run As" > "Android Application"

Exercise 6

Linear Layout - Home

Task 1: Create XML Drawable


- Right click on the res folder.

Task 2: Defining an XML Drawable


- Enter code: https://gist.github.com/leonguyen/5516102

Task 3: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5515898

Task 4: Execute your program


- Choose "Run As" > "Android Application"

Lab 02.2
Layout

Outline
- Relative Layout
- Relative Layout - Reminder
- Relative Layout - Work
- Table Layout
- Table Layout - Weather
- Scroll View

Exercise 1

Relative Layout

Relative Layout
- A layout is a view group that displays child views in relative
positions.

Positioning Views
- Some of the many layout properties available to views in a RelativeLayout
include:
android:layout_alignParentTop
If "true", makes the top edge of this view match the top edge of the parent.
android:layout_centerVertical
If "true", centers this child vertically within its parent.
android:layout_below
Positions the top edge of this view below the view specified with a resource ID.
android:layout_toRightOf
Positions the left edge of this view to the right of the view specified with a
resource ID.
These are just a few examples. All layout attributes are documented at
RelativeLayout.LayoutParams.

Task 1: Create XML Layout


- Right click on the res/layout folder.

Task 2: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5309283

Task 3: Execute your program


- Choose "Run As" > "Android Application"

Exercise 2

Relative Layout - Reminder

Task 1: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5325475

Task 2: Execute your program


- Choose "Run As" > "Android Application"

Exercise 3

Relative Layout - Work

Task 1: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5329563

Task 2: Execute your program


- Choose "Run As" > "Android Application"

Exercise 4

Table Layout

Table Layout
- A layout that arranges its children into rows and columns. A TableLayout
consists of a number of TableRow objects, each defining a row (actually, you
can have other children, which will be explained below). TableLayout
containers do not display border lines for their rows, columns, or cells. Each
row has zero or more cells; each cell can hold one View object. The table has
as many columns as the row with the most cells. A table can leave cells empty.
Cells can span columns, as they can in HTML.

Task 1: Create XML Layout


- Right click on the res/layout folder.

Task 2: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5325531

Task 3: Execute your program


- Choose "Run As" > "Android Application"

Exercise 5

Table Layout - Weather

Task 1: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5325537

Task 2: Execute your program


- Choose "Run As" > "Android Application"

Exercise 6

Scroll View

Task 1: Create XML Layout


- Right click on the res/layout folder.

Task 1: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5331192

Task 2: Execute your program


- Choose "Run As" > "Android Application"

Lab 02.3
List View Layout

Outline
- List View
- List View with Custom Layout
- List View with Context Menu
- List View with Custom Adapter
- List View with Custom ArrayList
- List View with Activity
- List View with Activity and Custom Main Layout
- List View with Thread

Exercise 1

List View

List View
- A view group that displays a list of scrollable items. The list
items are automatically inserted to the list using an Adapter that
pulls content from a source such as an array or database query
and converts each item result into a view that's placed into the
list.

ArrayAdapter
- Use this adapter when your data source is an array. By default,
ArrayAdapter creates a view for each array item by calling
toString() on each item and placing the contents in a TextView.

Task 1: Create ListView Activity


- Enter code: https://gist.github.com/leonguyen/5335106

Task 2: Execute your program


- Choose "Run As" > "Android Application"

Exercise 2

List View with Custom Layout

Task 1: Create XML Layout


- Right click on the res/layout folder.

Task 2: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5335460

Task 3: Create ListView Activity


- Enter code: https://gist.github.com/leonguyen/5335493

Task 4: Execute your program


- Choose "Run As" > "Android Application"

Exercise 3

List View with Context Menu

Task 1: Create ListView Activity


- Enter code: https://gist.github.com/leonguyen/5335493

Task 2: Register ListView for ContextMenu


- Enter code.

Task 3: Create Context Menu XML


- Right click on the res/menu folder.

Task 4: Defining an Context Menu XML


- Enter code: https://gist.github.com/leonguyen/5345210

Task 3: Create onCreateContextMenu()


- Right click on editor.

Task 4: Create onContextItemSelected()


- Right click on editor.

Task 5: Add menu


- Enter code: https://gist.github.com/leonguyen/5344253

Task 6: Execute your program


- Choose "Run As" > "Android Application"

Exercise 3

List View with Custom Adapter

Task 1: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5335460

Task 2: Create Custom Adapter class


- Enter code: https://gist.github.com/leonguyen/5450429

Task 3: Create List View Activity


- Enter code: https://gist.github.com/leonguyen/5450482

Task 4: Execute your program


- Choose "Run As" > "Android Application"

Exercise 4

List View with Custom ArrayList

Task 1: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5632592

Task 2: Create Custom Adapter class


- Enter code: https://gist.github.com/leonguyen/5632608

Task 3: Create List View Activity


- Enter code: https://gist.github.com/leonguyen/5632651

Task 4: Execute your program


- Choose "Run As" > "Android Application"

Loader
- Using a CursorLoader is the standard way to query a Cursor as
an asynchronous task in order to avoid blocking your app's main
thread with the query.
- When the CursorLoader receives the Cursor result, the
LoaderCallbacks receives a callback to onLoadFinished(), which
is where you update your Adapter with the new Cursor and the
list view then displays the results.

SimpleCursorAdapter
- Use this adapter when your data comes from a Cursor. When
using SimpleCursorAdapter, you must specify a layout to use for
each row in the Cursor and which columns in the Cursor should
be inserted into which views of the layout.

Lab 02.4
Menu

Outline
- Option Menu

Exercise 1

Option Menu

Task 1: Create Dialog XML Layout


- Right click on the res/menu folder.

Task 3: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5353541

Task 3: Create onCreateContextMenu()


- Right click on editor.

Task 4: Add Option Menu


- Enter code: https://gist.github.com/leonguyen/5353562

Task 4: Execute your program


- Choose "Run As" > "Android Application"

Lab 02.5
Dialog

Outline
- Alert Dialog
- Dialog with Custom Layout

Exercise 1

Alert Dialog

Task 1: Create Button in Main Layout


- Edit file res/layout/activity_main.xml: https://gist.github.
com/leonguyen/5351375

Task 2: Create Alert Dialog program


- Enter code: https://gist.github.com/leonguyen/5353961

Task 3: Execute your program


- Choose "Run As" > "Android Application"

Exercise 2

Dialog with Custom Layout

Task 1: Create Button in Main Layout


- Edit file res/layout/activity_main.xml: https://gist.github.
com/leonguyen/5351375

Task 2: Create Dialog XML Layout


- Right click on the res/layout folder.

Task 3: Defining an XML Layout


- Enter code: https://gist.github.com/leonguyen/5351420

Task 3: Create Custom Dialog program


- Enter code: https://gist.github.com/leonguyen/5351822

Task 4: Execute your program


- Choose "Run As" > "Android Application"

Lab 02.6
Widget

Outline
- Widget

Widget
- App Widgets are miniature application views that can be
embedded in other applications (such as the Home screen) and
receive periodic updates.
- To create an App Widget, you need the following:
+ AppWidgetProviderInfo object
Describes the metadata for an App Widget, such as the App
Widget's layout, update frequency, and the AppWidgetProvider
class.
+ AppWidgetProvider class implementation
Defines the basic methods that allow you to programmatically
interface with the App Widget, based on broadcast events.
+ View layout
Defines the initial layout for the App Widget, defined in XML.

Exercise 1

Widget

Task 1: Defining an Widget Drawable


- Enter code: https://gist.github.com/leonguyen/5667758

Task 2: Defining an Widget XML Layout


- Enter code: https://gist.github.com/leonguyen/5667769

Task 3: Create AppWidgetProviderInfo Metadata


- Right click on the res/xml folder.

Task 4: Defining AppWidgetProviderInfo Metadata


- Enter code: https://gist.github.com/leonguyen/5667832

Task 5: Create Widget Provider program


- Enter code: https://gist.github.com/leonguyen/5667853

Task 6: Declaring an App Widget in the Manifest


- Enter code: https://gist.github.com/leonguyen/5667862

Task 7: Execute your program


- Choose "Run As" > "Android Application": http://youtu.be/LTsvhrDoDg

Lab 03.1
Shared Preferences

Outline
- Shared Preferences
- Shared Preferences - Preference Activity

Shared Preferences
- The SharedPreferences class provides a general framework
that allows you to save and retrieve persistent key-value pairs of
primitive data types. You can use SharedPreferences to save
any primitive data: booleans, floats, ints, longs, and strings. This
data will persist across user sessions (even if your application is
killed).
+ getSharedPreferences() - Use this if you need multiple
preferences files identified by name, which you specify with the
first parameter.
+ getPreferences() - Use this if you need only one preferences
file for your Activity. Because this will be the only preferences file
for your Activity, you don't supply a name.

Exercise 1

Shared References

Task 1: Defining Main XML Layout


- Edit file res/layout/activity_main.xml: https://gist.github.
com/leonguyen/5402754

Task 2: Write a MainActivity program


- Enter code: https://gist.github.com/leonguyen/5402780

Task 3: Execute your program


- Choose "Run As" > "Android Application": http://youtu.
be/Gj2VkO8zxaM

Exercise 2

Shared References - Reference


Activity

Task 1: Defining Main XML Menu


- Edit file res/menu/main.xml: https://gist.github.
com/leonguyen/5409423

Task 2: Create Array XML Value


- Right click on the res/values folder.

Task 3: Defining Array XML Value


- Edit file res/xml/arrays.xml:
https://gist.github.com/leonguyen/5409973

Task 4: Create Preference XML


- Right click on the res/xml folder.

Task 5: Defining Preference XML


- Edit file res/xml/preferences.xml:
https://gist.github.com/leonguyen/5409597

Task 6: Create PreferenceActivity


- Enter code: https://gist.github.com/leonguyen/5409613

Task 7: Defining Android Manifest


- Enter code: https://gist.github.com/leonguyen/5409836

Task 8: Write MainActivity program


- Enter code: https://gist.github.com/leonguyen/5410070

Task 9: Execute your program


- Choose "Run As" > "Android Application": http://youtu.
be/CDyIaC3woZU

Task 9: Execute your program (cont)

Task 9: Execute your program (cont)

Lab 03.2
SQLite

Outline
- SQLite
- SQLite with Multiple Tables
- SQLite with CRUD
- SQLite with Multiple Tables CRUD
- SQLite with Design Pattern

Exercise 1

SQLite

Task 1: Create Database class


- Enter code: https://gist.github.com/leonguyen/5425508

Task 2: Write a MainActivity program


- Enter code: https://gist.github.com/leonguyen/5425557

Task 3: Execute your program


- Choose "Run As" > "Android Application"

Exercise 2

SQLite with Multiple Tables

Task 1: Create Entity class


- Enter code: https://gist.github.com/leonguyen/5425418

Task 2: Create Database Object class


- Enter code: https://gist.github.com/leonguyen/5524350

Task 3: Create Database Helper class


- Enter code: https://gist.github.com/leonguyen/5524390

Task 4: Write a MainActivity program


- Enter code: https://gist.github.com/leonguyen/5524451

Task 5: Execute your program


- Choose "Run As" > "Android Application"

Exercise 3

SQLite with CRUD

Task 1: Create User Entity class


- Enter code: https://gist.github.com/leonguyen/5425418

Task 2: Create UserDA class with CRUD


- Enter code: https://gist.github.com/leonguyen/5425683

Task 3: Write a MainActivity program


- Enter code: https://gist.github.com/leonguyen/5425704

Task 4: Execute your program


- Choose "Run As" > "Android Application"

Exercise 4

SQLite with Multiple Tables CRUD

Task 1: Create User Entity class


- Enter code: https://gist.github.com/leonguyen/5425418

Task 2: Create UserDA class with CRUD


- Enter code: https://gist.github.com/leonguyen/5524722

Task 3: Create Database Helper class


- Enter code: https://gist.github.com/leonguyen/5525519

Task 4: Write a MainActivity program


- Enter code: https://gist.github.com/leonguyen/5525541

Task 5: Execute your program


- Choose "Run As" > "Android Application"

Exercise 5

SQLite with Design Pattern

UML Diagram

Task 1: Create Person Abstract class


- Enter code: https://gist.github.com/leonguyen/5683910

Task 2: Create User Entity class


- Enter code: https://gist.github.com/leonguyen/5683921

Task 3: Create DB Config Enum


- Enter code: https://gist.github.com/leonguyen/5683976

Task 4: Create Table Helper class


- Enter code: https://gist.github.com/leonguyen/5684167

Task 5: Create User Table class


- Enter code: https://gist.github.com/leonguyen/5684181

Task 6: Create Data Manipulation Object class


- Enter code: https://gist.github.com/leonguyen/5684403

Task 7: Create Database class


- Enter code: https://gist.github.com/leonguyen/5684414

Task 8: Create UserDA class


- Enter code: https://gist.github.com/leonguyen/5692560

Task 9: Write a MainActivity program


- Enter code: https://gist.github.com/leonguyen/5692570

Lab 03.3
Internal.External

Outline
- Internal.External with File
- External with SQLite

Storage
- Internal storage are private to your application and other
applications cannot access them (nor can the user). When the
user uninstalls your application, these files are removed.
- External storage such as SD card can also store application
data, there's no security enforced upon files you save to the
external storage. All applications can read and write files placed
on the external storage and the user can remove them.

Exercise 1

Internal.External with File

Task 1: Defining Main XML Layout


- Enter code: https://gist.github.com/leonguyen/5452672

Task 2: Register Storage permission


- Enter code: https://gist.github.com/leonguyen/5452728

Task 3: Write a MainActivity program


- Enter code: https://gist.github.com/leonguyen/5452749

Task 4: Execute your program


- Choose "Run As" > "Android Application": http://youtu.
be/6BE2BEnoZKM

Task 4: Execute your program (cont)

Exercise 2

External with SQLite

Task 1: Create Database class


- Enter code: https://gist.github.com/leonguyen/5465834

Task 3: Write a MainActivity program


- Enter code: https://gist.github.com/leonguyen/5425557

Task 3: Execute your program


- Choose "Run As" > "Android Application"

Lab 04.1
Intent

Outline
- Intent
- Intent Explicit

Intent
- Intents are system messages, running around the inside of the
device, notifying applications of various events, from hardware state
changes (e.g.,an SD card was inserted), to incoming data (e.g., an
SMS message arrived),to application events (e.g., your activity was
launched from the devices main menu).
- Not only can you respond to intents, but you can create your own, to
launch other activities, or to let you know when specific situations arise
(e.g., raise such-and-so intent when the user click this button).
- Intents are asynchronous messages which allow Android
components to request functionality from other components of the
Android system. For example an Activity can send an Intents to the
Android system which starts another Activity.
- Three of the core components of an application activities, services,
and broadcast receivers are activated through messages, called
intents.

Explicit and Implicit


- Explicit intents designate the target component by its name
(the component name field, mentioned earlier, has a value set).
Since component names would generally not be known to
developers of other applications, explicit intents are typically
used for application-internal messages.
- Implicit intents do not name a target (the field for the
component name is blank). Implicit intents are often used to
activate components in other applications.

Exercise 1

Intent

Task 1: Defining Main XML Layout


- Enter code: https://gist.github.com/leonguyen/5473266

Task 2: Write a MainActivity program


- Enter code: https://gist.github.com/leonguyen/5473386

Task 3: Execute your program


- Choose "Run As" > "Android Application": http://youtu.
be/tJaNGzoGUG4

Exercise 2

Intent Explicit

Task 1: Defining Main XML Layout


- Enter code: https://gist.github.com/leonguyen/5486271

Task 2: Defining Second XML Layout


- Enter code: https://gist.github.com/leonguyen/5486303

Task 3: Write a MainActivity program


- Enter code: https://gist.github.com/leonguyen/5486377

Task 4: Write a SecondActivity program


- Enter code: https://gist.github.com/leonguyen/5486384

Task 5: Execute your program


- Choose "Run As" > "Android Application":
http://youtu.be/7ewZXibMFy4

Lab 04.2
Content Provider

Outline
- Content Provider
- Content Provider with Contact, Call Log Picker
- Content Provider with Settings
- Content Provider Custom

Content Provider
- ContentProvider manage access to a structured set of data. The main
methods are Query, Insert, Update and Delete.
- ContentResolver is a static proxy that communicates with a
ContentProvider to access its data, either from within the same
application or from another application.

Built-In Provider
- Android offers access to a wide range of system and user data using
ContentProviders.
- Browser bookmarks and browser history (requires permission
READ_HISTORY_BOOKMARKS and/or
WRITE_HISTORY_BOOKMARKS).
- CallLog recent calls made or received with the device.
- Contacts detailed information from the users contact list, including
people, phones, photos & groups.
- MediaStore contents of the users device: audio (albums, artists,
genres, playlists), images (including thumbnails) & video.
- Settings system-wide device settings and preferences.
- UserDictionary contents of the user-defined dictionary used for
predictive text input.
- Voicemail history of voicemail messages.

Exercise 1

Content Provider

Task 1: Defining Main XML Layout


- Enter code: https://gist.github.com/leonguyen/5487428

Task 2: Register Contact permission


- Enter code: https://gist.github.com/leonguyen/5487519

Task 3: Write a MainActivity program


- Enter code: https://gist.github.com/leonguyen/5487527

Task 4: Execute your program


- Choose "Run As" > "Android Application": http://youtu.
be/21AQ5NFtv-w

Exercise 2

Content Provider with Contact, Call Log Picker

Task 1: Defining Main XML Layout


- Enter code: https://gist.github.com/leonguyen/5519593

Task 2: Register Contact permission


- Enter code: https://gist.github.com/leonguyen/5487519

Task 3: Write a MainActivity program


- Enter code: https://gist.github.com/leonguyen/5519616

Task 4: Execute your program


- Choose "Run As" > "Android Application": http://youtu.
be/CzhJTPPx6oI

Exercise 3

Content Provider with Settings

Task 1: Defining Main XML Layout


- Enter code: https://gist.github.com/leonguyen/5489929

Task 2: Defining Item XML


- Enter code: https://gist.github.com/leonguyen/5489952

Task 3: Set Contact permission


- Enter code: https://gist.github.com/leonguyen/5487519

Task 4: Write a MainActivity program


- Enter code: https://gist.github.com/leonguyen/5489972

Task 5: Execute your program


- Choose "Run As" > "Android Application": http://youtu.be/q--akeZkw8

Lab 04.3
Broadcast Receiver

Outline
- Broadcast Receiver
- Broadcast Receiver with Custom Intent
- Broadcast Receiver with Incoming SMS
- Broadcast Receiver with Incoming Phone Call

Broadcast Receiver
- Broadcast Receiver simply respond to broadcast messages from
other applications or from the system itself. These messages are
sometime called events or intents.

System Events
Event Constant

Description

android.intent.action.BATTERY_CHANGED

Sticky broadcast containing the charging state, level,


and other information about the battery.

android.intent.action.BATTERY_LOW

Indicates low battery condition on the device.

android.intent.action.BATTERY_OKAY

Indicates the battery is now okay after being low.

android.intent.action.BOOT_COMPLETED

This is broadcast once, after the system has finished


booting.

android.intent.action.BUG_REPORT

Show activity for reporting a bug.

android.intent.action.CALL

Perform a call to someone specified by the data.

android.intent.action.CALL_BUTTON

The user pressed the "call" button to go to the dialer or


other appropriate UI for placing a call.

android.intent.action.DATE_CHANGED

The date has changed.

android.intent.action.REBOOT

Have the device reboot.

Exercise 1

Broadcast Receiver

Task 1: Create Broadcast Receiver class


- Enter code: https://gist.github.com/leonguyen/5500078

Task 2: Register Broadcast Receiver permission


- Enter code: https://gist.github.com/leonguyen/5500092

Task 3: Execute your program


- Choose "Run As" > "Android Application": http://youtu.
be/CuF9IakbEl0

Exercise 2

Broadcast Receiver with Custom Intent

Task 1: Defining Main XML Layout


- Enter code: https://gist.github.com/leonguyen/5500996

Task 2: Create Broadcast Receiver class


- Enter code: https://gist.github.com/leonguyen/5501217

Task 3: Register Broadcast Receiver permission


- Enter code: https://gist.github.com/leonguyen/5501232

Task 4: Write a MainActivity program


- Enter code: https://gist.github.com/leonguyen/5501294

Task 5: Execute your program


- Choose "Run As" > "Android Application": http://youtu.
be/SyLzgtC0Rgw

Exercise 3

Broadcast Receiver with Incoming SMS

Task 1: Create Broadcast Receiver class


- Enter code: https://gist.github.com/leonguyen/5506820

Task 2: Register Broadcast Receiver permission


- Enter code: https://gist.github.com/leonguyen/5506839

Task 3: Execute your program


- Choose "Run As" > "Android Application": http://youtu.be/CEKaJUV5ZM

Exercise 4

Broadcast Receiver with Incoming Phone Call

Task 1: Create Broadcast Receiver class


- Enter code: https://gist.github.com/leonguyen/5506917

Task 2: Register Broadcast Receiver permission


- Enter code: https://gist.github.com/leonguyen/5506953

Task 3: Execute your program


- Choose "Run As" > "Android Application":
http://youtu.be/Rj1I04fsQQk

Lab 05
An introduction to PhoneGap

References
- Getting started with PhoneGap in Eclipse for Android (adobe.
ly/H0NyLg)
- PhoneGap From Scratch (bit.ly/H0NDOW)
- Build a Feed Reader (bit.ly/1bDCxsZ)

Outline
- Download and install
- Configure the project
- Write a Hellworld program

Exercise 1

Download and install

Overview

Task 1 - Download
- Goto download site http://phonegap.com/install/

Exercise 2

Configure the project

Task 1: Create www folder


- Create the www folder under assets folder.

Task 2: Copy PhoneGap libraries


- Copy cordova.js and cordova.js to Android project.

Exercise 3

Write a Helloworld program

Task 1: Create index.html


- Create the index.html under assets/www folder then enter
code: gist.github.com/leonguyen/7036244

Task 2: Add to Build Path


- Right click on cordova.jar then select Add to Build Path

Task 3: Update Activity class


- Enter code: gist.github.com/leonguyen/7036322

Task 4: Configure the project metadata


- Enter code: gist.github.com/leonguyen/7036370

Task 4: Configure the project metadata (2)

Task 5: Run
- Choose "Run As" > "Android Application".

Anda mungkin juga menyukai