Introduction What is Android?

Similar documents
Application Fundamentals

Developing Applications for ios

Android Overview. Most of the material in this section comes from

SHWETANK KUMAR GUPTA Only For Education Purpose

Android - open source mobile platform

Developer s overview of the Android platform

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

COSC 3P97 Mobile Computing

IJRDTM Kailash ISBN No Vol.17 Issue

CS260 Intro to Java & Android 04.Android Intro

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

Chapter 2: Android Device Basics

Android Programming in Bluetooth Cochlea Group

CS240: Programming in C

Android Overview. Francesco Mercaldo, PhD

Introduction To Android

Android. Mobile operating system developed by Google A complete stack. Based on the Linux kernel Open source under the Apache 2 license

Introduction. Lecture 1. Operating Systems Practical. 5 October 2016

Android Software Development Kit (Part I)

CS 235AM, Mobile Application Development: Android Spring 2016

Contextual Android Education

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Why Android? Why Android? Android Overview. Why Mobile App Development? 20-Nov-18

User Interface Design & Development

Another difference is that the kernel includes only the suspend to memory mechanism, and not the suspend to hard disk, which is used on PCs.

Chapter 1 Hello, Android

Android App Development

Mobile Application Development

Introduction to Android

Mobile Computing. Introduction to Android

PAPER ON ANDROID ESWAR COLLEGE OF ENGINEERING SUBMITTED BY:

ANDROID SYLLABUS. Advanced Android

Minds-on: Android. Session 1

Mobile Computing Meets Research Data

Android System Architecture. Android Application Fundamentals. Applications in Android. Apps in the Android OS. Program Model 8/31/2015

Android Programmierung leichtgemacht. Lars Vogel

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

Mobile Application Development - Android

Mobile Internet Devices and the Cloud

ANDROID COURSE BROCHURE

CS 528 Mobile and Ubiquitous Computing Lecture 1b: Introduction to Android. Emmanuel Agu

Introduction to Android

Course Learning Outcomes (CLO): Student Outcomes (SO):

Android Training Overview (For Demo Classes Call Us )

A STUDY OF ANDROID OPERATING SYSTEM WITH RESPECT WITH USERS SATISFACTION

Android framework. How to use it and extend it

Android App Development Workshop

User Interfaces for Web Sites and Mobile Devices. System and Networks

Mobile Computing LECTURE # 2

Tree-mapping Based App Access System for ios Platform

Android App Development

Foreword...xv Introduction...1 Part I: Buying and Getting Started with Your Computer...5

ITG Software Engineering

Software Development & Education Center ANDROID. Application Development

CS 4518 Mobile and Ubiquitous Computing Lecture 2: Introduction to Android. Emmanuel Agu

ANDROID APPLICATION DEVELOPMENT COURSE Training Program

Android Online Training

CONTENTS... 1 OVERVIEW OF SIMNET...

The Internet. CS 2046 Mobile Application Development Fall Jeff Davidson CS 2046

Produced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology

application components

Android Ecosystem and. Revised v4presenter. What s New

CS535: Interactive Computer Graphics

Android App Development for Beginners

Introduction to Data Structures

Xbox 360 Controller Manual Pc Software Windows 8 Wireless

CS 3270 Mobile Development for Android Syllabus

Welcome to... CS113: Introduction to C

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims

Data Management CS 4720 Mobile Application Development

CSC209. Software Tools and Systems Programming.

Adobe Marketing Cloud Bloodhound for Windows 2.2

Android. Operating System and Architecture. Android. Screens. Main features

Introduction to Mobile Application and Development

CS 1124 Media Computation. Steve Harrison Lecture 1.2 (August 27, 2008)

Lecture 08. Android Permissions Demystified. Adrienne Porter Felt, Erika Chin, Steve Hanna, Dawn Song, David Wagner. Operating Systems Practical

Lecture 1 - Introduction to Android

Manual Update Of Ios 7 For Iphone 4s Release

