What is Android? Mobile Device Application Development COMPSCI 345

Similar documents
Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1

Introduction To Android

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

Mobile Devices and Smartphones

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

Android OS. Operating System based on Linux [ ] [Jonas Teuscher, Alex Cuordileone, Cédric Glaus]

IJRDTM Kailash ISBN No Vol.17 Issue

CSCU9YH Development with Android

ios vs Android By: Group 2

Mobile and Ubiquitous Computing: Android Programming (part 1)

UNIT:2 Introduction to Android

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.

SD Module- Android Programming

Android-Basics. Praktikum Mobile und Verteilte Systeme

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

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

Android-Basics. Praktikum Mobile und Verteilte Systeme. Prof. Dr. Claudia Linnhoff-Popien André Ebert, Sebastian Feld

Introduction to Android

Praktikum Mobile und Verteilte Systeme. Android-Basics. Prof. Dr. Claudia Linnhoff-Popien André Ebert, Sebastian Feld

Tablet - is the generic term for a mobile computer with touchscreen display that is operated with fingers or stylus pen instead of a mouse and

Chapter 1 Hello, Android

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

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

CS260 Intro to Java & Android 04.Android Intro

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

Introduction to Android

Android for Beginners Part 1

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

Android In Industrial Applications. A Field Report

An Introduction to Android. Jason Chen Developer Advocate Google I/O 2008

Android Overview. Francesco Mercaldo, PhD

International Journal of Multidisciplinary Consortium Volume 2 Issue

FAQ for KULT Basic. Connections. Settings. Calls. Apps. Media

Copyright

Studio 5.5. User Manual

Android App Development

BCA 6. Question Bank

Dash 4.0. User Manual

LIFE PURE User Manual

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

What is Android? Android is an open-source operating system (OS) used in smart devices

This guide describes features that are common to most models. Some features may not be available on your tablet.

Android for Beginners

Basics. screen? CALLS. In call. Missed call. Speakerphone on. Mute your microphone. Make another call. Turn on the speakerphone

STUDIO 7.0 USER MANUAL

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

Ahmed Ali Big fan of Android

BlackBerry BlackBerry 10 OS, version continues to build on the BlackBerry 10 platform for the Z10, Q10 and Z30 devices.

Smartphones Market Share 2011 Q2

ORACLE UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

Ferenc Peták Department of Medical Physics and Informatics 2018

NEO 4.5. User Manual

ATV520 User Manual V1.1

1. Introduction P Package Contents 1.

Android 5.1 operating system update for your

Galaxy S8+ LTE(G955U1) Application List

Galaxy S9 LTE(G960U1) Tactical Edition Application

Introduction to Android

Limited Edition Product Overview

Mobile development initiation

Android Programming in Bluetooth Cochlea Group

owncloud Android App Manual

COSC 3P97 Mobile Computing

DROID. By S.Gokulakrishnan AP/CSE SCSVMV

A MODEL FOR COMPARATIVE ANALYSIS OF THE SIMILARITY BETWEEN ANDROID AND IOS OPERATING SYSTEMS

This guide describes features that are common to most models. Some features may not be available on your tablet.

WinZip for Android User Guide

Android - open source mobile platform

Chapter 2. Operating-System Structures

DEVELOPING APPS FOR. Note: This ebook relies on and uses information from the Google Glass Developers site.

IdeaTab S6000. User Guide V1.0. Please read the safety precautions and important notes in the supplied manual before use.

Mobile Computing. Introduction to Android

ANDROID COURSE BROCHURE

DASH 4.5 user manual 1

Chapter 2: Android Device Basics

Firefox for Android. Reviewer s Guide. Contact us:

Galaxy S9+ LTE(G965U1) Application List

Android Development Tools = Eclipse + ADT + SDK

Get Started. Insert SIM card The phone is a Dual SIM mobile phone allowing you to use the facility of two networks.

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

HotSpot USER MANUAL. twitter.com/vortexcellular facebook.com/vortexcellular instagram.com/vortexcellular

ATC Android Application Development

Android. (XKE Mars 2009) Erwan Alliaume.

Chapter 2 Setting Up for Development

User Guide For Android Ice Cream. Sandwich Tablet >>>CLICK HERE<<<

Minds-on: Android. Session 1

