mobile application development lecture 01imranihsan.com/upload/lecture/mads1601.pdf• process...

22
MAD S16 01 - Android Overview 1 MOBILE APPLICATION DEVELOPMENT IMRAN IHSAN ASSISTANT PROFESSOR WWW.IMRANIHSAN.COM LECTURE 01 ANDROID OVERVIEW ABOUT ME IMRAN IHSAN Name Education Experience Teaching Industry Research Website Course Website

Upload: hoangdan

Post on 03-Jul-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 1

MOBILE APPLICATION DEVELOPMENT

IMRAN IHSAN

ASSISTANT PROFESSOR

WWW.IMRANIHSAN.COM

LECTURE 01ANDROID OVERVIEW

ABOUT MEIMRAN IHSAN

• Name

• Education

• Experience

• Teaching

• Industry

• Research

• Website

• Course Website

Page 2: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 2

MOBILE APPLICATION DEVELOPMENT

3

THE COURSE

• Mobile computing with focus on application development for the Android operating system

1. Introduction to Mobile Application Development

2. Android Overview and Android Development Environment

3. Anatomy of Android App and App Life Cycle

4. User Interfaces Basic

5. 2D Graphics

6. Intents

7. Audio and Video

8. Responsiveness

9. Persistence

10. SQLite

11. Web – Web View and Web Services

12. Location and Maps

13. Sensing and Sensors

14. Content Providers

15. Services and Broadband Receivers

16. 3D Graphics

17. What’s Next In Android Development

18. Android App Project

NDR

4

NO DEVICE REQUIRED

• Android application development in Java using Eclipse plug in

• Emulator part of development environment

• limitations

Page 3: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 3

WORK PRODUCTS

5

• Tutorials

• Step by step guide to creating small applications

• Individual assignments

• Mostly written

• Project

• design and implement an app and publish it on the Android Market

• broken into various milestones

• 2 - 3 students per project

ANDROID DEVELOPMENT ENVIRONMENTANDROID OVERVIEW AND

6

Page 4: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 4

WHAT IS ANDROID?

7

• A software stack for mobile devices that includes

• An operating system

• Middleware

• Key Applications

• Uses Linux to provide core system services

• Security

• Memory management

• Process management

• Power management

• Hardware drivers

ANDROID STACK

8

HTTP://DEVELOPER.ANDROID.COM/GUIDE/BASICS/WHAT-IS-ANDROID.HTML

Page 5: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 5

ANDROID FEATURES

9

• Application framework enabling reuse and replacement of components

• Dalvik virtual machine optimized for mobile devices

• Integrated browser based on the open source WebKit engine

• Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)

• SQLite for structured data storage

• Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)

• GSM Telephony (hardware dependent)

• Bluetooth, EDGE, 3G, and WiFi (hardware dependent)

• Camera, GPS, compass, and accelerometer (hardware dependent)

• Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE

http://developer.android.com/guide/basics/what-is-android.html

A SHORT HISTORY OF ANDROID

10

• 2001 Palm Kyocera 6035, combing PDA and phone

• 2003 - Blackberry smartphone released

• 2005

• Google acquires startup Android Inc. to start Android platform.

• Work on Dalvik VM begins

• 2007

• Open Handset Alliance announced

• Early look at SDK

• June, iPhone released

• 2008

• Google sponsors 1st Android Developer Challenge

• T-Mobile G1 announced, released fall

• SDK 1.0 released

• Android released open source (Apache License)

• Android Dev Phone 1 released

Pro Android by Hashimi & Komatineni (2009)

Page 6: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 6

A SHORT HISTORY OF ANDROID

11

• 2009

• SDK 1.5 (Cupcake)

• New soft keyboard with “autocomplete” feature

• SDK 1.6 (Donut)

• Support Wide VGA

• SDK 2.0/2.0.1/2.1 (Eclair)

• Revamped UI, browser

• 2010

• Nexus One released to the public

• SDK 2.2 (Froyo)

• Flash support, tethering

• SDK 2.3 (Gingerbread)

