Programming Handheld Systems with Android

开始时间: 09/26/2014 持续时间: 8 weeks

所在平台: Coursera

课程类别: 计算机科学

大学或机构: University of Maryland, College Park(马里兰大学学院园分校)

授课老师: Adam Porter



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.


Tentative Schedule

Week #1:

  • 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 Environment
  • 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 environment.

Week #2:

  • 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 mode).

Week #3:

  • Lecture #5 – The Intent Class
  • Lecture #6 – Permissions
  • Lab #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
  • Lab #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.

Week #4:

  • Lectures #8 – User Interface Classes - Part I
  • Lectures #9 – User Interface Classes - Part II
  • Lab #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 tablet.

Week #5:

  • Lecture #10 – Threads, Messages & Thread Pools
  • 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).

Week #6:

  • Lecture #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 bubble pops.

Week #7:

  • 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.

Week #8:

  • Lecture #20 – The ContentProvider Class
  • Lecture #21 – DataManagement I
  • Lecture #22 – DataManagement II
  • Lab #8a - Data Management (SQL): Students develop a database for storing and retrieving multimedia notes with textual tags.
  • Lab #8b - Mutlimedia Notes Content Provider: Students extend the multimedia notes database so multimedia notes can be shared via a ContentProvider across multiple applications. 

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. 





Introduction to the design and implementation of applications for handheld systems, such as smartphones and tablets, running the Android Platform.


android 马里兰大学帕克分校