CS378 -Mobile Computing. What's Next?

New Ringtone Iphone 5c Features In India >>>CLICK HERE<<<

Outline. Computer Science 331. Course Information. Assessment. Contact Information Assessment. Introduction to CPSC 331

QUICK START GUIDE. lgusa.com/optimusu 1. Make a Phone Call/ Send a Message Manage Contacts Customize Your Phone Adjust Sound Settings Set Up Gmail

CSC209. Software Tools and Systems Programming.

WYBCS Android Programming (with AppInventor) Family fun day

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

ANDROID. Curriculum LOCATION CONTACT US SCHEDULE. TurnToTech 40 Rector St. 10th Floor New York, NY

HOW TO USE MOODLE. Welcome to BFI Wien! QUICK GUIDE

Android PC Splash Brothers Design Specifications

SD Module- Android Programming

CS 520 Theory and Practice of Software Engineering Fall 2017

What is Freegal? What is the wishlist? How can this benefit me?

CS 0449 Intro to Systems Software Fall Term: 2181

CS 326: Operating Systems. Lecture 1

Research on Improving performance and Battery Backup of Android Mobile with help of Cyanogen Mod, and latest kernel

Heuristic Evaluation. Ananda Gunawardena. Carnegie Mellon University Computer Science Department Fall 2008

EECE.2160: ECE Application Programming Spring 2017

Anthony Hand, M.S.I. Mobile User Experience Designer, Hand Interactive Presented at:

Trina Gregory. Instructor

DROID. By S.Gokulakrishnan AP/CSE SCSVMV

Getting Help...71 Getting help with ScreenSteps...72

Transcription:

Introduction What is Android? CS 2046 Mobile Application Development Fall 2010

Everything you know is wrong Most desktop/web applications: Large screen size vs.

Everything you know is wrong Most desktop/web applications: High-quality internet connections

Everything you know is wrong Most desktop/web applications: Take one or two types of input

Modern Computing Think could you go without your computer for a day? What if you had a smartphone that could: Check email Read news Play games, music, and viral videos What do we really use computers for?

Mobile Applications Apple App Store 250,000 applications Has paid over $1 billion to developers as of June http://techcrunch.com/2010/06/07/ipad-ibooks-app-store-stats/ Android Market 80,000 applications Android OS (in some form) installed on 1/3 of new phones (#1 in the U.S.) http://blog.nielsen.com/nielsenwire/online_mobile/android-most-popular-operating-system-in-u-s-amongrecent-smartphone-buyers/

Differences Could you sell a great desktop app? Maybe if you re Microsoft or Adobe You ll get ~100% of revenue! But: Hooray! How to push your product? Advertising Media CDs or bandwidth How do people download, install? How do they know it s going to work?

Differences Typical mobile market (ios, Android): Many apps are free But ad-supported shareware is back! For paid apps, developer gets ~70% of revenue Tradeoff for: One-click install for everyone (including payment!) Central source for finding your applications No worrying about handling financials, statistics

Differences Screen size varies tremendously Currently, for majority small or very small

Differences Internet connection is extremely sporadic Phones support Wi-Fi, GSM/EDGE, CDMA/EV-DO, 3G, 4G, etc., and switch often But many applications rely on internet data Need resilience for transient failures

Differences Replacements for typical types of input Keyboard Generally, still exists. But: Mouse Might be a virtual keyboard Might be hardware, but will be very small (so no Starcraft) Most devices have touch screens But multi-touch is new compared to a mouse Could also have a trackball, navigation buttons, etc.

Differences Plus, many more types: Accelerometer GPS Labyrinth Fine-grained local search Compass Vibration BUMP - http://bu.mp/ Sound Speech recognition Camera

Differences Plus, many more types: Accelerometer GPS Labyrinth Fine-grained local search Compass Vibration BUMP - http://bu.mp/ Sound Speech recognition Camera Nothing really new! But, can rely on almost every device supporting all of them.

