Top Banner
Android Development EXPERTS TRAINING & SOLUTIONS
33
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Android development

Android Development

EXPERTS TRAINING & SOLUTIONS

Page 2: Android development

About Me!

Abdullah Rizwan

BS(CS)

Computer programming since 1998 (15 Years of experience)

Worked in Ericsson (Sweden), BHP Billiton (Australia), NADRA, EXPERTS

Many Local & International Projects

Visits many countries

A lovely wife and three cute kids

Email: [email protected]

Cell: +92(321)6694784

Facebook: arizwanEXP

Page 3: Android development

EXPERTS Training & Solutions

Founded in 2001 (A pioneer IT institute) by Irfan Zafar

Private Limited in 2008

Two campus in Faisalabad {Satiana Road & Raja Road, Gulistan Colony}

One Office in Lahore Johar Town

Foreign Offices, Global Presence.

Microsoft IT Academy

Cisco Network Academy

Certiport Testing Center

Prometric Testing Center

Page 4: Android development

Why Mobile App Development?

The fact that we can!

Mobile platform is the platform of the future

Double-digit growth in world-wide smartphone ownership

Job market is hot

Market for mobile software surges from $4.1 billion in 2009 to $17.5 billion by 2012

2010 Dice.com survey: 72% of recruiters looking for iPhone app developers, 60% for Android

Dice.com: mobile app developers made $85,000 in 2010 and salaries expected to rise

Students (and faculty!) are naturally interested!

Page 5: Android development

Mobile Applications

What are they?

Any application that runs on a mobile device

Types

Web apps: run in a web browser

HTML, JavaScript, Flash, server-side components, etc.

Native: compiled binaries for the device

Often make use of web services

Page 6: Android development

Mobile Devices: Advantages

Always with the user

Typically have Internet access

Typically GPS enabled

Typically have accelerometer & compass

Most have cameras & microphones

Many apps are free or low-cost

Interesting Advantages

Page 7: Android development

Mobile Devices: Disadvantages

Limited screen size

Limited battery life

Limited processor speed

Limited and sometimes slow network access

Limited or awkward input: soft keyboard, phone keypad, touch screen, or stylus

Limited web browser functionality

Range of platforms & configurations across devices

Page 8: Android development

What is Android?

Android is a Linux-based operating system

Designed for touchscreen mobile devices i.e. smartphones and tablet computers.

Initially developed by Android, Inc.

Android is open source and Google releases the code under the Apache License.

Apps written primarily in a customized version of the Java programming language

It has seen additional applications on laptops, netbooks, smartbooks, smart TVs (Google TV), cameras, smart glasses (Google Glass), wristwatches, headphones, car CD/DVD players, mirrors, portable media players, landlines, Voice over IP phones, Videogames console, Android@Home, microwave ovens and other electronics.

Page 9: Android development

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://www.android.com/whatsnew/

Page 10: Android development

Market Share

Second quarter 2009: 2.8%

Forth quarter 2010: 33%

Third quarter 2011: 52.5%

Third quarter of 2012: 75% Activation 750 million devices

1.5 million activations per day.

October 2012: Total Apps in Google Play ~700,000

Downloads from Google Play ~25 billion.

May 2013 Activation 900 million devices

Downloads from Google Play ~48 billion.

Page 11: Android development

Apple vs. Google

Open Handset Alliance

80+ technology companies

Commitment to openness, shared vision, and concrete plans

Compare with Mac/PC battles

Similar (many PC manufacturers, one Apple)

Different (Microsoft sells Windows, Google gives away Android)

Page 12: Android development

History

Android, Inc. was founded in Palo Alto, California in October 2003 by Andy Rubin, Rich Miner, Nick Sears and Chris White

"smarter mobile devices that are more aware of its owner's location and preferences"

Bought by Google in 2005

In September 2007 Google had filed several patent applications in the area of mobile telephony

November 5, 2007: Open Handset Alliance: a consortium of hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices. 84 Members starting from 34 members and Android was unveiled.

The first commercially available phone to run Android was the HTC Dream, released on October 22, 2008

Page 13: Android development

Versioning

Each major release is named in alphabetical order after a dessert or sugary treat; for example, version 1.5 Cupcake was followed by 1.6 Donut. The latest release is 4.2 Jelly Bean.

Google provides major updates, incremental in nature, to Android every six to nine months.

The lack of after-sale support from manufacturers and carriers has been widely criticized

CyanogenMod is the most widely used community firmware

http://socialcompare.com/en/comparison/android-versions-comparison

Page 14: Android development

Version Distribution

Page 15: Android development

Interface

Android's user interface is based on direct manipulation, using touch inputs that loosely correspond to real-world actions, like swiping, tapping, pinching and reverse pinching

Internal hardware such as accelerometers, gyroscopes and proximity sensors, can be used

Android homescreens are typically made up of app icons and widgets

The top of the screen is a status bar, showing information about the device and its connectivity, notification area

Page 16: Android development

Applications

Google Play Store

Amazon App Store

.apk files

Many third party App Stores

Page 17: Android development

Linux Android based on Linux kernel version 2.6 ; Android 4.0 Ice Cream Sandwich on version

3.x

Middleware, libraries and APIs written in C

Application software running on Java-compatible libraries based on Apache Harmony.

