Mobile and Ubiquitous Computing: Android Programming (part 1)

Similar documents
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.

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

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

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

CS260 Intro to Java & Android 04.Android Intro

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

Mobile and Wireless Systems Programming

Lecture 1 - Introduction to Android

Android Debugging ART

Infrastructure Middleware (Part 3): Android Runtime Core & Native Libraries

Introduction to Android Android Smartphone Programming. Outline University of Freiburg. What is Android? Background University of Freiburg.

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

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

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Introduction To Android

Android App Development

Android. (XKE Mars 2009) Erwan Alliaume.

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

SD Module- Android Programming

Android Ecosystem and. Revised v4presenter. What s New

Android Development Tutorial. Yi Huang

Introduction to Android

Android Overview. Francesco Mercaldo, PhD

Android App Development. Ahmad Tayeb

Android Internals and the Dalvik VM!

What is Android? Mobile Device Application Development COMPSCI 345

Chapter 2. Operating-System Structures

Introduction to Android

ANDROID SYLLABUS. Advanced Android

Android Application Development A Beginners Tutorial

Android Programming in Bluetooth Cochlea Group

Android Internals. Lecture 1. Android and Low-level Optimizations Summer School. 13 July 2015

ITG Software Engineering

IJRDTM Kailash ISBN No Vol.17 Issue

Chapter 1 Hello, Android

Android Software Development Kit (Part I)

ATC Android Application Development

ios vs Android By: Group 2

ORACLE UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

Introduction to Android

Chapter 2: Operating-System Structures

ART JIT in Android N. Xueliang ZHONG Linaro ART Team

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

CSCU9YH Development with Android

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Android App Development

DROID. By S.Gokulakrishnan AP/CSE SCSVMV

Operating System Services. User Services. System Operation Services. User Operating System Interface - CLI. A View of Operating System Services

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

Introduction to Android development

Chapter 2 Setting Up for Development

Minds-on: Android. Session 1

Android-Basics. Praktikum Mobile und Verteilte Systeme

ANDROID NATIVE APP: INTRODUCTION TO ANDROID. Roberto Beraldi

SHWETANK KUMAR GUPTA Only For Education Purpose

BCA 6. Question Bank

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

Abstract. 1. Introduction

Android: Under the Hood. GDG-SG DevFest 5th Nov 2016 Jason Zaman

Introduction to Android Application Development. Mike Kvintus Principal Engineer JDSU

Software Development & Education Center ANDROID. Application Development

Android Apps. with Eclipse. Apress. Onur Cinar

Mobile development initiation

UNIT:2 Introduction to Android

Pemrograman Mobile. Lesson 1. Introduction to Android. Create Your First Android App. Nizar Rabbi Radliya

Android Application Development Course Code: AND-401 Version 7 Duration: 05 days

Android ATC Android Security Essentials Course Code: AND-402 version 5 Hands on Guide to Android Security Principles

Android In Industrial Applications. A Field Report

COSC 3P97 Mobile Computing

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

Hello World. Lesson 1. Create your first Android. Android Developer Fundamentals. Android Developer Fundamentals

Open Mobile Platforms. EE 392I, Lecture-6 May 4 th, 2010

Chapter 2: System Structures

Mobile OS. Symbian. BlackBerry. ios. Window mobile. Android

Android Sdk Tutorial For Windows 7 64 Bit Full Version

Real-Time Embedded Systems

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

Pro Android 2. Sayed Y. Hashimi Satya Komatineni Dave Mac Lean. Apress

Chapter 2: System Structures. Operating System Concepts 9 th Edition

Mobile Application Development

Android App Development Workshop

Porting mobile web application engine to the Android platform

Android PC Splash Brothers Design Specifications

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

Android Sdk Install Documentation Eclipse. Ubuntu >>>CLICK HERE<<<

Android - open source mobile platform

Mobile Application Development - Android

User Guide. Android x86 Modified System. Sponsor: Huan Ren. Compiled by: Zachary Bair, Taronish Daruwalla, Joshua Duong, and Anthony Nguyen

Android Application Development

Around Android. Essential Android features illustrated by a walk through a practical example