• UI update, system-wide copy-paste

A SHORT HISTORY OF ANDROID

12

• 2011• SDK 3.0 (Honeycomb) for tablets only

• New UI for tablets, support multi-core processors, fragments

• SDK 3.1 and 3.2 • Hardware support and UI improvements

• SDK 4.0 (Ice Cream Sandwich) • Combination of Gingerbread and Honeycomb

• 2012• Android 4.1, "Jelly Bean" announced late June 2012

• 2013• Android 4.4–4.4.4 KitKat (API level 19)

• 2014• Android 4.4W–4.4W.2 KitKat, with wearable extensions

• Android 5.0–5.0.2 Lollipop

• 2015• Android 6.0–6.0.1 Marshmallow

Page 7: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 7

A SHORT HISTORY OF ANDROID

13

• Android 1.1 Android 2.2 Froyo Android 3.0 Honeycomb

A SHORT HISTORY OF ANDROID

14

• Android 4.0 Ice Cream Sandwich Android 4.1 Jelly Beans

Page 8: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 8

A SHORT HISTORY OF ANDROID

15

• Android 4.4 KitKat Android 5.0 Lollipop Android 6.0 Marshmellow

A SHORT HISTORY OF ANDROID

16

Page 9: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 9

DEVICE DISTRIBUTION JAN 2012

17

• Based on active devices

• Forward compatible

• Not necessarily backward compatible

1.5 Cupcake: 0.6%

1.6 Donut: 1.1%

2.1 Ecliar 8.5%

2.2 Froyo 30.4%

2.3 Gingerbread: 56%

3.X Honeycomb 3.3%

4.x Ice Cream Sand. 0.6%

CURRENT DISTRIBUTION

18

Page 10: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 10

DEVICES AND APPS

19

• Estimated 400M activated devices (100M a year ago)

• 1M new activations per day

• Google Play (formerly Android Market)

• ~600,000 apps, June 2012

• 2/3 free, 1/3 paid

• Apple App Store, ~650,000 apps June 2012

• What's old is new - Mac vs. PC iPhone vs. Android???

IPHONE VS. ANDROID

20

Page 11: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 11

DEVELOPER REVENUES

21

• Business Strategy:attract developers with comparison of revenue generated by applications, average revenue per user, etc.

PRICING TEARS

22

Page 12: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 12

SEARCH TRENDS

23

APP CATEGORIES

24

Page 13: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 13

SETUP DEVELOPMENT ENVIRONMENT

25

• Install JDK 5, 6, or 7

• Install Eclipse IDE (version 3.7 - Indigo)

• recommended "Eclipse Classic"

• Download and unpack the Android SDK

• Install Android Development Tools (ADT) plugin for Eclipse

• Detailed install instructions available on Android site• http://developer.android.com/sdk/installing.html

JAVA ECLIPSE – SDK

26

SDK Manager

Page 14: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 14

JAVA ECLIPSE – AVD

27

AVD Manager

ANDROID EMULATOR OR AVD

28

• Emulator is essential to testing app but is not a substitute for a real device

• Emulators are called Android Virtual Devices (AVDs)

• Android SDK and AVD Manager allows you to create AVDs that target any Android API level

• AVD have configurable resolutions, RAM, SD cards, skins, and other hardware

Page 15: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 15

ANDROID EMULATOR: 1.6

29

ANDROID EMULATOR: 2.2

30

Page 16: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 16

ANDROID EMULATOR: 3.0

31

ANDROID EMULATOR: 4.0

32

Page 17: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 17

EMULATOR BASICS

33

• Host computer’s keyboard works

• Host’s mouse works like finger

• Uses host’s Internet connection

• Other buttons work: Home, Menu, Back, Search, volume up and down, etc.

• Ctrl-F11 toggle landscape portrait

• Alt-Enter toggle full-screen mode

• More info at • http://developer.android.com/guide/developing/devices/emulator.html

EMULATOR LIMITATIONS

34

• No support for placing or receiving actual phone calls

