SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
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
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?

Más contenido relacionado

La actualidad más candente

Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application DevelopmentRamesh Prasad
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 
Introduction to Android - Mobile Portland
Introduction to Android - Mobile PortlandIntroduction to Android - Mobile Portland
Introduction to Android - Mobile Portlandsullis
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Developmentdonnfelker
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorialmaster760
 
Project presentation (Loginradius SDK for Android)
Project presentation (Loginradius SDK for Android)Project presentation (Loginradius SDK for Android)
Project presentation (Loginradius SDK for Android)shwetarathi Rathi
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android DevelopmentAly Abdelkareem
 
Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement Shubham Pahune
 
Android Development Training
Android Development TrainingAndroid Development Training
Android Development Trainingchandutata
 
PPT on Android Applications
PPT on Android ApplicationsPPT on Android Applications
PPT on Android ApplicationsAshish Agarwal
 
Android Programming Seminar
Android Programming SeminarAndroid Programming Seminar
Android Programming SeminarNhat Nguyen
 
Android Study Jams - Induction
Android Study Jams - InductionAndroid Study Jams - Induction
Android Study Jams - InductionGDSCAISSMSIOIT
 
Android Studio Overview
Android Studio OverviewAndroid Studio Overview
Android Studio OverviewSalim Hosen
 
Android seminar report
Android seminar reportAndroid seminar report
Android seminar reportdgpune
 
FYPJ - Cerebral Android App Development (Report)
FYPJ - Cerebral Android App Development (Report)FYPJ - Cerebral Android App Development (Report)
FYPJ - Cerebral Android App Development (Report)Nehemiah Tan
 

La actualidad más candente (20)

Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
Introduction to Android - Mobile Portland
Introduction to Android - Mobile PortlandIntroduction to Android - Mobile Portland
Introduction to Android - Mobile Portland
 
Gdsc android introduction
Gdsc android introductionGdsc android introduction
Gdsc android introduction
 
Android report.
Android report.Android report.
Android report.
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Project presentation (Loginradius SDK for Android)
Project presentation (Loginradius SDK for Android)Project presentation (Loginradius SDK for Android)
Project presentation (Loginradius SDK for Android)
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement
 
Android Development Training
Android Development TrainingAndroid Development Training
Android Development Training
 
Android ppt
 Android ppt Android ppt
Android ppt
 
PPT on Android Applications
PPT on Android ApplicationsPPT on Android Applications
PPT on Android Applications
 
Android Programming Seminar
Android Programming SeminarAndroid Programming Seminar
Android Programming Seminar
 
Android Study Jams - Induction
Android Study Jams - InductionAndroid Study Jams - Induction
Android Study Jams - Induction
 
Android Studio Overview
Android Studio OverviewAndroid Studio Overview
Android Studio Overview
 
Android seminar report
Android seminar reportAndroid seminar report
Android seminar report
 
FYPJ - Cerebral Android App Development (Report)
FYPJ - Cerebral Android App Development (Report)FYPJ - Cerebral Android App Development (Report)
FYPJ - Cerebral Android App Development (Report)
 
My android
My androidMy android
My android
 
Android Report
Android ReportAndroid Report
Android Report
 

Similar a Introduction to Android App Development

Introduction to android
Introduction to androidIntroduction to android
Introduction to androidzeelpatel0504
 
Android development courses online
Android development courses onlineAndroid development courses online
Android development courses onlineTexilaedu
 
Mobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfMobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfAbdullahMunir32
 
Ch1 hello, android
Ch1 hello, androidCh1 hello, android
Ch1 hello, androidJehad2012
 
Android summer training report
Android summer training reportAndroid summer training report
Android summer training reportShashendra Singh
 
An introduction to Android
An introduction to AndroidAn introduction to Android
An introduction to AndroidRajesh Jambukia
 
Slides bootcamp21
Slides bootcamp21Slides bootcamp21
Slides bootcamp21dxsaki
 
Android introduction
Android introductionAndroid introduction
Android introductionReena Nachare
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionCesar Augusto Nogueira
 
Introduction to Mobile Development
Introduction to Mobile DevelopmentIntroduction to Mobile Development
Introduction to Mobile DevelopmentPragnesh Vaghela
 
