Developing Secure Android Apps for Business
Course Description Overview
Android™ is the most widely used mobile operating system today. Not only does it have the largest market share of smartphone and tablet operating systems, but Android also powers devices such as TV streaming boxes, digital cameras, vehicle dashboards, and much more. In this course, you will learn how to develop and publish an Android app, focusing on developing business apps for tablets and smartphones that are compatible with a wide variety of Android versions and device layouts.
This course is also designed to assist you in preparing for the Master Mobile Application Developer (MMAD) (Exam MAD-111) certification examination. What you learn and practice in this course can be a significant part of your preparation for portions of that certification.
In this course, you will develop, test, and publish native mobile applications for the Android operating system.
You will:
- Set up an Android development environment and start developing an Android app.
- Develop an app that works well within the Android app framework and meets user expectations.
- Create an app with multiple user interface screens and features to move among them.
- Use resources to support internationalization and quick update of contents and styles.
- Add graphics and animation capabilities to your app.
- Store and retrieve files by using local storage.
- Use debugging tools to trace and watch variables, and step through statements.
- Retrieve and display web data.
- Store and retrieve user preferences.
- Integrate your app into the Android ecosystem.
- Prepare an app for release, ensuring its security and digitally signing it.
Android development tools are updated frequently, and the installation process can take considerable time. Although much attention was taken in writing this course to account for possible future differences in the development environment, such variations are impossible to predict. If you can, consider installing the Android development environment on one system, and then saving an image of that system to transfer onto other classroom computers and using this same system image each time you teach the course.
To prepare a student or instructor system for the class, install the following software according to the instructions provided. You will need the following software for each student and instructor computer:
- Microsoft® Windows® 10 64-bit with sufficient licenses.
Windows 10 requires activation unless you have volume-licensing agreements. There is a grace period for activation. If the duration of your class will exceed the activation grace period (for example, if you are teaching the class over the course of an academic semester), you should activate the installations at some point before the grace period expires. Otherwise, the operating system may stop working before the class ends.
- Java SE Development Kit (JDK). This course was developed on version 8u101 of the JDK. At the time the course was written, this software was available for download from www.oracle.com/technetwork/java/javase/downloads.
- Android Studio and the Android SDK. This course was developed on version 2.1.2 of Android Studio. The course uses SDK API versions 22 and 23. The SDK tools and APIs undergo frequent revisions, so you should ensure that the course activities key properly on the most recent versions. At the time the course was written, this software was available for download from http://developer.android.com/sdk/index.html.
For this course, you will need one computer for each student and one for the instructor. Each computer will need the following minimum hardware configurations:
- 2 gigahertz (GHz) 64-bit processor that supports the VT-x or AMD-V virtualization instruction set.
- 6 gigabytes (GB) of Random Access Memory (RAM) (8 GB recommended).
- 100 GB storage drive.
- Monitor capable of a screen resolution of at least 1,024 × 768 pixels.
- Display adapter.
- Bootable DVD-ROM and/or USB drive.
- Keyboard and mouse or a compatible pointing device.
- Network cards and cabling for local network access.
- Internet access (contact your local network administrator).
- Projection system to display the instructor's computer screen.
Android Devices:
Android devices are not required to teach this course. To enable you to equip a classroom inexpensively and with minimal effort, this course has been designed around the use of emulated (rather than real) Android devices, focusing on an emulated API level 22 smartphone and an API level 23 tablet.
This course could be taught using real devices, if you have smartphones and a tablet available for each student that meet these requirements. However, if you choose to use real devices, you should key through the course completely before you teach the class to ensure that you will be able to deal with any differences that may arise between the configuration of the real devices and the emulated devices.
Even if you do not have enough real devices to equip the classroom, you might consider providing opportunities for students to experiment with those that you have on hand. Students might find it beneficial to learn to work with real devices as an activity above and beyond those provided in the student manual. Practice labs provide a good opportunity for students to do such experimentation.
Emulation Technology and Processor Requirements:
The emulators that come with the Android SDK are optimized to run on Intel® processors with the VT-x virtualization instruction set. If VT-x isn't enabled, you must enable it from the computer's BIOS. The course was developed using emulators that take advantage of Intel's HAXM virtualization engine. This significantly increases the speed of the emulators.
However, if you teach this course on computers with AMD processors, you can still run the SDK's emulators. Instead of installing the Intel x86 Atom system images as detailed in the upcoming setup, you must install the ARM EABI system images instead. These may run considerably slower, however. You must also ensure that AMD-V is enabled in the system's BIOS.
Alternatively, you may want to consider running the Genymotion emulators (www.genymotion.com). These emulators can run on both Intel and AMD CPUs. Keep in mind that this course was not designed with or tested on the Genymotion emulators, so you need to verify performance and functionality before teaching with them.
Another factor that affects performance is the power of the display adapter. The Android emulators can use software to display graphics, or they can use the computer's hardware display adapter. The latter offers improved performance, especially in graphics-intensive apps. Using computers with modern display adapters is highly recommended.
Lesson 1: Getting Started with Android Studio
Topic A: The Android Operating System
Topic B: Create an Android App Project
Topic C: Configure the Android Development Environment
Topic D: Create an Android Emulator
Lesson 2: Working in the Android App Framework
Topic A: Work in the Android Project Structure
Topic B: Use Android Documentation
Topic C: Work with the App Lifecycle
Topic D: Design to Requirements and Expectations
Lesson 3: Creating an App with Multiple Activities
Topic A: Create a Tabbed User Interface
Topic B: Provide Navigation to Other Activities
Lesson 4: Using Resources
Topic A: Load App Data from Resources
Topic B: Support Alternate Languages Through Resources
Topic C: Apply Themes and Styles
Lesson 5: Working with Multimedia
Topic A: Load Images
Topic B: Draw Graphics Through Code
Topic C: Add Animation Effects
Lesson 6: Working with Data and Storage
Topic A: Write File Data
Topic B: Read File Data
Lesson 7: Debugging and Analyzing Android Apps
Topic A: Debug an Android App
Topic B: Use Additional Android Debugging and Analysis Tools
Lesson 8: Working with Web Data
Topic A: Populate a View with Web Data
Topic B: Load Web Content in a WebView
Lesson 9: Working with User Preferences
Topic A: Implement a User Interface for Preferences
Topic B: Read User Preferences
Lesson 10: Integrating with the App Ecosystem
Topic A: Provide an Alternate Layout
Topic B: Access Sensors and Location Services
Topic C: Capture Multimedia
Topic D: Develop a Widget
Lesson 11: Finalizing Your App
Topic A: Manage App Security
Topic B: Prepare an App for Release