Εγκρίθηκε από την τριμελή ...

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

19 Ιουλ 2012 (πριν από 5 χρόνια και 1 μήνα)

578 εμφανίσεις



ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ


ΙΔΡΥΜΑ ΛΑΡΙΣΑΣ


ΣΧΟΛΗ ΤΕΧΝ
ΟΛΟΓΙΚΩΝ
ΕΦΑΡΜΟΓΩΝ



ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ




ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ







ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ


"

ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΗΣ ΚΙΝΗΤΟΥ
ΤΗΛΕΦΩΝΟΥ ΜΕ ΧΡΗΣΗ ΤΗΣ
ΠΛΑΤΦΟΡΜΑΣ

G
OOGLE

A
NDROID

"



ΕΥΘΥΜΙΟΣ ΔΟΥΚΑΣ





ΕΠΙΒΛΕΠΩΝ:
ΝΕΒΡΑΝΤΖΑΣ ΒΑΪΟΣ
-

ΓΕΡΜΑΝΟΣ
,
ΕΚΤΑΚΤΟΣ ΚΑΘΗΓΗΤΗΣ




ΛΑΡΙΣΑ 2011





Εγκρίθηκε από την τριμελή εξεταστική επιτροπή

Λάρισα, Ημερομηνία:


ΕΠΙΤΡΟΠΗ ΑΞΙΟΛΟΓΗΣΗΣ


1.


2.



3.



i



«
Δηλώνω υπεύθυνα ότι το παρόν κείμενο αποτελεί προϊόν προσωπικής
μελέτης και εργασίας και πως όλες οι πηγές που χρησιμοποιήθηκαν για τη
συγγραφή της δηλώνονται σαφώς είτε στις παραπομπές είτε στη
βιβλιογραφία. Γνωρίζω πως η λογοκλοπή αποτελεί σοβαρότατο
π
αράπτωμα και είμαι ενήμερος/η για

την
επέλευση των νομίμων
συνεπειώ
ν
»






















ii


Περίληψη


Στην παρούσα πτυχιακή εργασία αναπτύχθηκε μια εφαρμογή
κινητού τηλεφώνου με
χρήση της πλατφόρμας Google Android
.


Η εφαρμογή που αναπτύχθηκε είναι ένα
παιχ
νίδι ερωτήσεων γνώσεων (κουίζ) με
την
ο
νομα
σία

Παγκόσμιες πρωτεύουσες.

Στο παιχνίδι αυτό ο κάθε παίκ
της υποβάλλεται
σε σειρά ερωτήσεων

γνώσεων πολλαπλής επιλογής. Για κάθε σωστή απάντηση του
θα κερδίζει πόντους αλλά και για κάθε λάθος απάντηση θα του αφαιρ
ούνται
ορισμένοι
. Γι’ αυτό
προαπαιτείται

συγκέντρωση
,

καθαρό μυαλό και φυσικά γνώσεις
για
να καταφέρει κάποιος παίκτης
να μπει στον πίνακα των καλύτερων βαθμολογιών.

Κατά αυτόν τον τρόπο το παιχνίδι αποκτά χαρακτήρα
διασκεδαστικό εκπαιδευτικό &
ανταγωνιστι
κό
συγχρόνως.

Ο κύριος στόχος της πτυχιακής εργασίας ήταν η ανάπτυξη και ο σχεδιασμός του
ενός

λογισμικού
κινητού τηλεφώνου για το λειτουργικό σύστημα
Android

της
Google

με
σκοπό
την ανάδειξη των δυνατοτήτων αυτής της ραγδαία αναπτυσσόμενης
πλατφόρμας.

Γ
ια την επίτευξη του στόχου χρησιμοποιήθηκε το λογισμικό
Εclipse

το
οποίο είναι ένα
πρόγραμμα ανοιχτού κώδικα που σε συνεργασία με τα δωρεάν

εργαλεία ανάπτυξης Android λογισμικού που προσφέρει η Google

(
Android

Development

Tools
)
αποτελεί
ένα πολύ ισχυρό

εργαλείο ανάπτυξης εφαρμογών
Android
.

Επίσης γίνεται περιγραφή

και

ανάλυση
των χαρακτηριστικ
ών/
δυνατοτήτων του
Android

OS

και κάποιον
τεχνολογιών που σχετίζονται άμεσα με το Android
όπως οι
QR

κωδικοί
,

το RFID και οι χάρτες Google
.














iii



Ευχαριστίε
ς



Αρχικά, θα ήθελα να ευχαριστήσω τον
εισηγητή της πτυχιακής μου εργασίας κ.
Ν
εβρ
άντζα

Βά
ϊο

-

Γερμανό

ο οποίος εμπιστεύτηκε πως θα φέρω εις πέρας αυτό το
δύσκολο έργο και ανέλαβε την επίβλεψη της εργασίας μου. Έπειτα θα ήθελα
να
ευχαριστήσω
ιδιαίτερα
τον

κ.
Νικολάου
Θεόφιλο
για την σωστή κ
αθοδήγηση και τις
συμβουλές του. Ένα μεγάλο ευχαριστώ
χρωστώ
επίσης στον συνάδελφο μου

Βασιλάκο Γεώργιο για την ουσιαστική βοήθεια και τις συμβουλές του
οι οποίες
έπαιξαν καθοριστικό ρόλο για την ολοκλήρωση της πτυχιακής

μου
εργασίας
.

Τέλος
, θα ήθελα να ευχαριστήσω την οικογένεια μου για τη
ν

στήριξη κα
θ’ όλη τη
διάρκεια των σπουδών μου,

τους φίλους και τα αγαπημένα μου πρόσωπα

που με
στήριξαν
κατά τη διάρκεια
εκπόνησης της εργασίας

αυτής
.


1
Περιεχόμενα

Κεφάλαιο 1 : Εισαγωγή

................................
................................
................................
.........

5

1.1

Εισαγωγή

................................
................................
................................
.........................

5

1.2

Android
................................
................................
................................
............................

5

1.2.1

Τι είναι το
Android
;

................................
................................
................................
.......

7

1.2.2

Ιστορικά
-

Εκδόσεις και χαρακτηριστικά

................................
................................
......

9

1.2.3

Αρχιτεκτονική του
Android

................................
................................
...........................
17

1.2.3.1

Πυρήνας Linux (L
inux

kernel
)

................................
................................
..................
18

1.2.3.2

Εγγενής Βιβλιοθήκες


N
ative Librarie
s

................................
................................
...
18

1.2.3.3

Χρόνος Εκτέλεσης


Android Runtime

................................
................................
.....
19

1.2.3.4

Πλαίσιο Εφαρμογής


A
pplication Framework

................................
........................
19

1.2.3.5

Εφαρμογές και W
idgets

................................
................................
.............................
20

1.2.4

Γιατί
Android

................................
................................
................................
.................
21

1.3

Κινητά τηλέφωνα
Android

................................
................................
............................
22

1.4

Ταμπλέτες Android

................................
................................
................................
........
22

1.5

Συμπεράσματα
................................
................................
................................
................
23

Κεφάλαιο 2

: QR


Co
des, RFID &
Χάρτες

Google

................................
............................

24

2.1

Εισαγωγή

................................
................................
................................
........................
24

2.2

QR


Codes

................................
................................
................................
.....................
24

2
.2.1

Από τον γραμμωτό κώδικα στον κώδικα δύο διαστάσεων

................................
...........
24

2.2.2

Κώδικας QR

................................
................................
................................
...................
25

2.2.3

Χαρακτηριστικά κώδικα QR

................................
................................
.........................
25

2.2.3.1

Υψηλής χωρητικότητας κωδικοποίηση δεδομένων

................................
..................
26

2.2.3.2

Μικρό μέγεθος εκτύπωσης

................................
................................
........................
26

2.2.3.3

Ανθεκτικό στην βρωμιά και στην ζημιά

................................
................................
....
27

2.2.3.4

Μπορεί να διαβαστεί από οποιαδήποτε κατεύθυνση σε 360
º

................................
....
27

2.2
.3.5

Δομημένη Προσάρτηση

................................
................................
..............................
28

2.2.4

Προτυποποίηση

................................
................................
................................
..............
28

2.2.5

Κώδικας QR και A
ndroid

................................
................................
..............................
29

2.3

RFID

................................
................................
................................
...............................
29

2.4

Χάρτες G
oogle

-

G
oogle

Maps

................................
................................
.......................
31

2.4.1

Υλοποίηση

................................
................................
................................
......................
32

2.4.2

Επεκτασιμότητα

................................
................................
................................
.............
32

2.4.3

Προγραμματιζόμενη διεπαφή εφαρμογής χαρτών
Google

(
Google

Maps

API
)

...........
33

2.4.4

Χάρτες G
oogle

για κινητά

................................
................................
..............................
33

2.4.5

Λοιπές χρήσεις των χαρτών
Google

από την
Google

................................
.....................
34


2
2.4.6

Οι χάρτες
Google

και το
Android

................................
................................
..................
35

2.5

Συμπεράσματα
................................
................................
................................
................
36

Κεφάλαιο 3 :
Αν
άλυση & σχεδιασμός

εφαρμογής

................................
...............................

37

3.1

Εισαγωγή

................................
................................
................................
........................
37

3.2

Σχεδιασμός ενός android κουίζ παιχνιδιού

................................
................................
....
37

3.2.1

Καθορισμός χαρακτηριστικών γνωρισμάτων υψηλού επιπέδου το
υ παιχνιδιού

..........
37

3.2.2

Καθορισμός απαιτήσεων των Δραστηριοτήτων (Activities)

................................
.........
38

3.2.3

Καθορισμός χαρακτηριστικών γνωρισμάτων οθον
ών του παιχνιδιού

..........................
40

3.2.3.1

Καθορισμός χαρακτηριστικών γνωρισμάτων Οθόνης Εκκίνησης

...........................
40

3.2.3.2

Καθορισμός χαρακτηριστικών γνωρι
σμάτων Κύριας Οθόνης Επιλογών

................
41

3.2.3.3

Καθορισμός χαρακτηριστικών γνωρισμάτων Οθόνης Βοήθειας

..............................
42

3.2.3.4

Καθορισμός χαρακτηρισ
τικών γνωρισμάτων Οθόνης Βαθμολογιών

.......................
43

3.2.3.5

Καθορισμός χαρακτηριστικών γνωρισμάτων Οθόνης Ρυθμίσεων

...........................
44

3.2.3.6

Καθορισμός χα
ρακτηριστικών γνωρισμάτων Οθόνης Παιχνιδιού

...........................
45

3.3

Εφαρμογή ενός πρωτοτύπου εφαρμογής

................................
................................
.......
46

3.3.1

Δημιουργία Android προγράμματος σ
το Eclipse

................................
...........................
47

3.3.2

Προσθήκη πόρων του προγράμματος

................................
................................
............
47

3.3.2.1

Προσθήκη String πόρων

................................
................................
............................
47

3.3.2.2

Προσθήκη των γραφικών πόρων (drawable)

................................
............................
48

3.3.3

Δημιουργία σχεδιαγραμμάτων (layout)

................................
................................
.........
48

3.3.4

Εφα
ρμογή των Δραστηριοτήτων

................................
................................
...................
48

3.3.4.1

Δημιουργία των υπόλοιπων Δραστηριοτήτων της εφαρμογής

................................
.
49

3.3.4.2

Ενημέρωση του αρχείου Andro
id Manifest
................................
...............................
49

3.3.5

Δημιουργία Προτιμήσεων της εφαρμογής (Application Preferences)

..........................
50

3.3.5.1

Αποθήκευση συγκεκριμένων Κοινών Π
ροτιμήσεων

................................
.................
51

3.3.5.2

Ανάκτηση των Κοινών Προτιμήσεων
................................
................................
........
52

3.4

"Τεστάρισμα" πρωτοτύπου του παιχνιδιού

................................
................................
..
52

3.4.1

Δημιουργία και διαμόρφωση ενός Android Virtual Device (AVD)

..............................
53

3.4.2

Δημιουργία ενός Debug Configuration

................................
................................
..........
53