Android and android phones
Android and android phonesAndroid and android phones
Android and android phonesDennise Layague
 
Introduction to android mobile app development.pptx
Introduction to android mobile app development.pptxIntroduction to android mobile app development.pptx
Introduction to android mobile app development.pptxridzah12
 
Android development-tutorial
Android development-tutorialAndroid development-tutorial
Android development-tutorialilias ahmed
 
Introduction to everything around Android
Introduction to everything around AndroidIntroduction to everything around Android
Introduction to everything around AndroidBipin Jethwani
 
lecture-2-android-dev.pdf
lecture-2-android-dev.pdflecture-2-android-dev.pdf
lecture-2-android-dev.pdfjakjak36
 
Getting started with android dev and test perspective
Getting started with android   dev and test perspectiveGetting started with android   dev and test perspective
Getting started with android dev and test perspectiveGunjan Kumar
 

Similar a Introduction to Android App Development (20)

Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Android development courses online
Android development courses onlineAndroid development courses online
Android development courses online
 
01 03 - introduction to android
01  03 - introduction to android01  03 - introduction to android
01 03 - introduction to android
 
Mobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfMobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdf
 
Ch1 hello, android
Ch1 hello, androidCh1 hello, android
Ch1 hello, android
 
Android summer training report
Android summer training reportAndroid summer training report
Android summer training report
 
An introduction to Android
An introduction to AndroidAn introduction to Android
An introduction to Android
 
Slides bootcamp21
Slides bootcamp21Slides bootcamp21
Slides bootcamp21
 
Android introduction
Android introductionAndroid introduction
Android introduction
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting Introduction
 
Introduction to Mobile Development
Introduction to Mobile DevelopmentIntroduction to Mobile Development
Introduction to Mobile Development
 
Android and android phones
Android and android phonesAndroid and android phones
Android and android phones
 
PPT Companion to Android
PPT Companion to AndroidPPT Companion to Android
PPT Companion to Android
 
Android app development India
Android app development IndiaAndroid app development India
Android app development India
 
Introduction to android mobile app development.pptx
Introduction to android mobile app development.pptxIntroduction to android mobile app development.pptx
Introduction to android mobile app development.pptx
 
Android development-tutorial
Android development-tutorialAndroid development-tutorial
Android development-tutorial
 
Introduction to everything around Android
Introduction to everything around AndroidIntroduction to everything around Android
Introduction to everything around Android
 
lecture-2-android-dev.pdf
lecture-2-android-dev.pdflecture-2-android-dev.pdf
lecture-2-android-dev.pdf
 
Aptech Apps
Aptech Apps Aptech Apps
Aptech Apps
 
Getting started with android dev and test perspective
Getting started with android   dev and test perspectiveGetting started with android   dev and test perspective
Getting started with android dev and test perspective
 

Más de Andri Yadi

AIoT: Intelligence on Microcontroller
AIoT: Intelligence on MicrocontrollerAIoT: Intelligence on Microcontroller
AIoT: Intelligence on MicrocontrollerAndri Yadi
 
TechInAsia PDC 2019 - Unlocking The Potential of IoT with AI
TechInAsia PDC 2019 - Unlocking The Potential of IoT with AITechInAsia PDC 2019 - Unlocking The Potential of IoT with AI
TechInAsia PDC 2019 - Unlocking The Potential of IoT with AIAndri Yadi
 
Global Azure Bootcamp 2019 - AIoT powered by Azure
Global Azure Bootcamp 2019 - AIoT powered by AzureGlobal Azure Bootcamp 2019 - AIoT powered by Azure
Global Azure Bootcamp 2019 - AIoT powered by AzureAndri Yadi
 
Introduction to AIoT & TinyML - with Arduino
Introduction to AIoT & TinyML - with ArduinoIntroduction to AIoT & TinyML - with Arduino
Introduction to AIoT & TinyML - with ArduinoAndri Yadi
 
Opportunities & Challenges in IoT - Future of IoT industry in Indonesia 2019 ...
Opportunities & Challenges in IoT - Future of IoT industry in Indonesia 2019 ...Opportunities & Challenges in IoT - Future of IoT industry in Indonesia 2019 ...
Opportunities & Challenges in IoT - Future of IoT industry in Indonesia 2019 ...Andri Yadi
 
