The document introduces Vaclav Hnizda and provides an overview of Android apps for beginners. It discusses Android's history and architecture, the application lifecycle, options for storage, media, and screens. It also covers considerations for stand-alone apps, network connections, and deciding between HTML5 or native apps. The document aims to help beginners understand key concepts to get started building their first Android app.
2. Who am I?
Vaclav Hnizda
Background
●
●
●
●
●
BS in Music Education - 2005
MS in Software Engineering - 2014
First coded in ‘98 in QBasic!
Currently focus in Java & Android
Attended Google IO - 2012
Met Vic Gundotra
Senior VP of Google Engineering
Contact
● email: vaclav.cz@gmail.com
● linkedin: www.linkedin.com/in/vaclavhnizda
● twitter: @Vaclav_Moravak
3. Android Past
● Dalvik VM on top of Linux-based OS
● designed with touch mobility in mind
● Initially developed by Android, Inc., backed by Google
● In 2005 purchased & publicly displayed in 2007
● Also in 2007 Open Handset Alliance created
● The first Android-powered phone was sold in October
2008.
7. Linux Kernel
Linux device drivers
●
where all hardware is
managed
Android specific drivers:
●
●
●
●
( source: http://developer.android.com/images/system-architecture.jpg )
wake lock logger
logger
lowmemorykiller
Paranoid network-ing
8. The vast Libraries
Custom Java
● Library is a
custom made
collection of
classes optimized
for the mobile
platform
( source: http://developer.android.com/images/system-architecture.jpg )
9. Android Runtime
Dalvik
● Just in time
● optimized for
mobile devices
● Just because it’s a
VM does not
mean it runs slow,
very efficient and
fast
( source: http://developer.android.com/images/system-architecture.jpg )
10. Application Framework
The legos!
● Building blocks
● Many Features for
you to make use
of rather than
having to build it
from scratch
( source: http://developer.android.com/images/system-architecture.jpg )
11. Last but not least, Applications !
<Your App Here>
● All things visible to
you and any
Android user are
located on this
layer
( source: http://developer.android.com/images/system-architecture.jpg )
13. Android? New problems to solve!
● What happens when the user receives a phone call or
switches to another app from yours?
● Does your app consume valuable system resources
when the user is not actively using it?
● What happens to the user's progress if they leave your
app and return to it at a later time?
● Will you allow screen rotation? If so, will your app
crash?
● Many, many more!
14. Other questions to ask..
●
●
●
●
●
Will the app be stand alone?
Will it need a dedicated network connection?
Will a Phone data plan be enough?
Will data be stored locally, somewhere else?
Do I need something to run in the
background?
16. Want more Visual Power?
● Canvas and Drawables
● Hardware Acceleration
● OpenGL
17. Media? Got that too.
There are libraries already built in to:
● play videos & music
● capture an image from the camera
● find your location with the GPS
● manage what the volume rocker does
● voice activation? ready for you!
26. Other considerations.. HTML5 ?
HTML vs Java
Budget - All vs One
User reach vs User Experience
Browser vs Fullscreen
Online vs Offline
Alerts - Email vs local Notifications
OpenGL vs Even more
27. Future topics
● HTML5 apps vs native Android apps
● Building that first native app right
● Android framework basics
● How to get Android to work with you
● Exploring the Rich libraries of Android OS
● APIs and how they can supercharge your app