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

Size: px
Start display at page:

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

Transcription

1 Infrastructure Middleware (Part 3): Android Runtime Core & Native Libraries Douglas C. Schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA

2 Learning Objectives in this Part of the Lesson Recognize key core Java libraries that are part of the Android platform 2

3 Learning Objectives in this Part of the Lesson Recognize key core Java libraries that are part of the Android platform Recognize key core Android libraries that are part of the Android platform 3

4 Learning Objectives in this Part of the Lesson Recognize key core Java libraries that are part of the Android platform Recognize key core Android libraries that are part of the Android platform Recognize key native libraries that are part of the Android platform C++/C 4

5 Learning Objectives in this Part of the Lesson Recognize key core Java libraries that are part of the Android platform Recognize key core Android libraries that are part of the Android platform Recognize key native libraries that are part of the Android platform ART Dalvik Virtual Machine Apps use core Java/Android libraries extensively; 5 native libraries not as much

6 Overview of the Android Runtime: Core Java Libraries 6

7 Android Runtime: Core Java Libraries Android contains many (but not all) core Java libraries in the java.* & javax.* packages C/Java/ JNI ART Dalvik Virtual Machine java lang util io Integer String Thread ArrayList HashMap Vector File FileInputStream FileOutputStream See en.wikipedia.org/wiki/comparison_of_java_and_android_api 7

8 Android Runtime: Core Java Libraries Android contains many (but not all) core Java libraries in the java.* & javax.* packages, e.g. Java Thread C/Java/ JNI ART Dalvik Virtual Machine See developer.android.com/reference/java/lang/thread.html 8

9 Android Runtime: Core Java Libraries Android contains many (but not all) core Java libraries in the java.* & javax.* packages, e.g. Java Thread C/Java/ JNI ART Dalvik Virtual Machine Process A Process B Process C A Java thread is a unit of computation that runs in the context of a process See developer.android.com/reference/java/lang/thread.html 9

10 Android Runtime: Core Java Libraries Android contains many (but not all) core Java libraries in the java.* & javax.* packages, e.g. Java Thread C/Java/ JNI ART Dalvik Virtual Machine Process A Process B Process C Java threads running in a process can communicate with each other via shared objects or message passing See en.wikipedia.org/wiki/thread_(computing) 10

11 Android Runtime: Core Java Libraries Android contains many (but not all) core Java libraries in the java.* & javax.* packages, e.g. Java Thread C/Java/ JNI ART Dalvik Virtual Machine Process A Process B Process C Each Java thread leverages unique state from the underlying Linux kernel thread, e.g., a stack, a program counter, & other registers See en.wikipedia.org/wiki/thread_(computing)#processes. 2C_kernel_threads.2C_user_threads.2C_and_fibers 11

12 Android Runtime: Core Java Libraries Android contains many (but not all) core Java libraries in the java.* & javax.* packages, e.g. Java Thread C/Java/ JNI ART Dalvik Virtual Machine Process A Process B Process C Java dynamic & static objects can be shared across Java threads (i.e., this state is common) See en.wikipedia.org/wiki/thread_(computing)#processes. 2C_kernel_threads.2C_user_threads.2C_and_fibers 12

13 Android Runtime: Core Java Libraries Android contains many (but not all) core Java libraries in the java.* & javax.* packages, e.g. Java Thread Java synchronizers C/Java/ JNI ART Dalvik Virtual Machine Process A Process B Process C e.g., reentrant locks, stamped locks, semaphores, condition objects, phasers, etc. See developer.android.com/reference/java/util/concurrent/package-summary.html 13

14 Android Runtime: Core Java Libraries Android contains many (but not all) core Java libraries in the java.* & javax.* packages, e.g. Java Thread Java synchronizers Java synchronizers are used to prevent race conditions C/Java/ JNI ART Dalvik Virtual Machine Process A Process B Process C See en.wikipedia.org/wiki/race_condition 14

15 Android Runtime: Core Java Libraries Android contains many (but not all) core Java libraries in the java.* & javax.* packages, e.g. Java Thread Java synchronizers Java networking C/Java/ JNI Java network programming mechanisms can exchange data between Android devices & remote servers ART Dalvik Virtual Machine Network See developer.android.com/reference/java/net/httpurlconnection.html 15

16 Android Runtime: Core Java Libraries Android contains many (but not all) core Java libraries in the java.* & javax.* packages, e.g. Java Thread Java synchronizers Java networking Java I/O & files C/Java/ JNI ART Dalvik Virtual Machine Java file mechanisms can store data persistently on Android devices See docs.oracle.com/javase/8/docs/api/java/nio/file/files.html 16

17 Overview of the Android Runtime: Core Android Libraries 17