Microsoft Azure-powered IoT & AI Solution To Help Farmer
Microsoft Azure-powered IoT & AI Solution To Help FarmerMicrosoft Azure-powered IoT & AI Solution To Help Farmer
Microsoft Azure-powered IoT & AI Solution To Help FarmerAndri Yadi
 
IoT Connectivity with LoRa
IoT Connectivity with LoRaIoT Connectivity with LoRa
IoT Connectivity with LoRaAndri Yadi
 
Ask the Expert: Internet of Things
Ask the Expert: Internet of ThingsAsk the Expert: Internet of Things
Ask the Expert: Internet of ThingsAndri Yadi
 
Global Azure Bootcamp 2018 - Azure IoT Central
Global Azure Bootcamp 2018 - Azure IoT CentralGlobal Azure Bootcamp 2018 - Azure IoT Central
Global Azure Bootcamp 2018 - Azure IoT CentralAndri Yadi
 
Maker Movement toward IoT Ecosystem in Indonesia
Maker Movement toward IoT Ecosystem in IndonesiaMaker Movement toward IoT Ecosystem in Indonesia
Maker Movement toward IoT Ecosystem in IndonesiaAndri Yadi
 
IoT for Agriculture in a Nutshell: Technical Perspective
IoT for Agriculture in a Nutshell: Technical PerspectiveIoT for Agriculture in a Nutshell: Technical Perspective
IoT for Agriculture in a Nutshell: Technical PerspectiveAndri Yadi
 
Road to Republic of IoT - IoT Technologies & Machine Learning
Road to Republic of IoT - IoT Technologies & Machine LearningRoad to Republic of IoT - IoT Technologies & Machine Learning
Road to Republic of IoT - IoT Technologies & Machine LearningAndri Yadi
 
IoT Connectivity: The Technical & Potential
IoT Connectivity: The Technical & PotentialIoT Connectivity: The Technical & Potential
IoT Connectivity: The Technical & PotentialAndri Yadi
 
IT Solution through IoT Development
IT Solution through IoT DevelopmentIT Solution through IoT Development
IT Solution through IoT DevelopmentAndri Yadi
 
Internet of Things - Technicals
Internet of Things - TechnicalsInternet of Things - Technicals
Internet of Things - TechnicalsAndri Yadi
 
Global Azure Bootcamp 2017 - Azure IoT Hub with LoRa Connectivity
Global Azure Bootcamp 2017 - Azure IoT Hub with LoRa ConnectivityGlobal Azure Bootcamp 2017 - Azure IoT Hub with LoRa Connectivity
Global Azure Bootcamp 2017 - Azure IoT Hub with LoRa ConnectivityAndri Yadi
 
The state of NB-IoT in Indonesia
The state of NB-IoT in IndonesiaThe state of NB-IoT in Indonesia
The state of NB-IoT in IndonesiaAndri Yadi
 
Industrial IoT in a Nutshell
Industrial IoT in a NutshellIndustrial IoT in a Nutshell
Industrial IoT in a NutshellAndri Yadi
 
The Rise of Maker Movement in Indonesia
The Rise of Maker Movement in IndonesiaThe Rise of Maker Movement in Indonesia
The Rise of Maker Movement in IndonesiaAndri Yadi
 
Road to Republic of IoT - ESP32 Programming and LoRa
Road to Republic of IoT - ESP32 Programming and LoRaRoad to Republic of IoT - ESP32 Programming and LoRa
Road to Republic of IoT - ESP32 Programming and LoRaAndri Yadi
 

Más de Andri Yadi (20)

AIoT: Intelligence on Microcontroller
AIoT: Intelligence on MicrocontrollerAIoT: Intelligence on Microcontroller
AIoT: Intelligence on Microcontroller
 
TechInAsia PDC 2019 - Unlocking The Potential of IoT with AI
TechInAsia PDC 2019 - Unlocking The Potential of IoT with AITechInAsia PDC 2019 - Unlocking The Potential of IoT with AI
TechInAsia PDC 2019 - Unlocking The Potential of IoT with AI
 
