introduction to android app development

Post on 18-Jul-2015

575 Views

Category:

Mobile

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Android Development

http://dycode.co.id | office@dycode.com | @dycode

Beginner Level Training

DyPlex, March 31, 2015

Andri Yadi

CEO, DyCode

Lead Trainer

Bayu WYMobile Team Lead, DyCode

About DyCode 8 years company

End-to-end mobile app solutions developer company

Award-winning companies

100+ mid-to-large projects, 3 products, including a well-know app: Movreak, Jepret Story

Intro to Android

Android BackgroundA Software Stack: OS, Middle-ware, key apps.Developed by Android Inc. Bought by Google in 2005.

Based on Linux kernel

Open Source Android Open Source Project (AOSP), led by Google. Under Apache 2.0 License. Developed by Open Handset Alliance. Huge code base

Application layer is Java-based

Android is NOT Linux. No native windowing system. No glibc support.NO GNU/LINUX utilities

Android Background

Open Handset Alliance?

A consortium of several companies

Devoted to advancing open standards for mobile devices

Develop technologies that will significantly lower the cost of developing and distributing mobile devices and services.

Architecture

Linux Kernel

Linux Kernel: basic hardware abstraction, memory management, process management, networking, and other operating system services.

Display Driver Camera Driver Flash Memory Driver Binder (IPC) Driver

Keypad Driver WiFi Driver Audio Driver Power Management

Libraries

Native Libraries:  written in C or C++, Standard C lib. Only to be called by higher level programs

Surface Manager Media Framework SQLite OpenGL ES

FreeType WebKit SGL SSL libc

Android Runtime

Core Libraries consists of most of standard Java libraries (but not J2SE/J2ME). Don’t use VM, Dalvik VM instead. Run .dex files. Each app runs in its own VM

Core Libraries Dalvik Virtual Machine

Application Framework

Full set of services built in Java View & windows, resources, content providers, phone services & APIs, notifications, application life-cycle management All apps directly interact with this layer

Activity Manager Window Manager Content Providers

View System

Package Manager Telephony Manager Resource Manager

Location Manager Notification Manager

Applications

Applications and Widgets: the real programs display information and interact with users.

Home Contacts Browser Your app

Android Applications

Loosely coupled set of services

One or more: Activities (≃ screens)Services (≃ background processes)Broadcast receiver (≃ waiting and response) Content providers (≃ provides some data, mostly backed by SQLite)

Can use other apps functionality (≃ intent)

Android ApplicationsSet of activities

Application Lifecycle

Controlled by TasksA task is a set of activities arranged in a stack

Root TaskLaunching an app makes it the root of a task New activities pushed on the task task (default behaviour)

Activity 2

Activity 1

Task

Application Lifecycle

App ProcessAll apps are run in their own process

PriorityAndroid manages memory by prioritising processes and killing least important ones

Application Lifecycle

Jepret Story app process Twitter app process

Flavours (or version)

OS Version & API LevelAndroid 1.0

Android 1.1

Android 1.5 Cupcake

Android 1.6 Donut (API level 4)

Android 2.0 Eclair (API level 5)

Android 2.0.1 Eclair (API level 6)

Android 2.1 Eclair (API level 7)

Android 2.2–2.2.3 Froyo (API level 8)

Android 2.3–2.3.2 Gingerbread (API level 9)

Android 2.3.3–2.3.7 Gingerbread (API level 10)

Android 3.0 Honeycomb (API level 11)

Android 3.1 Honeycomb (API level 12)

Android 3.2 Honeycomb (API level 13)

Android 4.0–4.0.2 Ice Cream Sandwich (API level 14)

Android 4.0.3–4.0.4 Ice Cream Sandwich (API level 15)

Android 4.1 Jelly Bean (API level 16)

Android 4.2 Jelly Bean (API level 17)

Android 4.3 Jelly Bean (API level 18)

Andriod 4.4–4.4.4 Kitkat (API level 19)

Andriod 4.4W Kitkat with Wearable Extensions (API level 20)

Android 5.0-5.02 Lollipop (API Level 21)

Android 5.1 Lollipop (API Level 22)

Security & PermissionsEach Android package is given its own unique Linux user ID

An app is sandboxed and can't disrupt other apps, except by explicitly declaring the permissions for it

Permissions: Declarative permission in manifest file Users are prompted at install time

Apps (APK files) are signed locally

Android 5.0Some updates on…

Material Design

Visual Language + Good Design + Innovation

Material Design

ColorsLarge areas, suggested color palette

ImagesMore personal & emotional content

“3D” Mostly 2D & 2.5D to give structure

Light and Shadow Cards and overlays

Material Design

Flat No bevels, gradients, effects

AnimationsExplains interaction

TypographyRoboto and font style definitions

Layout templates Margins, key lines, etc.

Material Design

Elements of Material Design in Android

New themeNew Widgets for complex views  New API for Custom Shadows & Animation

ToolBar is a generalized ActionBar More flexible

setActionBar(toolBar) Option menu actions

Can be placed anywhere in the layout For example, in a pop up Fragment

Toolbar is just another View

Android RunTime (ART)

Good bye DalvikART runtime replaces Dalvik as the platform default

FeaturesAhead of time compilation (AOT) Better Garbage Collection (GC) 64 bit support Better Profiling and Debugging

First appearance in Android 4.4 (experimental)

ART - AOTCompilation during installationInstallation takes longer More storage required (DEX + Compiled)

Better startup time

No compilation lags during execution

Compiled ART code is fasterthan compiled Dalvik code

In general, better battery life, less memory consumption

WebView

Chromium 37

Includes: WebGL WebAudioWebRTC

Updateable from Google Play

Permissions for camera, microphone, ...

Notification

Heads up notifications (floating)

Privacy notification setting for lockscreen

Camera

Uncompressed 8MP YUV at 30 FPS

Capture raw sensor data & control parametersExposureISO sensitivity

Connectivity

Bluetooth LE Peripheral ModeBroadcast presence to nearby devices

Scan and connect to specific network

Dev Tool

Integration with Android Studio

A Single Build System

Android Signing Configuration

Multi-project Support

Full Incremental Builds

apply plugin: 'com.android.application'

android { compileSdkVersion 21 buildToolsVersion "21.1.2"

defaultConfig { applicationId “example.app.android" minSdkVersion 10 targetSdkVersion 21 versionCode 1 versionName "1.0" }}

Genymotion

Faster Android Emulator

Free for personal use onlyOnly provides emulation on GPS, Camera

EUR24.99 per month, per user

Intel HAXMIntel® Hardware Accelerated Execution Manager a hardware-assisted virtualization engine that uses Intel Virtualization Technology to speed up Android app emulation on a host machine

Suppots Windows, Linux, OS X

Requirement Intel HAXM installer Intel x86 Atom System Image

Google Play

Google Play

Distribute and find Android apps

Get started Sign up for Developer Account Accept Developer Distribution Agreement Pay $25 one-time registration fee Complete details

https://play.google.com/apps/publish

Google Play

Google Play began to review app*

Payment:Credit CardGoogle Play Gift CardOperator Billing

30% cut for Google Play

DyCode Eduhttp://edu.dycode.co.id edu@dycode.com @dycode

More pro training?

top related