and-lec01

tearfuloilΚινητά – Ασύρματες Τεχνολογίες

10 Δεκ 2013 (πριν από 3 χρόνια και 10 μήνες)

88 εμφανίσεις

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