Android A software stack for mobile devices that includes an operating system, middleware, and key applications. Essentially, a unified platform to develop apps that will run on many different phones and devices. A wrinkle: Open source get some modifications (MotoBLUR)

The Platform Code is written in Java vs. Apple ios: Objective-C Exception can compile most C code using the NDK Libraries available: Essentially all of the standard java.* packages android.* - Android-specific libraries UI elements SQLite data storage Media support (audio/video) Access to camera, GPS, accelerometer

Development Open-source platform, open-source tools Eclipse IDE Android SDK Emulator for running applications If you have a real device, can use that too. See course webpage for directions. We will have a lab exercise in class to introduce the tools.

Software Stack Lowest level Linux kernel Android!= Linux Does not use glibc, X, or GTK Used for security, memory management, threading Dalvik Virtual Machine Each app runs in its own VM instance (secure) Sort of like Java VM on the desktop, but optimized for mobile Application Framework Where we will be spending our time

What is an Android application? Four major components: Activity Main component of an application Generally, visible to the user ContentProvider Stores (tabular) data and makes it available to other applications Service Handles background work and ongoing tasks BroadcastReceiver Receives events from the phone

Example Music Player Activity UI for browsing music, selecting songs ContentProvider Store the music and metadata Gives other apps access Music recommendation Service Actually plays music supports backgrounding Broadcast Receiver Pause music if headphones are unplugged Project: Tasks

What we will cover Building simple applications DEMO your project Mobile user interfaces Data storage Interacting with the Internet Multimedia Other topics if there s interest Let me know! Intro of the Day

Course Logistics Instructor Jeff Davidson (M.Eng) jpd236@cornell.edu Office Hours: MW 1:15-2:15pm (i.e. after class) or by appointment, starting next Monday, 10/25. See site for location. Teaching Assistant Jae Yong Sung js946@cornell.edu Office Hours: TBA, probably Friday 11:00am-12:00pm.

Course Logistics Dates/Times October 18 th November 12 th MWF 12:20-1:10pm, Upson 207 Add/Drop deadline: 10/25 Websites http://www.cs.cornell.edu/courses/cs2046/2010fa/ CMS: http://cms.csuglab.cornell.edu

Grading 1 credit, S/U only Components: 70%: Individual Assignments 15%: Lab Exercise (next Monday, 10/25) 15%: Participation In-class Newsgroup: cornell.class.cs2046 See website for instructions Challenge problems Passing Grade: 60%

Course Format Lectures Conceptual understanding, demos. Only 4 weeks not enough time to pore over lines of code. Assignments There s a reason they re worth 70% of the grade You will learn most of the concrete material how to code applications from completing them. Come to office hours if you get stuck!

Intents On a desktop: Open an application double click it Open a file with an application drag file to shortcut Alternatively, pass filename as an argument. Can specify default handler for a certain filetype.

Intents Android uses Intents to accomplish these (and more) tasks. Intents: abstract description of an operation to be performed. Action: The general action to be performed Data: What should be operated on Component: What will perform the action (optional) The boy hits the ball What is the action? Data? Component?

Intent Examples ACTION_VIEW http://www.cornell.edu Launch an application to view this URL. ACTION_DIAL tel:5551234 Launch an application to call this phone number. Note these intents do not specify the component which should handle them. We call these implicit intents Explicit intents include the target component

Intent Resolution Applies when no target is specified Intent filters Associated with each component Describe the Intents that the component can handle. Your app calls startactivity() with ACTION_VIEW <url> For each Activity registered with the system: Does it support the action ACTION_VIEW? Does it support URI s of the form http://*?

Intent Resolution If only one application matches, launch it. What if there are multiple possible handlers? Example: Multiple browsers

Intents - Summary Intents the glue connecting Android components. Can specify what should handle the Intent (explicit), or let the system figure it out (implicit). Standardized Intents make Android extensible: Make an application that takes pictures as input? Gallery will automatically let you send pictures to it.