Programming Mobile Services for Android Handheld Systems: Communication

开始时间: 待定 持续时间: Unknown

所在平台: Coursera

课程类别: 信息,技术与设计

大学或机构: Vanderbilt University(范德堡大学)

授课老师: Douglas C. Schmidt



Explore 1600+ online courses from top universities. Join Coursera today to learn data science, programming, business strategy, and more.


第一个写评论        关注课程


This MOOC describes by example how to apply patterns and frameworks to alleviate the complexity of developing concurrent software for mobile devices via the use of object-oriented design techniques. A pattern describes a reusable solution to a common problem that arises within a particular context. A framework is an integrated set of components that collaborate to provide a reusable architecture for a family of related apps or services.  Frameworks can also be viewed as concrete realizations of patterns that facilitate direct reuse of detailed design and source code.

This MOOC will cover fundamental techniques, patterns, and data management issues of communicating with remote services. In particular, this MOOC course will cover Android mechanisms for interacting with remote services using HTTP and data marshalling with JSON. Remote interaction models, ranging from request on demand, polling, push, and sockets will be discussed. Students that complete this MOOC will have a solid understanding of how to build Android applications and services that can interact with remote services, synchronize data stored in local content providers with remote repositories, handle data marshaling, and perform error handling. Hands-on programming projects will require students to develop Android applications that interact with REST-based services.

The Mobile Cloud Computing with Android (MoCCA) Specialization

This is the fourth course of the six-course Mobile Cloud Computing with Android (MoCCA) Specialization. It has been designed as part of a Coursera Specialization designed to help learners create complex, cloud-based Android Applications, and includes a final “capstone” project for those who earn Verified Certificates across all six courses.

Note: We are proud to announce that the MoCCA specialization has already reached hundreds of thousands of learners around the globe. In its last iteration, we worked with Google to provide Nexus tablets, feedback from the Google App team, and the potential to be featured in the Google Play store to top course completers.

This time around, we are providing more flexibility for all of you busy learners. We are running the Programming Mobile Applications courses in more digestible one-month-long sections, each with a meaningful mini-project at the end. Additionally, we will be re-offering the courses more frequently. For example, new sessions of my two introductory courses will be launched on a monthly basis, so that you can find a convenient time to join us or pick up where you left off if you didn’t quite finish before.

For previous MoCCA students: If you have already earned a Verified Certificate in the previous version of this course, "Pattern-Oriented Software Architectures: Programming Mobile Services for Android Handheld Systems” offered in May 2014, you do not need to retake this course to continue towards the Specialization certificate and final project in 2015. Please consult the Specializations Help Center or contact the Coursera support team if you are not sure whether you qualify.

This MOOC and five others, taught by Dr. Adam Porter from the University of Maryland and Dr. Jules White from Vanderbilt University, have been designed to complement each other as part of the first trans-institution sequence of MOOCs taught on the Coursera platform, structured as follows:

  • The first two courses by Dr. Adam Porter, of the University of Maryland, are Programming Mobile Applications for Android Handheld Systems Part 1 and Part 2. They focus on the design and programming of user-facing applications.  

  • The third and fourth courses by Dr. Douglas Schmidt, of Vanderbilt University, are Programming Mobile Services for Android Handheld Systems: Concurrency and Communication. They focus on middleware systems programming topics, such as synchronous and asynchronous concurrency models, background service processing, structured data management, local inter-process communication and networking, and integration with cloud-based services.  

  • The fifth and sixth courses by Dr. Jules White, of Vanderbilt University, are Programming Cloud Services for Android Handheld Systems: Spring and Security.  They focus on how to connect Android mobile devices to cloud computing and data storage resources, essentially turning a device into an extension of powerful cloud-based services on popular cloud computing platforms, such as Google App Engine and Amazon EC2.

  • The final “capstone” project will require students to develop a complex mobile cloud computing application from the ground up.

Some of the programming assignments for these MOOCs will be coordinated.  

If you just want to take some of the MOOCs in this sequence or take them all in different order you’re certainly welcome to do so, and you’ll still learn a lot. However, if you take all the MOOCs in this sequence in the order presented you’ll gain a deeper, end-to-end understanding of handheld systems, their applications and services, as well as their integration into the cloud.


  • Section 0:

    • Part 1: Overview of Android Activity and Service Components

    • Part 2: Overview of Android Content Provider and Broadcast Receiver Components

  • Section 1: Android Services and Local IPC

    • Part 1: Overview of Started and Bound Services

    • Part 2: Programming Started Services

    • Part 3: Android IntentService

    • Part 4: Activity and Service Communication

    • Part 5: Service to Activity Communication Using Android Messenger

    • Part 6: Programming Bound Services with Messengers

    • Part 7: Overview of AIDL

    • Part 8: Programming Bound Services with AIDL

  • Section 2: Android Networking, Remote IPC, and Content Providers

    • Part 1: Overview of Android Network Programming with Sockets

    • Part 2: Overview of the HTTP Protocol and JSON

    • Part 3: Designing Android Applications with HTTP Communication

    • Part 4: Overview of Content Providers

    • Part 5: Advanced Content Provider Interactions

  • Section 3: Communication Patterns in Android

    • Part 1: Activating Services on Demand with the Activator Pattern

    • Part 2: Passing Commands to Services with the Command Processor Pattern

    • Part 3: Automating Marshaling and Demarshaling of Data with the Proxy Pattern

    • Part 4: Supporting Object-Oriented Remote Method Calls with the Broker Pattern

    • Part 5: Decoupling Producers from Consumers with the Publisher-Subscriber Pattern

  • Section 4: Case Study Applications

    • Part 1: The Acronym Application

    • Part 2: The Concurrent Downloads Application

    • Part 3: The Potlatch Application

Throughout this MOOC we'll focus on pattern-oriented software architecture, with an emphasis on concurrent programming in the context of Android middleware systems programming mechanisms, such as synchronous and asynchronous concurrency models, background service processing, storage and retrieval of structured data, and local inter-process communication (IPC) and networking. We illustrate by example how key pattern and framework concepts and relationships are applied in Android Services, Content Providers, Broadcast Receivers, and various secure local and remote IPC mechanisms from both an application and infrastructure perspective. Many code examples are shown throughout using Java, with case study projects used to reify the key points throughout all the modules in this section.





In this course, we will learn how to apply patterns and frameworks to alleviate the complexity of developing concurrent and networked applications and services on mobile devices running Android that connect to popular cloud computing platforms.