3.4.3

"Τεστάρισμα" πρωτοτύπου στον εξομοιωτή
................................
................................
.
54

3.5

Συμπεράσματα
................................
................................
................................
................
55

Κεφάλαιο 4

: Υλοποίηση εφαρμογής

................................
................................
...................

56

4.1

Εισαγωγή

................................
................................
................................
........................
56

4.2

Υλοποίηση Οθόνης Εκκίνησης

................................
................................
......................
56

4.2.1

Σχεδιασ
μός Οθόνης Εκκίνησης

................................
................................
.....................
56

4.2.2

Εφαρμογή Layout της Οθόνης Εκκίνησης

................................
................................
....
57


3
4.2.2.1

Προσθήκη πόρων Οθόνης Εκκίνησης

................................
................................
.......
59

4.2.2.2

Κώδικας XML του Layout της Οθόνης Εκκίνησης

................................
..................
59

4.2.3

Δημιουργία Animation

................................
................................
................................
...
61

4.2.3.1

Προσθήκη πόρων Animation

................................
................................
.....................
61

4.2.3.2

Εφαρμογή των Animation
................................
................................
..........................
63

4.2.4

Δημιουργία μετάβασης σε Κύρια Οθόνη Επιλογών

................................
......................
64

4.3

Υλοποίηση Κύριας Οθόνης Επιλογών

................................
................................
...........
65

4.3.1

Σχεδιασμός Κύριας Οθόνης Επιλογών

................................
................................
..........
65

4.3.1.1

Καθορισμός απαιτήσεων Κύριας Οθόνης Επιλογών
................................
.................
66

4.3.1.2

Δημιουργία επικεφαλίδας οθόνης με RelativeLayout

................................
...............
67

4.3.1.3

Προσθήκη του ελεγκτή ListView

................................
................................
...............
67

4.3.2

Εφαρμογή Layout της Κύριας Οθόνης Επιλογών

................................
.........................
68

4.3.2.1

Προσθήκη πόρων Κύρ
ιας Οθόνης Επιλογών

................................
............................
68

4.3.2.2

Κώδικας
XML

των
Layout

της Κύριας Οθόνης Επιλογών

................................
......
68

4.3.3

Δημιουργία ListView

................................
................................
................................
.....
70

4.3.3.1

Απόκριση σε γεγονότα του ListView ελεγκτή

................................
...........................
71

4.3.3.2

Προσαρμογή χαρακτηριστικών του ListView

................................
...........................
72

4.3.4

Προσθήκη μενού επιλογών στην Οθόνη Παιχνιδιού

................................
.....................
72

4.4

Υλοποίηση Οθόνης Βοήθειας & Βαθμολογιών

................................
..............................
74

4.4.1

Σχεδιασμός Οθόνης Βοήθειας

................................
................................
........................
75

4.4.2

Εφαρμογή Layout της Οθόνης Βοήθειας

................................
................................
.......
76

4.4.2.1

Προσθήκη πόρων Οθόνης Βοήθειας

................................
................................
..........
76

4.4.2.2

Κώδικας XML του Layout της Οθόνης Βοήθειας

................................
....................
76

4.4.3

Εφαρμογή αρχείου πόρου Raw

................................
................................
......................
78

4.4.4

Σχεδιασμός Οθόνης Βαθμολογιών

................................
................................
.................
79

4.4.4.1

Καθορισμός απαιτήσεων Layout Οθόνης Βαθμολογιών

................................
...........
79

4.4.5

Εφα
ρμογή Layout της Οθόνης Βαθμολογιών

................................
................................
80

4.4.5.1

Κώδικας XML του Layout της Οθόνης Βαθμολογιών

................................
..............
80

4.4.6

Εφαρμογή TableLayout

................................
................................
................................
.
83

4.4.7

Εργασία με αρχεία XML

................................
................................
................................
83

4.4.7.1

Ανάκτηση πόρων XML

................................
................................
..............................
83

4.4.7
.2

Parsing αρχείων XML με XmlPullParser
................................
................................
..
84

4.5

Υλοποίηση Οθόνης Ρυθμίσεων

................................
................................
......................
85

4.5.1

Σχεδιασμός Οθόνης Ρυθμίσεων

................................
................................
.....................
86

4.5.2

Εφαρμογή Layout της Οθόνης Ρυθμίσεων

................................
................................
....
88

4.5.2.1

Προσθήκη πόρων Οθόνης Ρυθμίσεων

................................
................................
.......
88


4
4.5.2.2

Κώδικας XML του Layout της Οθόνης Ρυθμίσεων

................................
..................
89

4.5.3

Υλοποίηση κοινών ελεγκτών Φορμών

................................
................................
...........
90

4.5.3.1

Εργασία με ε
λεγκτές EditText

................................
................................
...................
90

4.5.3.2

Εργασία με Button Controls

................................
................................
......................
91

4.5.3.3

Εργασία με Spinner Controls

................................
................................
....................
93

4.5.3.4

Εργασία με ελεγκτές ImageButton

................................
................................
............
95

4.5.4

Αποθήκευση δεδομένων φόρμας με SharedPreferences

................................
...............
99

4.6

Υλοποίηση Οθόνης Παιχνιδιού

................................
................................
....................
100

4.6.1

Σχεδιασμός Οθόνης Παιχνιδιού

................................
................................
...................
100

4.6.2

Εφαρμογή Layout της Οθόνης Παιχνιδιού

................................
................................
..
102

4.6.2.1

Προσθήκη πόρων Οθόνης Παιχνιδιού

................................
................................
.....
102

4.6.2.2

Κώδικας XML του Layout της Οθόνης Παιχνιδιού
................................
................
103

4.6.3

Εργασία με ελεγκτές ViewSwitcher

................................
................................
.............
104

4.6.3.1

Εργασία με TextSwitcher

................................
................................
.........................
106

4.6.3.2

Ερ
γασία με ImageSwitcher

................................
................................
......................
107

4.6.3.3

Προσθήκη animation στους ViewSwitcher ελεγκτές

................................
..............
107

4.6.4

Εμφάνιση τρέχοντος σκορ & ερώτησης
................................
................................
.......
108

4.6.5

Προσθήκη λογικής παιχνιδιού

................................
................................
.....................
108

4.6.5.1

Ενημέρωση SharedPreferences

................................
................................
...............
109

4.6.5.2

Ανάκτηση, ανάλυση και αποθήκευση ερωτήσεων Trivia

................................
.......
110

4.6.5.3

Εφαρμογή λειτουργίας Button Ελεγκτών

................................
................................
113

4.6.5.4

Ενημέρωση αρχείου των σκορ

................................
................................
.................
119

4.7

Συμπεράσματα
................................
................................
................................
..............
124

Κεφάλαιο 5 : Συμπεράσματα και προτάσεις περαιτέρω ανάπτυξης

................................
.

125

Συντομογραφίες

................................
................................
................................
................

127

Βιβλιογραφία

................................
................................
................................
.....................

128













5
Κεφάλαιο 1

:
Εισαγωγή


1.1

Εισαγωγή


Στα πλαίσια αυτής της
πτυχιακή
ς

εργασίας, μελετήθηκαν διάφορες τεχνολογίες οι οποίες θα
μπορούσαν να χρησιμοποιηθούν στον σχεδιασμό και την υλοποίηση ενός παιχνιδιού για
κινητές συσκευές. Θα δούμε τα βασικά χαρακτηριστικά του Android, μιας στοίβας
λογισμικού για
κινητές

συσκευές
.


1.2


A
nd
roid


Ένας από τους πρωταρχικούς σκοπούς σε αυτήν την εργασία, ήταν η επιλογή μιας
πλατφόρμας, η οποία θα μπορούσε να υποστηρίξει τον σχεδιασμό και την υλοποίηση ενός
game. Ταυτόχρονα αναζητούσαμε κάτι το καινούργιο στον χώρο που θα άξιζε την μελέτη του
κα
ι παράλληλα θα ήταν πολλά υποσχόμενο. Μέσα σε λίγα λεπτά καταλήξαμε σε δύο
υποψήφιες πλατφόρμες, το iPhone και το Android. Οι δύο αυτές πλατφόρμες φαίνεται ότι θα
πρωταγωνιστήσουν στον χώ
ρο των έξυπνων τηλεφώνων (smart
phones), αφού διαθέτουν
εξαιρετικά χα
ρακτηριστικά και απίστευτες δυνατότητες.



Εικόνα
1.1
: Η μάχη μεταξύ Android και Iphone βρίσκεται σε εξέλιξη


Στις
αρχές Οκτωβρίου 2009, το iPhone κατείχε τα σκήπτρα στις πωλήσεις. Παρόλα αυτά με
την ραγδαία ανάπτυξη που είχε πάρει το Android, οι ερευνητ
ές μιλούσαν ότι τα δεδομένα θα

6
έχουν ανατραπεί μέχρι το 2012 το γρηγορότερο. Προς έκπληξη αρκετών, την ώρα που
γράφεται αυτή η εργασία (
Μά
ιος

201
1
), το Android έχει
ήδη
ξεπεράσει
προπολλού
σε
πωλήσεις το iPhone και συνεχίζει να επεκτείνεται. Ωστόσο είναι μ
ια μάχη η οποία αναμένετε
να συνεχιστεί, με τις δύο πλατφόρμες να εκσυγχρονίζουν ανά τακτά χρονικά διαστήματα τα
χαρακτηριστικά το
υς.

Χαρακτηριστική η έρευνα
που ανακοίνωσε η Millennial Media
[3]
. Τα αποτελέσματα είναι
λίγο πολύ αναμενόμενα, δηλαδή το
Android OS

κυριαρχεί με παρουσία στο 53% των
smartphones

παγκοσμίως, με το iOS να ακολου
θεί με 28% και το
BlackBerry OS

με 16%.
(Σχήμα
1.
1).


Σχήμα
1.
1: Πωλήσεις Λειτουργικών Συστημάτων για
τα
Smartphone


Επίσης ο Hugo Barra, Product Management Director του Android ανακ
οίνωσε στο πρόσφατο
Google I/O που έγινε, 10
Μαΐου

2011, στο San Francisco ορισμένα εντυπωσιακά στατιστικά
για την πλατφόρμα
. Η

Google

δεν έχασε την ευκαιρία να ρίξει τα “καρφιά” της
σε
οποιο
δήποτε αμφισβητεί την κυριαρχία του Android OS

και ανακοίνωσε τα ιλιγγιώδη
στατιστικά στοιχεία που συνοδεύουν το υπερ
-
επιτυχημένο λειτουργικό σύστημα.

Κρατηθείτε
:




100 εκατ. ενεργοποιήσεις από την πρώτη ημέρα κυκλοφορίας του Android OS


7


400.000 νέες

ενεργοποιήσεις κάθε ημέρα



4.5 δισεκατομμύρια downloads εφαρμογών



200.000 εφαρμογές στο
Android Market



36 κατασκευαστές συσκευών



215 πάροχοι σε 112 χώρες


Από

την πρώτη στιγμή εμπιστευτή
καμε τις δυνατότητες και τις προοπτικές του Android και
το προτιμήσαμε
ως την
πλατφόρμα ανάπτυξης του παιχνιδιού, έναντι
του

i
OS
.

Δεν σας
κρύβω όμως ότι μεγάλο ρόλο στην απόφαση αυτή, έπαιξε το γεγονός ότι το Android είναι ένα
πρόγραμμα α
νοικτού κώδικα, κά
τι το οποίο θα μας

πρόσφερε την δυνατότητα εύκολης
πρόσβασης σε πηγαίο κώδικα και εφαρμογές αυτής της πλατφόρμας. Σε αυτή την εργασία θα
αρκεστούμε στο να δώσουμε βα
σικά χαρακτηριστικά του Android
, ως την επιλεχθείσα
πλατφόρμα και θα αποκλείσουμε από την α
νάλυση μας το iPhone
.


1.2.1

Τ
ι

είναι το
A
ndroid
;


Το Android είναι μια στοίβα λογισμικού για κινητές συσκευές η οποία περιλαμβάνει
λειτουργικό σύστημα,
ενδιάμεσο λογισμικό

