Introduction to Android

Similar documents
Android Programming and Security

Introduction to Android

Example of Standard API

How To Develop Android On Your Computer Or Tablet Or Phone

An Introduction to Android. Huang Xuguang Database Lab. Inha University

Overview. The Android operating system is like a cake consisting of various layers.

What else can you do with Android? Inside Android. Chris Simmonds. Embedded Linux Conference Europe Copyright 2010, 2net Limited.

Android Development Tools for Eclipse

Introduction to Android

Graduate presentation for CSCI By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

An Introduction to Android

Workshop on Android and Applications Development

Hacking your Droid ADITYA GUPTA

Introduction to Android Development. Jeff Avery CS349, Mar 2013

OpenCV on Android Platforms

The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended.

ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY

Smartphone market share

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) <lecturer, date>

CYBERCRIMINAL IN BRAZIL SHARES MOBILE CREDIT CARD STORE APP

Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah.

Android 5.0: Lollipop OS

Fahim Uddin 1. Java SDK

Additional details >>> HERE <<<

Review On Google Android a Mobile Platform

Getting Started with Android Development

A Review of Different Comparative Studies on Mobile Operating System

Mobile Devices - An Introduction to the Android Operating Environment. Design, Architecture, and Performance Implications

Mobile application testing is a process by which application software developed for hand held mobile devices is tested for its functionality,

Tutorial on Basic Android Setup

Android Development. Marc Mc Loughlin

Develop a Native App (ios and Android) for a Drupal Website without Learning Objective-C or Java. Drupaldelphia 2014 By Joe Roberts

Технологии Java. Android: Введение. Кузнецов Андрей Николаевич. Санкт-Петербургский Государственный Политехнический Университет

A Survey on Mobile Forensic for Android Smartphones

Issues in Android on Mobile Platform and Their Resolution

Introduction to Android Android Architecture Software Development Purpose of the project Location Based Service (LBS) Android. Location class Google

More details >>> HERE <<<

ANDROID OPERATING SYSTEM

CS378 -Mobile Computing. Android Overview and Android Development Environment

Android Setup Phase 2

Generate Android App

With a single download, the ADT Bundle includes everything you need to begin developing apps:

Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps. Hyeokgon Ryu, Infraware Technology, Ltd.

Android: Setup Hello, World: Android Edition. due by noon ET on Wed 2/22. Ingredients.

All About Android WHAT IS ANDROID?

Smart Shopping- An Android Based Shopping Application

Installing the Android SDK

Analysis of advanced issues in mobile security in android operating system

INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Your guide to building great apps. Upgrade your skills and update your tools to create the next great app

Introduction to Android Development

Take full advantage of IBM s IDEs for end- to- end mobile development

Overview of CS 282 & Android

Running Android Applications on BlackBerry 10 developer.blackberry.com/android

Lab 0 (Setting up your Development Environment) Week 1

Symantec's Secret Sauce for Mobile Threat Protection. Jon Dreyfus, Ellen Linardi, Matthew Yeo

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

RoverPal - A Mobile Payment Application

Reversing Android Malware

