Android Development
http://dycode.co.id | office@dycode.com | @dycode
Beginner Level Training
DyPlex, March 31, 2015
Andri Yadi
CEO, DyCode
Lead Trainer
Bayu WY
Mobile 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 Background
A 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 Applications
Set of activities
Application Lifecycle
Controlled by Tasks

A task is a set of activities arranged in a stack
Root Task

Launching 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 Process

All apps are run in their own process
Priority

Android 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 Level
Android 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 & Permissions
Each 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
Colors

Large areas, suggested color palette
Images

More personal & emotional content
“3D”

Mostly 2D & 2.5D to give structure
Light and Shadow 

Cards and overlays
Material Design
Flat

No bevels, gradients, effects
Animations

Explains interaction
Typography

Roboto and font style definitions
Layout templates 

Margins, key lines, etc.
Material Design
Elements of Material Design in Android
New theme

New 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 Dalvik

ART runtime replaces Dalvik as the platform default
Features

Ahead of time compilation (AOT)

Better Garbage Collection (GC)

64 bit support

Better Profiling and Debugging
First appearance in Android 4.4 (experimental)
ART - AOT
Compilation during installation

Installation takes longer

More storage required (DEX + Compiled)
Better startup time
No compilation lags during execution
Compiled ART code is faster

than compiled Dalvik code
In general, better battery life, less memory
consumption
WebView
Chromium 37
Includes:

WebGL

WebAudio

WebRTC
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 parameters

Exposure

ISO sensitivity

Connectivity
Bluetooth LE Peripheral Mode

Broadcast presence to nearby devices
Scan and connect to specific network

Dev Tool
Introduction to Android App Development
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 only

Only provides emulation on GPS, Camera
EUR24.99 per month, per user
Intel HAXM
Intel® 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 Card

Google Play Gift Card

Operator Billing
30% cut for Google Play
DyCode Edu
http://edu.dycode.co.id 

edu@dycode.com 

@dycode
More pro training?

More Related Content

PDF
Android report
PPTX
Android ppt
ODP
Introduction to Android App Development
PPT
PDF
Android Development: Build Android App from Scratch
PPT
Industrial Training in Android Application
PPT
Introduction to Android
PPTX
Android summer training report
Android report
Android ppt
Introduction to Android App Development
Android Development: Build Android App from Scratch
Industrial Training in Android Application
Introduction to Android
Android summer training report

What's hot (20)

PPTX
Android Application Development
PPT
Android Application Development Using Java
PDF
Introduction to Android - Mobile Portland
PPTX
Gdsc android introduction
PDF
Android report.
PPTX
Introduction to Android Development
PDF
Android tutorial
PPTX
Project presentation (Loginradius SDK for Android)
PDF
Introduction to Android Development
PPTX
Android Seminar || history || versions||application developement
PPTX
Android Development Training
PPT
Android ppt
PPTX
PPT on Android Applications
PPTX
Android Programming Seminar
PPTX
Android Study Jams - Induction
PPTX
Android Studio Overview
PPT
Android seminar report
PDF
FYPJ - Cerebral Android App Development (Report)
PPSX
My android
DOC
Android Report
Android Application Development
Android Application Development Using Java
Introduction to Android - Mobile Portland
Gdsc android introduction
Android report.
Introduction to Android Development
Android tutorial
Project presentation (Loginradius SDK for Android)
Introduction to Android Development
Android Seminar || history || versions||application developement
Android Development Training
Android ppt
PPT on Android Applications
Android Programming Seminar
Android Study Jams - Induction
Android Studio Overview
Android seminar report
FYPJ - Cerebral Android App Development (Report)
My android
Android Report
Ad

Similar to Introduction to Android App Development (20)

PDF
Slides bootcamp21
PDF
Mobile Application Development-Lecture 03 & 04.pdf
PPTX
Android quick talk
PPTX
Introduction to android mobile app development.pptx
PDF
Introduction to everything around Android
PPTX
Android mp3 player
PPT
Google android os
PPT
Part 1 robot in the making
PPT
PPT
Android Anatomy
PDF
Android By Vipin
PDF
Embedded Android : System Development - Part I
PDF
Get Started with Android - Session 1
PPTX
Basic of Android App Development
ODP
Java Meetup - 12-03-15 - Android Development Workshop
PPTX
And dev101
PDF
Embedded Android Workshop with Nougat
PPTX
EMEA AppForum 2015 Android KitKat & Lollipop - new features for enterprise de...
PPT
Getting started with android dev and test perspective
PPTX
18ITT61 - Introduction.pptx
Slides bootcamp21
Mobile Application Development-Lecture 03 & 04.pdf
Android quick talk
Introduction to android mobile app development.pptx
Introduction to everything around Android
Android mp3 player
Google android os
Part 1 robot in the making
Android Anatomy
Android By Vipin
Embedded Android : System Development - Part I
Get Started with Android - Session 1
Basic of Android App Development
Java Meetup - 12-03-15 - Android Development Workshop
And dev101
Embedded Android Workshop with Nougat
EMEA AppForum 2015 Android KitKat & Lollipop - new features for enterprise de...
Getting started with android dev and test perspective
18ITT61 - Introduction.pptx
Ad

More from Andri Yadi (20)