(middleware) και βασικές εφαρμογές. Το
Android τρέχει τον πυρήνα του λειτουργικού Linux

και μέσω της δικιά του εργαλειοθήκης
ανάπτυξης συστήματος λογισμικού (Software Development Kit), επιτρέπει στους
κατασκευαστές να δημιουργούν πρωτοποριακές εφαρμογές. Αρχικά αναπτύχθη
κε από την
Google και αργότερα


συνεχίστηκε
σε
συνεργασία με την Open Ha
ndset Alliance (OHA). Η
πρώτη παρουσίαση της πλατφόρμας Android έγινε στις 5 Νοεμβρίου 2007, παράλληλα με
την ανακοίνωση

της ίδρυσης του οργανισμού OHA
, μιας κοινοπραξίας 48
τηλεπικοινωνιακών εταιριών, εταιριών λογισμικού καθώς και κατασκευής υλικού, οι οπ
οίες
είναι αφιερωμένες στην ανάπτυξη και εξέλιξη ανοιχτών προτύπων στις συσκευές ανοιχτής
τηλεφωνίας
.
[3]


Ενδεικτικά αναφέρουμε μερικά μέλη του οργανισμού αυτού
(Εικόνα
1.
2)
για να δείξουμε την
τεράστια προοπτική που δημιουργείται:



8


Sprint Nextel



T
-
Mobil
e



Motorola



Samsung



Sony Ericsson



Vodafone



Google



Verizon



Texas Instruments



H
tc



Εικόνα
1.
2:
Εταιρίες λογισμικού και κατασκευής υλικού παγκόσμιας

εμβέλειας


Η Google δημοσίευσε το μεγαλύτερο μέρος του κώδικα του Android, υπό τους όρους της
Apache License, μιας ελεύθερης άδειας λογισμικού.



9

Εικόνα
1.
3
: Λογότυπο πλατφόρμας Android


1.2.2

Ι
στορικά

-

Εκδόσεις και χαρακτηριστικά



Η πρώτη έκδοση του Androi
d SDK τον Νοέμβριο του 2007, χαρακτηρίστηκε από τους
κατασκευαστές του σαν μια πρώτη ματιά στο SDK του Android, κάτι το οποίο πολλοί
παράβλεψαν και βιάστηκαν να κατακρίνουν το Android σαν ένα προβληματικό σύστημα.
Στην ουσία όμως το Android δεν παρουσίαζε
προβλήματα τα οποία δεν παρουσιάζει
οποιοδήποτε σύστημα σε τέτοια πρώιμη φάση.
Έτσι

το Σεπτέμβριο του 2008, η T
-
Mobile
ανακοινώνει την διαθεσιμότητα του T
-
Mobile G1, του πρώτου έξυπνου τηλεφώνου
(smartphone), βασισμένο στην πλατφόρμα του Android. Λίγες

μέρ
ες αργότερα (Οκτώβριο
2008)
, η Google ανακοινώνει την απελευθέρωση του SDK Release Candidate 1.0.
Ακολούθησε τον Φεβρουάριο του 2009 η έκδοση 1.1 σαν μια ανανεωμένη έκδοση του 1.0.
Μέχρι τότε το Android δεν υποστήριζε ακόμη την χρήση κουμπιών
αφής
, παρά μό
νο την
χρήση των κλασσικών ‘σκληρών’ κουμπιών της συσκευής.
[4]

Τον Μάιο του 2009 είχαμε την έκδοση Android 1.5, εν ονόματι ‘Cupcake’.


10

Εικόνα
1.
4
: Λογότυπο
Android

1.5
CUPCAKE


Το

Cupcake


εισάγει κάποια καινούργια χαρακτηριστικά και ανανεώσεις στην δι
επιφάνεια
χρήστη (User Interface):


Ικανότητα για καταγραφή και παρακολούθηση βίντεο μέσα από την λειτουργία της
βιντεοκάμερας
,

μ
εταφόρτωση βίντεο στο YouTube και φωτογραφιών στο Pi
casa
απευθείας από το τηλέφωνο, κ
αινού
ργιο μαλακό πληκτρολόγιο (αφής)

με πρ
όβλεψη
κειμένου


Υποστήριξη προτύπου Bluetooth A2DP και AVRCP


Ικανότητα αυτόματης σύνδεσης σε μικροσυσκευή Bluetooth από μια συγκεκριμένη
απόσταση


Καινούργια widgets και φάκελοι που μπορούν να δημοσιευτούν στην αρχική οθόνη


Κινούμενες μεταβάσεις οθόνης


To ‘Donut’, Android 1.6, ήρθε τον Σεπτέμβριο του 2009.



11

Εικόνα
1.
5
: Λογότυπο
Android

1.6
DONUT


Η έκδοση αυτή εισάγει κάποια καινούργια χαρακτηριστικά όπως:


Βελτιωμένο Android Market


Ενσωματωμένη φωτογραφική μηχανή, βιντεοκάμερα και διεπαφή (interface
) γκαλερί


Η γκαλερί επιτρέπει πλέον στους χρήστες την επιλογή πολλαπλών φωτογραφιών για
διαγραφή


Ανανεωμένη αναζήτηση με φωνή, με ταχύτερη απόκριση και βαθύτερη ολοκλήρωση
με εγγενής (native) εφαρμογές, συμπεριλαμβανομένης της δυνατότητας να καλούμε
επαφ
ές


Ανανεωμένη αναζήτηση με την δυνατότητα αναζήτησης σελιδοδεικτών, ιστορικού,
επαφών και στο διαδίκτυο από την αρχική οθόνη


Ανανεωμένη υποστήριξη τεχνολογιών για CDMA/EVDO, 802.1x, VPNs και με
μηχανή μετατροπής κειμένου σε ομιλία (text
-
to
-
speech)


Υποστ
ήριξη για ανάλυση οθονών WVGA


Βελτιώσεις στην ταχύτητα για αναζήτηση και για εφαρμογές φωτογραφικής μηχανής


Ακολουθεί το ‘Eclair’, Android 2.0 τον Νοέμβριο 2009, με τις επανεκδόσεις του σε Android
2.0.1 τον Δεκέμβριο 2009 (Eclair 0.1) και τον Ιανουάριο
2010 με το Android 2.1 (Eclair
MR1).


12

Εικόνα
1.
6
: Λογότυπο Android 2.0
ECLAIR


Ανάμεσα στις άλλες αλλαγές είναι και:


Βέλτιστη ταχύτητα υλικού


Υποστήριξη για περισσότερες οθόνες και αναλύσεις


Βελτιωμένη διεπιφάνεια
χρήστη


Καινούργια διεπιφάνεια χρήσης

για την μηχανή αναζήτησης και υποστήριξη του
προτύπου HTML5


Καινούργιες λίστες επαφών


Καλύτερος λόγος άσπρου


μαύρου για φόντα


Βελτιωμένοι χάρτες Google (google maps) 3.1.2


Υποστήριξη Microsoft Exchange


Ενσωματωμένη υποστήριξη flash για την Camera


Ψηφιακή μεγέθυνση (zoom)


Κλάση MotionEvent βελτιωμένη ώστε οι κατασκευαστές να μπορούν να
παρακολουθούν αποτελεσματικότερα τα γεγονότα πολλαπλής αφής


Ανανεωμένο εικονικό πληκτρολόγιο


Bluetooth 2.1


Ακολουθεί το
Android 2.2 με το όνομα

F
royo


τον Μάιο
του 2010.



13

Εικόνα
1.
7
: Λογότυπο
Android

2.2
FROYO


Η έκδοση FROYO ανάμεσα σε άλλες αλλαγές περιλαμβάνει:


Βελτιστοποιήσεις στην ταχύτητα γενικά του λειτουργικού συστήματος, στην μνήμη
και στην απόδοση


Ενσωμάτωση στην μηχανή αναζήτησης, της μηχανής Javas
cript του Chrome V8


Αυξημένη
υποστήριξη Microsoft Exchange (
σε πολιτικές ασφαλείας, συγχρονισμού
ημερολογίου, auto


discovery, GAL look
-
up, remote wipe)


Βελτιωμένος προωθητής εφαρμογής (application launcher), με σ
υντομεύσεις προς τις
εφαρμογές τ
ηλεφώνου

και εφαρμογές της Μηχανής Αναζήτησης


Πρόσδεση USB και λειτουργία δυναμικής ζώνης (hotspot) WiFi


Ανανεωμένη εφαρμογή Αγοράς (Market) με αυτόματη ανανέωση


Επιλογή για απαγόρευση πρόσβασης δεδομένων πάνω από

ένα δίκτυο κινητής
τηλεφωνίας


Γρήγορη εναλλαγή
ανάμεσα σε πολλαπλές γλώσσες του πληκτρολογίου και των
λεξικών τους


Φωνητική κλήση και διαμοιρασμός επαφών με Bluetooth


Υποστήριξη για αριθμητικούς και αλφαριθμητικούς κωδικούς


Η μηχανή αναζήτησης μπορεί να αποτυπώσει κινούμενα GIFs


Υποστήριξη για πεδί
α μεταφόρτωσης αρχείων στην μηχανή αναζήτησης


Υποστήριξη για εγκατάσταση εφαρμογών στην επεκτάσιμη μνήμη


14

Υποστήριξη Adobe Flash 10.1


Η
τρέχουσα

έκδοση

για κινητά

smartphones
,

από

τον Δεκέμβριο του 201
0

μέχρι και

την
στιγμή που γράφεται αυτή η εργασία, ε
ίναι η έκδοση Android 2.3 με το όνομα “Gingerbread”

με την επανέκδοση του σε Android 2.3.3

τον Φεβρουάριο του 2011.



Εικόνα
1.
8
: Λογότυπο
Android

2.3
G
INGERBREAD


Οι αλλαγές που έχουν γίνει είναι οι ακόλουθες:


Βελτιωμένο

UI

για απλότητα

και ταχύτητα


Πι
ο γρήγορη,

πιο διαισθητική

εισαγωγή κειμένου


Επιλογή λέξεων και αντιγραφή/επικόλληση με ένα άγγιγμα


Βελτιωμένη

ενεργειακή διαχείριση


υποστήριξη

NFC (Near Field Communication)


Υποστήριξη video κλήσης


Yποστήριξη του πρωτόκολλου WebM για αναπαραγωγή video


Η
πιο πρόσφατη έκδοση, είναι η έκδοση
Android 3.0
με το όνομα “
Honeycomb



όπου είναι
στην διάθεση των χρηστών και προγραμματιστών από τον Φεβρουάριο του 2011, λίγες μέρες
μετά

την επανέκδοση του Android 2.3.3, και προορίζεται
αποκλειστικά
για
ταμπλέτες,
για τις
οποίες να αναφερθούμε αναλυτικότερα στην συνέχεια.


15

Εικόνα
1.
9
: Λογότυπο
Android

3.0

H
ONEYCOMB


Μερικά από τα χαρακτηριστικά του είναι:


Υποστηρίζει διπύρηνους και τετραπύρηνους επεξεργαστές


Βελτιωμένη υποστήριξη των ταμπλετών


ανάπτυξη λογισμικού
(scripting) για 3D, σε γλώσσα η οποία καλείται
"
Renderscript
"


Video chat μέσω Google Talk


Google eBooks


"
Ιδιωτική περιήγηση
"


Η επόμενη έκδοση όπως ανακοινώθηκε στο
Google I/O 2011 στο San Francisco,

πρόκειται
να είναι το


Ice Cream Sandwich
”, το οποίο αποτελεί την προσπάθεια της εταιρίας για ενιαίο
λειτουργικ
ό σύστημα για
όλες τις συσκευές.



Εικόνα

1.
10
:
Λογότυπο

Android
Ice Cream Sandwich


16

Θα είναι διαθέσιμο στο τελευταίο τρίμηνο του 2011 και φιλοδοξία της
Google

είναι να
χρησιμοποιηθεί σε
smartphones
,
tablets
, laptops, netbooks κλπ.