18 Android Runtime: Core Android Libraries Android contains thousands of classes in the android.* packages C/Java/ JNI ART Dalvik Virtual Machine See 18

19 Android Runtime: Core Android Libraries Android contains thousands of classes in the android.* packages, e.g. Concurrency C/Java/ JNI ART Dalvik Virtual Machine See 19

20 Android Runtime: Core Android Libraries Android contains thousands of classes in the android.* packages, e.g. Concurrency Handlers, Messages, & Runnables (HaMeR) Operations run in one or more threads & publish their results to the UI thread Looper Message C/Java/ JNI Message Queue Message Message Message Message Message UI Thread (main thread) ART Dalvik Virtual Machine Message Handler Handler Runnable Background Thread A Background Thread B See developer.android.com/training/multiple-threads/communicate-ui.html 20

21 Android Runtime: Core Android Libraries Android contains thousands of classes in the android.* packages, e.g. Concurrency Handlers, Messages, & Runnables (HaMeR) AsyncTask Looper C/Java/ JNI Message Queue Message Message Message Message ART Dalvik Virtual Machine Similar to HaMeR framework, but without using threads, handlers, messages, or runnables directly Message Message UI Thread (main thread) Async Task See developer.android.com/reference/android/os/asynctask.html 21

22 Android Runtime: Core Android Libraries Android contains thousands of classes in the android.* packages, e.g. Concurrency App components C/Java/ JNI ART Dalvik Virtual Machine 22

23 Android Runtime: Core Android Libraries Android contains thousands of classes in the android.* packages, e.g. Concurrency App components Building blocks of mobile apps that provide hooks that Android uses to control an app s lifecycle C/Java/ JNI Activity ART Dalvik Virtual Machine Service Broadcast Receiver Content Provider See developer.android.com/guide/components/fundamentals.html#components 23

24 Android Runtime: Core Android Libraries Android contains thousands of classes in the android.* packages, e.g. Concurrency App components Binder IPC framework C/Java/ JNI ART Dalvik Virtual Machine 24

25 Android Runtime: Core Android Libraries Android contains thousands of classes in the android.* packages, e.g. Concurrency App components Binder IPC framework Enables sync & async communication between components on a device C/Java/ JNI ART Dalvik Virtual Machine See elinux.org/android_binder 25

26 Android Runtime: Core Android Libraries The source code for all the core Java & Android libraries is available online See source.android.com 26

27 Overview of Android Native C/C++ Libraries 27

28 Android Native C/C++ Libraries C++/C Although Android apps are written using Java APIs, implementations of these APIs are often written in C/C++ Performance Productivity Goal is to enhance system performance 28w/out sacrificing developer productivity

29 Android Native C/C++ Libraries C++/C Although Android apps are written using Java APIs, implementations of these APIs are often written in C/C++ Java & C/C++ are combined via the Java Native Interface (JNI) See developer.android.com/training/articles/perf-jni.html 29

30 Android Native C/C++ Libraries C++/C Although Android apps are written using Java APIs, implementations of these APIs are often written in C/C++ Java & C/C++ are combined via the Java Native Interface (JNI) JNI defines a standard way for managed Java code to interact with native code written in C/C++ 30

31 Android Native C/C++ Libraries C++/C Android s Native Development Kit (NDK) allows the implementation of apps & services using native C/C++ code See developer.android.com/ndk 31

32 Android Native C/C++ Libraries C++/C Android s Native Development Kit (NDK) allows the implementation of apps & services using native C/C++ code Using the NDK on portions of code can help enhance performance by minimizing latency, maximizing throughput, & conserving key system resources Resist the urge to develop all 32of your apps using the NDK!

33 Android Native C/C++ Libraries C++/C Android s Native Development Kit (NDK) allows the implementation of apps & services using native C/C++ code Using the NDK on portions of code can help enhance performance by minimizing latency, maximizing throughput, & conserving key system resources It can also be used to integrate existing C/C++ libraries into Android apps 33

34 Android Native C/C++ Libraries C++/C System C library Webkit bionic libc web browser engine Surface Manager OpenGL ES, SGL display management graphics engines Media Framework SQLite audio/video streaming relational database engine FreeType SSL library for rendering fonts secure sockets layer Android native libraries are open source 34 & often have Java wrapper facades

35 Android Native C/C++ Libraries C++/C System C library Webkit bionic libc web browser engine Surface Manager OpenGL ES, SGL display management graphics engines Media Framework SQLite audio/video streaming relational database engine FreeType SSL library for rendering fonts secure sockets layer Enables developers to write native 35 system services for Android

