This document outlines an 80-hour course on Android application development. The course will meet 3 times per week for 4 hours of lectures, assignments, and Q&A. Topics will include the Android architecture, activities, intents, services, UI design, databases, location services, maps, and deploying apps. Students should know Java or C# fundamentals. The course aims to teach students how to build world-class mobile apps using the popular and open-source Android platform. Evaluation will be based on attendance, assignments, projects, tests, and quizzes.
5. Course Prerequisite
To take this course, you must know Java or C#. You
should be able to answer most of the following
questions:
● What is a difference between a class and an object?
● What is the difference between static and non-static
field?
● What is the difference between extends and
implements keywords?
● What is the purpose of @Override? etc.
6. Course Outline
Android Overview Main Building Blocks Databases
● Android Overview ● Overview ● About SQLite
● Prospects ● Activities ● Using SQLite
● History Intents ● A bit optimization
● Versions ● Services
● ContentProviders Services
The Stack ● BroadcasrReceivers
● Stack Overview ● Lifecycle
● Application Context
Linux ● IntentService
● Native Libraries ● Binding
User Interface Common Patterns
● Dalvik ●
● App Framework ● Activity Lifecycle
● Applications ● Ways to Create UI
● Views & Layouts
Quick Start ● UI Widgets
● Installing SDK ● Activities & Dialogs
● Hello World ● Menus
● Anatomy of Project ● Fragments & ActionBar
● UI Design Patterns
7. Course Outline
BroadcastReceivers Lists & Adapters Location API
● Overview ● About Adapters ● Retrieving
● Examples ● ListActivity Location
● RebootReceiver ● Custom ListViews ● Location Providers
● Broadcasting ● Best Practices
Intents Preferences
● Network Receiver Maps API
● Overview
● SMS Receiver SharedPreference
● ● Google Maps
● Issues
ContentProviders File System ● Obtaining API Key
File System ● OpenStreetMap
● Creating ●
ContentProviders explained
● Accessing ● Reading and Writing Telephony API
ContentProviders files in External ● Retrieving
Storage Network Info
● Accessing Phone
Call States
8. Course Outline
Camera API HTTP+Web Services
● Image Capturing ● HTTP GET/POST
● Video Recording ● Accessing REST APIs
● DownloadManager
Sensor API ● Monitoring Network
State
● Introduction ● Creating Own Service
● Availability Testing
● Accelerometer
Testing
● Examples
● Robotium
WebKit & Web Apps ● Roboelectric
● Javascript Interfaces Deployment
● Cross Platform Tools ● Signing
● Take your steps to
Google Play
9. So.. Today..
● Basic Idea on Mobile, Smartphone & Tablet Platforms
● Basic Idea on Application Development
● Identify the Position of Android
● Some Background and History
● Prospects: Why Should We Learn Android
● What is Android (and What it isn't)
● Introduction to Android SDK Features
16. Why Android
● Android powers hundreds of millions of mobile devices in
● more than 190 countries around the world.
● It's the largest installed base
● growing fast—every day another 900,000 users power up their Android
devices
19. Why Android
Technical Advantages
● Java Programming Language
● Open Source Platform with less Proprietary Restrictions
and more Opportunities of Innovation
● Development Environment Support in Windows, Mac OSX
and Linux
● No need to pay to start development
● Low barrier to Market (No app approval procedure and
Low fee)
● Rich and Easy to Integrate Feature Set
● Easy and Cost-effective Prototyping for Research and
Business
Imagination is the Limit !!!
36. What is Android
Google’s Andy Rubin describes Android as follows:
The first truly open and comprehensive platform for
mobile devices. It includes an operating system, user-
interface and applications — all of the software to run a
mobile phone but without the proprietary obstacles that
have hindered mobile innovation.
—Where’s My Gphone?
http://googleblog.blogspot.com/2007/11/ wheres-my-gphone.html
37. What is Android
Android is an ecosystem made up of a combination of three
components:
● A free, open-source operating system for embedded
devices
● An open-source development platform for creating
applications
● Devices, particularly mobile phones, that run the Android
operating system and the applications created for it
38. What is Android
More specifically, Android is made up of several necessary and
dependent parts, including the following:
● A Compatibility Definition Document (CDD) and Compatibility Test
Suite (CTS) that describe the capabilities required for a device to
support the software stack.
● A Linux operating system kernel
● Open source libraries including SQLite, WebKit, OpenGL and Media
Manager
● A run time used to execute and host Android applications, including the
Dalvik Virtual Machine (VM)
● An application framework
● A user interface framework
● A set of core pre-installed applications
● A software development kit (SDK) used to create applications,
including the related tools, plugins, and documentation
40. Android SDK Features
● Access to Hardware, including Camera, GPS and
Sensors
● Data Transfers using Wi-Fi, Bluetooth and NFC
● Maps, Geocoding and Location Based Services
● Background Services
● SQLite Database
● Shared Data and Inter-Application Communication
● Full Multimedia Hardware control including Playback
and Recording
● GSM, EDGE, 3G, 4G and LTE networks support for
Telephony and Data Transfer
● Integrated HTML5 supported WebKit based Browser
● 2D and 3D Graphics using OpenGL ES 2.0