Το Android Ice Cream
Sandwich
θα φέρει μαζί του “ολογραφικό” 3D UI, πλουσιότερα widgets, ενισχυμένο
multitasking, νέα APIs και
φυσικά
θα
είναι πλήρως open source.

Για να πάρουμε μια καλή
γεύση του Android Ice Cream Sandwich, η Google παρουσίασε τη λειτουργία face tracking, η
οποία δεν
περιορίζεται μόνο στις κινήσεις του κεφαλιού, αλλά ακολουθεί

τα μάτια, τη μύτη
και το στόμα.

Στην περίπτωση που πραγματοποιείται video κλήση,

ζουμ
άρει

αυτόματα
προς
αυτόν που μιλά εκείνη τη στιγμή.

Ένα ακόμα ενδιαφέρον στατιστικό που πρέπει να δούμε είνα
ι τα ποσοστά των
android
εκδόσεων που είναι εγκατεστημένες

σε όλες τις android συσκευές όπως αυτά ανακοινώθηκαν
για τον Απρίλιο του 2011

(
Σχήμα

1.
2
)
.

[5][6]




Σχήμα
1.
2
: Ποσοστά των εγκατεστημένων εκδόσεων
στις
android

συσκευές


Όπως
φαίνεται

στην (
Σχήμα
1.
2
)

πιο πάνω
, το
F
royo είναι εγκατεστημένο στο μεγαλύτερο
μέρος των συσκευών
συγκεντρώνοντας

το
65.9%

αυτών
.

Το νεότερο Ging
erbread
συγκεντώνει μόλις το
3%

των συσκευών λόγω του ότι δεν έχει περάσει πολύς καιρός από την
επίσημη κυκλοφορία του.
Το
H
oneycomb
ως μια έκδοση αποκλειστικά για
ταμπλέτες

και
ουσιαστικά με μηδαμινό χρόνο κυκλοφορίας βρίσκεται στο
0.3%
.


17
Τέλος οι παλαιό
τερες εκδόσεις του Android (Cupcake,

Donut,

Eclair)
με τον καιρό

θα
συρρικνώνονται

όπως είναι λογικό
,

παρόλο που το
E
clair εξακολουθεί να είναι
εγκατεστημένο

στο 24.5% των Android συσκευών.

Το Android έχει καταπληκτικά χαρακτηριστικά και πολλαπλές δυνατότ
ητες, ενώ συνεχίζει να
εκσυγχρονίζεται. Επιπρόσθετα παρέχει καταπληκτικά εργαλεία για την ανάπτυξη εφαρμογών
που κάνουν την ζωή του κατασκευαστή πραγματικά πολύ πιο εύκολη. Για να κατανοήσουμε
την
πρωτοτυπία αυτής της πλατφόρμας
, θα δούμε παρακάτω την βασι
κή της αρχιτεκτονική
και θα συζητήσουμε γιατί το Android ευκολύνει την ζωή του προγραμματιστή ενώ
ταυτόχρονα του παρέχει πάμπολλες επιλογές και δυνατότητες για την δημιουργία
πρωτοποριακών εφαρμογών.


1.2.3

Αρχιτεκτονική του
Android


Όπως προανέφερα, το Android

είναι μια στοίβα λογισμικού. Η λογική πίσω από αυτήν την
έκφραση και σε όλη την φιλοσοφία του Android, κρύβεται στο ακόλουθο διάγραμμα με τα
β
ασικά συστατικά του (Σχήμα
1.
3
).

[
3
]




18
Σχήμα
1.
3
: Τα βασικά περιεχόμενα του λειτουργικού συστήματος Android


Στη
ν στοίβα του Android (Σχήμα
1.
3
), παρατηρούμε 4 επίπεδα. Ακολούθως θα περιγράψουμε
συνοπτικά τα βασικά αυτά επίπεδα χωρίς να μπούμε σε λεπτομέρειες για όλα τα περιεχόμενα
του κάθε επιπέδου. Αν ο αναγνώστης επιθυμεί να μάθει
περισσότερα, μπορεί να επισκεφθε
ί
την επίσημη ιστοσελίδα του Android για κατασκευαστές (
http://developer.android.com
).

Κάθε επίπεδο στην αρχιτεκτονική αυτή, χρησιμοποιεί τις υπηρεσίες που του προσφέρονται
από τα πιο κάτω επίπεδα. Ας δούμε τώρ
α αυτά τα επίπεδα ξεκινώντας από το πιο χαμηλό.


1.2.3.1

Πυρήνας Linux

(L
inux

kernel
)


Το Android είναι βασισμένο στα γερά θεμέλια του Linux. Ο πυρήνας Linux είναι
δοκιμασμένος, σταθερός και πετυχημένος και μπορεί να βρεθεί παντού, από ρολόγια χειρός
μέχρι υπερυπ
ολογιστές. Το Linux παρέχει στο Android το αφαιρετικό επίπεδο υλικού,
επιτρέποντάς του να μπορεί να χρησιμοποιηθεί σε μεγάλη ποικιλία πλατφόρμων στο μέλλον.
Ειδικότερα, το Android χρησιμοποιεί τον πυρήνα Linux για την διαχείριση μνήμης, την
διαχείριση διερ
γασιών, την δικτύωση και άλλες υπηρεσίες του λειτουργικού συστήματος.


1.2.3.2

Εγγενής Βιβλιοθήκες


N
ative Libraries



Στο αμέσως ψηλότερο επίπεδο βρίσκουμε τις Native Libraries


Εγγενής Βιβλιοθήκες. Όλες
αυτές είναι γραμμένες στην γλώσσα προγραμματισμού C και C
++ και μεταγλωττίστηκαν για
την συγκεκριμένη αρχιτεκτονική υλικού που χρησιμοποιείται από το τηλέφωνο. Οι
βιβλιοθήκες αυτές δεν είναι εφαρμογές που μπορούν να σταθούν από μόνες τους. Υπάρχουν
για να μπορούν να κληθούν από προγράμματα υψηλότερου επιπέδου
. Α
πό την έκδοση Donut
και μετά
, οι κατασκευαστές μπορούν να γράφουν τις δικές τους τέτοιες βιβλιοθήκες με την
χρήση της Εργαλειοθήκης NDK ( Native Development Kit ).



19
1.2.3.3

Χ
ρόνος Εκτέλεσης


Android Runtime



Στο ίδιο επίπεδο με τις εγγενής βιβλιοθήκες, βρίσκουμε

και τον χρόνο εκτέλεσης Android.
Εδώ ζουν βασικές βιβλιοθήκες της Java και η εικονική μηχανή Dalvik. H Dalvik είναι
μια
βελτιστοποιημένη
υλοποίηση
μιας

εικονικής μηχανής

Java

για φορητές συσκευές

από την
Google
. Η Dalvik τρέχει .dex αρχεία, τα οποία είναι

bytecodes που προέρχονται από αρχεία
.class και .jar. Εν αντιθέσει όμως με τα .class αρχεία, τα .dex είναι πολύ πιο
συμπαγή και
αποδοτικά, γεγονός σημαντικό για συσκευές με περιορισμένη μνήμη και μπαταρία.

Το Android περιλαμβάνει ένα σύνολο βασικών βιβλι
οθηκών που παρέχουν τις περισσότερες
από τις διαθέσιμες λειτουργίες των βασικών βιβλιοθηκών της Java.

Κάποια πακέτα και
κλάσεις υπάρχουν και στο Android κάποια άλλα δεν υποστηρίζονται καθόλου, ενώ
ταυτόχρονα το Android παρέχει και επιπρόσθετα προσαρμοσμένα

στις δικές του ανάγκες.


1.2.3.4

Π
λαίσιο
Ε
φαρμογής



A
pplication Framework



Πάνω από τις εγγενής βιβλιοθήκες και το χρόνο εκτέλεσης Andr
oid, είναι το πλαίσιο
εφαρμογής
.

Αυτό το επίπεδο μας παρέχει υψηλού επιπέδου δομικές μονάδες τις οποίες
μπορούμε να χρησιμοπο
ιούμε για την κατασκευή των εφαρμογών μας. Αυτό το πλαίσιο είναι
προ
-
εγκατεστημένο στο Android, αλλά είναι επεκτάσιμο, αφού ο κάθε κατασκευαστής
μπορεί να το συμπληρώσει με δικά του κομμάτια.

Τα σημαντικότερα δομικά στοιχεία του πλαισίου αυτού είναι:



Δια
χειριστής Δραστηριοτήτων
-

Activity Manager: Υπεύθυνο για τον έλεγχο του
χρόνου ζωής (Σχήμα
1.
4
) των εφαρμογών και για την διατήρηση μιας στοίβας που
επιτρέπει την πλοήγηση του χρήστη σε προηγούμενες οθόνες.



Παροχέας Περιεχομένου
-

Content Providers: Αυτά

τα αντικείμενα περιέχουν
δεδομένα που μπορούν να διαμοιραστούν μεταξύ εφαρμογών.



Διαχειριστής Πόρων
-

Resource Manager: Οι πόροι, είναι οτιδήποτε υπάρχει σε
ένα πρόγραμμα και δεν είναι κώδικας. Για παράδειγμα μπορεί να είναι κωδικοί
χρωμάτων, αλφαριθμητι
κοί χαρακτήρες ή ακόμα και έτοιμα σχεδιαγράμματα
οθονών φτιαγμένα σε XML, τα οποία μπορεί το πρόγραμμα να καλεί.


20


Διαχειριστής Τοποθεσίας
-

Location Manager: Χρησιμοποιείται για να μπορεί να
ξέρει το τηλέφωνο που βρίσκεται ανά πάσα στιγμή.



Διαχειριστής Κο
ινοποιήσεων
-

Notification Manager: Ιδανικός τρόπος για να
ενημερώνεις τον χρή
στη για γεγονότα που συμβαίνουν
, διακριτικά χωρίς να
διακόπτεις την εργασία του.



Σχήμα
1.
4
: Ο κύκλος ζωής μιας Δραστηριότητας Android


1.2.3.5

Ε
φαρμογές

και

W
idgets



Στο υψηλότερο επ
ίπεδο της στοίβας Android, φιγουράρουν οι εφαρμογές και τα widgets.
Αυτό είναι που βλέπουν οι χρήστες χωρίς να γνωρίζουν την όλη από κάτω διαδικασία. Αυτές

21
είναι εφαρμογές που γράφουν οι κατασκευαστές λογισμικού, εφαρμογές που ήδη είναι
εγκατεστημένες στο
τηλέφωνο ή που ο χρήστης παίρνει από το Android Market.

Οι εφαρμογές είναι προγράμματα που καταλαμβάνουν ολόκληρη την οθόνη και
αλληλεπιδρούν με το χρήστη. Από την άλλη τα widget λειτουργούν σε μικρά τετράγωνα μέσα
στην αρχική οθόνη


εφαρμογή.


1.2.4

Γιατί
And
roid



Εν κατακλείδι παραθέτ
ουμε

εδώ κάποια σημεία και σκέψεις, για το Android, σαν μια
τελευταία προσπάθεια να σας πείσ
ουμε

για την πρωτοπορία του στο χώρο και την ισχυρή
δυναμική του. Γιατί Android λοιπόν;




Είναι μια πραγματικά ανοιχτή, ελεύθερη πλατφόρ
μα ανάπτυξης
, βασισμένη στο
Linux.



Διαθέτει αρχιτεκτονική βασισμένη σε δομικά στοιχεία τα

οποία μπορούν να
τροποποιηθούν
, να ολοκληρωθούν και να προσαρμοστούν στις ανάγκες κάθε
κατασκευαστή και κατά συνέπεια χρήστη.



Πάμπολλες ενσωματωμένες υπηρεσίες που
μπορούν να κάνουν την εμπειρία του
χρήστη μοναδική, όπως υπηρεσίες βασισμένες στην τοποθεσία, πανίσχυρη SQL βάση
δεδομένων, μηχανή αναζήτησης και χάρτες.



