$30 off During Our Annual Pro Sale. View Details »

Android Lab

Android Lab

Android Lab
http://leonguyen.com

LeoNguyen.com

July 11, 2013
Tweet

More Decks by LeoNguyen.com

Other Decks in Programming

Transcript

  1. LeoNguyen.com

  2. 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
  3. Outline (cont) - Lab 05: An introduction to PhoneGap

  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. Lab 01 An introduction to Android

  9. 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)
  10. Exercise 1 Download and install JDK

  11. JDK & JRE

  12. Task 1 - Download JDK - Goto Java download site

    http://www.oracle. com/technetwork/java/javase/downloads/index.html
  13. Task 1 - Download JDK (cont) - Select Java Platform

    (JDK), choose your operation platform (eg Window X86) and download it
  14. 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
  15. 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"
  16. Task 3 - Config PATH .. (cont)

  17. 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.
  18. Exercise 2 Download ADT

  19. Task 1: Download ADT - Go to: http://developer.android.com/sdk/index.html

  20. Task 2: Open Android SDK Manager - Install Android API

  21. Task 3: Create Android Virtual Device - Goto Tools >

    Manage AVDs
  22. Task 3: Create Android Virtual Device (cont) - Choose New.

  23. Task 3: Create Android Virtual Device (cont) - Choose Start.

  24. Exercise 3 Write a Helloworld program (Use ADT)

  25. Task 1: Run Eclipse ADT - Open eclipse.exe

  26. Task 2: Create Android Application - Go to File >

    New > Android Application Project
  27. Task 2: Create Android Application (cont)

  28. Task 2: Create Android Application (cont) - The Main XML

    Layout: https://gist.github. com/leonguyen/5351679
  29. Task 3: Write a MainActivity program - Open MainActivity.java: https://gist.github.

    com/leonguyen/5351695
  30. Task 3: Write a MainActivity program (cont) - Enter code:

    https://gist.github.com/leonguyen/5301102
  31. Task 4: Execute your program - Choose "Run As" >

    "Android Application"
  32. Task 4: Execute your program (cont) - Select and start

    AVD.
  33. Task 4: Execute your program (cont) - Choose running Android

    device.
  34. Task 4: Execute your program (cont) - Choose AndroidLab.

  35. Exercise 4 Download AS

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

  37. Exercise 5 Write a Helloworld program (Use AS)

  38. Task 1: Run AS - Open Android Studio shortcut.

  39. Task 2: Create Android Application - Select New Project...

  40. Task 2: Create Android Application (cont) - Input Android application

    name.
  41. Task 2: Create Android Application (cont) - Input Android application

    icon.
  42. Task 2: Create Android Application (cont) - Select Android application

    activity.
  43. Task 2: Create Android Application (cont) - Input Android application

    activity name.
  44. Lab 02.1 Linear Layout

  45. Outline - Linear Layout - Linear Layout - Message -

    Linear Layout - Quiz - Linear Layout - Login - Linear Layout - Register - Linear Layout - Home
  46. Exercise 1 Linear Layout

  47. 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.
  48. 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".
  49. Task 1: Create XML Layout - Right click on the

    res/layout folder.
  50. Task 2: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5308746

  51. Task 3: Execute your program - Choose "Run As" >

    "Android Application"
  52. Exercise 2 Linear Layout - Message

  53. Task 1: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5325407

  54. Task 2: Execute your program - Choose "Run As" >

    "Android Application"
  55. Exercise 3 Linear Layout - Quiz

  56. Task 1: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5325424

  57. Task 2: Execute your program - Choose "Run As" >

    "Android Application"
  58. Exercise 4 Linear Layout - Login

  59. Task 1: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5329665

  60. Task 2: Execute your program - Choose "Run As" >

    "Android Application"
  61. Exercise 5 Linear Layout - Register

  62. Task 1: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5329865

  63. Task 2: Execute your program - Choose "Run As" >

    "Android Application"
  64. Exercise 6 Linear Layout - Home

  65. Task 1: Create XML Drawable - Right click on the

    res folder.
  66. Task 2: Defining an XML Drawable - Enter code: https://gist.github.com/leonguyen/5516102

  67. Task 3: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5515898

  68. Task 4: Execute your program - Choose "Run As" >

    "Android Application"
  69. Lab 02.2 Layout

  70. Outline - Relative Layout - Relative Layout - Reminder -

    Relative Layout - Work - Table Layout - Table Layout - Weather - Scroll View
  71. Exercise 1 Relative Layout

  72. Relative Layout - A layout is a view group that

    displays child views in relative positions.
  73. 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.
  74. Task 1: Create XML Layout - Right click on the

    res/layout folder.
  75. Task 2: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5309283

  76. Task 3: Execute your program - Choose "Run As" >

    "Android Application"
  77. Exercise 2 Relative Layout - Reminder

  78. Task 1: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5325475

  79. Task 2: Execute your program - Choose "Run As" >

    "Android Application"
  80. Exercise 3 Relative Layout - Work

  81. Task 1: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5329563

  82. Task 2: Execute your program - Choose "Run As" >

    "Android Application"
  83. Exercise 4 Table Layout

  84. 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.
  85. Task 1: Create XML Layout - Right click on the

    res/layout folder.
  86. Task 2: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5325531

  87. Task 3: Execute your program - Choose "Run As" >

    "Android Application"
  88. Exercise 5 Table Layout - Weather

  89. Task 1: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5325537

  90. Task 2: Execute your program - Choose "Run As" >

    "Android Application"
  91. Exercise 6 Scroll View

  92. Task 1: Create XML Layout - Right click on the

    res/layout folder.
  93. Task 1: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5331192

  94. Task 2: Execute your program - Choose "Run As" >

    "Android Application"
  95. Lab 02.3 List View Layout

  96. 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
  97. Exercise 1 List View

  98. 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.
  99. 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.
  100. Task 1: Create ListView Activity - Enter code: https://gist.github.com/leonguyen/5335106

  101. Task 2: Execute your program - Choose "Run As" >

    "Android Application"
  102. Exercise 2 List View with Custom Layout

  103. Task 1: Create XML Layout - Right click on the

    res/layout folder.
  104. Task 2: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5335460

  105. Task 3: Create ListView Activity - Enter code: https://gist.github.com/leonguyen/5335493

  106. Task 4: Execute your program - Choose "Run As" >

    "Android Application"
  107. Exercise 3 List View with Context Menu

  108. Task 1: Create ListView Activity - Enter code: https://gist.github.com/leonguyen/5335493

  109. Task 2: Register ListView for ContextMenu - Enter code.

  110. Task 3: Create Context Menu XML - Right click on

    the res/menu folder.
  111. Task 4: Defining an Context Menu XML - Enter code:

    https://gist.github.com/leonguyen/5345210
  112. Task 3: Create onCreateContextMenu() - Right click on editor.

  113. Task 4: Create onContextItemSelected() - Right click on editor.

  114. Task 5: Add menu - Enter code: https://gist.github.com/leonguyen/5344253

  115. Task 6: Execute your program - Choose "Run As" >

    "Android Application"
  116. Exercise 3 List View with Custom Adapter

  117. Task 1: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5335460

  118. Task 2: Create Custom Adapter class - Enter code: https://gist.github.com/leonguyen/5450429

  119. Task 3: Create List View Activity - Enter code: https://gist.github.com/leonguyen/5450482

  120. Task 4: Execute your program - Choose "Run As" >

    "Android Application"
  121. Exercise 4 List View with Custom ArrayList

  122. Task 1: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5632592

  123. Task 2: Create Custom Adapter class - Enter code: https://gist.github.com/leonguyen/5632608

  124. Task 3: Create List View Activity - Enter code: https://gist.github.com/leonguyen/5632651

  125. Task 4: Execute your program - Choose "Run As" >

    "Android Application"
  126. 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.
  127. 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.
  128. Lab 02.4 Menu

  129. Outline - Option Menu

  130. Exercise 1 Option Menu

  131. Task 1: Create Dialog XML Layout - Right click on

    the res/menu folder.
  132. Task 3: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5353541

  133. Task 3: Create onCreateContextMenu() - Right click on editor.

  134. Task 4: Add Option Menu - Enter code: https://gist.github.com/leonguyen/5353562

  135. Task 4: Execute your program - Choose "Run As" >

    "Android Application"
  136. Lab 02.5 Dialog

  137. Outline - Alert Dialog - Dialog with Custom Layout

  138. Exercise 1 Alert Dialog

  139. Task 1: Create Button in Main Layout - Edit file

    res/layout/activity_main.xml: https://gist.github. com/leonguyen/5351375
  140. Task 2: Create Alert Dialog program - Enter code: https://gist.github.com/leonguyen/5353961

  141. Task 3: Execute your program - Choose "Run As" >

    "Android Application"
  142. Exercise 2 Dialog with Custom Layout

  143. Task 1: Create Button in Main Layout - Edit file

    res/layout/activity_main.xml: https://gist.github. com/leonguyen/5351375
  144. Task 2: Create Dialog XML Layout - Right click on

    the res/layout folder.
  145. Task 3: Defining an XML Layout - Enter code: https://gist.github.com/leonguyen/5351420

  146. Task 3: Create Custom Dialog program - Enter code: https://gist.github.com/leonguyen/5351822

  147. Task 4: Execute your program - Choose "Run As" >

    "Android Application"
  148. Lab 02.6 Widget

  149. Outline - Widget

  150. 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.
  151. Exercise 1 Widget

  152. Task 1: Defining an Widget Drawable - Enter code: https://gist.github.com/leonguyen/5667758

  153. Task 2: Defining an Widget XML Layout - Enter code:

    https://gist.github.com/leonguyen/5667769
  154. Task 3: Create AppWidgetProviderInfo Metadata - Right click on the

    res/xml folder.
  155. Task 4: Defining AppWidgetProviderInfo Metadata - Enter code: https://gist.github.com/leonguyen/5667832

  156. Task 5: Create Widget Provider program - Enter code: https://gist.github.com/leonguyen/5667853

  157. Task 6: Declaring an App Widget in the Manifest -

    Enter code: https://gist.github.com/leonguyen/5667862
  158. Task 7: Execute your program - Choose "Run As" >

    "Android Application": http://youtu.be/L- TsvhrDoDg
  159. Lab 03.1 Shared Preferences

  160. Outline - Shared Preferences - Shared Preferences - Preference Activity

  161. 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.
  162. Exercise 1 Shared References

  163. Task 1: Defining Main XML Layout - Edit file res/layout/activity_main.xml:

    https://gist.github. com/leonguyen/5402754
  164. Task 2: Write a MainActivity program - Enter code: https://gist.github.com/leonguyen/5402780

  165. Task 3: Execute your program - Choose "Run As" >

    "Android Application": http://youtu. be/Gj2VkO8zxaM
  166. Exercise 2 Shared References - Reference Activity

  167. Task 1: Defining Main XML Menu - Edit file res/menu/main.xml:

    https://gist.github. com/leonguyen/5409423
  168. Task 2: Create Array XML Value - Right click on

    the res/values folder.
  169. Task 3: Defining Array XML Value - Edit file res/xml/arrays.xml:

    https://gist.github.com/leonguyen/5409973
  170. Task 4: Create Preference XML - Right click on the

    res/xml folder.
  171. Task 5: Defining Preference XML - Edit file res/xml/preferences.xml: https://gist.github.com/leonguyen/5409597

  172. Task 6: Create PreferenceActivity - Enter code: https://gist.github.com/leonguyen/5409613

  173. Task 7: Defining Android Manifest - Enter code: https://gist.github.com/leonguyen/5409836

  174. Task 8: Write MainActivity program - Enter code: https://gist.github.com/leonguyen/5410070

  175. Task 9: Execute your program - Choose "Run As" >

    "Android Application": http://youtu. be/CDyIaC3woZU
  176. Task 9: Execute your program (cont)

  177. Task 9: Execute your program (cont)

  178. Lab 03.2 SQLite

  179. Outline - SQLite - SQLite with Multiple Tables - SQLite

    with CRUD - SQLite with Multiple Tables CRUD - SQLite with Design Pattern
  180. Exercise 1 SQLite

  181. Task 1: Create Database class - Enter code: https://gist.github.com/leonguyen/5425508

  182. Task 2: Write a MainActivity program - Enter code: https://gist.github.com/leonguyen/5425557

  183. Task 3: Execute your program - Choose "Run As" >

    "Android Application"
  184. Exercise 2 SQLite with Multiple Tables

  185. Task 1: Create Entity class - Enter code: https://gist.github.com/leonguyen/5425418

  186. Task 2: Create Database Object class - Enter code: https://gist.github.com/leonguyen/5524350

  187. Task 3: Create Database Helper class - Enter code: https://gist.github.com/leonguyen/5524390

  188. Task 4: Write a MainActivity program - Enter code: https://gist.github.com/leonguyen/5524451

  189. Task 5: Execute your program - Choose "Run As" >

    "Android Application"
  190. Exercise 3 SQLite with CRUD

  191. Task 1: Create User Entity class - Enter code: https://gist.github.com/leonguyen/5425418

  192. Task 2: Create UserDA class with CRUD - Enter code:

    https://gist.github.com/leonguyen/5425683
  193. Task 3: Write a MainActivity program - Enter code: https://gist.github.com/leonguyen/5425704

  194. Task 4: Execute your program - Choose "Run As" >

    "Android Application"
  195. Exercise 4 SQLite with Multiple Tables CRUD

  196. Task 1: Create User Entity class - Enter code: https://gist.github.com/leonguyen/5425418

  197. Task 2: Create UserDA class with CRUD - Enter code:

    https://gist.github.com/leonguyen/5524722
  198. Task 3: Create Database Helper class - Enter code: https://gist.github.com/leonguyen/5525519

  199. Task 4: Write a MainActivity program - Enter code: https://gist.github.com/leonguyen/5525541

  200. Task 5: Execute your program - Choose "Run As" >

    "Android Application"
  201. Exercise 5 SQLite with Design Pattern

  202. UML Diagram

  203. Task 1: Create Person Abstract class - Enter code: https://gist.github.com/leonguyen/5683910

  204. Task 2: Create User Entity class - Enter code: https://gist.github.com/leonguyen/5683921

  205. Task 3: Create DB Config Enum - Enter code: https://gist.github.com/leonguyen/5683976

  206. Task 4: Create Table Helper class - Enter code: https://gist.github.com/leonguyen/5684167

  207. Task 5: Create User Table class - Enter code: https://gist.github.com/leonguyen/5684181

  208. Task 6: Create Data Manipulation Object class - Enter code:

    https://gist.github.com/leonguyen/5684403
  209. Task 7: Create Database class - Enter code: https://gist.github.com/leonguyen/5684414

  210. Task 8: Create UserDA class - Enter code: https://gist.github.com/leonguyen/5692560

  211. Task 9: Write a MainActivity program - Enter code: https://gist.github.com/leonguyen/5692570

  212. Lab 03.3 Internal.External

  213. Outline - Internal.External with File - External with SQLite

  214. 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.
  215. Exercise 1 Internal.External with File

  216. Task 1: Defining Main XML Layout - Enter code: https://gist.github.com/leonguyen/5452672

  217. Task 2: Register Storage permission - Enter code: https://gist.github.com/leonguyen/5452728

  218. Task 3: Write a MainActivity program - Enter code: https://gist.github.com/leonguyen/5452749

  219. Task 4: Execute your program - Choose "Run As" >

    "Android Application": http://youtu. be/6BE2BEnoZKM
  220. Task 4: Execute your program (cont)

  221. Exercise 2 External with SQLite

  222. Task 1: Create Database class - Enter code: https://gist.github.com/leonguyen/5465834

  223. Task 3: Write a MainActivity program - Enter code: https://gist.github.com/leonguyen/5425557

  224. Task 3: Execute your program - Choose "Run As" >

    "Android Application"
  225. Lab 04.1 Intent

  226. Outline - Intent - Intent Explicit

  227. 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 device’s 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.
  228. 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.
  229. Exercise 1 Intent

  230. Task 1: Defining Main XML Layout - Enter code: https://gist.github.com/leonguyen/5473266

  231. Task 2: Write a MainActivity program - Enter code: https://gist.github.com/leonguyen/5473386

  232. Task 3: Execute your program - Choose "Run As" >

    "Android Application": http://youtu. be/tJaNGzoGUG4
  233. Exercise 2 Intent Explicit

  234. Task 1: Defining Main XML Layout - Enter code: https://gist.github.com/leonguyen/5486271

  235. Task 2: Defining Second XML Layout - Enter code: https://gist.github.com/leonguyen/5486303

  236. Task 3: Write a MainActivity program - Enter code: https://gist.github.com/leonguyen/5486377

  237. Task 4: Write a SecondActivity program - Enter code: https://gist.github.com/leonguyen/5486384

  238. Task 5: Execute your program - Choose "Run As" >

    "Android Application": http://youtu.be/7ewZXibMFy4
  239. Lab 04.2 Content Provider

  240. Outline - Content Provider - Content Provider with Contact, Call

    Log Picker - Content Provider with Settings - Content Provider Custom
  241. 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.
  242. 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 user’s contact list, including people, phones, photos & groups. - MediaStore – contents of the user’s 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.
  243. Exercise 1 Content Provider

  244. Task 1: Defining Main XML Layout - Enter code: https://gist.github.com/leonguyen/5487428

  245. Task 2: Register Contact permission - Enter code: https://gist.github.com/leonguyen/5487519

  246. Task 3: Write a MainActivity program - Enter code: https://gist.github.com/leonguyen/5487527

  247. Task 4: Execute your program - Choose "Run As" >

    "Android Application": http://youtu. be/21AQ5NFtv-w
  248. Exercise 2 Content Provider with Contact, Call Log Picker

  249. Task 1: Defining Main XML Layout - Enter code: https://gist.github.com/leonguyen/5519593

  250. Task 2: Register Contact permission - Enter code: https://gist.github.com/leonguyen/5487519

  251. Task 3: Write a MainActivity program - Enter code: https://gist.github.com/leonguyen/5519616

  252. Task 4: Execute your program - Choose "Run As" >

    "Android Application": http://youtu. be/CzhJTPPx6oI
  253. Exercise 3 Content Provider with Settings

  254. Task 1: Defining Main XML Layout - Enter code: https://gist.github.com/leonguyen/5489929

  255. Task 2: Defining Item XML - Enter code: https://gist.github.com/leonguyen/5489952

  256. Task 3: Set Contact permission - Enter code: https://gist.github.com/leonguyen/5487519

  257. Task 4: Write a MainActivity program - Enter code: https://gist.github.com/leonguyen/5489972

  258. Task 5: Execute your program - Choose "Run As" >

    "Android Application": http://youtu.be/q--ak- eZkw8
  259. Lab 04.3 Broadcast Receiver

  260. Outline - Broadcast Receiver - Broadcast Receiver with Custom Intent

    - Broadcast Receiver with Incoming SMS - Broadcast Receiver with Incoming Phone Call
  261. 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.
  262. 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.
  263. Exercise 1 Broadcast Receiver

  264. Task 1: Create Broadcast Receiver class - Enter code: https://gist.github.com/leonguyen/5500078

  265. Task 2: Register Broadcast Receiver permission - Enter code: https://gist.github.com/leonguyen/5500092

  266. Task 3: Execute your program - Choose "Run As" >

    "Android Application": http://youtu. be/CuF9IakbEl0
  267. Exercise 2 Broadcast Receiver with Custom Intent

  268. Task 1: Defining Main XML Layout - Enter code: https://gist.github.com/leonguyen/5500996

  269. Task 2: Create Broadcast Receiver class - Enter code: https://gist.github.com/leonguyen/5501217

  270. Task 3: Register Broadcast Receiver permission - Enter code: https://gist.github.com/leonguyen/5501232

  271. Task 4: Write a MainActivity program - Enter code: https://gist.github.com/leonguyen/5501294

  272. Task 5: Execute your program - Choose "Run As" >

    "Android Application": http://youtu. be/SyLzgtC0Rgw
  273. Exercise 3 Broadcast Receiver with Incoming SMS

  274. Task 1: Create Broadcast Receiver class - Enter code: https://gist.github.com/leonguyen/5506820

  275. Task 2: Register Broadcast Receiver permission - Enter code: https://gist.github.com/leonguyen/5506839

  276. Task 3: Execute your program - Choose "Run As" >

    "Android Application": http://youtu.be/- CEKaJUV5ZM
  277. Exercise 4 Broadcast Receiver with Incoming Phone Call

  278. Task 1: Create Broadcast Receiver class - Enter code: https://gist.github.com/leonguyen/5506917

  279. Task 2: Register Broadcast Receiver permission - Enter code: https://gist.github.com/leonguyen/5506953

  280. Task 3: Execute your program - Choose "Run As" >

    "Android Application": http://youtu.be/Rj1I04fsQQk
  281. Lab 05 An introduction to PhoneGap

  282. 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)
  283. Outline - Download and install - Configure the project -

    Write a Hellworld program
  284. Exercise 1 Download and install

  285. Overview

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

  287. Exercise 2 Configure the project

  288. Task 1: Create ‘www’ folder - Create the ‘www’ folder

    under assets folder.
  289. Task 2: Copy PhoneGap libraries - Copy ‘cordova.js’ and ‘cordova.js’

    to Android project.
  290. Exercise 3 Write a Helloworld program

  291. Task 1: Create index.html - Create the ‘index.html’ under ‘assets/www’

    folder then enter code: gist.github.com/leonguyen/7036244
  292. Task 2: Add to Build Path - Right click on

    ‘cordova.jar’ then select Add to Build Path
  293. Task 3: Update Activity class - Enter code: gist.github.com/leonguyen/7036322

  294. Task 4: Configure the project metadata - Enter code: gist.github.com/leonguyen/7036370

  295. Task 4: Configure the project metadata (2)

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