36 Android Native C/C++ Libraries C++/C System C library Webkit bionic libc web browser engine Surface Manager OpenGL ES, SGL display management graphics engines Media Framework SQLite audio/video streaming relational database engine FreeType SSL library for rendering fonts secure sockets layer Composites 2D & 3D graphic 36 layers from multiple apps

37 Android Native C/C++ Libraries C++/C System C library bionic libc Surface Manager display management Media Framework audio/video streaming FreeType library for rendering fonts Webkit web browser engine OpenGL ES, SGL graphics engines SQLite relational database engine SSL secure sockets layer Supports audio-video streaming 37 in the background

38 Android Native C/C++ Libraries C++/C System C library bionic libc Surface Manager display management Media Framework audio/video streaming FreeType library for rendering fonts Webkit web browser engine OpenGL ES, SGL graphics engines SQLite relational database engine SSL secure sockets layer Renders bitmap 38& vector fonts

39 Android Native C/C++ Libraries C++/C System C library Webkit bionic libc web browser engine Surface Manager OpenGL ES, SGL display management graphics engines Media Framework SQLite audio/video streaming relational database engine FreeType SSL library for rendering fonts secure sockets layer Framework used on mobile & non-mobile 39 platforms for web browsing

40 Android Native C/C++ Libraries C++/C System C library Webkit bionic libc web browser engine Surface Manager OpenGL ES, SGL display management graphics engines Media Framework SQLite audio/video streaming relational database engine FreeType SSL library for rendering fonts secure sockets layer Supports 2D & 3D vector graphics, 40e.g., often used for gaming apps

41 Android Native C/C++ Libraries C++/C System C library Webkit bionic libc web browser engine Surface Manager OpenGL ES, SGL display management graphics engines Media Framework SQLite audio/video streaming relational database engine FreeType SSL library for rendering fonts secure sockets layer Relational database engine that performs 41 CRUD operations on persistent data

42 Android Native C/C++ Libraries C++/C System C library Webkit bionic libc web browser engine Surface Manager OpenGL ES, SGL display management graphics engines Media Framework SQLite audio/video streaming relational database engine FreeType SSL library for rendering fonts secure sockets layer Ensures confidentiality & integrity for 42web interactions (e.g., e-commerce)

43 Android Native C/C++ Libraries C++/C System C library Webkit bionic libc web browser engine Surface Manager OpenGL ES, SGL display management graphics engines Media Framework SQLite audio/video streaming relational database engine FreeType SSL library for rendering fonts secure sockets layer Native C/C++ libraries use non-java concurrency 43 libraries, e.g., POSIX pthreads

44 End of Infrastructure Middleware (Part 3): the Android Runtime Core & Native Libraries 44

Benefits of Concurrency in Java & Android: Program Structure

Benefits of Concurrency in Java & Android: Program Structure Benefits of Concurrency in Java & Android: Program Structure Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University

More information

Overview of Java Threads (Part 2)

Overview of Java Threads (Part 2) Overview of Java Threads (Part 2) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Learning

More information

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

An Introduction to Android. Jason Chen Developer Advocate Google I/O 2008 An Introduction to Android Jason Chen Developer Advocate Google I/O 2008 Background What is Android? Latest News 4,000,000,000 Internet and Mobile Phone Users, Worldwide 3,000,000,000 2,000,000,000 1,000,000,000

More information

Overview of Layered Architectures

Overview of Layered Architectures Overview of ed Architectures Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville,

More information

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.

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. 9. Android is an open-source operating system for mobile devices. Nowadays, it has more than 1.4 billion monthly active users (statistic from September 2015) and the largest share on the mobile device

More information

Android Ecosystem and. Revised v4presenter. What s New

Android Ecosystem and. Revised v4presenter. What s New Android Ecosystem and Revised v4presenter What s New Why Mobile? 5B 4B 3B 2B 1B Landlines PCs TVs Bank users Mobiles 225M AOL 180M 135M 90M 45M 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Quarters

More information

Infrastructure Middleware (Part 1): Hardware Abstraction Layer (HAL)

Infrastructure Middleware (Part 1): Hardware Abstraction Layer (HAL) Infrastructure Middleware (Part 1): Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA

More information

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

Introduction. Lecture 1. Operating Systems Practical. 5 October 2016 Introduction Lecture 1 Operating Systems Practical 5 October 2016 This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/.

More information

Mobile and Ubiquitous Computing: Android Programming (part 1)

Mobile and Ubiquitous Computing: Android Programming (part 1) 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

More information

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

Android Overview. Most of the material in this section comes from Android Overview Most of the material in this section comes from http://developer.android.com/guide/ Android Overview A software stack for mobile devices Developed and managed by Open Handset Alliance

