1. Instructor Notes
To the instructor:
This slide set has been prepared with both the highlights from the student text as
well as notes from the text. The students will not be able to see the notes unless
you provide them with the slide set. You can choose whether or not to provide that
option.
The notes are best seen by directing the main presentation to the LCD projector
and keeping the Notes view open on the instructor’s PC. You will find that pausing
the presentation to do some kind of activity at least once every 20 minutes is
critical to keeping PowerPoint from become tedious. Since different people have
different presentation styles, it would be impossible to provide a clear timing
structure. You should allow ample time for each slide, including stopping for
activities.
In case you have not done this before, the instructor notes are found by pointing at
Slide Show on the Menu Bar. Click on the Set Up Slide Show option and select the
Multiple Monitors Show Presenter View.
Note: Presenter View also has a blackout button. Don’t be afraid to use it to
interrupt the tedium of staring at an LCD presentation when doing activities.
From Introduction to Android™ Application Development, Fifth Edition, by Joseph Annuzzi, Jr., Lauren Darcey, and Shane Conder (ISBN-13: 978-0-13-
438945-5)
2. Introduction to Android Application
Development, Android Essentials,
Fifth Edition
Chapter 2
Setting Up for Development
3. Chapter 2
Overview
Learn how to set up our Android development
environment
Look at many of the tools provided with the
Android SDK
Review the Android SDK License Agreement
Learn about many important SDK packages
Look at the sample applications available with the
SDK
4. Configuring Your
Development Environment
Android SDK compatible with Windows,
Macintosh, or Linux systems
Installation requirements for using this book:
– Java Development Kit (JDK), Version 7
• http://www.oracle.com/technetwork/java/javase/d
ownloads/index.html
– Android Studio (includes the Android SDK)
• http://d.android.com/sdk/index.html
5. Included with Android Studio
Android Studio
– SDK tools
– Platform tools
– The latest Android platform
– The latest Android system image for the
emulator
7. Alternative Configurations
(Cont’d)
When using other IDEs:
– Command-line tools
• http://d.android.com/tools/projects/projects-
cmdline.html
– Debugging
• http://d.android.com/tools/debugging/debugging-
projects-cmdline.html
– Testing
• http://d.android.com/tools/testing/testing_otheride
.html
8. Basic Installation Process
1. Download and install the appropriate JDK.
2. Download and install or unzip the appropriate
Android Studio package for your Operating
System.
3. Launch Android Studio and use the Android SDK
Manager to download and install specific Android
platform versions and other components.
4. Install appropriate USB drivers for device
debugging, if necessary.
5. Configure your device(s) for debugging.
6. Start developing.
10. Configuring Your Operating
System for Device Debugging
To install and debug on real devices:
– Configure OS to access device via USB
– Mac OS
• May work without any configuration
– Windows
• Requires appropriate USB driver
• http://d.android.com/sdk/win-usb.html
– Linux
• Requires additional steps
• http://d.android.com/tools/device.html
12. Configuring Android
Hardware for Debugging
Devices with Android 4.2+ have debugging
disabled by default.
– This requires enabling Developer Options.
1. From the Home screen, choose All Apps →
Settings → About Phone (or About
Tablet).
2. Scroll down to Build Number.
3. Press Build Number seven times to unlock
Developer Options.
13. Configuring Android
Hardware for Debugging
(Cont’d)
To install our own applications, configure our
device to install from Unknown sources.
1. From Home → All Apps → Settings →
Security.
2. Enable (check) Unknown sources.
– Skipping this step prevents us from installing
our apps to our own device.
15. Configuring Android
Hardware for Debugging
(Cont’d)
Enable some Developer Options settings.
– From Home → All Apps → Settings →
Developer options
• Then enable USB debugging.
17. Upgrading Android Studio
and the Android SDK
To stay up-to-date with the latest advancements:
– Upgrade from time to time
Updates include:
– New, updated, or removed features
– Package name changes
– Updated tools
– Essential documents
• Overview of Changes
• API Diff Report
• Release Notes
– See http://d.android.com/sdk/installing/adding-packages.html
18. Problems with Android Studio
and the Android SDK
There may be bugs!
– Find open issues and their status at the Android
project’s Issue Tracker website.
– Submit new issues for review.
– Issue tracker website:
• https://code.google.com/p/android/issues/list
– To report bugs or defects for Android Dev team:
• http://source.android.com/source/report-bugs.html
– Learn more about the bug-fixing process:
• http://source.android.com/source/life-of-a-bug.html
19. Exploring the Android SDK
Android SDK major components:
– Android SDK Platform by version
– Platform tools
– SDK Build Tools
– System images
– Google APIs
– Sources for Android SDK
– Extras
– Sample applications
20. The Android SDK License
Agreement
Before downloading the SDK, you must agree to
the Android SDK License Agreement.
– This agreement is between you and Google.
– Make sure that you understand this license even
if someone else has accepted the agreement on
your behalf!
21. The Android SDK License
Agreement (Cont’d)
Rights granted:
– Google grants you a limited, worldwide, royalty-
free, nonassignable, and nonexclusive license
to use the SDK solely to develop applications
for the Android platform.
– Google still holds all copyrights and intellectual
property rights to the SDK.
– Google does not grant permission to use any of
its brands, logos, or trade names.
– You will not remove any copyright notices
therein.
22. The Android SDK License
Agreement (Cont’d)
SDK usage:
– You may only develop Android applications with
the SDK.
• You may not make derivative works from the
SDK or distribute the SDK on any device.
• You may not distribute part of the SDK with
other software.
23. The Android SDK License
Agreement (Cont’d)
SDK changes and backward compatibility:
– Google may change the Android SDK at any
time without notice and without regard to
backward compatibility.
• Early APIs had frequent changes, but recent
releases are reasonably stable.
• Each SDK update does affect at least a small
number of apps.
– Updating your application is your own
responsibility.
24. The Android SDK License
Agreement (Cont’d)
Android application developer rights:
– You retain all rights to any Android software you
develop with the SDK, including intellectual
property rights.
– You also retain all responsibility for your own
work.
25. The Android SDK License
Agreement (Cont’d)
Android application privacy requirements:
– You agree that your application will protect the
privacy and legal rights of your users.
– If your app accesses personal and private info,
you must provide adequate privacy notice and
keep the data stored securely. These include
usernames, passwords, and so on.
– Privacy laws and regulations vary by user
location.
• You are solely responsible for managing this
data appropriately.
26. The Android SDK License
Agreement (Cont’d)
Android application malware requirements:
– You are responsible for all applications you
develop.
– You agree not to write disruptive applications or
malware.
– You are solely responsible for all data
transmitted through your application.
27. The Android SDK License
Agreement (Cont’d)
Additional terms for specific Google APIs:
– Use of APIs such as Google Maps Android API is
subject to further Terms of Service.
• You must agree to these additional terms before
using those specific APIs.
• You must always include the copyright notice,
too.
– Other API terms include Gmail, Blogger, Google
Calendar, and YouTube.
• Your application’s usage is limited to accessing
those to which your user has explicitly granted
permission.
28. The Android SDK License
Agreement (Cont’d)
Develop at your own risk!
– Any harm that comes from developing with the
Android SDK is your own fault and not
Google’s.
29. Reading the Android SDK
Documentation
Read locally or online:
– Online at http://d.android.com/index.html
31. Exploring the Core Android
Application Framework
Which file comprises the Android framework?
– android.jar
32. Important Packages in the
Android SDK
Top-Level Package Name Description
android.* Android application fundamentals
dalvik.* Dalvik virtual machine support classes
java.* Core classes and familiar generic utilities
javax.* Encryption support
junit.* Unit-testing support
org.apache.http.* HTTP protocol support
org.json JSON support
org.w3c.dom W3C DOM XML and HTML support
org.xml.* SAX support for XML
org.xmlpull.* High-performance XML pull parsing
33. Popular Third-Party Android APIs
Available outside the core Android SDK
Installed separately
Some are from Google, others from device
manufacturers and other providers
34. Popular Third-Party Android APIs
(Cont’d)
Android Support Library
Google Mobile Ads SDK (com.google.android.gms.ads.*)
Google Analytics SDK for Android
(com.google.android.gms.analytics.*)
Android Cloud Messaging for Android (GCM)
(com.google.android.gms.gcm)
Google App Indexing
(com.google.android.gms.appindexing)
Google App Invites (com.google.android.gms.appinvite)
Google Play Game Services
(com.google.android.gms.games)
Google Fit (com.google.android.gms.fitness)
35. Exploring the Core Android
Tools
Android Studio
– Where you spend most of your time developing
your apps
– Provides wizards for creating, debugging, and
deploying Android apps
– Several buttons available on the toolbar for
performing helpful actions
36. Android Studio
Launch the Android Virtual Device Manager
Launch the Android SDK Manager
Launch the Android Device Monitor
38. Android SDK and AVD
Managers
The first Android toolbar icon launches the
Android Virtual Device Manager.
The second Android toolbar icon launches the
Android SDK Manager.
42. Android Emulator
Helpful tool used for designing and developing
Android applications
Runs on your computer
Behaves like a real device
Load Android applications into the emulator to test
and debug them
Generic device, not tied to any one specific
configuration
Valuable, but should not be used as a replacement
for testing on actual target devices
45. Exploring the Android Sample
Applications
Demo applications are not provided as part of the Android
SDK by default.
– Android Studio provides a dialog for importing the sample
applications—from GitHub—as a project.
Android Studio sample applications code categories to
investigate:
– Getting started
– Background
– Input
– Media
– Connectivity
– Notification
– Wearable
46. Chapter 2
Summary
We have learned how to install and configure
the tools for Android development.
– JDK, SDK, ADT Bundle
We have explored many of the tools provided
with the Android SDK.
We have reviewed the Android SDK License
Agreement.
We have learned about important SDK
packages.
We have perused the sample applications
provided with the SDK.
47. References and More
Information
Google’s Android Developers Guide:
– http://d.android.com/guide/components/index.html
Android SDK download site:
– http://d.android.com/sdk/index.html
Android SDK License Agreement:
– http://d.android.com/sdk/terms.html
The Java Platform, Standard Edition:
– http://www.oracle.com/technetwork/java/javase/overview/index.html
JetBrains:
– https://www.jetbrains.com/
Android Developer Tools:
– https://developer.android.com/tools/help/adt.html
The Eclipse Project:
– http://www.eclipse.org
Editor's Notes
When installing Android Studio, make sure to select all the available components for your system setup, as seen on the Choose Components dialog of the Android Studio Setup wizard as seen here. The last component, Performance (Intel® HAXM), may not be available on your device for installation, but don’t worry if that particular component is not available. Make sure the Android SDK and the Android Virtual Device are selected for installation.
Here is an image representing our development computer and our Android device. As you can see, Android Studio is running on the development computer, along with an emulator instance running our application. On our handset device, we can also see our application running.
Enabling unknown sources on the device
USB debugging: This setting enables you to debug your applications via the USB connection.
Enabling Android developer settings on the device
Essential documents
An Overview of Changes: A brief description of the major changes to the SDK
An API Diff Report: A complete list of specific changes to the SDK
Release Notes: A list of known issues with the SDK
Here is a screenshot showing the Android SDK documentation viewed from the local drive.
Android Support Library
Adds several components available in recent SDKs to legacy versions of the SDKs. For example, the Various Loader APIs and Fragment APIs introduced in API Level 11 can be used, in compatibility form, as far back as API Level 4 using this add-on.
Google Mobile Ads SDK
Allows developers to insert Google Mobile Ads to monetize their applications. This SDK requires agreement to additional Terms of Service and registration for an account.
Google Analytics SDK for Android
Allows developers to collect and analyze information about how their Android applications are used with the popular Google Analytics service. This SDK requires agreement to additional Terms of Service and registration for an account.
Android Cloud Messaging for Android (GCM)
Provides access to a service for developers to push data from the network to their applications installed on devices. This SDK requires agreement to additional Terms of Service and registration for an account.
Google App Indexing
This SDK helps you prepare your application for indexing in Google Search so that your application may be found by users through searching.
Google App Invites
This SDK allows you to integrate app invite functionality so that your users may invite their Google contacts using SMS and email.
Google Play Game Services
Provides achievement, leaderboard, and multiplayer functionality to your games. This SDK requires agreement to additional Terms of Service and registration for an account.
Google Fit
Allows users to integrate fitness tracking functionality in their applications. This SDK requires agreement to additional Terms of Service and registration for an account.
Here is a screenshot showing the Android features present in the Android Studio toolbar.
Android Virtual Device Manager
The Android Virtual Device Manager organizes and provides tools to create and edit AVDs. To manage applications in the Android emulator, you must configure different AVD profiles. Each AVD profile describes what type of device you want the emulator to simulate, including which Android platform to support as well what the device specifications should be. You can specify different screen sizes and orientations, and you can specify whether the emulator has an SD card and, if so, what its capacity is, among many other device configuration settings.
Android SDK Manager
The Android SDK Manager facilitates Android development across multiple platform versions simultaneously. When a new Android SDK is released, you can use this tool to download and update your tools while still maintaining backward compatibility and use older versions of the Android SDK.
This is the Android Virtual Device Manager.
The built-in Android SDK Manager shows the currently installed Android SDK Platforms (top) and SDK Tools (bottom).
This is the stand-alone Android SDK Manager.
This is the Android emulator (Nexus 5 smartphone-style, Android API 22 AVD configuration).
This is the Android emulator (Nexus 9 tablet-style, Android API 22 AVD configuration).
Getting started
Includes samples demonstrating common Android components such as the an actionbar, floating action button, and more
Background
Includes samples demonstrating common tasks that should be run in the background
Input
Includes samples demonstrating common input methods such as gestures, multitouch, and swipes
Media
Includes samples demonstrating media-related features such as the camera, recording, effects, and others
Connectivity
Includes samples demonstrating various networking methods such as Bluetooth and HTTP
Notification
Includes samples demonstrating various Notification APIs
Wearable
Includes many samples demonstrating the various features available to developers for wearable devices
Class homework assignment: Chapter 2 Quiz Questions and Exercises listed at the end of the chapter.