![Page 1: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/1.jpg)
Walkthrough
![Page 2: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/2.jpg)
Curriculum Outline
5 units comprising 14 lessons
● Unit 1 : Getting Started
● Unit 2 : User Experience
● Unit 3 : Background Tasks
● Unit 4 : Data
● Unit 5 : Polish and Publish
![Page 3: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/3.jpg)
Getting Started
![Page 4: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/4.jpg)
Create Your First Android Apps
![Page 5: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/5.jpg)
Views, Layout, and Resources
![Page 6: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/6.jpg)
Resource That Help You Learn
● Official Android documentation
● Image Asset Studio
● Android Monitor page
● Official Android blog
● Android Developers blog
● Google I/O Codelabs
● Stack Overflow
● Android vocabulary
● Google Developer Training website
![Page 7: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/7.jpg)
Activities and Intents
![Page 8: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/8.jpg)
Debugging Apps
● All code has bugs
● Android Studio logging
● Android Studio debugger
● Working with breakpoints
● Changing variables
● Stepping through code
![Page 9: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/9.jpg)
Testing Your Apps
● Find and fix issues early
● Less costly
● Takes less effort
● Costs to fix bugs increases with time
$1 Specification Design Code QA Release
$10
$100
$1000
Cost to Fix
Discovery Time
Catch bugs
early!
![Page 10: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/10.jpg)
Using The Android Support Library
● What are the Android support libraries?
● Features
● Selected Libraries
● Setting up and using support libraries
![Page 11: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/11.jpg)
User Experience
![Page 12: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/12.jpg)
User Input Control
1. Button
2. Text field
3. Seek bar
4. Checkboxes
5. Radio buttons
6. Toggle
7. Spinner
![Page 13: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/13.jpg)
Menus
1. App bar with options menu
2. Contextual menu
3. Contextual action bar
4. Popup menu
![Page 14: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/14.jpg)
Screen Navigation
● Back navigation
● Hierarchical navigation
○ Up navigation
○ Descendant navigation
○ Navigation drawer for descendant navigation
○ Lists and carousels for descendant navigation
○ Ancestral navigation
![Page 15: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/15.jpg)
RecyclerView
Scrollable container for large data setsEfficient
uses and reuses limited number of views
Updates changing data fast
RecyclerView
![Page 16: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/16.jpg)
Drawables, Styles, and Themes
● Drawables
● Creating image assets
● Styles
● Themes
![Page 17: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/17.jpg)
Material Design
Material Design has guidelines on the use and implementation of
Android components
● Bottom Navigation● Buttons● Cards● Chips● Data Tables● Dialogs● Dividers
● Sliders● Snackbar● Toasts● Steppers● Subheaders● Text Fields● Toolbars
![Page 18: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/18.jpg)
Resources for Adaptive Layout
Layouts that look good on different
screen sizes, orientations,
and devices
![Page 19: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/19.jpg)
Testing The User Interfaces
● Testing Methods
● Automated Testing
● Using Espresso
● Testing Environment and Setup
● Creating Espresso Tests
● Espresso Test Examples
● Recording Tests
![Page 20: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/20.jpg)
Background Task
![Page 21: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/21.jpg)
AsyncTask & AsyncTaskLoader
Main Thread (UI Thread)
Worker ThreaddoInBackground()
onPostExecute()LoaderManager
AsyncTaskLoader AsyncTask WorkToDo
Request
Work
Receive
Result
Activity
![Page 22: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/22.jpg)
Connect to the Internet
1. Add permissions to Android Manifest
2. Check Network Connection
3. Create Worker Thread
4. Implement background task
a. Create URI
b. Make HTTP Connection
c. Connect and GET Data
5. Process results
a. Parse Results
![Page 23: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/23.jpg)
Broadcast Receivers
● Broadcast intents
● Broadcast receivers
● Implementing broadcast receivers
● Custom broadcasts
● Security
● Local broadcasts
![Page 24: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/24.jpg)
Services
A Service is an application component that can perform long-
running operations in the background and does not provide a
user interface
![Page 25: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/25.jpg)
Notifications
Message displayed to user outside regular app UI
■ Small icon
■ Title
■ Detail text
![Page 26: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/26.jpg)
Alarm Manager
● Not an actual alarm clock
● Schedules something to happen at a set time
● Fire intents at set times or intervals
● Goes off once or recurring
● Can be based on a real-time clock or elapsed time
● App does not need to run for alarm to be active
![Page 27: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/27.jpg)
Job Scheduler
● Used for intelligent scheduling of background tasks
● Based on conditions, not a time schedule
● Much more efficient than AlarmManager
● Batches tasks together to minimize battery drain
● API 21+ (no support library)
![Page 28: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/28.jpg)
Data
![Page 29: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/29.jpg)
Storing Data
● Shared Preferences—Private primitive data in key-value pairs
● Internal Storage—Private data on device memory
● External Storage—Public data on device or external storage
● SQLite Databases—Structured data in a private database
● Content Providers—Store privately and make available publicly
![Page 30: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/30.jpg)
Shared Preference
● Read and write small amounts of primitive data as key/valuepairs to a file on the device storage
● SharedPreference class provides APIs for reading, writing, andmanaging this data
● Save data in onPause()restore in onCreate()
![Page 31: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/31.jpg)
Setting UI
![Page 32: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/32.jpg)
SQLite
● Store data in tables of rows and columns (spreadsheet…)
● Field = intersection of a row and column
● Fields contain data, references to other fields, or references to other tables
● Rows are identified by unique IDs
● Column names are unique per table
![Page 33: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/33.jpg)
Content Provider
Activity / Adapter
ContentProvider
Data
ContentResolver
1. Activity/Adapter uses ContentResolver to query ContentProvider
2. ContentProvider gets data
3. ContentResolver returns data as Cursor
4. Activity/Adapter uses data
![Page 34: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/34.jpg)
Loaders
● Special purpose classes that manage loading data asynchronously in the background
● Introduced in Android 3.0
● Uses AsyncTask
![Page 35: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/35.jpg)
Polish and Publish
![Page 36: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/36.jpg)
Permissions, Performances, and Security
![Page 37: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/37.jpg)
Firebase and Admob
![Page 38: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/38.jpg)
Publish!
Publish on Google Play
● Make an APK
● Upload to Google Play
● Run alpha and beta tests
● Publish!
![Page 39: Android developer fundamentals training overview Part II](https://reader034.vdocuments.site/reader034/viewer/2022051523/5aad62bf7f8b9a3a238b47d7/html5/thumbnails/39.jpg)