Android Overview and Android Development Environment

Slides:



Advertisements
Similar presentations
Android Overview and Android Development Environment
Advertisements

A Developer’s Introduction to Google Android Dr. Frank McCown Harding University Spring 2010.
Chapter 1: Voilà! Meet the Android
Programming Mobile Applications with Android
Joemarie Comeros Amparo Android Development Orientation for Starters.
Android Overview. Why Mobile App Development? The fact that we can! Only a few years ago you had to be in the Motorola inner circle to do it! Mobile platform.
DEPARTMENT OF COMPUTER ENGINEERING
ANDROID OPERATING SYSTEM Guided By,Presented By, Ajay B.N Somashekar B.T Asst Professor MTech 2 nd Sem (CE)Dept of CS & E.
A Developer’s Introduction to Google Android Dr. Frank McCown Harding University Fall 2011 This work is licensed under Creative Commons Attribution-NonCommercial.
Android and Project Structure. Android Android OS – Built on Linux Kernel – Phones – Netbooks – Readers – Other???
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Android Application Development CSE 5520/4520 Wireless Networks.
Chapter 1: Voilà! Meet the Android. Smartphones –Can browse the Web –Allow you to play games –Use business applications –Check –Play music –Record.
Android Introduction Platform Overview.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Android Programming By Mohsen Biglari Android Programming, Part1: Introduction 1 Part1: Introduction By Mohsen Biglari.
2- Android Overview and Android Development Environment CSNB544 Mobile Application Development Thanks to Utexas Austin.
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
Presentation Seminar on “IMAGE SLIDER –AN ANDROID APPLICATION”
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
1 Android- Platform Overview. 2 What is Android? Android is a software stack for mobile devices that includes an operating system, middleware and key.
Android for Java Developers Denver Java Users Group Jan 11, Mike
© by Pearson Education, Inc. All Rights Reserved. 1 Introduction to Android From “Android: How to Program” By Paul Deitel and Harvey Deitel.
ANDROID BY:-AANCHAL MEHTA MNW-880-2K11. Introduction to Android Open software platform for mobile development A complete stack – OS, Middleware, Applications.
Android Overview History and architecture. Brief History 1996 The WWW already had websites with color and images But, the best phones displayed a couple.
1 Android Introduction Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
ANDROID APPLICATION DEVELOPMENT. ANDROID DEVELOPMENT DEVELOPER.ANDROID.COM/INDEX.HTML THE OFFICIAL SITE FOR ANDROID DEVELOPERS. PROVIDES THE ANDROID SDK.
Mobile Application Development with ANDROID Umang Patel(6537) LDCE.
CHAPTER 1 Introduction. Chapter objectives: Understand what Android is Learn the differences between Java and Android Java Examine the Android project.
By, Rutika R. Channawar. Content Introduction Open Handset Alliance Minimum Hardware Requirements Versions Feature Architecture Advantages Disadvantages.
1 Android Workshop Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
Android Development For Beginners. What is Android? Android is an open mobile phone platform that was developed by Google and later by Open Handset Alliance.
Android. Android An Open Handset Alliance Project A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google.
Introduction to Android Programming
Introduction to Android Chapter 1 1. Objectives Understand what Android is Learn the differences between Java and Android Java Examine the Android project.
COM594: Mobile Technology Practical – Week 1 Android and Android Studio.
A presentation on Android and Android project Around Me
Intro To Android Programming
Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran
Mobile Device Development
A brief information about the Android Operating System
Workshop by T.Naveen sai kumar.
Android Mobile Application Development
INFO 448: Android Development
Android 01: Fundamentals
Visit for more Learning Resources
Android Runtime – Dalvik VM
Android Studio, Android System Basics and Git
Android.
Operating System.
Development-Introduction
Emulator.
Contents: Introduction Different Mobile Operating Systems
CIS 470 Mobile App Development
CMPE419 Mobile Application Development
SE4S701 Mobile Application Development
MOBILE OPERATING SYSTEM
MOBILE OPERATING SYSTEM
Application Development A Tutorial Driven Course
CHAPTER 1 Introduction Chapter objectives: Understand what Android is
Android Developer Fundamentals V2
Android Application Development
Android Introduction Platform Mihail L. Sichitiu.
Android Platform, Android App Basic Components
Emerging Platform#3 Android & Programming an App
Mobile Programming Dr. Mohsin Ali Memon.
Android Overview.
Mobile Computing Lecture Materials By Bintang Eka Putera.
Android Development Introduction to Android Development 2011/01/16
CMPE419 Mobile Application Development
Presentation transcript:

Android Overview and Android Development Environment CS371m - Mobile Computing Android Overview and Android Development Environment

What is Android? 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

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

Android Versioning On the order of 27 versions in 9 years. Slowing down, current pace is one large, major release a year will this slow down more? Android releases have a code name, version number, and API level Most recent: Oreo, Version 8.1, API level 27 https://en.wikipedia.org/wiki/Android_version_history

A Short History Of Android 2001 Palm Kyocera 6035, combing PDA and phone PDA = personal data assistant, PalmPilot 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)

Short History cont. 2009 2010 SDK 1.5 (Cupcake) after Alpha and Beta 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 https://en.wikipedia.org/wiki/Android_version_history

Short History cont. 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) For Q4, combination of Gingerbread and Honeycomb

Short History cont. 2012 Android 4.1, "Jelly Bean" released in July 2013 Android 4.4, KitKat released October 31, 2013

Short History (Getting Longer) November, 2014 Android 5.0 Lollipop released. API level 21 "Material Design" October, 2015 Android 6.0 Marshmallow API level 23 Runtime permissions