Αυτόματη διαχείριση του κύκλου ζωής μιας εφαρμογής, με πολλαπλές δικλίδες
ασφαλείας ανάμεσα στα προγρ
άμματα. Βελτιστοποιήσεις στον τομέα διαχείρισης
μνήμης και χαμηλής κατανάλωσης σε τέτοιο βαθμό που δεν έχει ξανασυναντηθεί σε
άλλο smartphone.



Υψηλής ποιότητας γραφικά και ήχος.



Φορητότητα ανάμεσα σε ένα ευρύ φάσμα ήδη υπάρχον
τος

υλικού αλλά και
μελλοντι
κού. Αυτό έρχεται σαν απόρροια του γεγονότος ότι όλα τα προγράμματα
γράφονται σε Java και εκτελούνται από την εικονική μηχανή Dalvik. Επιπρόσθετα οι
οθόνες μπορούν να τροποποιηθούν κατάλληλα για να υ
ποστηρίζουν οποιαδήποτε
ανάλυση
, μέγ
εθος και προσανατολισ
μό οθόνης.


22

Αυτοί είναι μερικοί μόνο από τους λόγους για τους οποίους έγινε η επιλογή του Android
ως

πλατφόρμα ανάπτυξης σε αυτή την πτυχιακή εργασία. Όσοι δεν έχετε πειστεί, δεν έχετε παρά
να πάρετε στα χέρια σας ένα τηλέφωνο ή μια ταμπλέτα που τρέχει το
λειτουργικό αυτό
σύστημα.


1.3


Κ
ινητά

τηλέφωνα

A
ndroid


Η πρώτη συσκευή που “έτρεχε” το λειτουργικό σύστημα Android ήταν το HTC Dream,
γνωστό και ως T
-
Mobile G1, που έκανε την εμφάνιση του στα ράφια των καταστημάτων
προς το τέλος του 2008.

Στη συνέχεια, πολ
λά νέα Android κινητά κάνουν την εμφά
νιση τους με “ναυαρχίδα” αυτών,
το Motorola DROID (έκδοση CDMA),

το οποίο από το Νοέμβρη του 2009 διατίθεται
αποκλειστικά από την Αμερικανική εταιρία τηλεπικοινωνιών, Verizon, ενώ η GSM έκδοση
του, το Motorola Milestone
, από διάφορους παροχείς κινητής τηλεφωνίας ανά τον κόσμο.

Στην αυγή του 2010,

η Google τάραξε τα νερά στον χώρο των τηλεπικοινωνιών με την
ανακοίνωση του Google Nexus One, μιας καινοτόμου συσκευής που τρέχει την νε
ότερη
έκδοση του Android (2.1
που θεωρεί
ται κυρίως βελτίωση της 2.0 ή Eclair). Κατασκευασμένο
από την HTC,

το Nexus One ξεχωρίζει για τα Live Wallpapers (κινούμενα backgrounds νέου
σχεδιασμού που αλληλεπιδρούν με τις κινήσεις δαχτύλου του χρήστη) και τη νέα
αναβαθμισμένη Έκθεση εικόνων και βίντε
ο (gallery). Η συσκευή έχει, επίσης, το
πλεονέκτημα της άμεσης και απροβλημάτιστης συνεργασίας με όλες τις υπηρεσίες της
Google (Gmail, Google Contacts, Coogle Calendar κ.α.)
.


1.4


Ταμπλέτες

Android


Τι ε
ίναι οι ταμπλέτες; Μία ταμπλέτα είναι ένας υπολογιστής
που αντί για ποντίκι και
πληκτρολόγιο, διαθέτει ως κύρια μορφή εισαγωγής δεδομένων μια οθόνη αφής. Οι ταμπλέτες
υπάρχουν από το 2001
, αλλά έγιναν
δημοφιλέστερες

με
τά

την έλευση του Apple iPad,
κερδίζοντας ένα σημαντικό μερίδιο του ενδιαφέροντος του κοινού
.

Ειδικά με την έλευση των

23
Android ταμπλετών, που πλέον κυριαρχούν
στην αγορά
αναμένεται στο άμεσο μ
έλλον να
αντικαθιστήσουν πλήρως τα netbooks, μπαίνοντας για τα καλά στην καθημερινότητά μας.

Έρευνα της εταιρίας Strategy Analytics έδειξε πως ως το
2015 η α
γορά θα έχει κέρδος από
τις
πωλήσεις των tablets 49 δισ. δολάρια.

[8]
Η αγορά
ταμπλετών
τελευταίας τεχνολογίας θα
είναι η τρίτη σε δύναμη αγορά, μετά από αυτή της τηλεόρασης και των προσωπικών
ηλεκτρονικών υπολογιστών.

Η εταιρία ερευνών ανέφερε πως, σύμφων
α με τις προβλέψεις, θα
έχουν πουληθεί 149 εκατομμύρια μονάδες

ως το 2015
, δηλαδή οι πωλήσεις θα αυξηθούν
κατά
6,5

φορές από 2010.

Π
αρακάτω

στο
Σ
χήμα
1.
5
,
φαίνεται

καθαρά ο ρυθμός α
ύ
ξησης
πωλήσεων των ταμπλετών, σε σύγκριση με όλα τα άλλα είδη προσω
πικών υ
πολογιστών, από
το 2009
.



Σχήμα
1.
5
: Αριθμός πωλήσεων Η/Υ και ταμπλετών


1.5


Συμπεράσματα


Σε αυτό το κεφάλαιο,
κάναμε μια εισαγωγή στο λειτουργικό σύστημα
Android

της
Google

αναφέροντας μερικά ιστορικά συμβάντα που αξίζουν να σημειωθούν.

Μελετήσαμε τις
ε
κδόσεις και τα βασικά χαρακτηριστικ
ά του. Αναλύσαμε τον τρόπο λειτουργίας της
πλατφόρμας
και
των εφαρμογών της. Τέλος καταλήξαμε
στο
γιατί επιλέξαμε στην
συγκεκριμένη πλατφόρμα για την ανάπτυξη της εφαρμογής μας
αναφέροντας

κάποια στοιχεία
για τα κινητά &
ταμπλέτες
Android
.
[2]


24
Κεφάλαιο 2

:
QR


C
odes
, RFID &
Χάρτες

Google



2.1

Εισαγωγή



Σε αυτό το κεφ
άλαιο θα γίνει η ανάλυση τεχνολογιών που σχετίζονται άμεσα με το Android
και λαμβάνουν
ευρεία

χρήση από διαφόρου τύπου εφαρμογές του. Μερικές
από αυτές είναι οι
κώδικες QR
,
το RFID και οι χάρτες Google.


2.2

QR

-

Codes


Ο κώδικας QR είναι ένας γραμμωτός κώδικας (barcode) δύο διαστάσεων
.
Το "QR"
προέρχεται από τα αρχικά των λέξεων "Quick Re
sponse" (Γρήγορη Ανταπόκριση),
γιατί οι
δημιουργοί του είχαν ως κύριο σκοπό τα δεδομένα,
που περιέχονται στον κώδικα, να
αποκωδικοποιούνται με μεγάλη ταχύτητα. Ο Κώδικας QR είναι πολύ διαδεδομένος στην
Ιαπωνία, όπου αποτελεί το πιο δημοφιλές είδος κώδικα δύο διαστάσεων.


2.2.1

Α
πό τον γραμμωτό κώδικα στον κώδικα δύο διαστάσεων



Οι γραμμωτοί κώδικε
ς έγιναν δημοφιλής λόγω της ταχύτητας τους, της ακρίβειας και
για
τα
λ
ειτουργικά τους χαρακτηριστικά.
Λόγω αυτής της διάδοσης, η αγορά απαιτούσε
καινούριους κώδικες οι οποίοι θα μπορούσαν να αποθηκεύουν μεγαλύτερες ποσότητες
πληροφορίας, περισσότερους τύπο
υς χαρακτήρων με τρόπο που να μπορούσαν να
αποτυπωθούν σε μικρότερο χώρο. Αναπάντεχα, άρχισαν να γίνονται πολλές προσπάθειες με
στόχο την αύξησης της πληροφορίας στους γραμμωτούς κώδικες, αυξάνοντας τον αριθμό των
ψηφίων στους γραμμωτούς κώδικες ή αποτυπών
οντας πολλαπλούς τέτοιους κώ
δικες. Αυτές
όμως οι βελτιώσεις
, προκαλούσαν ταυτόχρονα προβλήματα όπως την αύξηση του χώρου που
καταλάμβανε ο κώδικας, γεγονός που έκανε τις λειτουργίες διαβάσματός του πιο πολύπλοκες
ενώ παράλληλα αύξανε το κόστος εκτύπωσης. Τ
ην λύση ήρθε να δώσει ο δισδιάστατος
κώδικας (2D Code). Ο δισδιάστατος αυτός κώδικας προόδευσε από την στοίβα γραμμωτού
κώδικα στην μέθοδο μήτρας με αυξημένη πυκνότητας πληροφορίας (Εικόνα
2.1
).



25

Εικόνα
2.1
: Πρόοδος του κώδικα δύο διαστάσεων


2.2.2

Κ
ώδικας

QR



Ο κώδικας QR, είναι ένα είδος δισδιάστατης συμβολογραφίας που δημιουργήθηκε από την
Ιαπω
νική Εταιρία Denso

Wave το 1994
, με σκοπό την τυποποίηση ενός συμβόλου το οποίο
θα διερμηνεύεται εύκολα από ένα εξο
πλισμό σάρωσης. Ένας κώδικας QR
, περιέχει
πληροφορ
ίες στην κάθετη και στην οριζόντια κατεύθυνση σε αντίθεση με τον γραμμωτό
κώδικα, ο οποίος περιέχει δεδομένα μόνο στην μια
κατεύθυνση
(Εικόνα
2.2
). Επιπρόσθετα
ένας κώδικας QR μπορεί να αποθηκεύσει σημαντικά μεγαλύτερο όγκο πληροφορίας από τον
πρόγονό του.




Εικόνα
2.2
: Ένας κώδικας QR αποθηκεύει πληροφορία και στις δύο διαστάσεις


2.2.3

Χ
αρακτηριστικά κώδικα

QR



26
2.2.3.1

Υ
ψηλής χωρητικότητας κωδικοποίηση δεδομένων



Ενώ οι συμβατικοί γραμμικοί κώδικες μπορούν να αποθηκεύσουν περίπου μέχρι 20 ψηφία, οι
QR κώδικες μπορο
ύν να χειριστούν από πολλές δεκάδες μέχρι πολλές εκατοντάδες φορές
περισσότερη πληροφορία
.


QR Code Data capacity

Numeric only

Max. 7,089 characters

Alphanumeric

Max. 4,296 characters

Binary (8 bits)

Max. 2,953 bytes


Kanji, full
-
width Kana

Max. 1,817

characters

Πίνακας
2
.
1: Χωρητικότητες κώδικα QR


Συν τοις άλλοις, οι κώδικες QR, δύναται να χειριστούν δεδομένα οποιουδήποτε τύπου, όπως
αριθμητικούς και αλφαριθμητικούς χαρακτήρες, σύμβολα,
δυαδικά
, κώδικες ελέγχου
κ.α.

(Εικόνα
2.3
).



Εικόνα
2.3
: Ένα
ς κώδικας QR αυτού του μεγέθους, μπορεί να αποθηκεύσει 300 αλφαριθμητικούς χαρακτήρες


2.2.3.2

Μ
ικρό μέγεθος εκτύπωσης




27
Αφού ένας κώδικας QR, μεταφέρει πληροφορία και κάθετα και οριζόντια, αυτό τον κάνει
ικανό να κωδικοποιεί τον ίδιο όγκο δεδομένων στο περίπου έν
α δέκατο (1/10) του χώρου
ενός γραμμωτού κώδικα (Εικόνα
2.4
).



Εικόνα
2.4
: Ένας κώδικας QR αποθηκεύει την ίδια πληροφορία με έναν γραμμωτό χρησιμοποιώντας σημαντικά
λιγότερο χώρο


2.2.3.3

Α
νθεκτικό στην βρωμιά και στην ζημιά



