I used this deck to give an overview on Android development for Android Development professional training in DyCode Edu.
More information on the training, please refer to http://edu.dycode.co.id
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
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
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
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
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