Android Bootcamp
Android is unlike any other mobile development platform or Java-based environment. Android Bootcamp will immerse students in the Android platform, leveraging their existing Java expertise, allowing students to walk away from the class ready to build Android GUIs and related components. Android Bootcamp includes instruction on the basics of setting up activities and UI widgets, as well as advanced capabilities that make Android compelling, such as GPS, mapping, Internet access, multimedia, and on-device search.
Upon completion of Android Bootcamp, the student will be able to:
- Create Android user interfaces (activities)
- Connect Android applications to the Internet and to local databases
- Publish data to Android applications through a content provider and use data that other applications provide through their content providers
- Build long-running Android processes using services
- Use advanced Android features like GPS access, mapping, and search
Reviews
Prerequisites
Experience in Java programming is required. Experience developing graphical user interfaces will be helpful.
Any students seeking some advance preparation for the course might want to visit http://developer.android.com/
Syllabus
| Section | Contents |
|---|---|
| Introducing Android | Learn what Android is all about. Learn how to start an Android application project and what it looks like. Compile a skeleton application and use it in the Android emulator. |
| Widgets and Containers | Understand how to structure your UI using XML. Learn the basic widgets: fields, buttons, labels, etc. Learn about the basic containers for laying out widgets on the screen. |
| Using Selection Widgets | The concept of data adapters and how to wrangle your data into them for display. Introduction to the available selection widgets and attaching them to your data via adapters |
| Creating Fancy Lists | See how to make lists with contents the way you want them to appear, beyond basic built-in templates. Learn how to make these lists efficient. |
| Employing Fancy Widgets and Containers | Introduction to widgets that go beyond the basics: date and time pickers, clocks, and progress bars. Working with tabbed panes. |
| Embedded Browsers | Introduction to the capabilities of the built-in WebKit browser widget. How to embed a browser in your GUI. How to get control when the user clicks links. |
| Menus and Messages | How to set up options menus for your application and how to get control when those menu choices are chosen. How to display messages to the user via toasts and dialogs |
| Dealing with Threads | The “rules of the road” for using background threads, and why they are important. How to properly structure your Android GUIs to work well with background threads. |
| Lifecycle Events | How and when activities Android GUIs are created– – and destroyed How and when you should exert control over what happens during the activity's lifecycle. How to keep your activity state even if it is killed off by the operating system. |
| Preferences and Files | How to save user selections as preferences, and how to re-apply them the next time your activity is used. How to read and store data in files on the device or on storage cards. |
| Working with Resources | How to externalize aspects of your application, including strings, colors, etc. How to store graphics, XML, and other files in your application package to be stored on the device. How to handle different configurations based on device characteristics or user language. |
| Managing Local Databases | A quick introduction to SQLite. How to create, update, and remove databases and tables. How to create, retrieve, update, and delete data out of tables. |
| Communicating via the Internet | What the “rules of the road” are for Internet access on Android devices. How to use built-in HTTP libraries to access Web services. |
| Intents and Activities | Introduction to intents and their role as the “glue” in Android intra- and inter-application communication What intents activities respond to by default. How to set up more than one activity in an application, and the intent filters needed for the other activities to be available for use. How to invoke another activity from your main one. |
| Handling Rotation Events | How Android lets your activities know when the screen rotated. How to better control what happens on a rotation. |
| Using a Content Provider | Introduction to the notion of content providers and their role in the Android ecosystem. How to create, retrieve, update, and delete information out of somebody else's content provider. |
| Building a Content Provider | How to create a class that supports the content provider interface. How to wire that class into your application so it can serve as a content provider. |
| Database-Backed Content Providers | How to route content provider methods to a SQLite database for processing. How to upgrade your database when your application is upgraded. |
| Services and Permissions | Introduction to the concept of services and what niche they fill in your Android application. Introduction to the Android permission system for controlling access to content providers and services. How to create a stub do-nothing service. |
| Service AIDL | Introduction to the concept of an interface definition language (IDL). Overview of the structure of the Android IDL (AIDL). How to specify an AIDL interface for your service. How to implement the AIDL interface in your service. |
| Service Behavior | The implications of AIDL's synchronous nature. Using background threads in your service. Raising notifications to alert users of things your service has done. |
| Invoking a Service | How to access the AIDL interface specified by a service. How to handle broken service connections. |
| Location-Based Services | An overview of the means an Android device has to tell you where it is in the world. How to find out where the device is using location providers. How to be notified as the device moves. How to be notified when the device gets to destinations. |
| Displaying Maps | An overview of what is possible using Google Maps integrated in Android devices. How to set up a map activity in your application. How to control the zoom level and stock overlays (e.g., satellite view). How to craft your own overlays to show the device's position or other landmarks of note. |
| Playing Media | An overview of what media capabilities you should expect on an Android device. How to play back audio clips. How to play back video clips. |
| Calls and Searches | How to access the phone service, to determine if the user is on a call or to place calls. How to invoke the on-device search engine from your application. How to have your application be searched by the on- device search engine. |
| Incorporating JARs | How to add third-party code to your project, and what the pitfalls and caveats are. |
| Notifications | How to add icons to the status bar. How to get control when the user clicks on a notification. How to add other hardware-based alerts to a notification, such as lights or vibrations. |
What's Included
Class price includes all class materials, a luxury room, three delicious meals a day, a stylish Big Nerd Ranch t-shirt, and ground transportation to and from the airport. Plan to arrive the afternoon or evening before your class begins and depart on the last day of your class after 4 PM.