Lenovo A5500. User Guide V1.0. Please read the safety precautions and important notes in the supplied manual before use.

1. Introduction P Package Contents 1.

Android Samsung Galaxy S6 Edge

Content. Welcome... 5 Getting Started... 5 Initial setup... 5 Setting a SIM card... 5 Locking and unlocking the screen... 7

Galaxy S8+ LTE(G955U1) Application List

1. Introduction. 1.1 Cosmo Specifications

1. SUPPORT PLATFORMS 2. INSTALLATION GUIDE Install Android SDK

Android Training Overview (For Demo Classes Call Us )

Package Contents. Firmware Updates. Device Overview

Android App Development. Ahmad Tayeb

Mobile Computing LECTURE # 2

Mobile Forensics: Android Platforms and WhatsApp Extraction Tools

Package Contents. Device Overview. Navigation Buttons

VEGA. Operation Manual T A B L E T P C. advent vega operation manaul_new.indd 1

Transcription:

What is Android? Mobile Device Application Development COMPSCI 345

Android is an Operating System An interface between users/applications and the hardware. Provides a high-level view of I/O devices. Provides useful abstractions: processes, memory, files... Resource allocator Mediates conflicting requests for CPU time and access to devices (camera, phone, sensors,...) and other resources. Control program Provides environment for safe execution of user applications. Prevents processes from reading memory outside their address space or accessing devices without permission.

Android is an Operating System Built on top of Linux (kernel version 3.10.49). Linux (written in C) handles: thread management. memory management. power management. Android is not (?) a Linux distribution. The kernel was modified for mobile devices. Optimized for minimal memory footprint. Does not include many standard tools and libraries.

Why Linux? Hardware manufacturers can develop device drivers for a well-known kernel. Security: A mature open-source kernel in widespread use. Trusted by corporations and security experts. Constantly being researched, attacked, and fixed. Application sandbox: Every app runs as a separate Linux process. Actually, all software above the kernel is sandboxed.

Not Just an Operating System Android is an open source, Linux-based software stack created for a wide array of devices and form factors. A software stack is a set of software subsystems that comprise a platform for the execution of applications. Devices: smartphones, tablets, wearables,... A form factor prescribes the size, shape, and other physical characteristics of devices. Mobile phone form factors: bar, flip, slider.

Android is a Software Stack System Apps Android API Native C/C++ Libraries Android Runtime Hardware Abstraction Layer Linux Kernel

Android is a Software Stack System Apps Android API Native C/C++ Libraries Android Runtime Hardware Abstraction Layer Linux Kernel Thread management Memory management Power management Drivers usb wifi audio camera display keypad bluetooth binder (IPC) shared memory

Android is a Software Stack System Apps Android API Native C/C++ Libraries Android Runtime Hardware Abstraction Layer Provides standard interfaces exposing device capabilities to Java API framework. Audio Sensors Camera Bluetooth Linux Kernel

Android is a Software Stack System Apps Android API Native C/C++ Libraries Android Runtime Hardware Abstraction Layer Linux Kernel Many core system components run native code requiring libraries written in C or C++. Java API Framework exposes some of these libraries to apps. Libc Webkit Open GL ES OpenMAX AL Media Framework

Android is a Software Stack System Apps Android API Native C/C++ Libraries Android Runtime Designed to run multiple VMs on low-memory devices. Runtime libraries that implement most of the core Java API. Hardware Abstraction Layer Linux Kernel

Android is a Software Stack System Apps Android API Native C/C++ Libraries Android Runtime Hardware Abstraction Layer Linux Kernel The building blocks used by app developers. Java classes for: UI components UI layouts Activities Resources Notifications Content providers

Android is a Software Stack System Apps Android API Native C/C++ Libraries Android Runtime Hardware Abstraction Layer Stored in the read-only /system/app folder. Web browser Calendar Camera Dialer Email Linux Kernel

Dalvik Virtual Machine VM for executing Android apps. Optimized for running multiple instances. Register-based. Fewer (but more complex) instructions compared with stack-based VMs (like the JVM). Android Runtime App A App B App C App D Dalvik VM Dalvik VM Dalvik VM Dalvik VM Hardware Abstraction Layer Linux Kernel

Dalvik Virtual Machine Source Code Java Compiler Byte Code JVM

