Programming Handheld Systems with Android
持续时间: 8 weeks
Explore 1600+ online courses from top universities. Join Coursera today to learn data science, programming, business strategy, and more.
Handheld systems, such as smartphones and tablets are now the most
common way for people to access and interact with computing services. The demand for application
development skills is therefore growing at a breathtaking pace. These skills, however, are multi-‐
faceted, requiring students to master computer science and engineering principles, to learn the
details of specific mobile application platforms, and to design artistic and engaging user interfaces
that respond to how, where and why handheld applications are used.
This course will cover the fundamental programming principles, software
architecture and user experience considerations underlying handheld software applications and
their development environments. To bring these concepts alive, the course will involve in-‐depth, hands-‐on
examples, implemented in the Android Platform, the fastest growing segment of the handheld system
user base. Students will apply these teachings, also using the Android Platform, in laboratory projects and in a large-‐scale semester project.
Note: This course is part of a cross-institution course sequence.
This course and another, led by Drs. Douglas Schmidt and Jules White of Vanderbilt University, have been designed to complement each other. Therefore, some of the programming assignments and the course project for both courses will be coordinated. This course focuses on handheld systems and the design of user-facing applications, and will be taught first. The Vanderbilt University course will focus more on lower-level topics, such as operating system and background processing, networking, and computing cloud integration, The Vanderbilt University course is currently scheduled to be taught in late Spring 2014.
Nevertheless, each of these courses stands alone. Students are not required to take both. Those who do, however, will gain a much more detailed, end-to-end understanding of handheld systems and their applications.
- Lecture #0 - Handheld systems, their use,
and how this affects the design of handheld applications
- Lecture #1 – The Android Platform
- Lecture #2 – The Android Development
- Lab #1: Setup: Students identify required software & install it on
their personal computers. Students perform
several tasks to familiarize themselves with the Android Platform and development
- Lecture #3 – Application Fundamentals
- Lecture #4 – The Activity Class
- Lab #2 – The Activity Lifecycle & Reconfiguration: We'll build
applications that 1) trace the lifecycle callback methods issued by the Android
platform and that 2) change the application’s layout when the device
configuration changes (e.g., when the device moves from portrait to landscape
#5 – The Intent Class
- Lecture #6 – Permissions
#3a - Intents & Permissions: We'll build several applications that require starting multiple Activities via
standard and custom Intents, and that require non-default permissions.
- Lecture #7 – The Fragment Class
#3b – Tablet User Interfaces: We'll build two applications; one that has a series
of Activities for use on a phone; one that has a multi-pane user interface for
use on a tablet.
- Lectures #8 – User Interface Classes -
- Lectures #9 – User Interface Classes -
#4 – ToDoManager: We'll build a ToDo
list manager using the user interface elements discussed in lecture. The
application will use custom views for creatively displaying ToDo items in a
list. The application will display two different types of user interfaces,
based on whether the device on which it’s running is a small phone or a larger
- Lecture #10 – Threads, Messages &
- Lecture #11 – Notifications & Alarms
- Lecture #12 - Networking
- Lab #5 – Threads: We'll write
concurrent, multi-threaded code to load ToDo items from a networked server via background
threads (i.e., without blocking the main UI thread).
#14 – Multi-touch & Gestures
- Lab #6a - Gesture Sampler: Students build and application that accepts gesture input, such as using an "X" gesture to delete, using a "?" gesture to show help, etc.
- Lecture #15 – Graphics & Animation
- Lecture #16 – MultiMedia
- Lab #6b - Bubble Popper: We'll write an
application to display and animate bubbles (graphics that look like bubbles) on
the device's screen. When users touch the screen where a bubble appears, the
- Lecture #16 – Sensors
- Lecture #17 – Location & Maps
- Lab #7a - Obstacle Course: Students build
an application that uses the orientation of the device (tilting, rotating,
etc.) to guide an object around obstacles.
- Lecture #18 – The BroadcastReceiver Class
- Lecture #19 – The Service Class
- Lab #7b - Broadcast Receiver: We'll build an application that uses a
BroadcastReceiver to react when events such as connecting and disconnecting the charger occur. The application also
uses a Service to complete background processing when power and network connectivity conditions permit.
- Lecture #20 – The ContentProvider Class
- Lecture #21 –
- Lecture #22 – DataManagement II
- Lab #8a - Data Management (SQL): Students
develop a database for storing and retrieving multimedia notes with textual
- Lab #8b - Mutlimedia Notes Content Provider: Students extend the multimedia notes
database so multimedia notes can be shared via a ContentProvider across
Final Project: Data Collection Games
We'll implement the front end of a complex handheld
application involving many of the concepts presented in the class.