More information

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

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement. CSCE 315: Android Lectures (1/2) Dr. Jaerock Kwon App Development for Mobile Devices Jaerock Kwon, Ph.D. Assistant Professor in Computer Engineering App Development for Mobile Devices Jaerock Kwon, Ph.D.

More information

Android App Development. Ahmad Tayeb

Android App Development. Ahmad Tayeb Android App Development Ahmad Tayeb Ahmad Tayeb Lecturer @ Department of Information Technology, Faculty of Computing and Information Technology, KAU Master degree from Information Sciences and Technologies,

More information

Overview of Java Threads (Part 3)

Overview of Java Threads (Part 3) Overview of Java Threads (Part 3) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Learning

More information

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

Produced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology Mobile Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie Android Anatomy Android Anatomy 2! Agenda

More information

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY A PATH FOR HORIZING YOUR INNOVATIVE WORK A REVIEW ON THE ARCHITECTURE OF ANDROID IN SMART PHONES RAVNEET KAUR T. BAGGA 1,

More information

Android App Development

Android App Development Android App Development Outline Introduction Android Fundamentals Android Studio Tutorials Introduction What is Android? A software platform and operating system for mobile devices Based on the Linux kernel

More information

The Java Executor (Part 1)

The Java Executor (Part 1) The Java Executor (Part 1) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Learning

More information

Overview of Frameworks: Part 3

Overview of Frameworks: Part 3 : Part 3 d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA CS 282 Principles of Operating Systems II Systems

More information

Android Internals and the Dalvik VM!

Android Internals and the Dalvik VM! Android Internals and the Dalvik VM! Adam Champion, Andy Pyles, Boxuan Gu! Derived in part from presentations by Patrick Brady, Dan Bornstein, and Dan Morrill from Google (http://source.android.com/documentation)!

More information

Lecture 1 - Introduction to Android

Lecture 1 - Introduction to Android Lecture 1 - Introduction to Android This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/

More information

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

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore Android App Development Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore Mobile devices (e.g., smartphone, tablet PCs, etc.) are increasingly becoming an essential part of human life

More information

Android is a software stack for mobile devices and comprises middleware, operating system and core

Android is a software stack for mobile devices and comprises middleware, operating system and core http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:hyb3.5:hrte:sdk Android Outline Android is a software stack for mobile devices and comprises middleware, operating system and core applications.

More information

Java 8 Parallel ImageStreamGang Example (Part 3)

Java 8 Parallel ImageStreamGang Example (Part 3) Java 8 Parallel ImageStreamGang Example (Part 3) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt

More information

Android Programming in Bluetooth Cochlea Group

Android Programming in Bluetooth Cochlea Group Android Programming in Bluetooth Cochlea Group Zijian Zhao Abstract: My project is mainly android programming work in the Bluetooth Cochlea Group. In this report I will first introduce the background of

More information

Java Barrier Synchronizers: CountDownLatch (Part 1)

Java Barrier Synchronizers: CountDownLatch (Part 1) Java Barrier Synchronizers: CountDownLatch (Part 1) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville,

More information

Android Software Development Kit (Part I)

Android Software Development Kit (Part I) Android Software Development Kit (Part I) Gustavo Alberto Rovelo Ruiz October 29th, 2010 Look & Touch Group 2 Presentation index What is Android? Android History Stats Why Andriod? Android Architecture

More information

Android Development Tutorial. Yi Huang

Android Development Tutorial. Yi Huang Android Development Tutorial Yi Huang Contents What s Android Android architecture Android software development Hello World on Android More 2 3 What s Android Android Phones Sony X10 HTC G1 Samsung i7500

More information

Software Development & Education Center ANDROID. Application Development

Software Development & Education Center ANDROID. Application Development Software Development & Education Center ANDROID Application Development Android Overview and History ANDROID CURRICULUM How it all got started Why Android is different (and important) Android Stack Overview

More information

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

Introduction to Android Android Smartphone Programming. Outline University of Freiburg. What is Android? Background University of Freiburg. Introduction to Android Android Smartphone Programming Matthias Keil Institute for Computer Science Faculty of Engineering October 19, 2015 Outline 1 What is Android? 2 3 Applications: A Quick Glimpse

More information

ios vs Android By: Group 2

ios vs Android By: Group 2 ios vs Android By: Group 2 The ios System Memory Section A43972 Delta Core OS Layer Core Services Layer Media Layer CoCoa Touch Layer Memory Section A43972 Delta Aaron Josephs Core OS Layer - Core OS has

More information

Lecture 4 Native libraries

Lecture 4 Native libraries Lecture 4 Native libraries This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send

More information

Java Semaphore (Part 1)

Java Semaphore (Part 1) Java Semaphore (Part 1) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Learning Objectives

More information

SHWETANK KUMAR GUPTA Only For Education Purpose

SHWETANK KUMAR GUPTA Only For Education Purpose Introduction Android: INTERVIEW QUESTION AND ANSWER Android is an operating system for mobile devices that includes middleware and key applications, and uses a modified version of the Linux kernel. It

More information

Mobile Computing. Introduction to Android

Mobile Computing. Introduction to Android Mobile Computing Introduction to Android Mobile Computing 2011/2012 What is Android? Open-source software stack for mobile devices OS, middleware and key applications Based upon a modified version of the

More information

Android App Development

Android App Development Android App Development Course Contents: Android app development Course Benefit: You will learn how to Use Advance Features of Android with LIVE PROJECTS Original Fees: 15000 per student. Corporate Discount

More information

ANDROID SYLLABUS. Advanced Android

ANDROID SYLLABUS. Advanced Android Advanced Android 1) Introduction To Mobile Apps I. Why we Need Mobile Apps II. Different Kinds of Mobile Apps III. Briefly about Android 2) Introduction Android I. History Behind Android Development II.