Παρέχει δυνατότητα διόρθωσης λαθών
. Τα δεδομένα μπορούν να αποκατασταθούν ακόμα
και αν το σύμβολο είναι μερικώς κατεστραμμένο ή αλλοιωμένο (Εικόνα
2.5
).



Εικόνα
2.5
: Ο κώδικας QR είναι ανθεκτικός στην βρωμιά και στην ζημιά


2.2.3.4

Μ
πορεί να διαβαστεί από οποιαδήποτε κατεύθυνση σε 360
º


Ο κώδικ
ας QR μπορεί να διαβαστεί ταχύτατα από οποιαδήποτε κατεύθυνση. Αυτό το
πετυχαίνει λόγω των μοτίβων εντοπισμού θέσης που βρίσκονται στις τρεις πλευρές του
συμβόλου (Εικόνα
2.6
).


28


Εικόνα
2.6
: Ο κώδικας QR μπορεί να διαβαστεί από οποιαδήποτε κατεύθυνση


2.2.3.5

Δ
ο
μημένη Προσάρτηση



Ένας κώδικας QR, μπορεί να χωριστεί σε πολλαπλές περιοχές δεδομένων. Έτσι, οι
πληροφορίες που είναι αποθηκευμένες σε αυτό, μπορούν να ανακατασκευαστούν σαν ένα
ενιαίο σύμβολο δεδομένων (Εικόνα
2.7
).



Εικόνα
2.7
: Τα ίδια δεδομένα μπορ
ούν να διαβαστούν είτε από το μεγάλο σύμβολο, είτε από τα τέσσερα μικρά


2.2.4

Προτυποποίηση



Ο κώδικας QR έχει θεσπιστεί σαν πρότυπο ISO (ISO/IEC18004) τον Ιούνιο του 2000,
γεγονός που υποδεικνύει την αποδοχή του σε διεθνές επίπεδο. Επιπρόσθετα η Denso Wave

29
δε
ν ασκεί τα δικαιώματα ευρεσιτεχνίας παρά το γεγονός ότι οι προδιαγραφές του κώδικα QR
έχουν αποκαλυφθεί. Αυτό καθιστά τον κώδικα QR, ανοικτό και ελεύθερο.


2.2.5

Κ
ώδικας

QR
και

A
ndroid



Το διάβασμα γραμμωτών και δισδιάστατων κωδικών, γίνεται εύκολα από μια And
roid
συσκευή, χάρη στο ανοικτό
project
, εν ονόματι ‘ZXing’. Το όνομα προέρχεται από την
σύμπτυξη των λέξεων Zebra Crossing. Το ZXing είναι πρόγραμμα ανοικτού κώδικα,
γραμμένο στην γλώσσα προγραμματισμού υψηλού επιπέδου Java, που χρησιμοποιεί την
ενσωματωμέ
νη φωτογραφική μηχανή των κινητών τηλεφώνων για την φωτογράφηση και
αποκωδικοποίηση μονοδιάστατων ή δισδιάστατων κωδικών. Ανάμεσα στα διάφορα πρότυπα
τα οποία υποστηρίζει το πρόγραμμα αυτό βρίσκεται και ο κώδικας QR.

Ο
ι περισσότερες συσκευές Android
, αν ό
χι όλες, έχουν ήδη εγκατεστημένο το πρόγραμμα
αυτό, αλλά και οι συσκευές που δεν το έχουν μπορούν εύκολα να το εγκαταστήσουν μέσω
του Android Market. Επιπρόσθετα οι κατασκευαστές που δουλεύουν για πλατφόρμες
Android,

μπορούν εύκολα να έχουν πρόσβαση στον κ
ώδικα του ZXing με αποτέλεσμα να
μπορούν να τον ενσωματώσουν είτε αυτούσιο είτε τροποποιημένο στην εφαρμογή τους.

Το Android επίσης με τους πρωτοποριακούς μηχανισμούς του, επιτρέπει σε οποιοδήποτε
κατασκευαστή, να καλεί μέσω της εφαρμογής του, οποιαδήποτε

άλλη εφαρμογή είναι
εγκατεστημένη στην συσκευή στην οποία η εφαρμογή τρέχει, άρα και την ZXing εφαρμογή
αν αυτή υπάρχει.


2.3

RFID


Το RFID είναι μια τεχνολογία πρωτοποριακή. Η συντομογραφία RFID είναι τα αρχικά του
όρου «Radio Frequenc
y Identification» που

σημαίνει ‘
ταυτοποίηση μέσω ραδιοσυχνοτήτων

.
Αποτελεί ένα σύστημα ασύρματης αναγνώρισης αντικειμένων με τεράστιες εφαρμογές.
Κλασσικό παράδειγμα αποτελούν τα προϊόντα στις αλυσίδες καταστημάτων. Τα προϊόντα
αυτά έχουν στην συσκευασία τους μια συρμάτινη τα
ινία, που στην ουσία είναι ένα
ηλεκτρονικό κύκλωμα το οποίο ονομάζεται RFID ετικέτα (Εικόνα
2.8
).



30

Εικόνα
2.8
: Ετικέτα RFID


Στην RFID ετικέτα είναι αποθηκευμένο ο σειριακός αριθμός του αντικειμένου και
οποιαδήποτε άλλη πληροφορία είναι απαραίτητη για
την αναγνώριση του. Πιο συγκεκριμένα
μια RFID ετικέτα περιέχει τουλάχιστον 2 μέρη:



Ένα ολοκληρωμένο κύκλωμα για αποθήκευση και επεξεργασία πληροφορίας,
διαμόρφωση και αποδιαμόρφωση ενός σήματος ραδιοσυχνότητας και άλλες ειδικές
λειτουργίες.



Μια αντένα γι
α λήψη και μετάδοση του σήματος.


Αντίστοιχα ένας αναγνώστης RFID είναι μια συσκευή που χρησιμοποιείται για ενεργοποίηση
της RFID ετικέτας. Ο αναγνώστης διαθέτει μια αντένα που στέλνει ραδιοκύματα και η RFID
ετικέτα ανταποκρίνεται αποστέλλοντας τα δεδομέν
α της. Τα σημαντικότερα πλεονεκτήματα
που προσφέρει το RFID είναι:



Η αναγνώριση μπορεί να γίνει από απόσταση μιας και υπάρχουν RFID ετικέτες που
είναι σε θέση, παίρνοντας ενέργεια από κάποια πηγή που συνήθως είναι μπαταρία, να
στείλουν τις πληροφορίες στο
ν δέκτη.



Δυνατότητα αποθήκευσης περισσοτέρων δεδομένων σε σχέση με τους γραμμωτούς
κώδικες.



Μπορούν να μην είναι ορατά στο ανθρώπινο μάτι μιας και για την αναγνώριση τους
δεν χρειάζεται οπτικό μέσο.



Δυνατότητα προγραμματισμού εξ αποστάσεως


31


Επιπρόσθε
τες

λειτουργίες π
.χ. π
αρακολούθηση και καταγραφή της θερμοκρασίας


Η τεχνολογία αυτή δεν θα μελετηθεί περισσότερο στα πλαίσια αυτής της
πτυχιακής

εργασίας,
αφού την στιγμή που γράφεται αυτό το κείμενο, καμία συσκευή Android δεν υποστηρίζει
τέτοιου είδους επικ
οινωνία.


2.4

Χ
άρτες

G
oogle

-

G
oogle

Maps



Οι χάρτες Google, είναι μια διαδικτυακή εφαρμογή υπηρεσιών χαρτογράφησης. Η τεχνολογία
αυτή παρέχεται δωρεάν για προσωπική χρήση από την Google. Ανάμεσ
α στις υπηρεσίες που
προσφέρει,
είναι η ιστοσελίδα των χαρτών Go
ogle, η Google Transit και χάρτες
ενσωματωμένους σε ιστοσελίδες τρίτων μέσω των Google Maps API. Παρέχει οδικούς
χάρτες, εφαρμογή δρομολόγησης για ταξίδι με τα πόδια, το αυτοκίνητο ή μέσα μαζικής
μεταφοράς και εντοπισμό αστικών επιχειρήσεων για πολλές χώρε
ς σε όλο τον κόσμο.

Η τεχνολογία των χάρτων

Google (εικόνα
2.9
) χρησιμοποιεί μια στενή παραλλαγή της
προβολής Mercator (ένας κυλινδρ
ικής προβολής χάρτης του κόσμου
), με αποτέλεσμα να μην
μπορεί να δείξει περιοχές γύρω από τους πόλους. Ένα σχετικό προϊόν ε
ίναι το Google Earth,
ένα αυτόνομο πρόγραμμα το οποίο προσφέρει περισσότερα χαρακτηριστικά ως προς την
παγκόσμια προβολή, συμπεριλαμβανομένων των πολικών περιοχών.



32

Εικόνα
2.
9
: Χάρτες Google


2.4.1

Υ
λοποίηση



Η τεχνολογία αυτή χρησιμοποιεί εκτενώς την γλώσσα
Javascript. Όταν ο χρήστης σύρει τον
χάρτη τότε φορτώνονται από τον εξυπηρετητή τα τετράγωνα του πλέγματος, τα οποία
ακολούθως εισάγονται στην σελίδα. Όταν ο χρήστης ψάχνει για μια επιχείρηση τα
αποτελέσματα φορτώνονται στο παρασκήνιο για εισαγωγή σ
το πλαϊ
νό πλαίσιο και τον χάρτη
,
με αποτέλεσμα να αποφεύγεται η επαναφόρτωση της σελίδας. Οι τοποθεσίες καθορίζονται
δυναμικά, με την τοποθέτηση μιας κουκκίδας (pin) πάνω από τι
ς

εικόνες του χάρτη.
Επιπρόσθετα, η σελίδα χρησιμοποιεί JSON για μεταφορά δεδομένων
,

α
ντί

XML
,

για σκοπούς
απόδοσης.


2.4.2

Ε
πεκτασιμότητα




33
Το γεγονός ότι οι χάρτες Google είναι τεχνολογία γραμμένη σχεδόν εξολοκλήρου σε
Javascript και
XML
, επιτρέπει σε τελικούς χρήστες να παράγουν client
-
side scripts και
server
-
side hooks, τα οποία επιτρέπουν μ
ε την σειρά τους σε ένα χρήστη ή μια ιστοσελίδα να
εισάγουν επεκταμένες ή τροποποιημένες λειτουργίες στην διεπαφή των χαρτών Google.


2.4.3

Προγραμματιζόμενη

διεπαφή εφαρμογής χαρτών
Google

(
G
oogle

Maps

API
)


Τον Ιούνιο του 2005
, η Google διέθεσε το Google Map
s API, με σκοπό να επιτρέψει στους
προγραμματιστές να ενσωματώσουν τους Χάρτες Google στις ιστοσελίδες τους.

Το API αυτό είναι δωρεάν για εμπορική χρήση, με την προϋπόθεση ότι η ιστοσελίδα για την
οποία θα χρησιμοποιηθεί, δεν χρεώνει τους χρήστες της για
πρόσβαση σε αυτήν.

Ιστοσελίδες
που χρεώνουν και θέλουν να χρησιμοποιήσουν το Google Maps API, μπορούν να αγοράσουν
το Google Maps Premier. Με την χρήση της διεπαφής, μπορεί κάποιος να ενσωματώσει την
ιστοσελίδα Χαρτών Google σε εξωτερική ιστοσελίδα με την
δυνατότητα τοποθέτησης δικών
του δεδομένων πάνω από τους χάρτες.

Αν και αρχικά το Google Maps API ήταν ένα API για Javascript, μετέπειτα επεκτάθηκε ώστε
να συμπεριλάβει ένα API για Adobe Flash και μια υπηρεσία για ανάκτηση στατικών εικόνων
χαρτώ
ν. Επίσης
συμπεριέλαβε
δικτυακές υπηρεσίες για την εκτέλεση γεωκωδικοποιήσεων
και δημιουργία κατευθύνσεων οδήγησης.


2.4.4

Χ
άρτες

G
oogle

για κινητά