Lecture 3 Android Internals

Installing and configuring an Android device emulator. EntwicklerCamp 2012

Applications Mobiles et Internet des Objets Introduction a l architecture d Android

Android Sdk Setup For Windows 7 32 Bit Full Version

Ios Sdk Documentation For Windows 7 32 Bit Full Version

Android OS and Power Architecture

1Hello, Android COPYRIGHTED MATERIAL

Android Application Development Course 28 Contact Hours

Transcription:

Mobile and Ubiquitous Computing: Android Programming (part 1) Master studies, Winter 2015/2016 Dr Veljko Pejović Veljko.Pejovic@fri.uni-lj.si

The World of Android The Android Platform A mobile operating system + libraries + application frameworks + key apps Based on Linux Open source Runs on a range of devices Some with OEM versions Market share ~ 75% worldwide Android SDK for creating apps Lots of documentation Huge community

Android Versions

Android Versions

Key Android Features Process management specifically tailored for battery-powered devices When an app is not used, it gets suspended by Android Process management specifically tailored for lowmemory devices When the memory is low, suspended apps are terminated Support for direct manipulation interfaces Touchscreen gestures, sensors, notifications Open ecosystem of applications Support for developing and distributing Android apps

Android Architecture

Linux Kernel Services Memory and process management Usually one process per app Processes are allocated a certain amount of memory (you may get OutOfMemoryException in your app) Android automatically manages the process lifecycle (third-party task managers do more harm than good) Interprocess communication

Linux Kernel Services Security management Each app runs in its own sandbox Private memory for the app Android manages memory safety of apps written in the SDK Each app is given a set of permissions once at the time it is installed Users can restrict access to system features and user data, encrypt files Bad programming is the biggest threat Exposing data to other apps, insecure networking buggy native code, dynamic code loading

Linux Kernel Services Power management Screen dimming, process killing Wakelocks Project Volta in Android Lollipop JobScheduler API File and network I/O Device drivers

Native Libraries System C library Bionic libc Surface manager Composing windows on the screen Open GL 3D graphics SGL 2D graphics FreeType Font rendering Media Framework Recording and playback of audio/ video/photos SQLite Relational database engine Webkit Browser engine Open SSL Secure communication

Android Runtime Core Java libraries basic java classes - java.*, javax.* app lifecycle - android.* Internet/Web services - org. * Unit testing - junit.* Process virtual machine (VM): Dalvik (until Android 4.4 KitKat) Android Runtime ART (starting with 5.0 Lollypop)

Android Runtime Workflow (with Dalvik) App written in Java Compiled to Java bytecode files (i.e..class files) DX converts Java bytecode files to a single DEX bytecode file (.dex file) Optimised for space.apk file is generated with the dex file and all the application resources, manifest, etc. On the phone, Dalvik performs trace-based just-intime compilation (JIT) and interpretation

Android Runtime Workflow (with ART) App written in Java Compiled to Java bytecode files (i.e..class files) DX converts Java bytecode files to a single DEX bytecode file (.dex file) Optimised for space.apk file is generated with the dex file and all the application resources, manifest, etc. When the app is installed, ART uses ahead-of-time (AOT) compilation to convert it and save it as native machine code. Every other time, the app runs from the native code

So, how do I start programming for Android?

Getting Started with Android Programming Android Software Development Kit (SDK) Libraries Debugger Android device emulator Communication between the SDK and the device via Android Debug Bridge (adb) Integrated development environment (IDE) Android Studio OR Eclipse Android Development Tools (ADT)

Android Studio Free, officially supported IDE Project management Classes + resources + manifest Compilation Target API version, minimum API version ProGuard and app signing Maven-based build dependencies Nice editor WYSIWYG, real time app rendering Autocomplete command look-up

Android Studio Download from: http://developer.android.com/sdk/index.html Requirements: Java Development Kit (JDK) 7

TODO Read the syllabus carefully Form project teams Meet and brainstorm about your project topic Sign up for office hours meetings Find an Android phone Optional, but highly suggested Install Android Studio on your laptop/pc See you on Wednesday!