More information

Android OS and Power Architecture

Android OS and Power Architecture June 24, 2010 OS and Power Architecture FTF-NET-F0677 Phil Brownfield Software Product Manager, NMG Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, the Energy Efficient Solutions logo, Flexis, MXC,

More information

Introduction to Android

Introduction to Android Introduction to Android http://myphonedeals.co.uk/blog/33-the-smartphone-os-complete-comparison-chart www.techradar.com/news/phone-and-communications/mobile-phones/ios7-vs-android-jelly-bean-vs-windows-phone-8-vs-bb10-1159893

More information

Java Barrier Synchronizers: CyclicBarrier (Part 1)

Java Barrier Synchronizers: CyclicBarrier (Part 1) Java Barrier Synchronizers: CyclicBarrier (Part 1) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville,

More information

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

Operating System Services. User Services. System Operation Services. User Operating System Interface - CLI. A View of Operating System Services Operating System Services One set of services for users The other set of services for system operations Operating Systems Structures Notice: This set of slides is based on the notes by Professor Perrone

More information

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

Android. Operating System and Architecture. Android. Screens. Main features Android Android Operating System and Architecture Operating System and development system from Google and Open Handset Alliance since 2008 At the lower level is based on the Linux kernel and in a higher

More information

Java ReentrantLock (Part 1)

Java ReentrantLock (Part 1) Java ReentrantLock (Part 1) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Learning

More information

Android on Tizen. Moscow State University

Android on Tizen. Moscow State University Android on Tizen 1 Moscow State University Presenter Andrey Shitov PhD Student at Lomonosov Moscow State University (MSU), Computational Mathematics and Cybernetics 2 Compilers, Virtual Machines, System

More information

Introduction to Android Application Development. Mike Kvintus Principal Engineer JDSU

Introduction to Android Application Development. Mike Kvintus Principal Engineer JDSU Introduction to Android Application Development Mike Kvintus Principal Engineer JDSU Agenda Android Background What is Android? Android Fundamentals Getting Started with App Development Demo Tips/Links

More information

Android Overview. Francesco Mercaldo, PhD

Android Overview. Francesco Mercaldo, PhD Android Overview Francesco Mercaldo, PhD Post-Doctoral researcher Corso di Sicurezza delle Reti e dei Sistemi Software Università degli Studi del Sannio (fmercaldo@unisannio.it) Things are not always what

More information

The Java ExecutorService (Part 1)

The Java ExecutorService (Part 1) The Java ExecutorService (Part 1) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Learning

More information

Chapter 4: Threads. Operating System Concepts. Silberschatz, Galvin and Gagne

Chapter 4: Threads. Operating System Concepts. Silberschatz, Galvin and Gagne Chapter 4: Threads Silberschatz, Galvin and Gagne Chapter 4: Threads Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Linux Threads 4.2 Silberschatz, Galvin and

More information

Porting mobile web application engine to the Android platform

Porting mobile web application engine to the Android platform 2010 10th IEEE International Conference on Computer and Information Technology (CIT 2010) Porting mobile web application engine to the Android platform Yonghong Wu, Jianchao Luo, Lei Luo School of Computer

More information

Chapter 1 Hello, Android

Chapter 1 Hello, Android Chapter 1 Hello, Android OPEN HANDSET ALLIANCE OPEN HANDSET ALLIANCE OPEN HANDSET ALLIANCE A commitment to openness, a shared vision for the future, and concrete plans to make the vision a reality. To

More information

ANDROID NATIVE APP: INTRODUCTION TO ANDROID. Roberto Beraldi