Still More August 2016 August 2017 Nougat Daydream Virtual Reality Interface Doze functionality to improve battery life August 2017 Oreo Jetpack, tools for building apps, common libraries and frameworks

Device Distribution Jan 2012 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% http://developer.android.com/resources/dashboard/platform-versions.html

August 1, 2012 OS Version, API Level, Nickname 4.1, API Level 16, Jelly Bean

August 1, 2013 Based on device visits to Google Play

January 8, 2014 Based on device visits to Google Play

August, 2014 Based on unique devices that visit the Google Play Store.

January 2015 Where is Lollipop?

January 2016 Took a year for Lollipop to gain roughly a third of device share.

May 2016 Marshmallow not in the weeds any more.

January 2017 Developer decision?

July 2017

June 2018

Clicker Question Do you own an Android device? yes no What version of Android are you running? Kit Kat Lollipop Marshmallow Nougat Other, don't know, or don't own Android device

Android Fragmentation August 2014 Report from http://opensignal.com /reports/2014/ android-fragmentation/ open signal app for Android and iOS 5m - 10m Android downloads

Device Fragmentation sdd

By Erikrespo - Android Developer Dashboard – Platform Distribution Data points

Android Screen Sizes - August 2014

iOS Screen Sizes - August 2014

Android Fragmentation August 2015 Report from http://opensignal.com/reports/2015/08/android-fragmentation/open signal app for 10m - 50m Android downloads

Device Fragmentation http://opensignal.com/reports/2015/08/android-fragmentation/

Brand Fragmentation http://opensignal.com/reports/2015/08/android-fragmentation/

Marsh mallow lollipop kit kat jelly bean ics ginger bread January 2017

Dominant Version http://www.bidouille.org/misc/androidcharts

Android - iOS comparison August 2015

Android Version Fragmentation Why as a developer do you care about the fragmentation of Android versions, API level Each new release includes many new features and tools for developers. What is available to me? Some newer functionality available for older versions via the Support Library. screen sizes manufacturers

Android vs iOS

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

Shift to Mobile Still Underway

Search Trends January 2017 World wide (Add term galaxy?)

Search Trends January 2017 US only

Mobile Development Companies tied to mobile Mobile "shops" (contract to develop mobile apps) Mutual Mobile, Chaotic Moon, Nerd Ranch Companies tied to mobile Bee Cave Games, Waze, Snapchat, Instagram Companies with major mobile apps Facebook, Ebay Companies that want mobile apps for customers banks, everybody?? Companies that want mobile apps for internal use everybody?

Android development tools

Setup Development Environment Install JDK 8 or 10 Install Android Studio includes API level 27 Use SDK manager to download lower API levels I suggest down to 21 Detailed install instructions available on Android site http://developer.android.com/sdk/installing.html

Elements of Android Projects Application Name seen by users on app chooser, app list, store Project Name in IDE, can be different, often directory Package Name Java package name, not using default package Minimum SDK Level how far back do you support, ~21 as of June 2018 Target SDK Level device / api you had in mind for app, most recent? Theme look and feel of app, color scheme, various built in themes such as Theme, Holo, Material (Design)

Android Projects Creating a project results in multiple files and resources being created Android Project View Classic Project View

Android Project Components

Android Projects - Components Manifest AndroidManifest.xml Like a table of contents for your app Main activity Target and min SDK Declare all the parts of your apps: activities, services Request permissions network, location, ...

Android Manifest - Sample defines Android namespace

Android Manifest - Sample

Android Projects - Components Java Source Code In java directory in Android Project View Actually in src directory on system

Android Projects - Components Resources Resources or the res directory non source code resources for the app packaged up with app important role and use in development of app

Resource Directories res/drawable for graphic images such as png, jpeg res/layout for xml files that define the layout of user interfaces inside the app res/menu for xml based menu specifications res/values for lists of strings, dimensions, colors, lists of data res/raw for other kinds of files such as audio clips, video clips, csv files, raw text res/xml for other general purpose xml files

Gradle .apk files, Android Package Kit Android executables Development environment takes, source code, manifest, libraries, resources, etc and packages them together in an APK some things known and set some things variable and configurable Gradle

Gradle Gradle is the build engine that Android Studio uses to convert your project into an APK What needs to be created and how to do it Like make for C/C++ Ant/Maven for Java build.gradle file

sample build.gradle file - PROJECT

sample build.gradle file - MODULE / APP

emulators

AVD Manager SDK Manager

Android Emulator or AVD Emulator is useful for testing apps 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

Android Emulator: 1.6

Android Emulator: 2.2

Android Emulator: 3.0

Android Emulator: 4.0

Android Emulator: 5.0 Controls

Emulator Basics Host computer’s keyboard can be used Host’s mouse acts as finger Uses host’s Internet connection Other buttons work: Home, Back, Search, volume up and down, etc. More info at https://developer.android.com/studio/run/managing-avds.html

Emulator Limitations No support for USB connections No support for placing or receiving actual phone calls Simulate phone calls (placed and received) 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 phones and tablets!

Android Runtime: Dalvik VM 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

Applications Are Boxed 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

Producing an Android App Java code Byte code javac Dalvik exe dx .java .class aapt classes.dex 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. 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. Byte code <xml> Other .class files AndroidManifest.xml .apk <str> Resources

Other Dev Tools 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 Google Play (security?) and more! https://developer.android.com/studio/command-line/adb.html

Dalvik Debug Monitor Server 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 Android Studio

DDMS

iPhone vs. Android