• Simulate phone calls (placed and received) through the emulator console

• No support for USB connections

• No support for camera/video capture (input)

• No support for device-attached headphones

• No support for determining connected state

• No support for determining battery charge level and AC charging state

• No support for determining SD card insert/eject

• No support for Bluetooth

• No support for simulating the accelerometer

• Use OpenIntents’s Sensor Simulator

• That's why we need the dev phone!

Page 18: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 18

CREATE AN AVD USING AVD MANAGER

35

• or use the command line• http://developer.android.com/guide/developing/devices/managing-avds-cmdline.html

ANDROID RUNTIME: DALVIK VM

36

• Subset of Java developed by Google

• Optimized for mobile devices (better memory management, battery utilization, etc.)

• Dalvik runs .dex files that are compiled from .class files

• Introduces new libraries

• Does not support some Java libraries like AWT, Swing• http://developer.android.com/reference/packages.html

Page 19: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 19

OR FROM THE COMMAND LINE

37

C:\android-sdk-windows\tools>android create avd -n MyDevice -t android-8

Android 2.2 is a basic Android platform.

Do you wish to create a custom hardware profile [no]

Created AVD 'MyDevice2' based on Android 2.2,

with the following hardware config:

hw.lcd.density=240

vm.heapSize=24

C:\android-sdk-windows\tools>emulator -avd MyDevice

• More info: • http://developer.android.com/guide/developing/devices/managing-avds-cmdline.html

Device name

Target platform

Launch device

APPLICATIONS ARE BOXED

38

• By default, each app is run in its own Linux process

• Process started when app’s code needs to be executed

• Threads can be started to handle time-consuming operations

• Each process has its own Dalvik VM

• By default, each app is assigned unique Linux ID

• Permissions are set so app’s files are only visible to that app

Page 20: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 20

PRODUCING AN ANDROID APP

39

Java code Byte code

Dalvik exe

Byte code <xml>

<str>

.java .class

Other .class files

javac

dx

classes.dex

AndroidManifest.xml

Resources

.apk

aapt

PRODUCING AN ANDROID APP

40

• Every application must have an AndroidManifest.xml file (with precisely that name) in its root directory. The manifest presents essential information about the application to the Android system, information the system must have before it can run any of the application's code. Among other things, the manifest does the following:

• It names the Java package for the application. The package name serves as a unique identifier for the application.

• It describes the components of the application — the activities, services, broadcast receivers, and content providers that the application is composed of. It names the classes that implement each of the components and publishes their capabilities (for example, which Intent messages they can handle). These declarations let the Android system know what the components are and under what conditions they can be launched.

Page 21: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 21

PRODUCING AN ANDROID APP

41

• It determines which processes will host application components.

• It declares which permissions the application must have in order to access protected parts of the API and interact with other applications.

• It also declares the permissions that others are required to have in order to interact with the application's components.

• It lists the Instrumentation classes that provide profiling and other information as the application is running. These declarations are present in the manifest only while the application is being developed and tested; they're removed before the application is published.

• It declares the minimum level of the Android API that the application requires.

• It lists the libraries that the application must be linked against.

OTHER DEV TOOLS

42

• Android Debug Bridge

• Part of SDK

• command line tool to communicate with an emulator or connected Android device

• check devices attached / running

• install apk's, Android PacKage files, "executables", can find samples on places besides Android Market (security?)

• and more!

• http://developer.android.com/guide/developing/tools/adb.html

Page 22: MOBILE APPLICATION DEVELOPMENT LECTURE 01imranihsan.com/upload/lecture/MADS1601.pdf• Process management • Power management • Hardware drivers ... • Android 6.0–6.0.1 Marshmallow

MAD S16 01 - Android Overview 22

DALVIK DEBUG MONITOR SERVER

43

• DDMS

• debugging tool

• "provides, screen capture on the device, thread and heap information on the device, logcat, process, and radio state information, incoming call and SMS spoofing, location data spoofing, and more."

• can interact with DDMS via Eclipse plugin, another view in Eclipse

DDMS

44