Dalvik Virtual Machine Source Code Java Compiler Byte Code JVM DEX Compiler Dalvik Byte Code Dalvik VM

Android Runtime (ART) Successor of Dalvik for improved performance. AOT compiler. Improved garbage collection. More debugging features. Runs DEX bytecode for backward compatibility. History: Included in 4.4 (KitKat) as alternative runtime. Replaced Dalvik entirely in 5.0 (Lollipop). Added JIT compiler with code profiling in 7.0 (Nougat).

Android Development In order to write apps, you will need: JDK (SE) 7 or 8 The Android SDK Android Studio Apps can be run in the SDK s emulator or deployed directly to an attached device. Some knowledge of XML is needed. app configuration resource management

Using Java All features of Java 7 are supported. Supported features of Java 8: lambda expressions method references type annotations repeatable annotations (API 24 only) default and static interface methods (API 24 only) Google vs. Oracle: can an API be copyrighted?

Other Development Languages Kotlin is now an official Android language. Resembles but improves upon Java (safer, more concise) Designed to interoperate with Java. Can use the Java Class Library. Runs on the JVM. Can be compiled to JavaScript source code. Created and developed by JetBrains. Fully supported in Android Studio.

Android SDK Developer tools compiler debugger emulator Documentation Sample code and tutorials Implementation of the Android API

Android Studio Google s official IDE for Android development Built on top of IntelliJ IDEA (Community Edition) World-class code editing, debugging, performance tooling, a flexible build system, and an instant build/deploy system all allow you to focus on building unique and high quality apps.

Material Design A design philosophy for the look-and-feel of an app that allows for a unified experience across platforms and device sizes. Three guiding principles: Material is the metaphor. Bold, graphic, intentional. Motion provides meaning.

Material is the Metaphor Inspired by paper and ink. Grounded in tactile reality. Surfaces and edges provide visual cues. Familiar tactile attributes suggest affordances. Flexibility of material creates new affordances that supersede laws of physics without breaking them. Realistic lighting shows seams, divides space, and indicates moving parts.

Bold, Graphic, Intentional Elements of print-based design create hierarchy, meaning, and focus. typography space scale color Immerses user in the experience. Emphasis on user actions makes core functionality immediately apparent and provides waypoints.

Motion Provides Meaning Primary user actions are inflection points that initiate motion, transforming the whole design. Objects presented without breaking continuity of experience, even as they transform and reorganize. Motion focuses attention and maintains continuity. Transitions efficient yet coherent.

History 2001 Google starts filing for mobile patents. 2005 Google purchases Android, Inc. 2007 Open Handset Alliance 2008 Android 1.0 2009 Android 1.5 2010 Sued by Oracle for copyright/patent infringement. 2011 Acquires Motorola and 17,000 patents. Purchases 1023 patents from IBM.

History Version Android 1.0 API Level 1 Release Date 09/23/2008 Web Browser WiFi and Bluetooth Camera Media Player Instant messaging Google sync: Gmail, Contacts, Calendar Standard apps alarm clock, dialer, launcher, gallery, calculator, settings App downloads and updates through Android Market Text messaging Google Maps with Street View

History Version Android 1.1 API Level 2 Release Date 02/09/2009 Map improvements Save attachments Show/hide dial pad

Cupcake Version Android 1.5 API Level 3 Release Date 04/27/2009 Widgets Video recording/playback Animated screen transitions Auto-rotation option Pictures in contacts Upload to YouTube and Picassa Virtual keyboards with text prediction and user dictionary

Donut Version Android 1.6 API Level 4 Release Date 09/15/2009 Text-to-speech engine Expanded gesture framework Multilingual speech synthesis Integrated camera/gallery Select multiple photos for deletion Enhanced voice and text entry search View app screenshots in Android Market

Eclair Version Android 2.0 API Level 5 Release Date 10/26/2009 Version Android 2.0.1 API Level 6 Release Date 12/03/2009 Version Android 2.1 API Level 7 Release Date 01/12/2010 Live wallpapers Multi-touch events Improved Google Maps Tap contact photo to call Many new camera features Add multiple accounts to a device for synchronization of email and contacts Improved typing speed on virtual keyboard with smarter dictionary that uses contact names as suggestions.