ANDROID NATIVE APP: INTRODUCTION TO ANDROID. Roberto Beraldi ANDROID NATIVE APP: INTRODUCTION TO ANDROID Roberto Beraldi Role of an operating system APPLICATIONS OPERATING SYSTEM CPU MEMORY DEVICES Android = OS + Middleware Based on Linux Not just another distribution.

More information

Android Fundamentals - Part 1

Android Fundamentals - Part 1 Android Fundamentals - Part 1 Alexander Nelson September 1, 2017 University of Arkansas - Department of Computer Science and Computer Engineering Reminders Projects Project 1 due Wednesday, September 13th

More information

CS 450 Operating System Week 4 Lecture Notes

CS 450 Operating System Week 4 Lecture Notes CS 450 Operating System Week 4 Lecture Notes Reading: Operating System Concepts (7 th Edition) - Silberschatz, Galvin, Gagne Chapter 5 - Pages 129 147 Objectives: 1. Explain the main Objective of Threads

More information

Efficient Android Threading

Efficient Android Threading .... - J.', ' < '.. Efficient Android Threading Anders Göransson Beijing Cambridge Farnham Köln Sebastopol Tokyo O'REILLY Table of Contents Preface xi 1. Android Components and the Need for Multiprocessing

More information

SD Module- Android Programming

SD Module- Android Programming Assignment No. 1 SD Module- Android Programming R (2) C (4) V (2) T (2) Total (10) Dated Sign Title: Download Install and Configure Android Studio on Linux /windows platform. Problem Definition: Install

More information

ATC Android Application Development

ATC Android Application Development ATC Android Application Development 1. Android Framework and Android Studio b. Android Platform Architecture i. Linux Kernel ii. Hardware Abstraction Layer(HAL) iii. Android runtime iv. Native C/C++ Libraries

More information

Chapter 2. Operating-System Structures

Chapter 2. Operating-System Structures Chapter 2 Operating-System Structures 2.1 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Java 8 Parallel Stream Internals (Part 2)

Java 8 Parallel Stream Internals (Part 2) Java 8 Parallel Stream Internals (Part 2) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt

More information

Mobile and Wireless Systems Programming