Android uses the Dalvik virtual machine with just-in-time compilation to run Dalvik 'dex-code' (Dalvik Executable).

Hardware platform is the ARM architecture. Support for x86 from the Android-x86 project.

Google TV uses a special x86 version of Android.

Intel processors began to appear on more mainstream Android platforms, such as phones.

Android does not have a native X Window System by default nor does it support the full set of standard GNU libraries.

Google contributed back to the Linux kernel, e.g power management feature called "wakelocks"

The flash storage on Android devices is split into several partitions, such as "/system" for the operating system itself and "/data" for user data and app installations.

No root access to the operating system and sensitive partitions such as /system are read-only.

Whether or not Android counts as a Linux distribution

Page 18: Android development

Memory management

When an Android app is no longer in use, the system will automatically suspend it in memory

Suspended apps consume no resources (e.g. battery power or processing power) and sit idly in the background until needed again.

This has the dual benefit of increasing the general responsiveness of Android devices, since apps don't need to be closed and reopened from scratch each time, but also ensuring background apps don't waste power needlessly.

Android manages the apps stored in memory automatically: when memory is low, the system will begin killing apps and processes that have been inactive for a while

Page 19: Android development

Security and Privacy

Android applications run in a sandbox, an isolated area of the system that does not have access to the rest of the system's resources, unless access permissions are explicitly granted by the user when the application is installed.

Google currently uses their Google Bouncer malware scanner to watch over and scan the Google Play store apps

Android version 4.2 Jelly Bean includes a malware scanner built into the system. It can scan apps installed from google play and 3rd party sources as well, and an alert system which notifies the user when an app tries to send a premium-rate text message.

Android smartphones have the ability to report the location of Wi-Fi access points

Page 20: Android development

Intellectual property issues

On August 12, 2010, Oracle sued Google related to the Java. ($6.1 billion)

Android is based on Apache Harmony, an independently developed VM called Dalvik.

In May 2012, Structure of the Java APIs used by Google was not copyrightable.

Both Apple and Microsoft have sued several manufacturers for patent infringement

In October 2011, Microsoft signed patent license agreements with ten Android device manufacturers, whose products account for 55% of the worldwide revenue for Android devices. These include Samsung and HTC.

In 2011–12, Google purchased Motorola Mobility for US$12.5 billion it held more than 17,000 patents.

In December 2011, Google bought over a thousand patents from IBM.

Page 21: Android development

Development

Applications are developed in the Java language using the Android software development kit (SDK). It includes development tools, such as debugger, software libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials.

The officially supported integrated development environment (IDE) is Eclipse using the Android Development Tools (ADT) plugin.

Other development tools are available, including a Native Development Kit for applications or extensions in C or C++

App Inventor The application was made available through request on July 12, 2010, and released publicly on December 15, 2010. Google terminated App Inventor on December 31, 2011. The MIT Center for Mobile Learning is now supporting it under the name "MIT App Inventor".

Page 22: Android development

Development Process

Page 23: Android development

Android Apps

Built using Java and new SDK libraries

No support for some Java libraries like Swing & AWT

Oracle currently suing Google over use

Java code compiled into Dalvik byte code (.dex)

Optimized for mobile devices (better memory management, battery utilization, etc.)

Dalvik VM runs .dex files

Page 24: Android development

Build & Run

ADB is a client server program that connects clients on developer machine to devices/emulators to facilitate development.

An IDE like Eclipse handles this entire process for you.

Page 25: Android development

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

http://developer.android.com/reference/android/Manifest.permission.html

http://developer.android.com/reference/android/Manifest.permission_group.html

Page 26: Android development
Page 27: Android development

Publishing and Monetizing

Paid apps in Android Market, various other markets

Free, ad-supported apps in Android Market

Ad networks (Google AdMob, Quattro Wireless)

Sell your own ads

Online Services

Elance, Rent-a-coder etc

Contests (Android Developer Challenge)

Selling products from within your app

Page 28: Android development

Google Play

https://play.google.com/

Has various categories, allows ratings Have both free/paid apps Featured apps on web and on phone The Android Market (and iTunes/App

Store) is great for developers Level playing field, allowing third-party apps Revenue sharing

Page 29: Android development

Publishing to Play

Requires Google Developer Account

$25 fee

Link to a Merchant Account

Google Checkout

Link to your checking account

Google takes 30% of app purchase price

Page 30: Android development

Android Design Philosophy

Applications should be:

Fast

Resource constraints: <200MB RAM, slow processor

Responsive

Apps must respond to user actions within 5 seconds

Secure

Apps declare permissions in manifest

Seamless

Usability is key, persist data, suspend services

Android kills processes in background as needed

Page 31: Android development

Leveraging the web

To keep your apps fast and responsive, consider how you can leverage the web

What ____________ can be ________ on a server or in the cloud?

Tasks/performed

Data/persisted

Data/retrieved

Beware, data transfer is also expensive and can be slow

Page 32: Android development

What’s Next

http://developer.android.com/

EXPERTS Training & Solutions

2 Months

2 Sessions per week

15,000 Fee Package

Highlights

Input Gestures, Sensors, Camera, GPS, Location/Maps, Web Services, SMS, Mic/ Speakers, Phone, Internet etc

Page 33: Android development

Practical

Questions & Answers