What is Android? originally purchased from Android, Inc. in 2005

Similar documents
Android Architecture. Alexandra Harrison & Jake Saxton

01. Introduction of Android

Workshop on Android and Applications Development

Developing Android Applications Introduction to Software Engineering Fall Updated 7 October 2015

Getting Started: Creating a Simple App

CS 528 Mobile and Ubiquitous Computing Lecture 2: Android Introduction and Setup. Emmanuel Agu

Android Basics. Xin Yang

Android 5.0: Lollipop OS

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

How To Develop An Android App On An Android Device

MOBILE APPS. QA Testing for mobile applications

CS378 -Mobile Computing. Android Overview and Android Development Environment

Getting started with Android and App Engine

Cell Phone Operating Systems

2. Click the download button for your operating system (Windows, Mac, or Linux).

Smartphone market share

How to Create an Android Application using Eclipse on Windows 7

@ME (About) Marcelo Cyreno. Skype: marcelocyreno Linkedin: marcelocyreno Mail:

Android Application Development: Hands- On. Dr. Jogesh K. Muppala

Mobile Application Development 2014

Homework 9 Android App for Weather Forecast

Getting Started with Android Programming (5 days) with Android 4.3 Jelly Bean

Overview. About Interstitial Ads: About Banner Ads: About Offer-Wall Ads: ADAttract Account & ID

ANDROID. Programming basics

Mobile App Design and Development

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna

AT&T U-verse App for iphone FAQ s

Programming with Android

Developing an Android Framework and Exemplar App for WPI Suite

Introduction to Android

Henry Ford Health System Citrix Access Gateway Support Details

Basics. Bruce Crawford Global Solutions Manager

Mobile Application Development Android

stream.jw.org - Viewer User Guide Table of Contents

Android Programming. Høgskolen i Telemark Telemark University College. Cuong Nguyen,

Choosing a Mobile Application Development Approach

Android Programming: Installation, Setup, and Getting Started

WEB, HYBRID, NATIVE EXPLAINED CRAIG ISAKSON. June 2013 MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER

Connecting Your Device to a Wireless Network

Android Programming and Security

Here to take you beyond Mobile Application development using Android Course details

End User Guide. July 22, 2015

Two Factor Authentication (TFA; 2FA) is a security process in which two methods of authentication are used to verify who you are.

INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011

Jordan Jozwiak November 13, 2011

Communications Cloud Product Enhancements February 2016

Developing NFC Applications on the Android Platform. The Definitive Resource

Student ipad User and Setup Guide

GLOBALMEET FOR DESKTOP GLOBALMEET FOR DESKTOP USER GUIDE

Android Mobile App Building Tutorial

1. Introduction to Android

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

ios How to Back Up from icloud

Android Development. Marc Mc Loughlin

Using the Jive for ios App

RingCentral Meetings User Guide. Video Conference. Web Share.

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Example Connection between USB Host and Android

Appium mobile test automation

Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) <lecturer, date>

Frameworks & Android. Programmeertechnieken, Tim Cocx

Android Application Development Lecture Notes INDEX

April 14. Product Suite. one_mail, one_storage, one_archive, one_sync, one_mobile. Version 2.1 Client Services

Getting Started Guide. July 2013

Now SMS/MMS Android Modem Quick Start Guide

ADT Plugin for Eclipse

ANDROID INTRODUCTION TO ANDROID

Mobile App Development

Android Programming Family Fun Day using AppInventor

TELUS Business Connect Meeting User Guide. Video Conference. Web Share.

ON24 MOBILE WEBCASTING USER GUIDE AND FAQ FEBRUARY 2015

Homeschool Programming, Inc.

Graduate presentation for CSCI By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

Mobile Phones Operating Systems

Quick Start Guide Mobile Entrée 4

OpenCV on Android Platforms

CRESTRON-APP/CRESTRON-APP-PAD Control App for Apple ios

Evaluation of Xamarin Forms for MultiPlatform Mobile Application Development

ANDROID A Workshop on Android Application Development Organized by Computer Science & Engg Dept Lingaya s University

Generate Android App

UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

Issues in Android on Mobile Platform and Their Resolution

Getting Started Guide. November 25, 2013

Getting Started Guide. January 19, 2014

CHAPTER 1: INTRODUCTION TO ANDROID, MOBILE DEVICES, AND THE MARKETPLACE

IOIO for Android Beginners Guide Introduction

Advantage Cloud Access: Microsoft Remote Desktop for Android

Getting Started Guide

DRAFT COPY: CONTENTS SUBJECT TO CHANGE. FTC Training Manual. JAVA Programming for the Next Gen Controller. FIRST Tech Challenge 8/3/2015

Getting the best from your OneDrive

Mobile Communicator for Mobile Devices

Cross-Platform Development

How To Develop Android On Your Computer Or Tablet Or Phone

Mobile Application Development

OMX, Android, GStreamer How do I decide what to use? 15 July 2011

Old National offers both Mobile Web and a Mobile App, so you can choose the best fit for your device type. Either solution enables you to:

Transcription:

What is Android? mobile operating system maintained by Google originally purchased from Android, Inc. in 2005 runs on phones, tablets, watches, TVs,... based on Java (dev language) and Linux (kernel) the #1 mobile OS worldwide and now #1 overall OS worldwide! has over 1 million apps published in Play Store code is released as open source (periodically) easier to customize, license, pirate, etc. than ios

