Duration
5 days
Objectives
- Understand the Android OS architecture.
- Install and use appropriate tools for Android development, including IDE, device emulator, and profiling tools.
- Understand the Android application architecture, including the roles of the task stack, activities, and services.
- Build user interfaces with fragments, views, form widgets, text input, lists, tables, and more.
- Use advanced UI widgets for scrolling, tabbing, and layout control.
- Present menus via the Android action bar and handle menu selections.
- Store application data on the mobile device, in internal or external storage locations.
- Support user-specific preferences using the Android Preferences API.
Course Outline
- The Android Operating System
- Mobile Form Factors
- Versions of Android
- Applications and APK Files
- Process Architecture
- The Role of Java
- Hello, Dalvik
- What's In, What's Out
- Services
- User Interface
- Memory and Storage
- Operating-System Services
- Inter-Process Communication
- Android Development
- The Android SDK
- The SDK and AVD Managers
- Configuring the Emulator
- Eclipse
- Resources
- APK Files
- Build Process
- The R Class
- Assets
- The Dalvik Debug Monitor Server
- The Android Debugger (adb)
- Command Shells
- The Android Log and LogCat
- Ant
- Applications
- Activities and Fragments
- Activity Lifecycle
- The onCreate Method
- Layouts and Views
- The findViewById Method
- Tasks and the "Back Stack"
- Intents and Results
- startActivity and Related Methods
- Custom Application Classes
- Shared Application State
- User Interface Design
- XML Layouts
- Layout Parameters
- The Box Model
- Gravity
- The LayoutInflater Service
- The <LinearLayout>
- The <RelativeLayout>
- Views and Adapters
- Form Widgets
- Fragments and Multi-Form Design
- The Fragments API
- Fragment Lifecycle
- Relationship Between Activity and Fragment
- Possible Cardinalities
- Communication between Activity and Fragment
- Fragment Arguments
- Callback Interfaces
- Designing for Multiple Form Factors
- Fragments on the Back Stack
- Views, Adapters, and Dialogs
- Styles and Themes
- <include> and <merge>
- View Orientation
- Adapters
- Dialog Fragments
- Showing and Managing Dialogs
- Using AlertDialog
- Working with Text
- The <TextView>
- The <EditText>
- Input Methods
- Input Types: Phone, E-mail, Date, Time ...
- DatePicker and TimePicker
- Date- and Time-Picking Dialogs
- Providing Auto-Completion
- Using the Clipboard
- Linkification
- Working with Lists
- AdapterView and Subclasses
- Adapter and Subinterfaces
- ListView and ListAdapter
- ListFragment
- Spinner and SpinnerAdapter
- Handling Item Selection
- Custom Adapters
- ExpandableListView and ExpandableListAdapter
- Working with Tables
- The <TableLayout> and <TableRow>
- Defining Table Cells
- Static Table Layouts
- Dynamic Tables
- Binding Data
- Using a Template Row
- Managing IDs
- Graphics and Low-Level Events
- Drawing on a Canvas
- The Paint Object
- Handling Size and Orientation Changes
- Handling Touch Events
- Working with Drawables
- Shape Drawables
- Bitmap Drawables
- 9-Patch Bitmaps
- Custom Drawables
- The Drawing Cache and Working with Bitmaps
- Menus and the Action Bar
- Options and Context Menus
- The Action Bar
- Menu Resources
- The MenuInflater Service
- The <Menu>
- The Menu and MenuItem Classes
- Handling Menu Selections
- The Escape from switch/case!
- Using a Dispatch Map
- Building Menus Dynamically
- Local Storage
- The Android File System
- Internal Storage
- File Formats
- Parsing JSON
- Storage and the Application Lifecycle
- External Storage
- Private Storage vs. Public Media
- Permissions
- Checking for Availability
- Preferences
- Preferences Resources
- The PreferencesFragment
- The PreferencesManager
- Reading Preferences
Programme scope, delivery arrangements and suitability are confirmed during enquiry.