Mobile and Wireless Systems Programming to Android Android is a software stack for mobile devices that includes : an operating system middleware key applications Open source project based on Linux kernel 2.6 Open Handset Alliance (Google, HTC,

More information

Exploring Chrome Internals. Darin Fisher May 28, 2009

Exploring Chrome Internals. Darin Fisher May 28, 2009 Exploring Chrome Internals Darin Fisher May 28, 2009 Simple interface, powerful core Modern browsers resemble the cooperatively multi-tasked operating systems of the past. Guiding sentiment, 2006 Goals

More information

Android Services & Local IPC: The Command Processor Pattern (Part 1)

Android Services & Local IPC: The Command Processor Pattern (Part 1) : The Command Processor Pattern (Part 1) d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville,

More information

NDK OVERVIEW OF THE ANDROID NATIVE DEVELOPMENT KIT

NDK OVERVIEW OF THE ANDROID NATIVE DEVELOPMENT KIT ANDROID NDK OVERVIEW OF THE ANDROID NATIVE DEVELOPMENT KIT Peter R. Egli INDIGOO.COM 1/16 Contents 1. What you can do with NDK 2. When to use native code 3. Stable APIs to use / available libraries 4.

More information

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

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on Chapter 2: Operating-System Structures Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures 1. Operating System Services 2. User Operating System

More information

Last Class: CPU Scheduling. Pre-emptive versus non-preemptive schedulers Goals for Scheduling: CS377: Operating Systems.

Last Class: CPU Scheduling. Pre-emptive versus non-preemptive schedulers Goals for Scheduling: CS377: Operating Systems. Last Class: CPU Scheduling Pre-emptive versus non-preemptive schedulers Goals for Scheduling: Minimize average response time Maximize throughput Share CPU equally Other goals? Scheduling Algorithms: Selecting

More information

Introduction to Android

Introduction to Android Introduction to Android Ambient intelligence Alberto Monge Roffarello Politecnico di Torino, 2017/2018 Some slides and figures are taken from the Mobile Application Development (MAD) course Disclaimer

More information

Abstract. 1. Introduction

Abstract. 1. Introduction Creating A Video Streamer App On Android Mobile Phones M.Adimoolam 1, M.Gunashanthi 2, K.Hemachandran 3 Information Technology, Christ college of Engineering and Technology, Puducherry. Abstract Android

More information

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

Android Application Development Course Code: AND-401 Version 7 Duration: 05 days Let s Reach For Excellence! TAN DUC INFORMATION TECHNOLOGY SCHOOL JSC Address: 103 Pasteur, Dist.1, HCMC Tel: 08 38245819; 38239761 Email: traincert@tdt-tanduc.com Website: www.tdt-tanduc.com; www.tanducits.com

More information

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

Android Internals. Lecture 1. Android and Low-level Optimizations Summer School. 13 July 2015 Android Internals Lecture 1 Android and Low-level Optimizations Summer School 13 July 2015 This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this

More information

Required Core Java for Android application development

Required Core Java for Android application development Required Core Java for Android application development Introduction to Java Datatypes primitive data types non-primitive data types Variable declaration Operators Control flow statements Arrays and Enhanced

More information

Architectural Support for Operating Systems. Jinkyu Jeong ( Computer Systems Laboratory Sungkyunkwan University

Architectural Support for Operating Systems. Jinkyu Jeong ( Computer Systems Laboratory Sungkyunkwan University Architectural Support for Operating Systems Jinkyu Jeong ( jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics Basic services of OS Basic computer system

More information

Qt for Device Creation

Qt for Device Creation Qt for Device Creation Speeding up ROI & Time-to-Market with Qt Andy Nichols Software Engineer, Qt R&D, Oslo Overview Problems facing Device Creators How Qt for Device Creation addresses those Problems

More information

Four Components of a Computer System

Four Components of a Computer System Four Components of a Computer System Operating System Concepts Essentials 2nd Edition 1.1 Silberschatz, Galvin and Gagne 2013 Operating System Definition OS is a resource allocator Manages all resources

More information

Overview of Advanced Java 8 CompletableFuture Features (Part 3)

Overview of Advanced Java 8 CompletableFuture Features (Part 3) Overview of Advanced Java 8 CompletableFuture Features (Part 3) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated

More information

CS420: Operating Systems

CS420: Operating Systems Threads James Moscola Department of Physical Sciences York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne Threads A thread is a basic unit of processing

More information

Chapter 2: System Structures

Chapter 2: System Structures Chapter 2: Operating System Structures Operating System Services System Calls Chapter 2: System Structures System Programs Operating System Design and Implementation Operating System Structure Virtual

More information

Overview of Java 8 Parallel Streams (Part 1)

Overview of Java 8 Parallel Streams (Part 1) Overview of Java 8 Parallel s (Part 1) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University

More information

Interoperation of tasks

Interoperation of tasks Operating systems (vimia219) Interoperation of tasks Tamás Kovácsházy, PhD 4 th topic, Implementation of tasks, processes and threads Budapest University of Technology and Economics Department of Measurement

More information

Making use of Android

Making use of Android What else can you do with Android? Chris Simmonds, 2net Limited Class TU-3.2 Copyright 2010, 2net Limited 1 Overview Creating a project Writing the app Writing native code libraries Other native code 2

More information

POSIX Abstractions in Modern Operating Systems: The Old, the New, and the Missing

POSIX Abstractions in Modern Operating Systems: The Old, the New, and the Missing POSIX Abstractions in Modern Operating Systems: The Old, the New, and the Missing Vaggelis Atlidakis, Jeremy Andrus, Roxana Geambasu, Dimitris Mitropoulos, and Jason Nieh Columbia University Motivating

More information

Android framework. How to use it and extend it

Android framework. How to use it and extend it Android framework How to use it and extend it Android has got in the past three years an explosive growth: it has reached in Q1 2011 the goal of 100M of Activations world wide with a number of daily activations

More information

April 4-7, 2016 Silicon Valley

April 4-7, 2016 Silicon Valley April 4-7, 2016 Silicon Valley TEGRA PLATFORMS GAMING DRONES ROBOTICS IVA AUTOMOTIVE 2 Compile Debug Profile Trace C/C++ NVTX NVIDIA Tools extension Getting Started CodeWorks JetPack Installers IDE Integration

More information

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

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna Programming with Android: System Architecture Luca Bedogni Marco Di Felice Dipartimento di Scienze dell Informazione Università di Bologna Outline Android Architecture: An Overview Android Dalvik Java

More information

UNIT:2 Introduction to Android

UNIT:2 Introduction to Android UNIT:2 Introduction to Android 1 Syllabus 2.1 Overview of Android 2.2 What does Android run On Android Internals? 2.3 Android for mobile apps development 2.5 Environment setup for Android apps Development

More information

Overview of Advanced Java 8 CompletableFuture Features (Part 2)

Overview of Advanced Java 8 CompletableFuture Features (Part 2) Overview of Advanced Java 8 CompletableFuture Features (Part 2) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated

More information

Android PC Splash Brothers Design Specifications

Android PC Splash Brothers Design Specifications Android PC Splash Brothers Design Specifications Contributors: Zach Bair Taronish Daruwalla Joshua Duong Anthony Nguyen 1. Technology background The Android x86 project has been in existence since 2011.

More information

INF 212 ANALYSIS OF PROG. LANGS CONCURRENCY. Instructors: Crista Lopes Copyright Instructors.

INF 212 ANALYSIS OF PROG. LANGS CONCURRENCY. Instructors: Crista Lopes Copyright Instructors. INF 212 ANALYSIS OF PROG. LANGS CONCURRENCY Instructors: Crista Lopes Copyright Instructors. Basics Concurrent Programming More than one thing at a time Examples: Network server handling hundreds of clients

More information

Overview of Java s Support for Polymorphism

Overview of Java s Support for Polymorphism Overview of Java s Support for Polymorphism Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt

More information

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

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna Programming with Android: System Architecture Luca Bedogni Marco Di Felice Dipartimento di Scienze dell Informazione Università di Bologna Outline Android Architecture: An Overview Android Dalvik Java

More information

Android. (XKE Mars 2009) Erwan Alliaume.

Android. (XKE Mars 2009) Erwan Alliaume. Android (XKE Mars 2009) Erwan Alliaume ealliaume(*at*)xebia(*dot*)fr http://www.xebia.fr http://blog.xebia.fr History August 2005 Google acquires Android November 2007 Open Handset Alliance announcement

More information

Android - open source mobile platform

Android - open source mobile platform Android - open source mobile platform Alexander Schreiber http://www.thangorodrim.de/ Chemnitzer Linux-Tage 2009 Alexander Schreiber Android - open source mobile

More information

DROID. By S.Gokulakrishnan AP/CSE SCSVMV

DROID. By S.Gokulakrishnan AP/CSE SCSVMV Mobile Applicatio on Development with AND DROID By S.Gokulakrishnan AP/CSE SCSVMV The Players Android Open source mobile OS developed ny the Open Handset Alliance led by Google. Based on Linux 2.6 kernel

More information

Bringing it all together: The challenge in delivering a complete graphics system architecture. Chris Porthouse

Bringing it all together: The challenge in delivering a complete graphics system architecture. Chris Porthouse Bringing it all together: The challenge in delivering a complete graphics system architecture Chris Porthouse System Integration & the role of standards Content Ecosystem Java Execution Environment Native

More information

Mobile Computing. Juha-Matti Liukkonen, Nov 17, 2010

Mobile Computing. Juha-Matti Liukkonen, Nov 17, 2010 Mobile Computing Juha-Matti Liukkonen, Nov 17, 2010 1 Contents Mobile Computing revolution Structural impact of device evolution A look into Mobile Linux 2 Mobile Computing revolution 3 Pocketable power

More information

Kick Start your Embedded Development with Qt

Kick Start your Embedded Development with Qt Kick Start your Embedded Development with Qt Increasing Return On Investment & shortening time-to-market Nils Christian Roscher-Nielsen Product Manager, The Qt Company Overview Problems facing Device Creators

More information

CS260 Intro to Java & Android 04.Android Intro

CS260 Intro to Java & Android 04.Android Intro CS260 Intro to Java & Android 04.Android Intro Winter 2015 Winter 2015 CS260 - Intro to Java & Android 1 Android - Getting Started Android SDK contains: API Libraries Developer Tools Documentation Sample

More information

Processes and Threads. Processes: Review

Processes and Threads. Processes: Review Processes and Threads Processes and their scheduling Threads and scheduling Multiprocessor scheduling Distributed Scheduling/migration Lecture 3, page 1 Processes: Review Multiprogramming versus multiprocessing

More information

Understanding Storage I/O Behaviors of Mobile Applications. Louisiana State University Department of Computer Science and Engineering

Understanding Storage I/O Behaviors of Mobile Applications. Louisiana State University Department of Computer Science and Engineering Understanding Storage I/O Behaviors of Mobile Applications Jace Courville jcourv@csc.lsu.edu Feng Chen fchen@csc.lsu.edu Louisiana State University Department of Computer Science and Engineering The Rise

More information

Introduction to bada 2.0

Introduction to bada 2.0 Introduction to bada 2.0 Contents History, Ecosystem, Architecture Basic Feature User Interactive Feature Service Oriented Feature Introduction We will be looking at the whole bada system in brief here.

More information

Java Monitor Objects: Synchronization (Part 1)

Java Monitor Objects: Synchronization (Part 1) Java Monitor Objects: Synchronization (Part 1) Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee,

More information

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

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1 Android Lesson 1 1 1 1.0 to Android 2 Contents Android is an ecosystem Android platform architecture Android Versions Challenges of Android app development App fundamentals 3 Android Ecosystem 4 What is

More information

External vs. Internal Iteration in Java 8

External vs. Internal Iteration in Java 8 External vs. Internal Iteration in Java 8 Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt

More information