Why develop for Android? Why not just write a web site? Android has a browser... better, snappier UI with a more consistent user experience able to use different kinds of widgets/controls than in a web page more direct access to the device's hardware (camera, GPS, etc.) users highly prefer apps over mobile web browsing

Why not ios? Why not write apps for ios, which runs on iphones and ipads? familiar programming language (Java instead of Obj-C or Swift) free developer tools (Apple charges $$$ for theirs) more liberated app store (can make an app and put on your phone or others') Android has a larger install base there is already a CS 193P class for building ios apps! Take it!

Android architecture Android OS provides libraries for many system features like contacts, phone dialing, notifications, 2D/3D graphics, database access, security / encryption, camera, audio, input/output,... Android Java code is compiled into a special Dalvik binary format

Android version history (link) Version 1.0-1.1 1.5 1.6 2.0-2.1 2.2 2.3 3.0 4.0 API level 1,2 3 4 5,6,7 8 9,10 11,12,13 14,15 Date Sep 2008 Apr 2009 Sep 2009 Oct 2009 May 2010 Dec 2010 Feb 2011 Oct 2011 4.1-4.3 4.4 5.0 16,17,18 19,20 21 Jun 2012 Sep 2013 Jun 2014 Name none Cupcake Donut Eclair Froyo Gingerbread Honeycomb Ice Cream Sandwich Jelly Bean Kit Kat Lollipop

Android version distribution

Version issues Check your phone's version of Android: Several companies affect whether your device is up-to-date: Settings System About Device Android version "Why wouldn't my phone have the newest Android version? Can't I just update it?" Google; phone manufacturer; service provider;... If any company in the chain doesn't want to push out an update for your device, it can become out of date.

Android Studio Google's official Android IDE, in v1.0 as of November 2014 replaces previous Eclipse-based environment based on IntelliJ IDEA editor; free to download and use

Project structure AndroidManifest.xml src/java/... source code for your Java classes res/... = resource files (many are XML) overall project config and settings drawable/ = images layout/ = descriptions of GUI layout menu/ = overall app menu options values/ = constant values and arrays strings = localization data styles = general appearance styling Gradle a build/compile management system build.gradle = main build config file

Virtual Devices (AVDs) allows you to run your project in an emulator a software simulation of an entire Android tablet, phone, watch when you click the "Run" button in Android Studio, it builds your app, installs it on the virtual device, and loads it must set up virtual device first in Android Studio alternative: install your app on your actual Android device! pro: app will run faster, better test of real execution con: requires Android device, must be plugged into dev PC

App build process

Top-down design Let's start from a design of an app that we want to create and then learn the necessary skills to build that app. "Bigger Number" game (really dumb) user is shown two numbers must choose which one is bigger by clicking on the appropriate button game pops up brief "correct" / "incorrect" message after each guess get points for each correct answer (lose points for incorrect answers)

Creating a new project

Android terminology activity: a single screen of UI that appears in your app view: items that appear onscreen in an activity widget: GUI control such as a button or text field layout: invisible container that manages positions/sizes of widgets event: action that occurs when user interacts with widgets the fundamental units of GUI in an Android app e.g. clicks, typing, scrolling action bar: a menu of common actions at top of app notification area: topmost system menu and icons

Android widgets Analog/DigitalClock Button Checkbox Date/TimePicker EditText Gallery ImageView/Button ProgressBar RadioButton Spinner TextView MapView, WebView

Designing a user interface open XML file for your layout (e.g. activity_main.xml) drag widgets from left Palette to the preview image set their properties in lower-right Properties panel

Events event: An external stimulus your program can respond to. Common kinds of events include: event-driven programming: Overall execution of your program is largely dictated by user events. Mouse motion / tapping, Keys pressed, Timers expiring, Network data available Commonly used in graphical programs. To respond to events in a program, you must: Write methods to handle each kind of event ("listener" methods). Attach those methods to particular GUI widgets.

Setting an event listener select the widget in the Design view scroll down its Properties until you find onclick type the name of a method you'll write to handle the click switch to the Text view and find the XML for that button click the "Light Bulb" and choose to "Create" the method

Event listener Java code

View objects each widget has an associated Java object you can access they are subclasses of parent class View examples: Button, TextView, EditText,... View objects have many get and set methods that correspond to the properties in the Design view: background, bottom, ID, left, margin, padding, right, text, textalignment, textsize, top, typeface, visibility, x, y, z,... example: for a Button's text property, there will be methods: public String gettext() public void settext(string text) Find list of properties in Design view, or typing ".get" on a button in Java code, or at: https://developer.android.com/reference/

Interacting with widgets accessing a widget in the Java code: 1. in Design view, give that view a unique ID property value 2. in Java code, call findviewbyid to access its View object pass it a parameter of R.id.your_unique_ID cast the returned value to the appropriate type (Button, TextView, etc.) public void button1_onclick(view view) { TextView tv = (TextView) findviewbyid(r.id.mytextview); tv.settext("you clicked it!"); }

Exercise: Number game New let's build that "Bigger Number" game! Recall: user is shown two numbers must choose which one is bigger by clicking on the appropriate button game pops up brief "correct" / "incorrect" message after each guess get points for each correct answer (lose points for incorrect answers)

Displaying Toasts Toast.makeText(this, "message", duration).show(); where duration is Toast.LENGTH_SHORT or LENGTH_LONG A "Toast" is a pop-up message that appears for a short time. Useful for displaying short updates in response to events. Should not be relied upon extensively for important info.