Froyo Version Android 2.2 API Level 8 Release Date 05/20/2010 USB tethering Adobe Flash support WiFi hotspot functionality Support for high PPI displays File uploads in browser app JavaScript V8 engine in Chrome Numeric and alphanumeric passwords Android Cloud to Device Messaging (C2DM) support

Gingerbread Version Android 2.3 API Level 9 Release Date 12/06/2010 Version Android 2.3.3 API Level 10 Release Date 02/09/2011 Support for extra-large screens Last version to target only phones Oldest version still used in the wild Multiple cameras Native support for VoIP NFC support, allowing user to read an NFC tag embedded in poster, sticker, advertisement. Native support for new sensors (gyroscope, barometer,...)

Honeycomb Version Android 3.0 API Level 11 Release Date 02/22/2011 Version Android 3.1 API Level 12 Release Date 05/10/2011 Version Android 3.2 API Level 13 Release Date 07/15/2011 Optimized for tablets Holographic UI Fragments API Action bar System bar USB On-The-Go Encrypt user data External keyboards

Ice Cream Sandwich Version Android 4.0 API Level 14 Release Date 10/18/2011 Version Android 4.0.3 API Level 15 Release Date 12/16/2011 Photo editor Face Unlock Customizable launcher Unified SDK for both tablets and phones Improved voice integration Improved Holographic UI with Roboto font family Improved camera app with zero shutter lag, time lapse settings, panorama mode, ability to zoom while recording

Jelly Bean Version Android 4.1 API Level 16 Release Date 07/09/2012 Version Android 4.2 API Level 17 Release Date 11/13/2012 Version Android 4.3 API Level 18 Release Date 07/24/2013 Smoother UI Multichannel audio Camera improvements Expandable notifications Lock screen improvements Multi-user support on tablets RTL languages supported Open GL ES 3.0 support

KitKat Version Android 4.4 API Level 19 Release Date 10/31/2013 Version Android 4.4W API Level 20 Release Date 06/25/2014 Wearable extensions NFC host card emulation, enabling device to replace smart cards Storage Access Framework UI updates for Google Maps Wireless printing Android Runtime (experimental) New framework for UI transitions

Lollipop Version Android 5.0 API Level 21 Release Date 11/12/2014 Version Android 5.1 API Level 22 Release Date 03/09/2015 Support for 64-bit CPUs ART Tap and Go Project Volta Flashlight app Material Design Open GL ES 3.1 on supported GPU configurations 15 new languages: Basque, Bengali, Burmese, Chinese (Hong Kong), Icelandic, Kannada, Kyrgyz, Macedonian, Malayalam, Marathi, Nepali, Sinhala, Tamil, and Telugu

Marshmallow Version Android 6.0 API Level 23 Release Date 10/05/2015 Doze mode Native fingerprint reader support MIDI support for musical instruments App permissions now granted at runtime Automatic full backup and restore for apps Contextual support from keywords within apps

Nougat Version Android 7.0 API Level 24 Release Date 08/22/2016 Version Android 7.1 API Level 25 Release Date 10/04/2016 Daydream virtual reality platform Ability to screen zoom Multi-window support Vulcan 3D rendering API Unicode 9.0 emoji support Picture-in-picture support for Android TV New JIT compiler with code profiling to ART Another system partition for seamless system updates

Oreo Version Android 8.0 API Level 26 Release Date 03/21/2017 Version Android 8.1 API Level 27 Release Date 12/5/2017 Neural networks API Redesigned architecture makes it easier and faster for hardware makers to deliver Android updates. Adaptive icons Multi-display support Shared memory API Faster boot time Notification improvements

Pie Version Android 9.0 API Level 26 Release Date 08/06/2018 New UI for quick settings menu. Screenshot button added to power options. New gesture-based navigation options. Android Dashboard Tells how much time user spends on device and with particular apps. Allows user to set time limits on apps.

Usage (October 2018) Version Share Oreo 22% Nougat 28% Marshmallow 21% Lollipop 18% KitKat 8% Jelly Bean 3%

Popularity 1,000,000 new users every day (2017) 1,000,000,000 active users daily (2017) 2,000,000,000 active users monthly (2017) 85% of global smartphone market share (2018) Largest installed base of any mobile platform