Global Azure Bootcamp 2019 - AIoT powered by Azure
Global Azure Bootcamp 2019 - AIoT powered by AzureGlobal Azure Bootcamp 2019 - AIoT powered by Azure
Global Azure Bootcamp 2019 - AIoT powered by Azure
 
Introduction to AIoT & TinyML - with Arduino
Introduction to AIoT & TinyML - with ArduinoIntroduction to AIoT & TinyML - with Arduino
Introduction to AIoT & TinyML - with Arduino
 
Opportunities & Challenges in IoT - Future of IoT industry in Indonesia 2019 ...
Opportunities & Challenges in IoT - Future of IoT industry in Indonesia 2019 ...Opportunities & Challenges in IoT - Future of IoT industry in Indonesia 2019 ...
Opportunities & Challenges in IoT - Future of IoT industry in Indonesia 2019 ...
 
Microsoft Azure-powered IoT & AI Solution To Help Farmer
Microsoft Azure-powered IoT & AI Solution To Help FarmerMicrosoft Azure-powered IoT & AI Solution To Help Farmer
Microsoft Azure-powered IoT & AI Solution To Help Farmer
 
IoT Connectivity with LoRa
IoT Connectivity with LoRaIoT Connectivity with LoRa
IoT Connectivity with LoRa
 
Ask the Expert: Internet of Things
Ask the Expert: Internet of ThingsAsk the Expert: Internet of Things
Ask the Expert: Internet of Things
 
Global Azure Bootcamp 2018 - Azure IoT Central
Global Azure Bootcamp 2018 - Azure IoT CentralGlobal Azure Bootcamp 2018 - Azure IoT Central
Global Azure Bootcamp 2018 - Azure IoT Central
 
Maker Movement toward IoT Ecosystem in Indonesia
Maker Movement toward IoT Ecosystem in IndonesiaMaker Movement toward IoT Ecosystem in Indonesia
Maker Movement toward IoT Ecosystem in Indonesia
 
IoT for Agriculture in a Nutshell: Technical Perspective
IoT for Agriculture in a Nutshell: Technical PerspectiveIoT for Agriculture in a Nutshell: Technical Perspective
IoT for Agriculture in a Nutshell: Technical Perspective
 
Road to Republic of IoT - IoT Technologies & Machine Learning
Road to Republic of IoT - IoT Technologies & Machine LearningRoad to Republic of IoT - IoT Technologies & Machine Learning
Road to Republic of IoT - IoT Technologies & Machine Learning
 
IoT Connectivity: The Technical & Potential
IoT Connectivity: The Technical & PotentialIoT Connectivity: The Technical & Potential
IoT Connectivity: The Technical & Potential
 
IT Solution through IoT Development
IT Solution through IoT DevelopmentIT Solution through IoT Development
IT Solution through IoT Development
 
Internet of Things - Technicals
Internet of Things - TechnicalsInternet of Things - Technicals
Internet of Things - Technicals
 
Global Azure Bootcamp 2017 - Azure IoT Hub with LoRa Connectivity
Global Azure Bootcamp 2017 - Azure IoT Hub with LoRa ConnectivityGlobal Azure Bootcamp 2017 - Azure IoT Hub with LoRa Connectivity
Global Azure Bootcamp 2017 - Azure IoT Hub with LoRa Connectivity
 
The state of NB-IoT in Indonesia
The state of NB-IoT in IndonesiaThe state of NB-IoT in Indonesia
The state of NB-IoT in Indonesia
 
Industrial IoT in a Nutshell
Industrial IoT in a NutshellIndustrial IoT in a Nutshell
Industrial IoT in a Nutshell
 
The Rise of Maker Movement in Indonesia
The Rise of Maker Movement in IndonesiaThe Rise of Maker Movement in Indonesia
The Rise of Maker Movement in Indonesia
 
Road to Republic of IoT - ESP32 Programming and LoRa
Road to Republic of IoT - ESP32 Programming and LoRaRoad to Republic of IoT - ESP32 Programming and LoRa
Road to Republic of IoT - ESP32 Programming and LoRa
 

Introduction to Android App Development

  • 1. Android Development http://dycode.co.id | office@dycode.com | @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

  • 35.
  • 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