PDF
AIoT: Intelligence on Microcontroller
PDF
TechInAsia PDC 2019 - Unlocking The Potential of IoT with AI
PDF
Global Azure Bootcamp 2019 - AIoT powered by Azure
PDF
Introduction to AIoT & TinyML - with Arduino
PDF
Opportunities & Challenges in IoT - Future of IoT industry in Indonesia 2019 ...
PDF
Microsoft Azure-powered IoT & AI Solution To Help Farmer
PDF
IoT Connectivity with LoRa
PDF
Ask the Expert: Internet of Things
PDF
Global Azure Bootcamp 2018 - Azure IoT Central
PDF
Maker Movement toward IoT Ecosystem in Indonesia
PDF
IoT for Agriculture in a Nutshell: Technical Perspective
PDF
Road to Republic of IoT - IoT Technologies & Machine Learning
PDF
IoT Connectivity: The Technical & Potential
PDF
IT Solution through IoT Development
PDF
Internet of Things - Technicals
PDF
Global Azure Bootcamp 2017 - Azure IoT Hub with LoRa Connectivity
PDF
The state of NB-IoT in Indonesia
PDF
Industrial IoT in a Nutshell
PDF
The Rise of Maker Movement in Indonesia
PDF
Road to Republic of IoT - ESP32 Programming and LoRa
AIoT: Intelligence on Microcontroller
TechInAsia PDC 2019 - Unlocking The Potential of IoT with AI
Global Azure Bootcamp 2019 - AIoT powered by Azure
Introduction to AIoT & TinyML - with Arduino
Opportunities & Challenges in IoT - Future of IoT industry in Indonesia 2019 ...
Microsoft Azure-powered IoT & AI Solution To Help Farmer
IoT Connectivity with LoRa
Ask the Expert: Internet of Things
Global Azure Bootcamp 2018 - Azure IoT Central
Maker Movement toward IoT Ecosystem in Indonesia
IoT for Agriculture in a Nutshell: Technical Perspective
Road to Republic of IoT - IoT Technologies & Machine Learning
IoT Connectivity: The Technical & Potential
IT Solution through IoT Development
Internet of Things - Technicals
Global Azure Bootcamp 2017 - Azure IoT Hub with LoRa Connectivity
The state of NB-IoT in Indonesia
Industrial IoT in a Nutshell
The Rise of Maker Movement in Indonesia
Road to Republic of IoT - ESP32 Programming and LoRa

Introduction to Android App Development

  • 1. Android Development http://dycode.co.id | offi[email protected] | @dycode Beginner Level Training DyPlex, March 31, 2015
  • 3. Bayu WY Mobile Team Lead, DyCode
  • 4. 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
  • 6. Android Background A 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
  • 7. 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.
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. Applications Applications and Widgets: the real programs display information and interact with users. Home Contacts Browser Your app
  • 14. 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)
  • 16. Application Lifecycle Controlled by Tasks
 A task is a set of activities arranged in a stack Root Task
 Launching an app makes it the root of a task
 New activities pushed on the task task (default behaviour) Activity 2 Activity 1 Task
  • 17. Application Lifecycle App Process
 All apps are run in their own process Priority
 Android manages memory by prioritising processes and killing least important ones
  • 18. Application Lifecycle Jepret Story app process Twitter app process
  • 20. OS Version & API Level Android 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)
  • 21. Security & Permissions Each 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
  • 23. Material Design Visual Language + Good Design + Innovation
  • 24. Material Design Colors
 Large areas, suggested color palette Images
 More personal & emotional content “3D”
 Mostly 2D & 2.5D to give structure Light and Shadow 
 Cards and overlays
  • 25. Material Design Flat
 No bevels, gradients, effects Animations
 Explains interaction Typography
 Roboto and font style definitions Layout templates 
 Margins, key lines, etc.
  • 26. Material Design Elements of Material Design in Android New theme
 New Widgets for complex views 
 New API for Custom Shadows & Animation
  • 27. 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

  • 28. Android RunTime (ART) Good bye Dalvik
 ART runtime replaces Dalvik as the platform default Features
 Ahead of time compilation (AOT)
 Better Garbage Collection (GC)
 64 bit support
 Better Profiling and Debugging First appearance in Android 4.4 (experimental)
  • 29. ART - AOT Compilation during installation
 Installation takes longer
 More storage required (DEX + Compiled) Better startup time No compilation lags during execution Compiled ART code is faster
 than compiled Dalvik code In general, better battery life, less memory consumption
  • 30. WebView Chromium 37 Includes:
 WebGL
 WebAudio
 WebRTC Updateable from Google Play Permissions for camera, microphone, ...
  • 31. Notification Heads up notifications (floating) Privacy notification setting for lockscreen
  • 32. Camera Uncompressed 8MP YUV at 30 FPS Capture raw sensor data & control parameters
 Exposure
 ISO sensitivity

  • 33. Connectivity Bluetooth LE Peripheral Mode
 Broadcast presence to nearby devices Scan and connect to specific network

  • 36. 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" } }
  • 37. Genymotion Faster Android Emulator Free for personal use only
 Only provides emulation on GPS, Camera EUR24.99 per month, per user
  • 38. Intel HAXM Intel® 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
  • 40. 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
  • 41. Google Play Google Play began to review app* Payment:
 Credit Card
 Google Play Gift Card
 Operator Billing 30% cut for Google Play