Get All Weeks Android App Components – Services, Local IPC, and Content Providers Quiz Answers
This 4 week MOOC builds upon the core Android app components and concurrency frameworks covered in Course 2 by focusing on started and bound services, local inter-process communication (IPC), and content providers. Case study apps will be examined from multiple perspectives to learn how to program these app components using Android’s material design paradigm.
Students will work incrementally on a hands-on project involving a material design-based RSS reader app. Each week you will add additional capabilities to the project, based on material covered in the lecture videos. You’ll spend roughly 4 hours per week watching video lectures, taking quizzes, and programming assignments with Java and Android.
Enroll on Coursera
Week 1: Android App Components – Services, Local IPC, and Content Providers Quiz Answers
Quiz 1: Module 1 – Overview of the Android App Components
Q1. Which of the following are ways in which the
Layers pattern structures software apps and infrastructure
(choose all that apply):
- Provides services beyond
the operating system and protocol stacks to enable components in a distributed system to communicate and manage data - Decomposes groups of subtasks into levels of
abstraction - Enables end-to-end communication by specifying
how data should be (un)packetized, addressed, transmitted, routed, and received - Partitions an overall system architecture into
groups of subtasks
Q2. Which of the following are reasons that layering
is applied in Android (choose all that apply):
- Reduces the complexity of APIs that app
developers must understand - Enables “plug and play” replacement of
certain layer implementations - Enhances systematic software reuse
- Increases context switching, synchronization,
and data copying overhead
Q3. Which of the following are implications of
being “higher” in the memory
hierarchy of a modern computing device (choose all that apply):
- CPU access latency is higher
- Cost is greater
- Memory bandwidth is slower
- CPU access latency is lower
Q4. Which of the following are correct statements of
Android linux RAM (choose all that apply):
- Apps running in user space can never access RAM
of other apps - All Android apps execute in user space RAM
- Android Linux executes in kernel space RAM
- User space is a less restrictive protection
domain than kernel space
Q5. Which of the following are true statements
about Android’s local and remote
inter-process communication (IPC) mechanisms (choose all that apply):
- These IPC mechanisms reside within the kernel’s
device driver framework - UNIX domain sockets are used to communicate
with remote UNIX servers - The Binder driver supports highly optimized LAN
and WAN communication - TCP/IP is used to access the Internet
Q6. Which of the following are true statements about
processes in Linux (choose all that apply):
- Processes appear at multiple layers in the
Android software stack - A process contains one thread by default
- A process provides units of execution for
instruction streams that run on processor cores - A process provides a unit of resource allocation
and protection
Q7. Which of the following are true statements
about the Android Hardware Abstraction Layer (HAL) (choose all that apply):
- Android apps rarely access the HAL directly
- It is implemented in kernel space to optimize
performance and is written largely in C - It is implemented in user space and is written
largely in Java - It shields higher layers of Android’s software
stack from Linux kernel idiosyncracies - It’s open source license ensures that all HAL
driver implementations are available in open-source form - It is implemented in user space and is written
largely in C/C++
Q8. Which of the following are true statements
about the the “Android Runtime” (ART) execution
environment that are not true for the Dalvik VM execution environment (choose all that
apply):
- It provides an “Ahead-of-Time” (AOT)
compiler - It provides a better garbage collector
- It provides a Just-in-Time (JiT) compiler
- It executes standard Java Bytecode
Q9. Which of the following are examples of app
components available in Android core libraries (choose all that apply):
- Stamped Locks
- Activity
- Service
- Threads
- Phasers
- Content Provider
Q10. Which of the following are benefits of the
Android Native Development Kit (NDK) (choose all that apply):
- It provides a managed runtime environment for
executing Java garbage collection efficiently - It can help enhance performance by minimizing
latency and maximizing throughput - It can help integrate existing C/C++ libraries
into Android apps - It can help improve portability across
heterogeneous Java platforms
Week 2: Android App Components – Services, Local IPC, and Content Providers Quiz Answers
Quiz 1: Module 2 – Started and Bound Services
Q1. Which of the following are ways in which
activities in Android are designed
to be “ephemeral” (choose all that apply):
- They perform long-duration operations and/or
access remote resources via background
threads/processes - They are destroyed and recreated to handle
runtime configuration changes - They are destroyed (and must be recreated later)
when the back button is pressed - They can interact with the user in powerful
ways
Q2. Which of the following are types of Android
services (choose all that apply):
- Background services
- Bound services
- Scheduled services
- Started services
Q3. Which of the following are examples of Android
“hybrid” services (choose all that apply):
- Activity Manager Service
- DownloaderService
- Alert service
- MusicPlaybackService
Q4. Which of the following lifecycle hook methods
apply to started services (choose all that apply):
- onRebind()
- onBind()
- onDestroy()
- onCreate()
- onStartCommand()
- onUnbind()
Q5. Which of the following service lifecycle hook
methods can be dispatched by Android when a bound service is
in the “running” state (choose
all that apply):
- onUnbind()
- onBind()
- onCreate()
- onDestroy()
Q6. Which of the following are examples of
differences between the onCreate() and onStartCommand() hook methods of
a started service (choose all that apply):
- onStartCommand() is called once when
startService() is first called, whereas onCreate() is called each time
startService() is called - onCreate() is called once when startService()
is first called, whereas onStartCommand() is called each
time startService() is called. - onStartCommand() receives the intent passed by
the client that calls start service, whereas onCreate() does not - onCreate() receives the intent passed by the
client that calls start service, whereas onStartCommand()
does not
Q7. Which of the following are correct statements
about the types of intents that can be used to create activities
and services (choose all that apply):
- An activity can be created via an explicit
intent - An activity can be created via an implicit
intent - A service can be created via an implicit intent
- A service can be created via an explicit
intent
Q8. Which of the following are reasons why the
MusicPlayer app is a simple example of a started service (choose all
that apply):
- It doesn’t need to spawn any internal threads
explicitly - There’s no communication from the service back
to the activity that invoked it - It is not started on-demand via the Activity
pattern - It runs the service in the same process as the
activity
Q9. Which of the following are benefits of the
IntentService framework (choose all that apply):
- It optimizes the scalability of concurrent
services on multi-core hardware platforms - It simplifies the creation of services that
process requests concurrently - It enables subclasses of IntentService to
interact with the user in sophisticated ways - It doesn’t require the complexity of the
Model-View-Presenter pattern to handle runtime
reconfiguration changes
Q10. Which of the following explain the role of a
deployment model in Android (choose all that apply):
- It makes it easy to run a service in the same
thread or different threads - It makes it easy to run a service in the same
process or different processes - It directs the physical deployment of services
to threads - It directs the physical deployment of services
to processes
Week 3: Android App Components – Services, Local IPC, and Content Providers Quiz Answers
Quiz 1: Module 3 – Android: Local Inter-Process Communication (IPC)
Q1. Which of the following are limitations with
using startService() to communicate between an activity and a service
(choose all that apply):
- startService() does not allow extras to be
passed with an intent in a consistent and useful manner - startService() doesn’t allow an extended
“conversations” - startService() does not work across process
boundaries - startService() incurs security and performance
drawbacks
Q2. Which of the following are are unusual or
disallowed use cases for activity and service communication (choose all
that apply):
- Using a broadcast receiver to communicate from
an activity to a started service - Using a messenger to communicate from a service
to an activity - Using startService() to communicate from a
service to an activity - Using a messenger to communicate from an
activity to a started service
Q3. Which of the following are limitations with
using bindService() to communicate between an activity and a service
(choose all that apply):
- bindService() doesn’t allow an extended
“conversations” - bindService() incurs security and performance
drawbacks - bindService() does not work across process
boundaries - bindService() does not allow extras to be
passed with an intent in a consistent and useful manner
Q4. Which of the following are correct statements
about an Android handler (choose all that apply):
- A handler implements the parcelable interface
- A handler can only run in the main thread of
control in a process - A handler can be used to send and process
messages in one or more threads within a single process - A handler often eliminates the need for apps to
use synchronizers - A handler can be used to send and process
messages in one or more threads running in different processes - A handler reference can be passed as data in a
message or as an extra in an intent
Q5. Which of the following are correct statements
about an Android messenger (choose all that apply):
- A messenger reference can be passed as data in
a message or as an extra in an intent - A messenger implements the parcelable interface
- A messenger can be used to send and process
messages in one or more threads within a single process - A messenger can be used to send and process
messages in one or more threads running in different processes
Q6. Which of the following are typical examples of
what a started service does after it receives an intent from
an activity (choose all that apply):
- It enhances in an extended conversation with the
activity - It performs some processing
- It returns results back to the activity via the
messenger reference - It returns a Binder reference to the activity
via its onBind() hook method - It obtains a reference to a messenger from the
intent - It launches the service using the activator
pattern
Q7. Which of the following are correct statements
about usage considerations for messengers (choose all that
apply):
- Messengers are best suited for simple
interactions and data types - Messengers shield app developers from
marshaling and demarshaling details of message content - Messengers are best suited for sophisticated
interactions and complex data types - App developers are responsible for marshaling
and demarshaling of message content
Q8. Which of the following is the behavior of the
Android Activity Manager Service when the onStartCommand() hook
method returns START_REDELIVER_INTENT (choose all that apply):
- It automatically restarts a killed service via
a new call to onStartCommand() and supplies a null intent - It does not automatically restart the killed
service, which must be explicitly restarted by an app - It communicates this return value back to the
client activity - It automatically restarts a killed service via
a new call to onStartCommand() and supplies the same intent as was
delivered this time
Q9. Which of the following methods must be called
to implement the Android “Concurrent Service Stopping”
idiom (choose all that apply):
- onBind()
- stopSelf()
- onUnbind()
- onStartCommand()
Q10. Which of the following are correct statements
about a bound service (choose all that apply):
- A bound service runs in the background
indefinitely until the mobile device is powered down - A bound service lives only while it serves other
app components - A bound service should be used when a client
component wants to have an extended conversation with the service - A bound service typically does not return a
result to the activity that bound to it
Week 4: Android App Components – Services, Local IPC, and Content Providers Quiz Answers
Quiz 1: Module 4 – Android Content Providers
Q1. Which of the following are reasons why Android
provides a content resolver class (choose all that apply):
- It stores data persistently in an SQLite
database - It provides additional services, such as change
notification - It enables a content provider to be shared by
multiple apps - It defines a schema that represents a resource
managed by a content provider
Q2. Which of the following are operations supported
on content resolvers (choose all that apply):
- insert()
- bulkInsert()
- bulkDelete()
- read()
Q3. Which of the following are actual behaviors of
XML attributes that can be used to define a provider
declaration in an AndroidManifest.xml file (choose all that apply):
- Grant permissions to allow other apps to read or
write to the provider - List configuration changes that the provider
will handle itself - Designate if the content provider runs in a
separate process or not - Indicate the task that the provider has an
affinity for
Q4. Which of the following are terms that appear in
the acronym “ACID” (choose all that apply):
- Implicit
- Concurrent
- Isolated
- Atomic
- Durable
- Consistent
- Asynchronous
- Database
Q5. Which of the following are reasons why Android
apps typically use concurrency
or asynchrony when accessing an SQLite database (choose all that apply)
- SQLite supports the SQL92 specification, which
is obsolete - SQLite doesn’t support synchronous operations
- Filesystem accesses are often relatively slow
- Android filesystems are unreliable due to their
use of flash memory
Q6. Which of the following are reasons why the
SQLite query() method returns
a Cursor (choose all that apply):
- It alleviates the need to explicitly call
close() on the Cursor - It is efficient since all data needn’t be loaded
into memory - It allows buffering of query results
- It ensures that query results work properly in
concurrent programs
Q7. Which of the following are reasons for using a
content provider in an app (choose all that apply):
- To offer complex data to other apps
- To support user-facing operations in different
configuration orientations - To enable long-duration operations to execute
in the background - To notify activities automatically when data
changes - To synchronize local data with remote data
- To launch components on-demand in response to
intents from other components
Q8. Which of the following are parts of a content
URI (choose all that apply):
- An optional part that points to an individual
row in a table - Metadata defining the synchronization policy
for concurrent access - A name that points to a table or file
- The symbolic name of the provider
Q9. Which of the following are motivations for
content resolvers supporting
content observers (choose all that apply):
- To initialize the associated content provider
when it’s first created - To designate rows and columns to return via a
cursor - To map content URI patterns to integer values
using wildcard characters - To avoid requiring apps from having to poll for
updates to data storage
Q10. Which of the following are correct statements
about why the HobbitActivity
defines the HobbitOps class (choose all that apply):
- To create and manage the SQLite database
- To manage the persistent storage of Hobbit
characters - To define the metadata and schema for the
SQLite database - To consolidate and simplify operations on the
HobbitContentProvider
Conclusion:
I hope this Android App Components – Services, Local IPC, and Content Providers Quiz Answers would be useful for you to learn something new from the Course. If it helped you, don’t forget to bookmark our site for more Quiz Answers.
This course is intended for audiences of all experiences who are interested in learning about new skills in a business context; there are no prerequisite courses.
Latest Comments