introduction to android developmentintroduction to android development architecture activities,...
TRANSCRIPT
![Page 1: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/1.jpg)
Introduction to Android Development
ArchitectureActivities, Views, IntentsInstalling Android Studio & SDKWalkthrough, MVC in Android
![Page 2: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/2.jpg)
Ove
rvie
w • What is Android?– Introduction– Architecture– Activities, Views, Intents
• Android Developer Tools– Installing the Android SDK– Setting up an AVD
• Demo– Creating a project, project structure– Building and deploying to an AVD– Using MVC
• Wrap-up– A4 Settings– Tips & Tricks
2
![Page 3: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/3.jpg)
Res
ourc
es
3
http://developer.android.com
http://developer.android.com/
![Page 4: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/4.jpg)
Wha
t is
And
roid
? • Pervasive Mobile Platform– Runs on hundreds of millions of mobile phones, tablets– World’s most popular & frequently installed mobile OS– Open Source (minimum-definition).
• Developing on Android– Multi-platform tools– Based on Java– Uses Android Studio IDE– Excellent third-party tools support
• See http://developer.android.com/tools/index.html
4
![Page 5: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/5.jpg)
Des
ign
Con
side
ratio
ns • Mobile OS with limited resources– Limited memory, processing power– Battery life is critical!
• Architectural tradeoffs– The OS aggressively flushes memory– Background computation is limited
• Unusual device characteristics– Small screen– Multiple orientations, dynamic layout– Single window/application running– Multi-touch input
5
![Page 6: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/6.jpg)
Arc
hite
ctur
e • Layered environment– Bottom tier: Linux 2.6 kernel– Mid tier: Android libraries/services– Top tier: Java applications
• Applications run in virtual machines (VM)– Each application has it’s own VM & address space– Restrictions on sharing resources and data– Dalvik virtual machine process
6
![Page 7: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/7.jpg)
Arc
hite
ctur
e
7
![Page 8: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/8.jpg)
Des
ign
Goa
ls • Applications provide multiple entry points; they’re distinct components that can be invoked individually.– Activity: a single screen in an application– Service: runs in a separate background thread– Intent: a way for a component to start another component.
• Applications are dynamic– You should provide different layouts (XML layouts, and
resources) based on device characteristics.– Applications should dynamically adjust based on device
screen size and orientation.
8
http://developer.android.com/guide/index.html
![Page 9: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/9.jpg)
Ove
rvie
w • What is Android?– Introduction– Architecture– Activities, Views, Intents
• Android Developer Tools– Installing the Android SDK– Setting up an AVD
• Demo– Creating a project, project structure– Building and deploying to an AVD– Using MVC
• Wrap-up– A4 Settings– Tips & Tricks
9
![Page 10: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/10.jpg)
Act
iviti
es • Different types of components that we can build in Android: applications, services, etc. (see chart below)
• A standard application component is an Activity– Typically represents a single screen– Main entry point (equiv. to main() method)– For most purposes, this is your application class!
Components Description
Activity Single-screen of an application
Service Long-running background application
Content provider Provides shared set of application data
Broadcast receiver Responds to system broadcast events
10
![Page 11: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/11.jpg)
Act
ivity
Life
cycl
e • Activities have an explicit lifecycle– One activity runs at a time, others are paused in the background.– As users navigate through your application, they switch activities.
• Every activity has a state: run, paused, or stopped.- Changing state fires a corresponding activity method.
Running Paused/
Stopped
11
![Page 12: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/12.jpg)
Act
ivity
Life
cycl
e • Common to switch between different activities/screens.– Activities can create other activities (“Back stack”)– Navigation forward/back through activities is typically triggered
by user actions
12
![Page 13: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/13.jpg)
Inte
rrup
ted
Wor
kflo
w • Applications can stop at any time (i.e. user quits, OS kills it). – Each activity needs to manage its own state.– Activities have methods for saving and restoring state
13
http://developer.android.com/training/basics/activity-lifecycle/pausing.html
![Page 14: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/14.jpg)
Inte
nts • We use intents to pass data between activities/screens.
– Data structure holding an abstract description of an action.– Use Activity startActivity() method to launch with intent.
• Explicit (named activity) vs. implicit (capabilities, e.g. camera)
14
https://developer.android.com/guide/components/intents-filters.html
![Page 15: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/15.jpg)
UI C
ompo
nent
s • android.view.ViewGroup– Abstract base class, replaces LayoutManagers in Java– Subclasses: AbsoluteLayout, RelativeLayout
• android.view.View– Abstract base class, drawing and event handling– Subclasses: ImageView, TextView, ProgressBar
• Views are managed by each activity (screen)1. Typically use XML layouts (dynamically).2. Can also load in code (manual).
15
![Page 16: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/16.jpg)
Opt
iona
l: Fr
agm
ents • Fragments can be thought of as
portions of a UI• An activity can contain (and
manage) multiple fragments.– Allows for dynamic
adjustments to the UI– Fragments have their own
lifecycle, and their own layout.– Alternative to multiple activities
CS349 -- Direct Manipulation16
http://developer.android.com/guide/components/fragments.html
![Page 17: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/17.jpg)
Rec
ap: B
uild
ing
App
licat
ions Your application will consist of:
• Activities – MainActivity as your main window (and entry point)– Possibly other activities
• Views within each Activity– View Groups containing Views (i.e. components)– Possibly fragments, managed by a Activity– Components using android.widget.*
• Intents tying Activities together
17
![Page 18: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/18.jpg)
Ove
rvie
w • What is Android?– Introduction– Architecture– Activities, Views, Intents
• Android Developer Tools– Installing the Android SDK– Setting up an AVD
• Demo– Creating a project, project structure– Building and deploying to an AVD– Using MVC
• Wrap-up– A4 Settings– Tips & Tricks
18
![Page 19: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/19.jpg)
And
roid
Stu
dio
19
• Android used to support Eclipse, and a standalone SDK• Google recently standardized on Android Studio
• Custom version of IntelliJ.• Includes IDE, SDK, supporting tools, documentation,
sample code.• Runs on Mac, Windows, Linux
• Install from the Android Developer Portal• Develop -> Tools
![Page 20: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/20.jpg)
And
roid
SD
K M
anag
er • Android SDK is included, with command-line tools, libraries etc. – e.g. /Users/<user>/Library/Android/sdk/
• During installation, it will also install HAXM (Intel HW Acceleration).• To update the SDK later: Tools -> Android -> SDK Manager
20
![Page 21: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/21.jpg)
And
roid
Virt
ual D
evic
e (A
VD) • Emulator that can be run on your machine for development.
• Can emulate a range of devices / capabilities / OS versions.– Android Studio -> Tools -> Android -> AVD Manager
21
important
![Page 22: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/22.jpg)
Get
ting
Star
ted 1. Create the project
– Normally use the New Project wizard in Android Studio.– Do NOT attempt to build a project by-hand.
2. Setup the Android Virtual Device (AVD)– Configure the emulator for a specific target device.– This is the profile that you’ll use for testing.– Make sure that HAXM is enabled!
3. Setup the Run Configuration– Specify the starting Activity that will be used, and the target
(typically an AVD).– Test with an empty project first.
4. Commit Everything to SVN.– Commit early, and often. – Save your entire project, not just code!
22
![Page 23: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/23.jpg)
Ove
rvie
w • What is Android?– Introduction– Architecture– Activities, Views, Intents
• Android Developer Tools– Installing the Android SDK– Setting up an AVD
• Demo– Creating a project, project structure– Building and deploying to an AVD– Using MVC
• Wrap-up– A4 Settings– Tips & Tricks
23
![Page 24: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/24.jpg)
Dem
o: “
Hel
lo W
orld
” • The New-Project wizard generates “Hello World” starter code.• Great demonstration of how the project fits together.• Recall the application lifecycle. Event states map directly to
methods.
Running Paused/ Stopped
24
![Page 25: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/25.jpg)
“Hel
lo W
orld
” (1)
25
![Page 26: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/26.jpg)
“Hel
lo W
orld
” (2)
• OnCreate()– Maps to the OnCreate() state– executed when the app runs (i.e. entry point!)
• SetContentView(R.layout.activity_main)– Default view– Example of Android using XML for view widgets– Look under res/layout/activity_main.xml
26
![Page 27: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/27.jpg)
“Hel
lo W
orld
” (3)
27
![Page 28: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/28.jpg)
Dem
o: M
VC A
pplic
atio
n • To implement MVC, we can instantiate our model, view and controller classes directly in code.– Define views using resource files, but use code to
instantiate them and bind them together.
28
![Page 29: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/29.jpg)
Ove
rvie
w • What is Android?– Introduction– Architecture– Activities, Views, Intents
• Android Developer Tools– Installing the Android SDK– Setting up an AVD
• Demo– Creating a project, project structure– Building and deploying to an AVD– Using MVC
• Wrap-up– A4 Settings– Tips & Tricks
29
![Page 30: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/30.jpg)
A4
Setti
ngs • Tools
– Android Studio 1.5 (or later) on Mac, Windows or Linux– Android 6.0 (API 23) (installed by default)
• Project– New Android Application Project wizard
• Minimum SDK: API 21: Android 5.0 (Lollipop)• Blank Activity (accept defaults)
• AVD– Create a Nexus 6 device, “Nexus 6 API 22“, with defaults:
• Release Name: Lollipop • API Level: 22• ABI: x86• Target: Android 5.1
– AVD Name: Nexus 6 API 22• Emulated Performance: Use Host GPU (checked)• Device Frame: (checked)
30
![Page 31: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/31.jpg)
Tips
& T
ricks • AVD
– The AVD is slow to launch, so keep it running in the background while you’re programming / debugging.
• Use the debugging tools in Android Studio– You can set breakpoints etc. as usual– logcat shows device output and you can write to it using the
android.util.Log class (sim. to printf).
31
![Page 32: Introduction to Android DevelopmentIntroduction to Android Development Architecture Activities, Views, Intents Installing Android Studio & SDK Walkthrough, MVC in Android w • What](https://reader030.vdocuments.mx/reader030/viewer/2022040121/5ece4a89edfbbe5918472f6f/html5/thumbnails/32.jpg)
Oth
er R
esou
rces • Android Developer http://developer.android.com/
• Android Developer Channel @YouTube– http://www.youtube.com/user/androiddevelopers
• Recommended (Optional!) Books– Phillips & Hardy, Android Programming: The Big Nerd
Ranch Guide– Mednieks et al., Programming Android
32