Οι Χάρτες Google για κινητά είναι μια εφαρμογή σε Java, η οποία εκδόθηκε από την Google
το 2006, με σκοπό να τρέχει σε οπ
οιοδήποτε βασισμένο σε Java κινητό ή φορητή συσκευή.
Πολλά από τα χαρακτηριστικά των Χαρτών Google υπάρχουν και σε αυτή την εφαρμογή.
Στις 28 Νοεμβρίου του 2008 κυκλοφόρησε και η δεύτερη έ
κδοση της εφαρμογής αυτής
, οι
Χάρτες Google για Κινητά 2.0. Σε αυτήν

την καινούργια έκδοση, η Google υλοποίησε μια
υπηρεσία παρόμοια με το παγκόσμιο σύστημα εντοπισμού θέσης (GPS
-
like), η οποία όμως
δεν χρειαζόταν δέκτη GPS. Η λειτουργία ‘η τοποθεσία μου’ (my location), λειτουργεί με
χρήση της τοποθεσίας GPS του κινητού, α
ν αυτή είναι διαθέσιμη. Αυτό γίνεται με τον εξής
τρόπο:


34
Το λογισμικό ψάχνει για το πιο κοντινό ασύρματο δίκτυο ή κύτταρο/κυψέλη. Ακολούθως
ψάχνει για την τοποθεσία του κυττάρου, χρησιμοποιώντας μια βάση δεδομένων με γνωστά
ασύρματα δίκτυα και κύτταρα. Ο π
ροσδιορισμός θέσης του κυττάρου γίνεται με μια
τριγωνική μέθοδο όπου μελετούνται διαφορετικές εντάσεις του σήματος από διαφορετικούς
πομπούς που βρίσκονται στους Σταθμούς Κυττάρων. Ακολούθως χρησιμοποιώντας την
τοποθεσία η οποία ανακτάται από μια διαδικτυα
κή βάση δεδομένων, διορθώνεται ‘η
τοποθεσία μου’, καθορίζοντας την τρέχουσα θέση του χρήστη. Η μέθοδος εντοπισμού
ασύρματου δικτύου, πραγματοποιείται βρίσκοντας τις πιο κοντινές δυναμικές ζώνες WiFi
(WiFi hotspots). Ακολούθως η τοποθεσία αυτών των ζωνών πο
υ ανακτάται από αντίστοιχη
βάση δεδομένων χρησιμοποιείται για την εξακρίβωση της θέσης του χρήστη. Η εφαρμογή
κάνει χρήση υπηρεσιών βασισμένες στο GPS, υπηρεσιών βασισμένες στο WiFi και στο
WLAN, και υπηρεσιών βασισμένων στους πομπούς των κυττάρων. Στον χά
ρτη φαίνονται οι
δρόμοι και η εκτιμώ
μενη θέση του κινητού τηλεφώνου
, η οποία δεν είναι απόλυτη καθώς
περιβάλλεται από ένα κύκλο που απεικονίζει το εύρος χώρου στον οποίο μπορεί να βρίσκεται
το κινητό. Το εκτιμώμενο εύρος χώρου, υπολογίζεται με βάση την ισχ
ύ του σήματος του
τηλεφώνου που υποδεικνύει πόσα κοντά αυτό

είναι στον Σταθμό του κυττάρου
, άρα και στον
πομπό. Η υπηρεσία αυτή είναι διαθέσιμη σε πολλές πλατφόρμες όπως για παράδειγμα τις
ακόλουθες:



Android

(η σχέση του Android με την υπηρεσία αυτή μελετ
άται στην συνέχεια
αναλυτικότερα).



iOS (iPhone/iPod Touch/iPad)



Windows Mobile



Nokia/Symbian (σε συγκεκριμένα μόνο μοντέλα)



Symbian OS (UIQ v3)



BlackBerry



κ.α


2.4.5

Λ
οιπές χρήσεις των χαρτών
Google

από την
Google





Google Ditu


35


Η κινέζικη έκδοση των Χαρτώ
ν Google.



Google Moon



Ένα εργαλείο με εικόνες της σελήνης ενσωματωμένες στην διεπαφή
των Χαρτών Google.



Google Mars



Με στοιχεία που συνέλλεξε η NASA στις δύο αποστολές της στον
πλανήτη Άρη.



Google Sky



Online εργαλείο χαρτογράφησης του ορατού σύμπαντο
ς
χρησιμοποιώντας φωτογραφίες που λήφθηκαν από το διαστημικό
τηλεσκόπιο Hubble.



Google Ride Finder



Εργαλείο που ενσωματώνεται σε GPS συστήματα αυτοκινήτων για
υπηρεσίες ταξί και λιμουζίνων.



Google Transit



Υπηρεσία που υπολογίζει διαδρομές, χρόνους διελ
εύσεως και κόστη.



Google Biking directions



Εργαλείο που αναζητάει κατευθύνσεις και μονοπάτια για οδούς
ποδηλάτων.



Google My Maps



Εργαλείο για δημιουργία προσωπικών και επαγγελματικών χαρτών.



Google Street View



Πανοραμική άποψη των οδών.


2.4.6

Οι χάρτες
G
oogle

και το
Android



Το Android προσφέρει στους προγραμματιστές την δυνατότητα να ενσωματώσουν κάποιο
χάρτη στην εφαρμογή τους. Αυτό μπορεί να γίνει με δύο τρόπους. Σύμφωνα με τον πρώτο

36
τρόπο, που είναι και ο πιο απλός, ο προγραμματιστής μπορεί να ενσωμα
τώσει στην οθόνη
ένα στοιχείο το οποίο καλείται ‘WebView’. Στο ‘WebView’, ο προγραμματιστής μπορεί να
απεικονίσει οποιαδήποτε διαδικτυακή εφαρμογή με αντίστοιχο τρόπο που αυτή απεικονίζεται
σε έναν φυλλομετρητή και κατ’

επέκταση τους Χάρτες Google.

Η Goog
le όμως θέλοντας να δώσει περισσότερη ελευθερία στους προγραμματιστές,
δημιούργησε ένα άλλο στοιχείο διεπιφάνειας χρήστη, το ‘MapView’ γεγονός που μας οδηγεί
στην δεύτερη εναλλακτική. Το MapView σε συνδυασμό με την κλάση MapActivity και τις
διεπαφές mappin
g APIs, είναι ένα ισχυρό εργαλείο στα χέρια οποιουδήποτε προγραμματιστή
που θέλει να δημιουργήσει καινοτόμες και πρωτοποριακές εφαρμογές με την χρήση των
χαρτών. Με αυτό τον τρόπο ο κατασκευαστής μπορεί να χρησιμοποιήσει υπάρχων χάρτες και
να τους τροποποι
ήσει όπως αυτός θέλει, με την δυνατότητα να χειριστεί τις αλληλεπιδράσεις
του χρήστη με τον χάρτη, να τοποθετήσε
ι δικά του δεδομένα πάνω σε αυτό
ν κ.τ.λ.

Το πακέτο για την χρησιμοποίηση των mapping APIs δεν ανήκει στο πλαίσιο του Android,
αλλά σε αυτό της
Google (com.google.android.maps), γεγονός που πρέπει να δηλωθεί
ξεχωριστά. Επιπρόσθετα για την χρησιμοποίηση των χαρτών η Google απαιτεί την απόκτηση
από τον εκάστοτε προγραμματιστή ενός m
ap
-
api key
, κλειδί το οποίο προσφέρει η ίδια
(
http://code.google.com/android/maps
-
api
-
signup.html
)
. Για την απόκτηση του κλειδιού ο
ενδιαφερόμενος πρέπει να δώσει το αποτύπωμα MD5 του ψηφιακού πιστοποιητικού το οποίο
θα χρησιμοποιηθεί για την υπογραφή της
εφαρμογής.


2.5

Σ
υμπεράσματα



Οι τεχνολογίες που μπορούν να χρησιμοποιηθούν με ένα κινητό τηλέφωνο, δεν θα
μπορούσαν να αποκλειστούν από την μελέτη αυτής της
πτυχια
κής εργασίας. Αποτελούν
αναπόσπαστο κομμάτι των games και για αυτό το λόγο, αναλύσαμε κάποιες
από αυτές με
σκοπό να τις συμπεριλάβουμε στον σχεδιασμό και την υλοποίηση ενός
κουίζ
παιχνιδιού,

εάν
και εφόσον κριθεί αναγκαίο
, από τα δεδομένα που θα προκύψουν από την ανάλυση και τον
σχεδιασμό που ακολουθεί στο
Κεφάλαιο
3
.

[2]





37
Κεφάλαιο 3

:
Αν
άλυση &

σχεδιασμός

εφαρμογής


3.1

Εισαγωγή


Σε αυτό το κεφάλαιο θα σχεδιάσουμε
ένα πρότυπο μιας

εφαρμογή
ς Android
, ένα βασικό
πλαίσιο επί του οποίου θα
βασιστεί στη συνέχεια η εφαρμογή μας. Επίσης στην συνέχεια θα
προσθέσουμε

ορισμένα
επιπρόσθετα

χαρακτηριστικά

σε
αυτήν
,

για να
αναδείξουμε τις
δυνατότητες του λειτουργικού συστήματος

Android
.


3.2

Σχεδιασμός ενός android
κουίζ
παιχνιδιού


Επειδή τα παιχνίδια
ερωτοαπαντήσεων

είναι

πολύ
δημοφιλή, αμέσως

μας ήρθε η ιδέα να
δημιουργήσουμε

ένα

παιχνίδι
κουίζ

για τις ανάγκες της πτυχιακής ε
ργασίας
.
Στο
συγκεκριμένο

παιχνίδι, ο χρήστης θα
υποβάλλεται

σ
ε
ερωτήσεις
γνώσεων όσο αναφορά
πρωτεύουσες διαφόρων κρατών
, όπως
για παράδειγμα
:



Αίγυπτο
ς! Ποια είναι η
πρωτεύουσα
;



Ελλάδα! Ποια είναι η
πρωτεύουσα
;



Ισλανδία
! Ποια είναι η
πρωτεύουσα
;

Ο χρήστη
ς με την υψηλότερη

βαθμολογία

θα
είναι
αυτός

με τις περισσότερες γνώσεις
,

ο
περισσότερο

ταξιδεμένος

ή απλά ο πιο τυχερός
.
Το
παιχνίδι
θα
ονομάζεται
Παγκόσμιες
Πρωτεύουσες
.


3.2.1

Καθορι
σμός
χαρακτηριστικών γνωρισμάτων
υψηλού επιπέδου του
παιχνιδιού


Μια καλή εφ
αρμογή παιχνιδιού

πρέπει να έχει
ε
κτός από

τ
η
ν

ίδια
την οθόνη ερωτή
σ
εων

του
παιχνιδιού
,

και άλλα χαρακτηριστικά γνωρίσματα, όπως
:



Μια οθόνη
έναρξης




Ένας τρόπος να
προβάλλονται οι βαθμολογίες των χρηστών



38


Μια εξήγηση των κανόνων
του
παιχνιδι
ού



Ένας τρόπος
να αποθηκεύονται
οι
ρυθμίσεις του

παιχνιδι
ού


Χρειάζεται επίσης ένας

τρόπο
ς

για να γίνεται η

μετάβαση μεταξύ αυτών των διαφορετικών
χαρακτηριστικών γνωρισμάτων.


Ένας τρόπος να
γίνει

αυτό
είναι να δημιουργηθεί

μια κύρια
οθόνη επιλογών
ό
που

ο χρήστης μπορεί

να χρησιμοποιεί για να έχει πρόσβαση

σ
τα
χ
αρακτηριστικά γνωρίσματα
της
εφαρμογής.

Αναθεωρώντας
λοιπόν
τις απαιτήσεις

της εφαρμογής μας
, διαπιστώνουμε ότι χρειαζόμαστε
έξι αρχικές οθόνες
εντός της
εφαρμογής
Παγκόσμιες
Πρωτεύουσες
.

Είναι οι ακόλουθ
ες
:



Μια

οθόνη
εκκίνησης

(Startup Screen)