App: HomeBound 1.1 ( Device: Samsung GT-S5302 Android 2.3.6

Bridging the Gap: from a Web App to a Mobile Device App

Homework 9 Android App for Weather Forecast

Norton Mobile Privacy Notice

Understand and Build Android Programming Environment. Presented by: Che-Wei Chang

Creating Enterprise Mobile Apps with Red Hat

QuickCRM Mobile. Mobile Access to SugarCRM. User Manual. Version: 2.6

Introduction to Android

Android Geek Night. Application framework

Practical Android Projects Lucas Jordan Pieter Greyling

Android Development: Part One

Friendly ARM MINI2440 & Dalvik Virtual Machine with Android

Example Connection between USB Host and Android

Mobile Application Security Testing ASSESSMENT & CODE REVIEW

Intel Integrated Native Developer Experience (INDE): IDE Integration for Android*

Android Operating System

XenMobile Logs Collection Guide

Protecting against Mobile Attacks

How To Use Titanium Studio

Zend Server 4.0 Beta 2 Release Announcement What s new in Zend Server 4.0 Beta 2 Updates and Improvements Resolved Issues Installation Issues

Building native mobile apps for Digital Factory

Jordan Jozwiak November 13, 2011

Full version is >>> HERE <<<

Software development. Development requirements. Java. Android SDK. Eclipse IDE (optional)

ADT Plugin for Eclipse

Defending Behind The Device Mobile Application Risks

Mobile Malware and Spyware: Working Through the Bugs. Detective Cindy Murphy

Universal Mobile Ads is a plugin for Unreal Engine 4 that enables the MoPub ad mediation system for ios & Android.

A Beginners Guide To Responsive, Mobile & Native Websites 2013 Enhance.ie.All Rights Reserved.

Android Mobile App Building Tutorial

AllJoyn Android Environment Setup Guide

Technical Note. TN_134 FTDI Android D2XX Driver

Transcription:

Introduction to Android 26 October 2015 Lecture 1 26 October 2015 SE 435: Development in the Android Environment 1

Topics for Today What is Android? Terminology and Technical Terms Ownership, Distribution, Advertising Sources Programming Android 1, 3 developer.android.com 26 October 2015 SE 435: Development in the Android Environment 2

Why Android? Android is an open source operating system produced (?) by the Open Handset Alliance (OHA) OHA is made up of 84 companies in the cellular, software industries Includes: Software engineering by Google What does OHA do? 26 October 2015 SE 435: Development in the Android Environment 3

Why Study Android? Programs are written in an unusual way Android OS implements user and program interaction in an interesting way There is a lot of research understanding how Android works, how it should work, and how it can be modified. Number of papers on Android in ACM Digital Library: 6,648 papers on Sept 9, 2013 10,075 papers on Oct 22, 2014 13,680 papers on Oct 19, 2015 26 October 2015 SE 435: Development in the Android Environment 4

Terminology and Terms When someone says Android, he could mean: 1. A cell phone, tablet, or device capable of running the Android OS 2. The Android OS and its source code 3. The application programmer interface (API) and libraries available for programmers to use the services of a compatible device In this course, we ll focus on 2 and 3 Android tries to hide device details from apps app: An application written for applications written for the Android OS or Apple ios 26 October 2015 SE 435: Development in the Android Environment 5

Android OS Terms Android OS is based on Linux Up until Android Version 4.0, used Linux 2.6 kernel Since, Android OS uses the Linux 3.x kernels (varies versions) Some fights between Google and Linux about integrating changes into the regular Linux kernel Android OS has a fast update cycle new updates every 6 to 9 months Each Android release has: An official version number (ex. 2.2, 2.3) An official nick name (code name) (alphabetical candies) An official API level (incremental) Android is open source GPL, Apache Software License, and BSD Licenses (worry about it if you plan on changing Android) Official source code dump on the Android Open Source Project (AOSP) 26 October 2015 SE 435: Development in the Android Environment 6

Android Versions Summary 26 October 2015 SE 435: Development in the Android Environment 7

Android Versions Summary 26 October 2015 SE 435: Development in the Android Environment 8

Android Versions Summary 26 October 2015 SE 435: Development in the Android Environment 9

Android Versions Some updates are just security or bug fixes, so they don t update the API level Android OS is open source, so device manufacturers make custom versions Android Compatibility Definition Document Some community versions of Android No pure version of the Android OS Google directly manages Nexus devices, so they have the purest OS with least custom additions 26 October 2015 SE 435: Development in the Android Environment 10

Rooting, Versions, Bugs Android OS hides some features of Linux kernel Prevents some advanced networking and communication features Prevents regular apps from doing some system administrator actions Community mods can unlock those capabilities Android OS denies the user system level root access Prevents apps from doing some bad or iffy things Rooting a device means breaking the OS to get system administrator access May involve replacing the Android OS with another one People root phones to do things Android OS forbids Some Android OS versions have security bugs which were fixed in later versions No central update service, so old phones stay old Some old phones can t handle newer OS versions People root phones to install newer Android OS version Apps written for a particular API level should work on any phone at that API level Rooted device with unofficial OS version? 26 October 2015 SE 435: Development in the Android Environment 11

Languages and Android Android OS is based on Linux, written in C and C++ Most apps developed in Java With a set of Java APIs which grant access to the device and network App s Java source code compiled to Dalvik Byte Code (dex) Akin to Java byte code, but not the same Android OS uses just-in-time compilation to convert dex to binary instructions Apps can be written in C using Native Development Kit (NDK) Compiled with Java Native Interface (JNI) Can call native methods from regular Java code Limited to certain processors Apps can be written in HTML5 and JavaScript Not compiled, just run via a browser window All apps run in separate Dalvik Virtual Machine (DVM) instances Newest versions (5.0 and higher) use Android Run Time (ART) which compiles dex to native code on installation From then on, runs native code 26 October 2015 SE 435: Development in the Android Environment 12

Developing for Android Eclipse had a bundle and plugin for app development (ADT) Newer version Android Studio uses IntelliJ App source code is compiled into dex, digitally signed, then stored in an APK file Compatible with ZIP, fixed structure with file names and directories Device s Application Installer parses APK and installs it Stored on device after install in a hidden directory Android Run Time (ART) compiles dex into natively executable files to run Android app development is relatively easy Android is basically open Sold about 1.1 billion Android devices shipped in 2014. 26 October 2015 SE 435: Development in the Android Environment 13

So Far What is Android? Terminology and Technical Terms Ownership, Distribution, Advertising 26 October 2015 SE 435: Development in the Android Environment 14

Installing Apps Android Debug Bridge Copy over the APK file to the device, install it Can install any app that way, signed or not Develop, debug Requires setting debug permissions on the phone App Store Download from an App Store web site 36 major ones as of October 2014 App installed by App Installer Checks digital signature Checks permissions with user 26 October 2015 SE 435: Development in the Android Environment 15

App Stores: Big and Small App stores can be international or regional Google Play is the largest: 1.6 million apps (as of July 2015) 2.5 billion downloads per month Amazon s app market is big: 76,000 apps (as of Oct 2014) 25 million downloads per month (estimate) Language specific app stores: Chinese Russian Korean Manufacturer app stores: Lenovo Samsung Open Source: F-Droid Many filter apps Google Play takes any app, but runs it though an app filter called Bouncer first Amazon App Market checks all apps by hand Why filter? Prevent malware Preserve ownership and payment 26 October 2015 SE 435: Development in the Android Environment 16

App Store Downloads Source: http://www.onepf.org/appstores/ (2014) 26 October 2015 SE 435: Development in the Android Environment 17

Malware Apps designed to do bad things 1. Delete device data or destructive stuff Disable device ransomware 2. Copy contacts and photos for storage, mining, spamming, blackmail 3. Connect to a server, have device send spam or DDOS 4. Things which cost money premium SMS, phone calls 5. Use device resources for evil recording, taking pictures, track movements Source: Fortinet Threat Landscape 2014 Google Play removed 36,000 malware apps in July 2013 alone Certain markets worse: Anzhi (China): 77.6% present risk China overall: 39.2% present risk In India: average device has 3 risky apps In China: average device has 2.4 risky apps 26 October 2015 SE 435: Development in the Android Environment 18

Payment and Ownership Apps make money in three ways: 1. Enforce download fees: App store charges and passes along some Some thieves copy real apps, repackage them, distribute themselves Some copy for money Some add malware functionality before 2. Showing ads: Free to download, ad network pays for screen space App includes some libraries or activities from the ad network Ad activity downloads ads and shows them Ad network pays per view or click Ad activity may gather other info: phone IMEI or IMSI, location 3. In app billing: Free to download, no ads User pays to use part of the tool or for certain features Some games force the user to buy tokens or capabilities Google has begun to require in app billing be done via Google Payments 26 October 2015 SE 435: Development in the Android Environment 19

Android is free? Google gives away Android OS for free - why? Google sells devices Sort of like Apple Google is an advertising company See charts Google controls the platform they control how ads are developed and sold 26 October 2015 SE 435: Development in the Android Environment 20

Conclusion What is Android? Terminology and Technical Terms Ownership, Distribution, Advertising 26 October 2015 SE 435: Development in the Android Environment 21