Summary

This document provides an overview of Android, covering its ecosystem, platform architecture, and development aspects. It details Android's components, including the runtime, libraries, and core concepts used in creating mobile applications. The summary covers examples of Android apps, including well-known platforms.

Full Transcript

Application Development and Emerging Technologies INTRODUCTION TO ANDROID 1 1.0 Introduction to Android 2 Contents Android is an ecosystem Android platform architecture Android Versions Challenges o...

Application Development and Emerging Technologies INTRODUCTION TO ANDROID 1 1.0 Introduction 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 Android? Mobile operating system based on Linux kernel User Interface for touch screens Used on over 80% of all smartphones Powers devices such as watches, TVs, and cars Over 2 Million Android apps in Google Play store Highly customizable for devices / by vendors Android is an open-source mobile operating system developed by Google. 5 Why develop apps for Android? Developers create apps for a variety of reasons. Large user base and market reach. Open-source nature allows flexibility. Extensive development tools and support. Opportunities for innovation in diverse industries. 6 Android user interaction Touch gestures: swiping, tapping, pinching Virtual keyboard for characters, numbers, and emoji Support for Bluetooth, USB controllers and peripherals 7 Android and sensors Sensors can discover user action and respond Device contents rotate as needed Walking adjusts position on map Tilting steers a virtual car or controls a physical toy Moving too fast disables game interactions 8 Android home screen Launcher icons for apps Self-updating widgets for live content Can be multiple pages Folders to organize apps "OK Google" 9 Android app examples Pandora Pokemon GO Facebook Messenger 10 Android Software Developer Kit (SDK) Development tools (debugger, monitors, editors) Libraries (maps, wearables) Virtual devices (emulators) Documentation (developers.android.com) Sample code 11 Android Studio Official Android IDE Develop, run, debug, test, and package apps Monitors and performance tools Virtual devices Project views Visual layout editor 12 Google Play store Publish apps through Google Play store: Official app store for Android Digital distribution service operated by Google 13 Android Platform Architecture 14 Android stack 1. System and user apps 2. Android OS API in Java framework 3. Expose native APIs; run apps 4. Expose device hardware capabilities 5. Linux Kernel 15 System and user apps It is the top layer of android architecture. The pre-installed applications like home, contacts, camera, gallery, etc. and third-party applications downloaded from the play store like chat applications, games etc. will be installed on this layer only. It runs within the Android run time with the help of the classes and services provided by the application framework. 16 System and user apps System apps have no special status System apps provide key capabilities to app developers Example: Your app can use a system app to deliver a SMS message. 17 System and user apps 18 Java API (Application) Framework Application Framework provides several important classes which are used to create an Android application. It provides a generic abstraction for hardware access and also helps in managing the user interface with application resources. Generally, it provides the services with the help of which we can create a particular class and make that class helpful for the Applications creation. It includes different types of services activity manager, notification manager, view system, package manager etc. which are helpful for the development of our application according to the prerequisite. 19 Java API (Application) Framework The entire feature-set of the Android OS is available to you through APIs written in the Java language. View class hierarchy to create UI screens Notification manager Activity manager for life cycles and navigation 20 Java API (Application) Framework 21 Android runtime Android Runtime environment is one of the most important part of Android. It contains components like core libraries and the Dalvik virtual machine(DVM). Mainly, it provides the base for the application framework and powers our application with the help of the core libraries. Like Java Virtual Machine (JVM), Dalvik Virtual Machine (DVM) is a register-based virtual machine and specially designed and optimized for android to ensure that a device can run multiple instances efficiently. It depends on the layer Linux kernel for threading and low-level memory management. The core libraries enable us to implement android applications using the standard JAVA or Kotlin programming languages. 22 Android runtime Each app runs in its own process with its own instance of the Android Runtime. 23 Platform libraries The Platform Libraries includes various C/C++ core libraries and Java based libraries such as Media, Graphics, Surface Manager, OpenGL etc. to provide a support for android development. Media library provides support to play and record an audio and video formats. Surface manager responsible for managing access to the display subsystem. SGL and OpenGL both cross-language, cross-platform application program interface (API) are used for 2D and 3D computer graphics. 24 Platform libraries SQLite provides database support and FreeType provides font support. Web-Kit This open-source web browser engine provides all the functionality to display web content and to simplify page loading. SSL (Secure Sockets Layer) is security technology to establish an encrypted link between a web server and a web browser. 25 Platform libraries 26 Hardware Abstraction Layer (HAL) The function of a hardware abstraction layer (HAL) is to act as an interface between a computer's hardware and its operating system (OS). HALs allow software programs to interact with hardware devices without needing to know the specific details of each device. 27 Hardware Abstraction Layer (HAL) Standard interfaces that expose device hardware capabilities as libraries Examples: Camera, bluetooth module 28 Linux Kernel Linux Kernel is heart of the android architecture. It manages all the available drivers such as display drivers, camera drivers, Bluetooth drivers, audio drivers, memory drivers, etc. which are required during the runtime. The Linux Kernel will provide an abstraction layer between the device hardware and the other components of android architecture. It is responsible for management of memory, power, devices etc. The features of Linux kernel are: Security: The Linux kernel handles the security between the application and the system. 29 Linux Kernel Memory Management: It efficiently handles the memory management thereby providing the freedom to develop our apps. Process Management: It manages the process well, allocates resources to processes whenever they need them. Network Stack: It effectively handles the network communication. Driver Model: It ensures that the application works properly on the device and hardware manufacturers responsible for building their drivers into the Linux build. 30 Linux Kernel 31 Older Android versions Codename Version Released API Level Honeycomb 3.0 - 3.2.6 Feb 2011 11 - 13 Ice Cream Sandwich 4.0 - 4.0.4 Oct 2011 14 - 15 Jelly Bean 4.1 - 4.3.1 July 2012 16 - 18 KitKat 4.4 - 4.4.4 Oct 2013 19 - 20 Android History and Platform Versions Lollipop 5.0 - 5.1.1 Nov 2014 21 - 22 for more and earlier versions before 2011 32 Newer Android versions Codename Version Released API Level Marshmallow 6.0 - 6.0.1 Oct 2015 23 Nougat 7.0 - 7.1 Sept 2016 24 - 25 Oreo 8.0 - 8.1 Sept 2017 26 - 27 Pie 9.0 Aug 2018 28 33 Newer Android versions 34 App Development 35 What is an Android app? One or more interactive screens Written using Java or Kotlin Programming Language and XML Uses the Android Software Development Kit (SDK) Uses Android libraries and Android Application Framework Executed by Android Runtime Virtual machine (ART) 36 Challenges of Android development Multiple screen sizes and resolutions Performance: make your apps responsive and smooth Security: keep source code and user data safe Compatibility: run well on older platform versions Marketing: understand the market and your users (Hint: It doesn't have to be expensive, but it can be.) 37 App building blocks Resources: layouts, images, strings, colors as XML and media files Components: activities, services, and helper classes as Java code Manifest: information about app for the runtime Build configuration: APK versions in Gradle config files 38 END 39

Use Quizgecko on...
Browser
Browser