Μια κύρια οθόνη επιλογών
(Main Menu Screen)



Μια οθόνη παιχνιδιού

(Game Screen)



Μια οθόνη ρυθμίσεων (Settings Screen)



Μια οθόνη
βαθμολογιών

(Scores Screen)



Μια οθόνη βοήθειας
(Help Screen)


Αυτές οι οθόνες θα αποτελέσουν
τη
ν διεπαφή

χρήστη
-
πυρήνα

για την εφαρμογή.


3.2.2

Καθορισ
μός απαιτήσεων
των Δ
ραστηριοτήτων (Activities)


Κάθε οθόνη
της εφαρμογής Παγκόσμιες Πρωτεύουσες

έχει την
δικιά της κλάση
Δ
ραστηριότ
ητα
ς

(
Activity class
)
.
Το
Σ
χήμα
3
.1 παρουσιάζει
τις
έξι δραστηριότητες πο
υ
απαιτούνται, μ
ί
α για κάθε οθόνη.

Μια ορθή πρακτική σχεδιασμού

είναι να εφαρμοστεί μια
κύρια κλάση Δραστηριότητας

με
κοινά συστατικά,
την οποία
θα
ονομάσουμε

QuizActivity.
Υ
ιοθ
ετήσαμ
ε αυτήν την πρακτική
δεδομένου ότι
η κλάση αυτή
χρειάζεται

για

τον
καθορ
ισμό

τ
ων
Δ
ραστηριοτήτων

που
απαιτούνται από
το παιχνίδι
:


39


QuizActivity
-

Παράγωγη του

android.app.Activity
, αυτή

είναι η

βασική κλάση
.
Εδώ,
καθορί
ζονται

οι

προτιμήσεις
της
εφαρμογής και άλλες
ευρείες ρυθμίσεις

και
χαρακτηριστικά γνωρίσματα της εφαρμογ
ής.



Q
uizSplashActivity
-

Παράγωγη
της

QuizActivity, αυτή η
κλάση

αντιπροσωπεύει
την
οθόνη
έναρξης του παιχνιδιού
.



QuizMenuActivity
-

Παράγωγη
της

QuizActivity, αυτή η
κλάση
αντιπροσωπεύει
την
κύρια οθόνη επιλογών.



QuizHelpActivity
-

Παράγωγη
της
QuizActivity,
αυτή η
κλάση
αντιπροσωπεύει

την
οθόνη βοήθειας.



QuizScoresActivity
-

Παράγωγη
της

QuizActivity, αυτή η
κλάση
αντιπροσωπεύει
την

οθόνη
βαθμολογιών
.



QuizSettingsActivity
-

Παράγωγη
της

QuizActivity, αυτή η
κλάση
αντιπροσωπεύει
την

οθόνη
ρυθμίσεων
.



QuizGam
eActivity
-

Παράγωγη
της

QuizActivity, αυτή η
κλάση
αντιπροσωπεύει
την

οθόνη
του παιχνιδιού
.



Σχήμα 3.1: Ένας πρόχειρος σχεδιασμός των ροών δεδομένων των Δραστηριοτήτων της εφαρμογής



40
3.2.3

Καθορισ
μός
χαρακτηριστικ
ών γνωρισμάτων

οθονών του παιχνιδιού



Εδώ θ
α

καθοριστούν τα βασικά
χαρακτηριστικά γνωρίσματα κάθε Δ
ραστηριότητας

της
εφαρμογή
ς
.


3.2.3.1

Καθορισμός χαρακτηριστικών γνωρισμάτων
Ο
θόνης
Εκκίνησης



Η
Οθόνη Εκκίνησης

χρησιμεύει ως το αρχικό σημείο εισόδ
ου

για
το
παιχ
νίδι. Η λειτουργία
της πρέπει να

ενσωματωθεί

μέσα στη

κλάση
QuizSplashActivity. Αυτή η οθόνη πρέπει να
κάνει τα εξής:




Να εμφανίζει

το όνομα και την έκδοση της εφαρμογής



Να εμφανίζει ένα
ενδιαφέρον γραφικό ή λογότυπο για το παιχνίδι



Να μ
εταβαίνει

αυτόματα στην κύρια οθόνη επιλογών μετά από
ορισμέ
νη

χρονική
περίοδο


Η Εικόνα

3
.2 παρουσιάζει ένα πρότυπο της
Οθόνης Εκκίνησης
.




41


Εικόνα

3.2: Ο
θόνη
Εκκίνη
σης


3.2.3.2

Καθορισμός χαρακτηριστικών γνωρισμάτων
Κύριας Ο
θόνης
Ε
πιλογών


Η
Κ
ύρια
Ο
θόνη
Ε
πιλογών χρησιμεύει ως η κύρια
οθόνη
πλοήγησης στο παιχνίδι. Αυτ
ή η
οθόνη
εμφανίζεται

μετά

από την
Ο
θόνη
Εκκίνησης
και
απαιτεί

από
το χρήστη να επιλέξ
ει

πο
υ

να
πλοηγηθεί μετά
.
Η λειτουργία της πρέπει να ενσωματωθεί μέσα στη κλάση
QuizMenuActivity. Αυτή η οθόνη πρέπει να κάνει τα εξής:




Να εμφανίζε
ται

α
υτόματα μετά από

την
Ο
θόνη
Εκκίνησης




Να επιτρέπει στο χρήστη
να επιλέξε
ι
να Παίξει,

να δει τα

Σκορ
,
να διαμορφώσει
της
Ρυθμίσεις
, ή
να δει
τη
Β
οήθεια


Η Εικόνα 3.3 παρουσιάζει ένα πρότυπο της Κ
ύριας
Ο
θόνης
Ε
πιλογών.



42


Εικόνα 3.3: Κύρια Οθόνη Επιλογών


3.2.3.3

Καθορισμός χαρακ
τηριστικών γνωρισμάτων
Ο
θόνης
Β
οήθειας


Η
Ο
θόνη
Β
οήθειας
εμφανίζει

στο χρήστη
κάποιες χρήσιμες πληροφορίες για το
παιχνίδι.
Η
λειτουργία της πρέπει να ενσωματωθεί μέσα στη κλάση
QuizHelpActivity.
Αυτή η οθόνη
πρέπει να κάνει τα εξής:




Να εμφανίζει το
κείμ
ενο βοήθειας στο χρήστη



Να

επιτρέπει την κύλιση
του κειμένου

στον χρήστη


Η Εικόνα 3.4 παρουσιάζει ένα πρότυπο της Οθόνης Βοήθειας.



43

Εικόνα 3.4: Οθόνη Βοήθειας


3.2.3.4

Καθορισμός χαρακτηριστικών γνωρισμάτων
Ο
θόνης
Βαθμολογιών



Η
Ο
θόνη
Βαθμολογιών

επιτρέπει σ
το χρήστη για να δει τ
ις

βαθμολογίες διαφόρων χρηστών
του

παιχνιδι
ού
.
Η λειτουργία της πρέπει να ενσωματωθεί μέσα στη κλάση
QuizScoresActivity.
Αυτή η οθόνη πρέπει να κάνει τα εξής
:




Να εμφανίζει τις
20
κ
ορυφαίες
βαθμολογίες των χρηστών




Να

εμφανίζει

τη
πι
ο πρόσφατη βαθμολογία

εάν ο χρήστης προ
έρχεται από την οθόνη
παιχνιδιού



Η Εικόνα 3.5 παρουσιάζει ένα πρότυπο της Οθόνης

Βαθμολογιών
.



44


Εικόνα

3.5
: Οθόνη
Βαθμολογιών


3.2.3.5

Καθορισμός χαρακτηριστικών γνωρισμάτων
Ο
θόνης
Ρυθμίσεων



Η
Οθόνη Ρυθμίσεων

επιτρέπει

στους χρήστες για να
διαμορφώσουν και να σώσουν τις
ρυθμίσεις του

παιχνιδ
ιού
, συμπεριλ
αμβανομένου του ονόματος χρήστη κ
αι άλλων
σημαντικών

χαρακτηριστικ
ών γνωρισμά
τ
ων
.
Η λειτουργία της πρέπει να ενσωματωθεί μέσα
στη κλάση
QuizSettingsActivity. Αυτή η οθόν
η πρέπει να κάνει τα εξής:




Να επιτρέπει στο
ν

χρήστη
να εισαγάγε
ι

τις
προσωπικές του ρυθμίσεις.



Η Εικόνα 3.6 παρουσιάζει ένα πρότυπο της Οθόνης Ρυθμίσεων.



45


Εικόνα 3.6:
Οθόνη Ρυθμίσεων


3.2.3.6

Καθορισμός χαρακτηριστικών γνωρισμάτων
Ο
θόνης
Π
αιχνιδι
ού



Στην

Οθόνη Παιχνιδιού

εμφανίζεται το παιχνίδι διαγωνισμού

γνώσεων
(
Quiz

game
). Η
λειτουργία της πρέπει να ενσωματωθεί μέσα στη κλάση
QuizGameActivity. Αυτή η οθόνη
πρέπει να κάνει τα εξής:




Να εμφανίζει μια σειρά ερωτήσεων πολλαπλής επιλογής
.



Να διαχειρίζεται

την
απάντηση

και
να
κρατάει τη βαθμολογία

και την κατάσταση του
παιχνιδιού




Να μεταβαίνει

στην
Ο
θόνη
Βαθμολογιών

μόλις

ο χρήστης
τελειώσει το

παιχνίδι


Η Εικόνα 3.7 παρουσιάζει ένα πρότυπο της Οθόνης Παιχνιδιού
.



46

Εικόνα 3.7:
Οθόνη Παιχνιδιού



3.3

Εφαρμογή

ενός πρωτοτύπου εφαρμογής


Τώρα που έχουμε

μια ιδέα τι
θα κάνει και πως θα
φαίνεται

η εφαρμογή

μας
, είναι
η ώρα

να
αρχίσει

ο προγραμματισμός της
. Αυτό περιλαμβάνει τα ακόλουθα βήματα:




Δημιουργία ενός νέου
Android

προγράμματος στο προγραμματιστικό περιβ
άλλον

Eclipse




Προσθ
ήκη

πόρ
ων στο πρόγραμμά μας
, συμπεριλαμβανομένων

st
r
ings και γραφικών

(
drawable
)



Δημιουργία ενός σχεδιαγράμματος

(layout)

για κάθε οθόνη



Εφαρμογή μιας
Δ
ραστηριότητας για κάθε οθόνη



Δ
ημιουργία ενός συνόλου
ευρειών προτιμήσεων

για την ε
φαρμογή




47
3.3.1

Δημιουργία
Android προγράμματος στο

Eclipse


Το πρόγραμμά

μας
έχει τις ακόλουθες
ρυθμίσεις
:




Project name
:
WorldCapitals



Build target
: Android 2.
2

+ Google APIs



Application name
:
Παγκόσμιες

Πρωτεύουσες



Package name
:
gr.efdouk.worldcapitals



Crea
te activity
: QuizSplashActivity


3.3.2

Προσθήκη πόρων
του
προγράμματος


Τ
ο πρόγραμμα απαιτεί μερικούς πρόσθετους πόρους. Συγκεκριμένα, πρέπει να προσθέσ
ουμε
ένα
layout

και
ένα όνομα (
string
)

για κάθε
δ
ραστηριότητα
. Επίσης θα χρειαστούμε ένα
εικονίδιο το οποίο θ
α αντιπροσωπεύει την εφαρμογή μας.


3.3.2.1

Προσθήκη
S
tring

πόρων


Τροποποιούμε το
προϋπάρχων
αρχείο
strings.xml

που βρίσκεται
στον φάκελο
/
res
/
values

του
προγράμματός μας
.
Δ
ημιουργ
ούμε έξι
νέα
strings
,

ένα

για κ
άθε οθόνη. Παραδείγματος χάριν,
για να δώσουμε ένα ό
νομα στην Οθόνη Βοήθειας
δημιουργ
ού
με

ένα string
με όνομα "
help
"

και με τιμή

"
Βοήθεια
" όπως
φαίνεται

και