Android Application
Development
Adam Gerber, PhD, SCJP
gerber@cs.uchicago.edu
Office: Ryerson 154
Office Hours: Mon 8:20pm
-
10:00pm
TA: Jonathan Nieder
jrnieder@cs.uchicago.edu
Evaluations
20% homework assignments (4@ 5% each)
20% midterm exam
50% individual final project (take home)
10% class participation
Late homework/final project is penalized 10% every day
late, for three days; after that, you get a zero.
lec 01
The Android Computing Platform and
Architecture
Setting Up Your Development Environment
Tour of Eclipse/ADT
First App: HelloWorld
Understanding Android Resources
The Android Computing Platform
Android
•
Comprehensive open
-
source platform for
mobile devices
•
Owned by Open Handset Alliance
•
Championed by Google
•
Stated goal: "accelerate innovation in mobile
and offer consumers a richer, less expensive,
and better mobile experience."
Vision for Android
Version
API Level
Nickname
Android 1.0
1
Android
Android 1.1
2
Android
Android 1.5
3
Cupake
Android 1.6
4
Donut
Android 2.0
5
Eclair
Android 2.01
6
Eclair
Android 2.1
7
Eclair
Android 2.2
8
FroYo
Android 2.3
9
Gingerbread
Android 2.3.3
10
Gingerbread
Android 3.x
11,12,13
Honeycomb
Android 4.0.1
–
4.0.2
14
Ice Cream Sandwich
Android 4.0.3
–
4.0.4
15
Ice Cream Sandwich
http://developer.android.com/resources/dashboard/platform
-
versions.html
Mods (skins)
Open Handset Alliance
http://en.wikipedia.org/wiki/Android_(operating_system
)
http://en.wikipedia.org/wiki/Open_Handset_Allianc
e
The OHA was established on 5 November 2007, led by Google with
34 members including mobile handset makers, application
developers, some mobile carriers and chip makers.
Android, the flagship software of the alliance, is based on an open
source license and competes against mobile platforms from Apple,
Microsoft, Nokia (Symbian), HP (formerly Palm), Research In
Motion, and Samsung Electronics (bada).
Headquarters:
South Korea
Setting up your dev
enviroment
Getting/Using the tools
Google
-
search
-
> java jdk || java se downloads || JDK version 6 || install to c:
\
java
|| set the path env variable. C:
\
path
\
to
\
jdk
\
bin || java
-
version from command line.
Google
-
search
-
> android sdk || install to c:
\
java
\
android
-
sdk || path to
C:
\
java
\
android
-
sdk
\
platform
-
tools;C:
\
java
\
android
-
sdk
\
tools; adb devices to test.
Google
-
search
-
> eclipse ide | right
-
side download eclipse get the SE version ||
portable version so no need to "install" || dnd in root of c
Google
-
search
-
> adt eclipse || half way down to red url, and copy it. | within
eclispe help || install new software || paste in there.
within eclipse || little
-
down arrow || opens And SdK manager 4.0.3
within eclipse || little=phone
-
icon || pulls up AVDM new
http://www.classes.cs.uchicago.edu/archive/2012/summer/51031
-
1/android
-
src.zip C:
\
java
\
android
-
sdk
\
platforms
\
android
-
15
\
sources
\
android
-
src.zip
Quick Java Review
Java Primitives (integers)
Type
Signed?
Bits
Bytes
Lowest
Highest
byte
signed
8
1
-
2
7
-
128
2
7
-
1
+127
short
signed
16
2
-
2
15
-
32,768
2
15
-
1
32,767
int
signed
32
4
-
2
31
-
2,147,483,648
2
31
-
1
2,147,483,647
long
signed
64
8
-
2
63
-
9,
223,372,036,854
,775,808
2
63
-
1
9,223,372,036,85
4,775,807
How Java Stores positive Integers
-
2
(bits
-
1)
to 2
(bits
-
1)
–
1
•
0001 0011
•
The above is a binary representation of the
number 19 stored in a byte (8 bits).
•
The range of a byte is:
-
128 to 127.
Type
Signed?
Bits
Bytes
Lowest
Highest
boolean
n/a
1
1
false
true
char
unsigned
Unicode
16
2
0
'
\
u0000'
2
16
-
1
'
\
uffff'
float
signed
exponent
and
mantissa
32
4
±
1.4012984643
2481707e
-
45
±
3.40282346638
528860e+38
with 6 to 7
significant digits
of accuracy.
double
signed
exponent
and
mantissa
64
8
±
4.9406564584
1246544e
-
324
±
1.79769313486
231570e+308
with 14 to 15
significant digits
of accuracy.
Java Primitives (others)
Primitives versus Objects
memory
Primitives
Objects
Variables
store values
and are
allocated memory
depending on their
type. How much?...refer to Java
Primitives slide.
References
store memory
addresses.
The size of the allocation
for the object reference is VM specific,
but is usually the native pointer size;
32bits in 32
-
bit VM, and 64bits in a 64
-
bit VM.
Garbage collected when out
-
of
-
scope.
Garbage collected when out
-
of
-
scope.
Passed into methods
by value
Passed into methods
by reference
(value of the address is passed)
primitive
object
pass by value pass by reference
Action: Tell my accountant how
much I intend to spend on a new
car next year. Change in bank
account: no change.
Action: Swipe debit card and enter
pin at the Bently dealership.
Change in bank account:
-
125k.
Class Objects
Class Objects
Spot the “class” here
Naming conventions
Naming local variables
-
suggestions
boolean
b
Flag
byte
y
Age
char
c
First
short
s
RosterSize
int
n
Student;
n
C
long
l
Population
float
f
Price
double
d
DistanceToMoon
Naming local references
-
suggestions
Person per
per
Director
String str
str
FirstName
Rectangle rec
rec
Shape
Bee bee
bee
Drone
Naming local arrays and collections
-
suggestions
Array of boolean bAnswer
s
Array of byte yAge
s
Array of int nIdentitie
s
Array of Person perStudent
s
Array of String strCountrie
s
Collection of Bee such as ArrayList<Bee> beeDrone
s
Collection of Athlete athPlayer
s
Why use a naming convention?
metadata is immediately discernible just by looking
at the local variable or local reference name. This
makes your code easy to read and debug.
Primitives always have one letter prefix; nNumber
References have three letter prefix; perDirector.
Arrays and collections have s postfix: beeDrones;
strCountries, nLevels.
Avoid ending with s for variables or references that
are NOT collections/arrays; e.g. nRadiux, or
nRadius_
Overridden methods in Android come with their
own set of params.
Eclipse IDE
Shortucts
:
New class and browse to superclass Activity
Cntrl
-
numeric 1 is QuickFix!
Control click to source.
Source || override/implements methods
Extract method
Create getters and setters
Templates || see video
Window || preferences || Java || Editor || Templates
Ctrl
-
Shift
-
L
Using the debugger
Perspectives; Java and Debug
Setting breakpoints
Step
-
over F6, and Step
-
in F5
Watch expressions
Conditional breakpoints
Resources in Android
Alt
-
Shift
-
A to externalize strings
<
st + ctrl space
Create many xml resources, but don't name the actual resources the same
Add resources from the Add Resources from the graphical editor and also
manually. #FFFFFF white
getResources(). getStringArray(R.array.whatever)
Building Blocks of an App
•
Activities
•
Intents
•
Services
•
Content Providers
•
Broadcast Recievers
Some Developer Resources
Dev Guide
•
http://developer.android.com/guide/topics/fu
ndamentals.html
•
http://developer.android.com/training/index.
html
Turning in Assignments
Use git
Enter the password to open this PDF file:
File name:
-
File size:
-
Title:
-
Author:
-
Subject:
-
Keywords:
-
Creation Date:
-
Modification Date:
-
Creator:
-
PDF Producer:
-
PDF Version:
-
Page Count:
-
Preparing document for printing…
0%
Comments 0
Log in to post a comment