1. Introduction to the Android OS and the Android SDK
- Android and its history, the Open Handset Alliance and the Android Open Source Project.
- Overview of Android OS architecture and internals, the Dalvik Virtual Machine.
- Overview of required Java concepts and libraries and key concepts of mobile device development.
- Overview of the Android platform components (the key classes and UI components).
- The Android Software Developer Kit installation and developing your first application in Eclipse.
2. Exploring the Android SDK Tools
- Using the Eclipse IDE with the Android SDK (other IDEs will also be referenced)
- Using the command line to build applications: using
- ant and the SDK command line tools.
- An intro to Logging, debugging, and profiling with both Eclipse and DDMS (Dalvik Debug Monitor Server)
- An intro to the application life cycle: activities and tasks
- Using AppInventor and other rapid development tools.
3. Designing a Mobile Application in Android: The User Interface
- From idea to code: from use cases to class diagrams with UML and related tools.
- Designing layouts with views and components declaratively with XML (and visually with Eclipse)
- When to design layouts programmatically, creating custom views and components.
- Widgets, UI Events, UI Themes and Styles
- All about the application manifest configuration file.
- Resources and Assets, screen size compatibility, localization and OS compatibility.
4. Lists, Dialogs, Menus, Toasts and more
- Advanced Layouts, optimizing layouts using tools
- Lists and adapters, custom components
- Menus and submenus
- Using Toasts, Progress Bars, Spinners and more.
- The Webkit View
5. Activities and Intents in Depth
- Tips for a successful activity lifecycle: avoiding the FC (force close)
- All about Intents and Intent Filters
- Designing efficient UI navigation, inter-activity communication
6. Permissions, Maps and Persistence Part
- Security and Permissions
- An intro to the Google Maps API
- Shared Preferences
- File I/O and the SD Card
7. Background processing: Services, Alarms and Notifications
- Writing and Using Services
- Alarms
- Concurrency in Android: proper use of Java Threads
- Handlers, AsyncTasks and synchronizing with the UI thread
- All about Notifications
- Interprocess communication
8. Android UI Inputs, Accelerometer and sensors
- User Input via touchscreen, keyboard, trackball and d-pad
- Using the accelerometer effectively
- Additional sensors: compass, proximity, orientation
- Effective synchronization with UI and sensors.
9. Graphics with Canvas and Open GLES
- Drawing with Canvas, all about Drawables
- An OpenGL ES Primer: for both 2D and 3D
- Case Study in writing a 3D OpenGL game
10. Location and Networking APIs
- Using GPS Effectively
- About HTTP and networking
- Webservices and RSS: XML and JSON parsing examples
- Advanced networking with Protocol Buffers
11. Persistence Part 2, Broadcast Receivers
- Using the sqlLite database
- Data binding
- Content providers
- Broadcast Receivers: example SMS message handling
- Effective background processing
12. Media: playing, streaming and recording audio and video.
- Basic MediaPlayer usage and its limitations.
- Using SoundPool effectively.
- Advanced examples using the AudioTrack class.
- Audio and video streaming. using RTSP
13. Android 2.x and beyond: the latest APIs and Android Best Practices
- App Widgets and Live Folders and Live Wallpapers
- Using the Bluetooth API
- Using the Contacts API
- Gestures, Text-to-Speech and Speech Recognition
- Best Practices: Unit Testing, UI consistency, accessibility
- Best Practices: Profiling for performance, responsiveness and seamlessness
- Optimizations, tips and tricks to make development easier, faster
14. Selling Your Application and Advanced Android Topics
- Publishing your application on the Android Market and other markets.
- About ads, app pricing, and alternative revenue streams and marketing.
- Using AdWhirl the open source multi-network ad server and client
- Intro to the Android NDK - when and not to use C/C++ code
- Contributing back to the AOSP, how to build the Android OS from source.
- Porting Android to new devices, interfacing with hardware
|