Αποδελτίωςη Πολιτιςτικών Γεγονότων και Εφαρμογή Android για την Προβολή τουσ



Σχετικά έγγραφα
ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

Α Ο Κ Η Α Μ Α Ζ Η Η Ρ Η ( S E A R C H )

Η αξρή ζύλδεζεο Client-Server

Digital Academy. Εισαγωγή στην ανάπτυξη Android Εφαρμογών

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

Οργάνωση και Δομή Παρουσιάσεων

Ενδεικτικά Θέματα Στατιστικής ΙΙ

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

Constructors and Destructors in C++

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

Κεθάλαιο 1. Ενόηηηα 2 Πλάνο Μάρκεηινγκ. Εξγαιεία Μάξθεηηλγθ. Dr. Andrea Grimm Dr. Astin Malschinger

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε. Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14


Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

Άσκηση 1 - Μοπυοποίηση Κειμένου

CytaInfo+ έλα application γηα ηε Cyta.

Μορθές Κακόβοσλοσ Κώδικα (Malicious Code)

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών

ΔΡΓΑΙΑ 1. Γιαδικησακά πληροθοριακά σζηήμαηα. Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές. ηέθανος Κονηοβάς ΑΔΜ :283. Πάζτος Βαζίλειος ΑΔΜ :288

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

Δξγαιεία Καηαζθεπέο 1 Σάμε Δ Δ.Κ.Φ.Δ. ΥΑΝΗΩΝ ΠΡΩΣΟΒΑΘΜΗΑ ΔΚΠΑΗΓΔΤΖ. ΔΝΟΣΖΣΑ 2 ε : ΤΛΗΚΑ ΩΜΑΣΑ ΔΡΓΑΛΔΗΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Ογθνκεηξηθό δνρείν

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD

Ηλεκηπονικά Απσεία και Διεπαθέρ

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

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ

ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/2014

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΣΙΑ ΝΟΜΟ ΙΨΑΝΝΙΝΨΝ ΔΗΜΟ ΙΨΑΝΝΙΣΨΝ

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

Διαδικαζία μεηαθοράς δεδομένων Εκκαθαριζηικής για ηο Eιδικό ζημείωμα περαίωζης Φ.Π.Α

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο

Η επιζκόπηζη ηης έμμιζθης ενηολής ζηην Αλλοδαπή. Καηεξίλα Γαιαλνπνύινπ, Intellectual Property Manager, Microsoft Ειιάο Α.Ε.

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

A. Αιιάδνληαο ηε θνξά ηνπ ξεύκαηνο πνπ δηαξξέεη ηνλ αγωγό.

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

Εηζαγσγή ζηελ επηζηήκε ησλ ππνινγηζηώλ. Λνγηζκηθό Υπνινγηζηώλ Κεθάιαην 7ν Λεηηνπξγηθά Σπζηήκαηα

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ

Εγκατάσταση του πακέτου XAMPP. Β Τεχνική Σχολή Λεμεςοφ Σχολική χρονιά Άριςτοσ Παςιάσ

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

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε

Γραφεύα Επικοινωνύασ & Ενημϋρωςησ ϋρρεσ, Τψηλϊντου 4 3οσ Όροφοσ ΣΗΛ ΥΑΦ

ύζηεκα Ωξνκέηξεζεο Πξνζσπηθνύ (Έθδνζε 2) ΤΠΗΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΤΣΗΜΑΣΩΝ

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

ΦΤΛΛΟ ΔΡΓΑΙΑ 1 Βαζηθέο Έλλνηεο & Καηεγνξίεο Γηθηύσλ Τπνινγηζηώλ

ISO/IEC 27001:2005 Certificate No: IS Aegate Ltd 2011 All rights reserved

α) ηε κεηαηόπηζε x όηαλ ην ζώκα έρεη κέγηζην ξπζκό κεηαβνιήο ζέζεο δ) ην κέγηζην ξπζκό κεηαβνιήο ηεο ηαρύηεηαο

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots)

Τηλζφωνο: Ε-mail: Ώρες διδασκαλίας: 16:00 19:15 μμ

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Εισαγωγή στη Φωτογραυία. Χριζηάκης Σαζεΐδης - EFIAP

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

Το Νέο Σύζηημα Ηλεκηρονικών Αιηήζεων Δανείων και Πιζηωηικών Καρηών είναι εδώ!

EL Eνωμένη στην πολυμορυία EL A8-0046/319. Τροπολογία

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

Οη πην γλσζηέο κνξθέο Pervasive παηρληδηώλ είλαη ηα Location Based Games, Augmented Reality Games θαη Mixed Reality Games.

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

Έκδοζη /10/2014. Νέα λειηοσργικόηηηα - Βεληιώζεις

Σρήκα Α. Γξάθνπκε ηα ζηνηρεία ηνπ Πξνκεζεπηή θαη παηάκε Δηζαγσγή. Σρήκα Β1

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

1 Είζοδορ ζηο Σύζηημα ΣΔΕΔ ή BPMS

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

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

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

Διατείριση Φσσικών Καταστρουών: ACTIVE LANDSLIDE INVENTORY MAPPING AND SUSCEPTIBILITY ZONING

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

ΥΡΙΣΟΤΓΔΝΝΙΑΣΙΚΔ ΚΑΣΑΚΔΤΔ

Transcript:

ΑΣΕΙ ΘΕΑΛΙΑ ΧΟΛΗ ΣΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Σμήμα Μηχανικών Πληροφορικής ΣΕ Αποδελτίωςη Πολιτιςτικών Γεγονότων και Εφαρμογή Android για την Προβολή τουσ ΠΣΤΧΙΑΚΗ ΕΡΓΑΙΑ Κωνςταντίνοσ Γουςόπουλοσ ΑΜ: Σ02298 Επιβλζπων: Κόκκορας Φώτης, Καθηγητής Εφαρμογών ΛΑΡΙΑ 2014

«Εγώ ν Γνπζόπνπινο Κωλ/λνο, δειώλω ππεύζπλα όηη ε παξνύζα Πηπρηαθή Εξγαζία κε ηίηιν Larissa City Event Guide είλαη δηθή κνπ θαη βεβαηώλω όηη: Σε όζεο πεξηπηώζεηο έρω ζπκβνπιεπηεί δεκνζηεπκέλε εξγαζία ηξίηωλ, απηό επηζεκαίλεηαη κε ζρεηηθή αλαθνξά ζηα επίκαρα ζεκεία. Σε όζεο πεξηπηώζεηο κεηαθέξω ιόγηα ηξίηωλ, απηό επηζεκαίλεηαη κε ζρεηηθή αλαθνξά ζηα επίκαρα ζεκεία. Με εμαίξεζε ηέηνηεο πεξηπηώζεηο, ην ππόινηπν θείκελν ηεο πηπρηαθήο απνηειεί δηθή κνπ δνπιεηά. Αλαθέξω ξεηά όιεο ηηο πεγέο βνήζεηαο πνπ ρξεζηκνπνίεζα. Σε πεξηπηώζεηο πνπ ηκήκαηα ηεο παξνύζαο πηπρηαθήο έγηλαλ από θνηλνύ κε ηξίηνπο, α- λαθέξω ξεηά πνηα είλαη ε δηθή κνπ ζπλεηζθνξά θαη πνηα ηωλ ηξίηωλ. Γλωξίδω πωο ε ινγνθινπή απνηειεί ζνβαξόηαην παξάπηωκα θαη είκαη ελήκεξνο γηα ηελ επέιεπζε ηωλ λνκίκωλ ζπλεπεηώλ» Γνπζφπνπινο Κσλ/λνο 31/10/2014

Δγθξίζεθε απφ ηελ ηξηκειή εμεηαζηηθή επηηξνπή Σόπος: Ημερομηνία: ΕΠΙΣΡΟΠΗ ΑΞΙΟΛΟΓΗΗ 1. 2. 3.

Πεπίλητη ηελ παξνχζα πηπρηαθή εξγαζία πεξηγξάθεηαη ε ιεηηνπξγία ηεο εθαξκνγήο Larissa City Event Guide πνπ απνηειεί έλαλ νδεγφ πνιηηηζηηθψλ/ςπραγσγηθψλ δξαζηεξηνηήησλ γηα ηελ πφιε ηεο Λάξηζαο. Μέζα απφ ηελ εθαξκνγή ν ρξήζηεο έρεη ηελ δπλαηφηεηα λα ελεκεξψλεηαη γηα δηάθνξα ζπκβάληα πνπ ιακβάλνπλ ρψξα θαζεκεξηλά ζηελ πφιε ηεο Λάξηζαο θαη εληάζζνληαη ζε έλα επξχ θάζκα θαηεγνξηψλ φπσο ζεαηξηθέο παξαζηάζεηο, εθζέζεηο, ζπλαπιίεο, αζιεηηθά γεγνλφηα, θηλεκαηνγξάθν, λπρηεξηλή δηαζθέδαζε, θηι. Η εθαξκνγή είλαη ζρεδηαζκέλε γηα tablets ιεηηνπξγηθνχ ζπζηήκαηνο Android (έρεη δνθηκαζηεί ζε εθδφζεηο Jelly Bean (4.2) θαη Kit-Kat (4.4) ) θαη απαηηεί ζχλδεζε ζην δηαδίθηπν γηα λα ιάβεη δεδνκέλα. Σα δεδνκέλα πξνέξρνληαη απφ server side εθαξκνγή πνπ αλαπηχρζεθε επίζεο ζην πιαίζην ηεο πηπρηαθήο, ζε PHP/mySQL. H εθαξκνγή είλαη ζρεδηαζκέλε επέιηθηα θαη αθήλεη πεξηζψξηα γηα κειινληηθέο επεθηάζεηο, φπσο πξνζαξκνγή ζε ζπζθεπέο θηλεηήο ηειεθσλίαο θαη ρξήζε ζε επαγγεικαηηθφ επίπεδν. -i-

Δςσαπιζηίερ Θα ήζεια λα επραξηζηήζσ ηνλ επηβιέπνληα θαζεγεηή κνπ, θχξην Κφθθνξα Φψηε γηα ηελ θαζνδήγεζε, ηελ βνήζεηα θαη ηελ επθαηξία πνπ κνπ έδσζε λα αζρνιεζψ κε ην ζπγθεθξηκέλν ζέκα. Σέινο ζα ήζεια λα επραξηζηήζσ ηελ νηθνγέλεηα κνπ γηα ηελ ππνζηήξημε ηνπο φια απηά ηα ρξφληα ησλ ζπνπδψλ κνπ. Γνπζφπνπινο Κσλ/λνο 10/11/2014 -iii-

Πεπιεσόμενα ΠΔΡΙΛΗΦΗ... I ΔΤΥΑΡΙΣΙΔ... III ΠΔΡΙΔΥΟΜΔΝΑ... V 1 ΔΙΑΓΧΓΗ ΣΟ ΤΣΗΜΑ ANDROID... 7 1.1 ΣΙ ΔΙΝΑΙ ΣΟ ΛΔΙΣΟΤΡΓΙΚΟ ΤΣΗΜΑ ANDROID... 7 1.2 ΓΙΑΣΙ ΑΝΑΠΣΤΞΗ Δ ANDROID... 8 1.2.1 Λειηοςπγικόηηηα και εςελιξία.... 8 1.2.2 Πλήπηρ παπαμεηποποίηζη... 9 1.2.3 Διαδπαζηικόηηηα... 9 1.2.4 Απλούζηεπη Ανάπηςξη Εθαπμογών Κινηηών.... 10 1.3 GOOGLE PLAY... 10 1.4 ΔΚΓΟΔΙ ANDROID... 11 2 ΣΟ ΔΧΣΔΡΙΚΟ ΜΙΑ ΔΦΑΡΜΟΓΗ... 15 2.1 ΑΡΥΙΣΔΚΣΟΝΙΚΗ ΣΟΤ ANDROID... 15 2.2 ΑΡΥΔΙΑ ΚΑΙ ΦΑΚΔΛΟΙ... 16 2.2.1 Το απσείο AndroidManifest.xml... 17 2.2.2 Οι θάκελοι src & res... 17 2.2.3 Οι ςπόλοιποι θάκελοι και απσεία... 18 2.3 ΓΙΔΡΓΑΙΔ ΚΑΙ ΝΗΜΑΣΑ... 18 2.4 ΑΝΑΣΟΜΙΑ ΜΙΑ ΔΦΑΡΜΟΓΗ... 19 2.4.1 Δπαζηηπιόηηηερ... 19 2.4.2 Υπηπεζίερ... 20 2.4.3 Παποσείρ πεπιεσομένος... 22 2.4.4 Διαδικαζίερ παπαζκηνίος... 22 2.4.5 Intents... 22 2.5 ΑΦΑΛΔΙΑ ΣΟ ANDROID... 23 3 ΣΔΥΝΟΛΟΓΙΔ ΑΝΑΠΣΤΞΗ... 27 -v-

3.1 ECLIPSE ANDROID SDK... 27 3.2 JAVA... 28 3.3 MYSQL DATABASE... 29 3.4 PHP-PDO... 30 3.5 RESTFUL WEB SERVICES... 31 3.6 JSON... 32 3.7 XML... 32 4 ΑΝΑΛΤΗ & ΥΔΓΙΑΗ ΔΦΑΡΜΟΓΗ... 35 4.1 ΈΝΑΡΞΗ ΔΦΑΡΜΟΓΗ... 36 4.2 ΒΑΗ ΓΔΓΟΜΔΝΩΝ... 36 4.3 ΠΛΑΓΙΟ ΜΔΝΟΤ... 38 4.3.1 Επιλογή η Λάπιζα... 39 4.3.2 Πεπιήγηζηρ ζηην Λάπιζα... 41 4.3.3 Φάπηηρ... 44 4.3.4 Ημεπολόγιο... 47 4.4 ΑΡΥΙΚΗ ΟΘΟΝΗ... 48 4.4.1 Πεπιήγηζη ζηην Λίζηα... 49 4.4.2 Παποςζίαζη ηων πληποθοπιών... 52 4.4.3 Φάπηηρ πεπιοσήρ... 55 4.5 ΠΔΡΑΜΑ ΠΛΗΡΟΦΟΡΙΩΝ ΜΔΣΑΞΤ ΓΡΑΣΗΡΙΟΣΗΣΩΝ... 55 5 ΠΡΟΒΛΗΜΑΣΑ ΚΑΙ ΣΟΥΟΙ... 59 5.1 ΠΡΟΒΛΗΜΑΣΑ ΠΟΤ ΑΝΣΙΜΔΣΩΠΙΣΗΚΑΝ... 59 5.2 ΜΔΛΛΟΝΣΙΚΗ ΔΞΔΛΙΞΗ... 59 6 ΤΜΠΔΡΑΜΑ... 61 ΒΙΒΛΙΟΓΡΑΦΙΑ... 63 ΠΑΡΑΡΣΗΜΑ Α... 67 ΠΑΡΑΡΣΗΜΑ B... 71 -vi-

1 Διζαγυγή ζηο ύζηημα Android To Android είλαη ιεηηνπξγηθφ ζχζηεκα είλαη κηα πιαηθφξκα πνπ αλαπηχρζεθε απφ ηελ Google θαη ζηελ ζπλέρεηα απφ ηελ Open Handset Alliance. Γηα πξψηε θνξά εκθαλίζηεθε ζηεο 5 Ννεκβξίνπ 2007 θαη ην κεγαιχηεξν κέξνο ηνπ θψδηθα είλαη δεκνζηεπκέλν κε ρξήζε Apache License. Σν ινγφηππν ηνπ Android απνηειείηαη απφ έλα ξνκπφη ζε ρξψκα πξάζηλνπ κήινπ θαη ζρεδηάζηεθε απφ ηε γξαθίζηξηα Irina Blok. (Δηθφλα 1)(http://el.wikipedia.org/wiki/Android,Tη είλαη ην Android [7/11/2014]) Δηθφλα 1: Λνγφηππν ηνπ Android 1.1 Σι είναι ηο λειηοςπγικό ζύζηημα Android Σν Android (Δηθφλα 1) είλαη έλα ιεηηνπξγηθφ ζχζηεκα πνπ ελζσκαηψλεηαη ζε ζπζθεπέο θηλεηήο ηειεθσλίαο, ηα νπνία δηαζέηνπλ νζφλε αθήο, ηξέρνπλ ηνλ ππξήλα (kernel) ηνπ ιεηηνπξγηθνχ Linux θαη αθφκε, επηηξέπεη ζηνπο θαηαζθεπαζηέο ινγηζκηθνχ λα ζπλζέηνπλ θψδηθα κε ηε ρξήζε ηεο γιψζζαο πξνγξακκαηηζκνχ Java, ειέγρνληαο ηε ζπζθεπή κέζσ βηβιηνζεθψλ ινγηζκηθνχ ηεο Google. πζθεπέο κε Android ππάξρνπλ πιένλ πάξα πνιιέο, ε θαζεκία κε δηαθνξεηηθά ραξαθηεξηζηηθά θαη απφ δηάθνξεο θαηαζθεπάζηξηεο εηαηξίεο: φπσο ε LG, Samsung, HTC, -7-

Sony Ericsson, Motorola, πνπ ρξεζηκνπνηνχλ ην ιεηηνπξγηθφ Android γηα ηα έμππλα ηειέθσλα(smartphones) ηνπο. Σν ζεηηθφ κε ηηο ζπζθεπέο Android είλαη φηη καο δίλνπλ ηε δπλαηφηεηα λα αλαπαξάγνπκε πνιιαπιά κέζα (multimedia) θαζψο επίζεο θαη ηε δπλαηφηεηα εθηέιεζεο πνιιψλ εθαξκνγψλ ηαπηφρξνλα (multitasking).η πεξηήγεζε ζην δηαδίθηπν κε κηα Android ζπζθεπή είλαη ηαρχηαηε θαη ππάξρνπλ πνιινί browsers γηα λα θαιχςνπλ ηηο πςειέο απαηηήζεηο ησλ ρξεζηψλ. Όιεο νη ζπζθεπέο Android έρνπλ ζρεδηαζηεί γηα λα έρνπλ εχθνιε πξφζβαζε ζην δηαδίθηπν έηζη φιεο δηαζέηνπλ Wi-Fi θαη GPS πνπ ζε ζπλδπαζκφ κε ηελ δηαζεζηκφηεηα ζε κεγάιν αξηζκφ εθαξκνγψλ (δσξεάλ ή επί πιεξσκήο,) ην θαζηζηνχλε έλα απφ ηα πην ρξήζηκα θαη απνηειεζκαηηθά εξγαιεία Έλα απφ ηα βαζηθφ ραξαθηεξηζηηθά ηνπ Android, επίζεο, είλαη ε πιεζψξα εθαξκνγψλ πνπ δηαηεξνχλ ηε ζπλερή ζχλδεζε κε Facebook, MySpace, Twitter θαη δεθάδεο άιιεο ππεξεζίεο θνηλσληθήο δηθηχσζεο αιιά θαη εθαξκνγέο ειεθηξνληθνχ ηαρπδξνκείνπ (e-mail). Αθφκε, ην Android παξέρεη έλα θηιηθφ,επράξηζην θαη εχθνιν πεξηβάιινλ γηα ηνλ ρξεζηή κε απνθνξχθσκα ε δπλαηφηεηα λα πξνζζέζεηε widgets, εηθνλίδηα γηα ηελ ηαρχηεξε πξφζβαζε ζηα πξνγξάκκαηα, ηα νπνία ηνπνζεηνχληαη ζηε αξρηθή νζφλε ηνπ θηλεηνχ (launcher) αιιά θαη ηελ άκεζε θαηάξγεζε εγθαηεζηεκέλσλ εθαξκνγψλ. (http://developer.android.com/index.html,tη είλαη Android,[9/11/2014]) 1.2 Γιαηί ανάπηςξη ζε Android Παξαθάησ παξνπζηάδνληαη νη ιφγνη θαη θξηηήξηα πνπ ε εθαξκνγή πινπνηήζεθε κε ηελ ρξήζε Android πιαηθφξκαο θαη φρη θάπνηαο άιιεο. 1.2.1 Λειηοςπγικόηηηα και εςελιξία. Σν Android είλαη κηα πιαηθφξκα πνπ επηηξέπεη ηελ αλάπηπμε εθαξκνγψλ ινγηζκηθνχ ην νπνίν εθκεηαιιεχεηαη πιήξσο ηηο δπλαηφηεηεο κηαο ζπκβαηήο ζπζθεπήο.οη πξνγξακκαηηζηέο εθαξκνγψλ έρνπλ ηελ δπλαηφηεηα ρσξίο πνιινχο πεξηνξηζκνχο λα δεκηνπξγήζνπλ εθαξκνγέο πνπ ρξεζηκνπνηνχλ νπνηαδήπνηε απφ ηηο βαζηθέο ιεηηνπξγίεο ηνπ ηειεθψλνπ φπσο ε απνζηνιή SMS, ηειεθσληθέο θιήζεηο, ηε θάκεξα, ην GPS θηι. βνεζψληαο έηζη ζηελ πινπνίεζε πην πεξίπινθνπ ιεηηνπξγηθνχ ινγηζκηθνχ. Απηφ ην ιεηηνπξγηθφ ζχζηεκα θηλεηψλ ηειεθψλσλ ζηεξίδεηαη ζηνλ ειεχζεξν ππξήλα ηνπ Linux. Δπηπιένλ, ε πιαηθφξκα αλάπηπμεο Android είλαη multi tasking, πξάγκα πνπ ζεκαίλεη -8-

φηη θάζε εθαξκνγή κπνξεί λα ηξέρεη ζην smartphone ηαπηφρξνλα κε θάπνηα άιιε ρσξίο λα επεξεαζηεί ε απφδνζή ηνπο. Σν Android είλαη κηα πιαηθφξκα αλνηθηνχ θψδηθα, πξάγκα πνπ ζεκαίλεη φηη πιεξνί κηα ζεκαληηθή αξρή ηνπ πξνγξακκαηηζκνχ,ηελ επειημία, θαη φηη κπνξεί εχθνια λα ηξνπνπνηεζεί γηα λα ζπκβαδίδεη κε ηηο ηειεπηαίεο ηερλνινγηθέο εμειίμεηο. Σν γεγνλφο φηη ε πεγή ηεο πιαηθφξκαο είλαη αλνηθηή δηαζθαιίδεη φηη ε αλάπηπμε ηνπ Android ζα έρεη ζπλερή πξφνδν θαη εμέιημε αθνχ έλαο κεγάινο αξηζκφο ηθαλψλ android πξνγξακκαηηζηψλ εξγάδεηαη γηα ηε δεκηνπξγία ειεχζεξσλ γηα ρξήζε εξγαιείσλ ινγηζκηθνχ. 1.2.2 Πλήπηρ παπαμεηποποίηζη Λφγσ ηεο έιιεηςεο απζηεξψλ πεξηνξηζκψλ αλάπηπμεο απφ ην Android νη εθαξκνγέο ησλ ηξίησλ πξνγξακκαηηζηψλ δελ δηαθέξνπλ ζρεδφλ θαζφινπ απφ ηηο πξν εγθαηεζηεκέλεο θαη ρξεζηκνπνηνχλε αθξηβψο ηνπ ίδηνπο πφξνπο αιιά θαη ηελ ίδηα πξφζβαζε ζηηο θχξηεο ιεηηνπξγίεο ηεο ζπζθεπήο.απνηέιεζκα απηήο ηε δπλαηφηεηαο είλαη `έλα επξχ αλεμάληιεην θάζκα εθαξκνγψλ πξνο ηνπο ρξήζηεο Με ζπζθεπέο ρηηζκέλεο ζηελ πιαηθφξκα Android, ππάξρεη ε δπλαηφηεηα ζηνλ θάζε ρξήζηε λα πξνζαξκφζεη πιήξσο ηε ζπζθεπή ηνπ αλάινγα κε ηηο αλάγθεο θαη ηηο απαηηήζεηο ηνπο. Σπρφλ εθαξκνγέο αθφκα θαη νη βαζηθέο ιεηηνπξγίεο κπνξεί λα ηξνπνπνηεζνχλ ή λα αληηθαηαζηαζνχλ πιήξσο απφ άιιεο. Γηα παξάδεηγκα, ν ρξήζηεο κπνξεί λα ρξεζηκνπνηήζεη ηελ επηζπκεηή ηνπ εθαξκνγή γηα λα εκθαλίζεη ηηο θσηνγξαθίεο πνπ είλαη απνζεθεπκέλεο ζην ηειέθσλφ ηνπ, ή γηα λα έρεη πξφζβαζε ζηελ αιιεινγξαθία ηνπ. 1.2.3 Γιαδπαζηικόηηηα Οη πξνγξακκαηηζηέο Android κπνξνχλ λα δεκηνπξγήζνπλ πνιχπινθεο θαηλνηφκεο ε- θαξκνγέο κε ζρεδφλ απεξηφξηζηε ιεηηνπξγηθφηεηα. Γηα παξάδεηγκα, κηα εθαξκνγή κπνξεί λα κεηαδψζεη ηα δεδνκέλα απφ ην θηλεηφ κε ην δηαδίθηπν (θάηη πνπ κπνξεί λα πεξηιακβάλεη ην εκεξνιφγην θαη ηηο πξνγξακκαηηζκέλεο εθδειψζεηο, ιίζηα κε ηηο επαθέο, ηηο θσηνγξαθίεο, αθφκε θαη ηελ ηξέρνπζα ζέζε θηι) θαη λα ιάβεη φια φζα κπνξεί λα ρξεηαζηεί online θαζψο θαη λα εκθαλίδνληαη απηά ζηελ νζφλε ηεο ζπζθεπήο. -9-

1.2.4 Απλούζηεπη Ανάπηςξη Δθαπμογών Κινηηών. Η πιαηθφξκα παξέρεη ζηνπο πξνγξακκαηηζηέο αλάπηπμεο εθαξκνγψλ ηε δπλαηφηεηα ρξεζηκνπνίεζεο κηαο κεγάιεο πνηθηιίαο απφ βηβιηνζήθεο θαη παξέρεη φια ηα ρξήζηκα εθείλα εξγαιεία πνπ κπνξνχλ λα ρξεζηκνπνηεζνχλ γηα ηε δεκηνπξγία ηνπ πην ινγηζκηθνχ. Απηή ε νινθιεξσκέλε δέζκε απφ έηνηκα εξγαιεία απμάλεη ζεκαληηθά ηελ παξαγσγηθφηεηα ησλ πξνγξακκαηηζηψλ Android εθαξκνγψλ θαη ηνπο βνεζά λα δεκηνπξγήζνπλ πνιχπινθα θαη πινχζηα ινγηζκηθά, γξεγνξφηεξα θαη κε ιηγφηεξα ιάζε. (http://developer.android.com/index.html,tη είλαη Android,[9/11/2014]) 1.3 Google Play Σν Google Play, παιαηφηεξα γλσζηφ σο Android Market (Δηθφλα 2), απνηειεί έλα ηζηφηνπν ζηνλ νπνίν έλαο πξνγξακκαηηζηήο κπνξεί λα πξνσζήζεη θαη αλεβάζεη πξντφληα γηα ζπζθεπέο. Απνηειεί ην ειεθηξνληθφ θαηάζηεκα ηεο Google, πνπ αλαπηχζζεηαη θαη ζπληεξείηαη απφ ηε ίδηα. Η ππεξεζία επηηξέπεη ζηνπο ρξήζηεο λα πεξηεγεζνχλ θαη λα θαηεβάζνπλ κνπζηθή, πεξηνδηθά, βηβιία, ηαηλίεο, θαη εθαξκνγέο πνπ δεκνζηεχζεθαλ κέζσ ηνπ Google. Γηα λα χπαξμε δπλαηφηεηα δηαλνκήο πξντφλησλ ζην Store, ζα πξέπεη έλαο πξνγξακκαηηζηήο λα δεκηνπξγήζεη θαη λα δηαηεξεί έλαλ έγθπξν ινγαξηαζκφ κε δηθαηψκαηα πξνγξακκαηηζηή. (https://play.google.com/intl/all_gr/about/developer-distribution-agreement.html, Σν Google Play, [9/11/2014] Δηθφλα 2: Λνγφηππν ηνπ Google Play -10-

1.4 Δκδόζειρ Android Απφ ηελ δεκηνπξγία κέρξη ζήκεξα ην Android έρεη πεξάζεη απφ πνιιά αλαπηπμηαθά ζηάδηα κε απνηέιεζκα πιεζψξα εθδφζεσλ.πξνζαξκνζκέλεο πάληα ζηηο λέεο ηερλνινγηθέο θαηλνηνκίεο ησλ ζπζθεπψλ. Παξαθάησ αλαθέξνληαη επηγξακκαηηθά φιεο νη ππάξρνπζεο εθδφζεηο θαη ε εμέιημε ησλ βαζηθψλ ραξαθηεξηζηηθψλ ηνπ Android κέρξη ζήκεξα. Android Market εθαξκνγή ιήςεο θαη ελεκεξψζεηο κέζσ ηεο εθαξκνγήο (Android 1.0) πγρξνληζκφο κε ηελ εθαξκνγή Gmail..(Android 1.0) Google Search: Γίλνληαο ηελ δπλαηφηεηα ζηνπο ρξήζηεο γηα αλαδήηεζε ζην δηαδίθηπν. (Android 1.0) Τπνζηήξημε εηθνληθψλ πιεθηξνινγίσλ κε ηελ δπλαηφηεηα πξφβιεςεο θεηκέλνπ θαη ιεμηθφ γηα λα εκθαλίδεη ζηνλ ρξήζηε ηηο θαηάιιειεο ιέμεηο.( Android 1.5 Cupcake) Αλαπαξαγσγή θαη εγγξαθή βίληεν ζε MPEG-4 θαη 3GP. (Android 1.5 Cupcake) Τπνζηήξημε ηεο ηερλνινγίαο γηα CDMA / EVDO, 802 1x, VPNs, θαη έλα κεραληζκφ κεηαηξνπήο ηνπ θεηκέλνπ ζε νκηιία. (Android 1.6 Donut) Τπνζηήξημε γηα WVGA αλάιπζε νζφλεο. (Android 1.6 Donut) Τπνζηήξημε VPN (Virtual Private Networks) (Android 1.6 Donut) Τπνζηήξημε HTML5, αλαλέσζε UI browser ζε κηθξνγξαθίεο ζειηδνδείθηε θαη ηελ δπλαηφηεηα δηπινχ zoom. (Android 2.0 Éclair) Βειηηζηνπνηεκέλε ηαρχηεηα πιηθνχ θαη αλαλεσκέλν UI. (Android 2.0 Éclair) Google maps: Βειηησκέλε έθδνζε 3.1.2(Android 2.0 Éclair) Έληαμε ηεο κεραλήο JavaScript ηνπ Chrome V8 ζηε κεραλή αλαδήηεζεο.( Android 2.2 Froyo) Τπνζηήξημε Android Cloud ζηα κελχκαηα ησλ ζπζθεπψλ (C2DM) ε νπνία είλαη πιένλ μεπεξαζκέλε αιιά είλαη κηα ππεξεζία πνπ επηηξέπεη push notifications..( Android 2.2 Froyo) Τπνζηήξημε NFC (Near Field Communication), επηηξέπνληαο ηνλ ρξήζηε λα δηαβάζεη έλα NFC tag ελζσκαησκέλν ζε κηα αθίζα, απηνθφιιεην, ή δηαθήκηζε.( Android 2.3 Gingerbread) -11-

Τπνζηήξημε ηνπ πξσηφθνιινπ WebM γηα ηελ αλαπαξαγσγή video θαη AAC θσδηθνπνίεζε ήρνπ..( Android 2.3 Gingerbread) Απινπνηεκέλν multitasking: Γίλεη ηελ δπλαηφηεηα ζηνλ ρξήζηε ηε γξήγνξε κεηάβαζε απφ ηε κία εθαξκνγή ζηελ άιιε θαη επηηξέπεη ηελ πξνβνιή ζηηγκηφηππσλ ησλ δηεξγαζηψλ πνπ είλαη ζε εμέιημε..( Android 3.0 Honeycomb) Τπνζηήξημε δηπχξελσλ θαη ηεηξαπχξελσλ επεμεξγαζηψλ..( Android 3.0 Honeycomb) Δπθνιφηεξε δεκηνπξγία θαθέισλ κε ηελ ιεηηνπξγία drag-and-drop..(android 4.0 Ice Cream Sandwich) Βειηηψζεηο ζηα γξαθηθά, βάζεηο δεδνκέλσλ, νξζνγξαθηθφ έιεγρν θαη ηελ ιεηηνπξγηθφηεηα ηνπ Bluetooth (Android 4.0.3 Ice Cream Sandwich). Τπνζηήξημε OpenGL ES 3.0, επηηξέπνληαο ηε βειηίσζε ησλ γξαθηθψλ ελφο παηρληδηνχ. (Android 4.1 Jelly Bean). Πνιιέο βειηηψζεηο αζθάιεηαο, βειηηψζεηο απφδνζεο θαη δηνξζψζεηο ζθαικάησλ. (Android 4.1 Jelly Bean). Immersive mode γηα full screen εθαξκνγέο:πνπ δίλεη ηε δπλαηφηεηα ζηνπο πξνγξακκαηηζηέο λα εκθαλίδνπλ ηηο εθαξκνγέο ηνπο ζε full screen mode. (Android 4.4 KitKat). Screen recording δειαδή Βηληενζθφπεζε ηεο επηθάλεηαο εξγαζίαο, ε νπνία είλαη απαξαίηεηε θαη πνιχ ρξήζηκε ζην review κηαο εθαξκνγήο. (Android 4.4 KitKat). Νέν WebView κε κεγαιχηεξε ππνζηήξημε ζε ζειίδεο πνπ ν πεγαίνο θψδηθαο ηνπο βαζίδεηαη ζε HTML5, CSS3 θαη JavaScript. Οπζηαζηηθά δεκηνπξγεί ηελ αλάγθε χπαξμεο εθαξκνγψλ πξνγξακκαηηζκέλεο ζε HTML5 γηα ην Android. (Android 4.4 KitKat). 5.000 λέα APIs γηα ηνπο developers, ελψ επηηξέπεη ηε ζπλεξγαζία πνιιψλ δηαθνξεηηθψλ ζπζθεπψλ Android. (Android 5.0 Lollipop). Σν Material Design, ε λέα θηινζνθία ηεο Google ζην ζρεδηαζκφ Android θαη Chrome, θπξηαξρεί ζην λέν Android Lollipop, κε ηελ πιαηθφξκα λα έρεη πιένλ θαζαξφηεξν ζρεδηαζκφ, κε αξθεηέο νπηηθέο αιιαγέο, αλαλεσκέλν multi-tasking menu θαη αξθεηνχο λένπο ηξφπνπο αιιειεπίδξαζεο κε ηε ζπζθεπή ζαο κέζσ θσλεηηθψλ εληνιψλ (Android 5.0 Lollipop). (http://en.wikipedia.org/wiki/android_version_history Δθδφζεηο Android,[9/11/2014]) -12-

-13-

2 ηο εζυηεπικό μιαρ εθαπμογήρ 2.1 Απσιηεκηονική ηος Android Η αξρηηεθηνληθή ηνπ ιεηηνπξγηθνχ ζπζηήκαηνο απνηειείηαη απφ 5 βαζηθά επίπεδα, ηνλ ππξήλα Linux (Linux Kernel),ηηο βηβιηνζήθεο (Libraries),ηελ εηθνληθή κεραλή Dalvik (Dalvik VM),ηνλ ρξφλν εθηέιεζεο (Android Runtime) θαη ην πιαίζην εθαξκνγήο (Application Framework).Παξαθάησ παξνπζηάδεηαη ε αξρηηεθηνληθή εηθνληθά Δηθφλα 3 Αξρηηεθηνληθή ηνπ ζπζηήκαηνο Android Πσρήνας Linux (Kernel): Σν Android είλαη βαζηζκέλν θπξίσο ζην Linux πάλσ ζην νπνίν ηξέρνπλ δηάθνξα ινγηζκηθά φπσο ην γξαθηθφ πεξηβάιινλ θαη βηβιηνζήθεο ζπζηήκαηνο. Δίλαη ζρεδηαζκέλν ζηελ έθδνζε 2.6 ησλ Linux, ιφγσ ηεο αλάγθεο γηα: δηαρείξηζε κλήκεο, δηαρείξηζε ελέξγεηαο, δηαρείξηζε δηεξγαζηψλ,δηαρείξηζε ησλ drivers ησλ ζπζθεπψλ,θαη δηαρείξηζε δηθηχσζεο Βιβλιοθήκες: ην δεχηεξν επίπεδν ηεο ζηνίβαο έρνπκε ηηο βηβιηνζήθεο ηνπ Android. Απηέο νπζηαζηηθά απνηεινχλ ηα APIs πνπ είλαη δηαζέζηκα ζηνπο πξνγξακκαηηζηέο γηα ηελ αλάπηπμε ησλ εθαξκνγψλ. Σν ζχλνιν ζρεδφλ ησλ βηβιηνζεθψλ είλαη γξακκέλν ζε -15-

C θαη C++, νη νπνίεο έρνπλ κεηαγισηηηζηεί γηα ηε ρξήζε ηνπο απφ ην ιεηηνπξγηθφ. Μεξηθέο απφ ηηο θχξηεο βηβιηνζήθεο ηνπ Android είλαη ε System C library,νη Media Framework Library βηβιηνζήθεο πνιπκέζσλ, ε Surface Manager πνπ δηαρεηξίδεηαη ηελ νζφλε,ε LibWebCore,ε SGL θαη OpenGL ES γηα δηαρείξηζε γξαθηθσλ2d θαη 3D,ε SSL γηα αζθαιή κεηαθνξά δεδνκέλσλ,ε WebKit γηα ηελ πινήγεζε ζην δηαδίθηπν θαη ηέινο ε SQLite γηα ηηο βάζεηο δεδνκέλσλ. Χρόνος εκτέλεσης ευαρμογής (Android Runtime): Δδψ ππάξρνπλ νη βαζηθέο βηβιηνζήθεο ηεο Java θαη ε εηθνληθή κεραλή Dalvik. Η Dalvik Virtual Machine απνηειεί κηα εηθνληθή κεραλή πνπ εθηειεί ηηο εθαξκνγέο θαη κπνξεί λα εθηειεί πνιιέο εθαξκνγέο καδί ηαπηφρξνλα, αλεμάξηεηα θαη κε αζθάιεηα. Πλαίσιο ευαρμογής(application Framework):Σν ζπγθεθξηκέλν επίπεδν παξέρεη ηηο δνκηθέο κνλάδεο πνπ ρξεζηκνπνηνχληαη γηα ηελ δεκηνπξγία Android εθαξκνγψλ θαη δίλεη ηελ δπλαηφηεηα ζηνπο πξνγξακκαηηζηέο λα δεκηνπξγήζνπλ εθαξκνγέο.κάπνηεο απφ ηηο βαζηθέο νληφηεηεο ηνπ ζπγθεθξηκέλνπ επηπέδνπ είλαη :,ην View System: πνπ επηηξέπεη ηε ρξήζε πηλάθσλ, ιηζηψλ, θνπκπηψλ, web browser θιπ.,ν πάξνρνο πεξηερνκέλνπ (Content Providers) πνπ δίλεη ηελ δπλαηφηεηα ζηηο εθαξκνγέο λα έρνπλ πξφζβαζε ζε δεδνκέλα άιισλ εθαξκνγψλ, ν δηαρεηξηζηήο πφξσλ (Resource Manager), πνπ παξέρεη ηελ πξφζβαζε ζε πφξνπο φπσο strings, layout files, εηθφλεο, ν δηαρεηξηζηήο θνηλνπνηήζεσλ (Notification Manager) πνπ δηαρεηξίδεηαη ηα κελχκαηα πνπ έρεη επηηξαπεί λα εκθαλίζεη ε εθαξκνγή γηα ηελ ελεκέξσζε ηνπ ρξήζηε, ν δηαρεηξηζηήο δξαζηεξηνηήησλ (Activity Manager) πνπ δηαρεηξίδεηαη ηνλ έιεγρν ηνπ θχθινπ δσήο κηαο εθαξκνγήο θαη ν δηαρεηξηζηήο ηνπνζεζίαο (Location Manager) πνπ δηαρεηξίδεηαη ηελ ηνπνζεζία ηεο ζπζθεπήο (Stefan Brahler,2010) 2.2 Απσεία και θάκελοι Κάζε εθαξκνγή απνηειείηαη απφ έλα ζχλνιν αξρείσλ θαη θαθέισλ δνκεκέλα ζε κνξθή project, ηα νπνία αθνχ γίλνπλ compiled κέζσ ηνπ Android SDK καο δίλνπλ ην αξρείν.apk πνπ θάλνπκε εγθαηάζηαζε ζε κηα ζπζθεπή θαη απνηειεί ηελ εθαξκνγή καο. Μηα εθαξκνγή απνηειείηαη απφ πιήζνο θαθέισλ φπνπ κέζα απνζεθεχνληαη δνκηθά ζηνηρεηά ηεο εθαξκνγήο φπσο εηθφλεο, δηεπαθέο (layout), δξαζηεξηφηεηεο (activity) -16-

Κάζε εθαξκνγή ραξαθηεξίδεηαη απφ έλα κνλαδηθφ φλνκα παθέηνπ (package name) ην νπνίν ρξεζηκνπνηείηαη απφ ην ιεηηνπξγηθφ ζχζηεκα γηα αλαγλψξηζε ηεο εθαξκνγήο θαζψο επίζεο θαη απφ πνιιά ππνπαθέηα, εθφζνλ απηφ είλαη απαξαίηεην ιφγσ ηεο πνιππινθφηεηαο ηεο εθαξκνγήο. 2.2.1 Σο απσείο AndroidManifest.xml Κάζε project εθαξκνγήο πεξηέρεη έλα αξρείν ζην νπνίν βξίζθνληαη θαηαρσξεκέλεο νη ζεκαληηθφηεξεο πιεξνθνξίεο ηεο εθαξκνγήο γηα ρξήζε απφ ην ιεηηνπξγηθφ ζχζηεκα. Σν αξρείν απηφ νλνκάδεηαη AndroidManifest.xml. Σν αξρείν απηφ απνηειεί δσηηθήο ζεκαζίαο θαη ιάζε ζε απηφ κπνξνχλ λα δεκηνπξγήζνπλ επηπινθέο θαη ζθάικαηα ζηελ εθαξκνγή. ην αξρείν απηφ θπξίσο εκπεξηέρνληαη Σν φλνκα ηνπ παθέηνπ ηεο εθαξκνγήο Σν φλνκα ηεο εθαξκνγήο ην εχξνο ησλ APIs πνπ έρεη ζηφρν λα θαιχςεη ε εθαξκνγή (min/max sdk) Οη άδεηεο ρξήζεο πνπ δεηάεη ε εθαξκνγή φπσο γηα ζχλδεζε ζην internet, γηα ρξεζηκνπνίεζε GPS, ρξήζεο ηειεθσληθψλ ππεξεζηψλ θ.α. Οξηζκφ φισλ ησλ δξαζηεξηφηεησλ (Activity), ( http://developer.android.com/, Οδεγφο Android εθαξκνγήο, [14/10/2014] ) 2.2.2 Οι θάκελοι src & res ηνλ θάθειν src (source) πεξηέρνληαη ηα αξρεία θιάζεο ηεο Java φισλ ησλ Activities, Services, Content Providers, βνεζεηηθά αξρεία, θιπ. Ο θάθεινο πεξηέρεη ην παθέην ή ηα παθέηα ηεο εθαξκνγήο ηα νπνία πεξηέρνπλ ηα αξρεία Java, καδί κε ηα ππνπαθέηα θαη απνηειεί ηνλ κνλαδηθφ θάθειν ζην project ζηνλ νπνίν απνζεθεχνληαη ηα αξρεία ηνπ θψδηθα καο. Ο θάθεινο res (resources) πεξηέρεη φια ηα αξρεία εηθφλαο, θεηκέλνπ, xml layout, θιπ ηα νπνία ρξεζηκνπνηνχληαη απφ ηηο Activities πνπ βξίζθνληαη ζηνλ θάθειν src. Μέζα ζην θάθειν res πεξηέρνληαη ππνθάθεινη ηνπ θχξηνπ θαθέινπ res, φπσο είλαη ν θάθεινο drawable ν νπνίνο πεξηέρεη ηηο εηθφλεο πνπ ρξεζηκνπνηεί ε εθαξκνγή καο θαη ρσξίδεηαη ζε βαζκίδεο κε ζθνπφ ηελ θιηκάθσζε ησλ εηθφλσλ (πρ drawable-hdpi, drawable-ldpi, drawable-mdpi θ.α), ν θάθεινο layout ν νπνίνο πεξηέρεη φια ηα αξρεία xml ηα νπνία νξίδνπλ ηα δηάθνξα layouts πνπ ππάξρνπλ ζηελ εθαξκνγή, ν θάθεινο -17-

values ζηνλ νπνίν απνζεθεχνληαη φινη νη πφξνη θεηκέλνπ πνπ ρξεζηκνπνηνχληαη ζηελ εθαξκνγή φπσο ην string.xml θαη style.xml, ν θάθεινο menu πνπ πεξηέρεη αξρεία XML πνπ πεξηγξάθνπλ ηα κελνχ ηεο εθαξκνγήο ( http://developer.android.com/, Οδεγφο Android εθαξκνγήο, [14/10/2014] ) 2.2.3 Οι ςπόλοιποι θάκελοι και απσεία Έλα project απνηειείηαη κε πεξηζζφηεξνπο απφ ηνπο 3 βαζηθνχο θαθέινπο, θάπνηνη απφ ηνπο νπνίνπο κπνξεί λα ζεσξεζνχλ θαη πεξηηηνί αλαιφγσο ηελ πεξίπησζε. Να ηνλίζνπκε φηη επηηξέπεηαη ε δεκηνπξγία λέσλ θαθέισλ πέξα ησλ πξνεπηιεγκέλσλ κε ηελ πξνυπφζεζε φηη ζπκπεξηιακβάλεηαη ζηε θαηάιιειε ηνπνζεζία κε ην θαηάιιειν πιηθφ. Gen: Δίλαη ν θάθεινο πνπ πεξηέρεη πφξνπο πνπ δεκηνπξγήζεθαλ απηφκαηα φπσο ην R.java πνπ πεξηέρεη αλαθνξέο ζε πφξνπο ηεο εθαξκνγήο. Αssets: Ο θάθεινο πεξηέρεη ηηο πξψηεο ηεξαξρίεο Δίλαη απιά κηα κε δνκεκέλε ηεξαξρία ησλ αξρείσλ Libs: ζε απηφ ην θάθειν ηνπνζεηνχληαη φιεο νη εμσηεξηθέο βηβιηνζήθεο πνπ ρξεζηκνπνηνχληαη απφ ην project Bin: Δίλαη ε πεξηνρή πνπ ρξεζηκνπνηείηαη απφ ην compiler γηα λα εηνηκάζεη ηνπο θαθέινπο ζε apk file Proguard-project.txt: Σν αξρείν ProGuard βνεζά ζηε ζπξξίθλσζε ηνπ θψδηθα θαη αθαηξεί ηνλ αρξεζηκνπνίεην θψδηθα θαζψο επίζεο μαλά νλνκάδεη ηηο θιάζεηο, κεζφδνπο θαη πεδία ζε ζεκαζηνινγηθά αθαλή νλφκαηα κε απνηέιεζκα κηθξφηεξν ζε κέγεζνο apk. Project.properties: Σν αξρείν απηφ είλαη ν βαζηθφο θάθεινο ηνπ project θαη πεξηέρεη πιεξνθνξίεο φπσο ν ζηφρνο ηνπ build platform (http://www.compiletimeerror.com, Γνκή Android εθαξκνγήο, [14/10/2014] ) 2.3 Γιεπγαζίερ και νήμαηα ην Android ππάξρνπλ πέληε είδε δηεξγαζηψλ ηα νπνία ειέγρνπλ ηηο ζπκπεξηθνξέο θαη θαη ηα πξνγξάκκαηα πνπ εθηεινχληαη ζε έλα ζχζηεκα.σα είδε απηά έρνπλ δηαθνξεηηθή ζεκαζία θαη είλαη απζηεξά θαζνξηζκέλα. Παξαθάησ πεξηγξάθεηαη ε ηεξαξρία ησλ θιάζεσλ δηεξγαζίαο πνπ έρεη σο εμήο Foreground: Δίλαη ε δηεξγαζία πνπ δείρλεη ηη θάλεη ν ρξήζηεο εθείλε ηε ζηηγκή. -18-

Visible: Δίλαη ε δηεξγαζία πνπ δελ έρεη ζηνηρεηά foreground, αιιά κπνξεί λα επεξεάζεη ηη βιέπεη ν ρξήζηεο ζηελ νζφλε. Background: Μηα δηαδηθαζία ε νπνία δελ είλαη νξαηή απφ ηνλ ρξήζηε αιιά ιεηηνπξγεί Empty: Δίλαη νη δηεξγαζίεο πνπ δε πεξηέρνπλ ελεξγά ζηνηρεία ηεο εθαξκνγήο. Ο κφλνο ιφγνο πνπ ππάξρνπλ είλαη γηα πξνζσξηλή απνζήθεπζε φκσο εάλ ε κλήκε εμαληιεζεί επηιέγεη πηα δηεξγαζία ζα ηεξκαηηζηεί γηα ηελ απειεπζέξσζε πφξσλ κλήκεο. πλήζσο νη δηεξγαζίεο πνπ δηαγξάθνληαη ζε κηα ηέηνηα πεξίπησζε είλαη ε empty θαη Βackground, κε απνηέιεζκα λα κελ ζπκβαίλεη κεηαβνιή ζην ηη έλαο ρξήζηεο βιέπεη. Όπσο ζηα ζπζηήκαηα Linux έηζη θαη ζην Android κηα δηεξγαζία κπνξεί λα πεξηέρεη πνιιά λήκαηα ψζηε λα δηαρσξίδεηαη ε δηεπαθή απφ ηελ είζνδν/έμνδν ιεηηνπξγία ή απφ ππνινγηζκνχο κεγάιεο δηάξθεηαο θαη (multi-threaded). (http://developer.android.com/guide/components/processes-and-reads.html, Γηαδηθαζίεο θαη Νήκαηα, [9/11/2014]) 2.4 Αναηομία μιαρ εθαπμογήρ Μηα εθαξκνγή κπνξεί λα γξαθεί θαη κε άιιεο γιψζζεο πξνγξακκαηηζκνχ φπσο C, C++, C#, θαη PHP. Η Java φκσο είλαη απηήλ ε νπνία πξνσζείηαη απφ ηελ Google θαη θαζηεξψζεθε σο θπξία γιψζζα Σα εξγαιεία SDK κεηαγισηηίδνπλ ηα παθέηα θαη ηνπο πφξνπο πνπ ππάξρνπλ θαη παξάγνπλ κηα εθαξκνγή κε θαηάιεμε.apk πνπ είλαη απηή πνπ ζα εγθαηαζηήζεη ν ρξήζηεο ζηελ ζπζθεπή ηνπ Μηα εθαξκνγή απνηειείηαη απφ ηέζζεξα βαζηθά ζηνηρεία πνπ θαζνξίδνπλ ηελ ζπκπεξηθνξά ηεο. Κάζε έλα ζηνηρείν αλ θαη δείρλεη λα εμαξηάηαη απφ άιια ζπζηαηηθά α- πνηειεί κηα μερσξηζηή νληφηεηα κε μερσξηζηέο ιεηηνπξγίεο.αλαιφγσο ην είδνο ηνπ θάζε ζπζηαηηθφ ρξεζηκεχεη γηα άιιν ζθνπφ θαη έρεη δηαθνξεηηθφ θχθιν δσήο. 2.4.1 Γπαζηηπιόηηηερ Μία δξαζηεξηφηεηα (Activity) απνηειεί ηελ νζφλε φπνπ αιιειεπηδξά ν ρξήζηεο κε ηελ εθαξκνγή θαη πεξηέρεη ηα νπηηθά ζηνηρεία πνπ παξνπζηάδνπλ ηα δεδνκέλα (φπσο κηα εηθφλα) ή επηηξέπνπλ ηελ αιιειεπίδξαζε κε ηνλ ρξήζηε (φπσο έλα πιήθηξν). πλήζσο ππάξρνπλ παξαπάλσ Activity ηνπ ελφο αλάινγα κε ηηο νζφλεο πνπ εκθαλίδεη, ε ζχλδεζε ησλ νπνίσλ γίλεηαη κέζσ ελφο Intent, αιιά θαζέλα απφ απηά κπνξεί θαη λα ππάξρεη α- λεμάξηεηα ησλ άιισλ φπσο γηα παξάδεηγκα κηα νζφλε εθθίλεζεο -19-

Όηαλ έλα Activity αλνίγεη,ην πξνεγνχκελν ζηακαηά λα βξίζθεηαη ζην πξνζθήλην αιιά δελ δηαγξάθεηαη εθηφο αλ ην ζχζηεκα ρξεηάδεηαη πφξνπο,ζπλήζσο ζε ζέκαηα κλήκεο. Οη θαηαζηάζεηο πνπ κπνξεί λα βξεζεί έλα Activity είλαη νη resumed,paused θαη stopped. Όηαλ ν ρξήζηεο αιιειεπηδξά κε έλα Activity απηφ είλαη ζε θαηάζηαζε resumed,αλ φκσο βξεζεί έλα άιιν activity πάλσ απφ ην ηξέρσλ πνπ δελ θαιχπηεη φιε ηελ νζφλε απαξαίηεηα ηφηε ην πξνεγνχκελν κπαίλεη ζε θαηάζηαζε paused κνινλφηη ιεηηνπξγεί αθφκα θαλνληθά πίζσ απφ ην λέν activity. Όηαλ φκσο έλα activity θαηαιακβάλεη πιήξσο ηελ νζφλε ηφηε ην πξνεγνχκελν κπαίλεη ζε θαηάζηαζε stopped ην νπνίν επίζεο ιεηηνπξγεί θαλνληθά κέρξη ην ζχζηεκα λα ην απνθαζίζεη. Δηθφλα 5:Κχθιν δσήο ελφο Activity Σα Αctivity επεηδή αιιειεπηδξνχλε κε ηνλ ρξήζηε ζπλήζσο απαηηνχλ θάπνην ρξφλν γηα λα εκθαλίζνπλ ηα δεδνκέλα, έηζη έρνπλ ηελ δπλαηφηεηα λα παξνπζηάδνπλ ηα θαηάιιεια κελχκαηα ελεκέξσζεο. Αλ φκσο είλαη αξθεηά ρξνλνβφξεο νη ιεηηνπξγίεο ηφηε είλαη πξνηηκφηεξν λα ρξεζηκνπνηνχληαη Services ( http://developer.android.com/, Οδεγφο Android εθαξκνγήο, [14/10/2014] ) 2.4.2 Τπηπεζίερ Οη Τπεξεζίεο (Services) ρξεζηκνπνηνχληαη γηα ηελ πινπνίεζε ησλ ρξνλνβφξσλ δηαδηθαζηψλ ζε κηα εθαξκνγή ρσξίο θαζπζηεξήζεηο αθνχ δε θαίλνληαη ζην παξαζθήλην θαη -20-

δελ αιιειεπηδξνχλε κε ηνλ ρξήζηε.μπνξεί λα ζπλερίδνπλ αθφκα θαη αλ ν ρξήζηεο θιείζεη ηελ εθαξκνγή πνπ ην θάιεζαλ. Σα Services ρσξίδνληαη ζε δπν θαηεγνξίεο ζε Started θαη Βound.Σα πξψηα δεκηνπξγνχληαη φηαλ μεθηλά θάπνην άιιν ζπζηαηηθφ θαη ηα επφκελα φηαλ δεζκεχνληαη απφ θάπνην ζπζηαηηθφ Δηθφλα 6 Κχθινο δσήο Services ηελ πξψηε θαηεγνξία κε έλα ζπζηαηηθφ φπσο έλα Activty,ην startservice() θαιεί έλα Service. ην νπνίν θαη λα ηεξκαηηζηεί ην Activity απηφ ζπλερίδεη λα ηξέρεη. δηφηη γίλεηαη αλεμάξηεην φηαλ θιηζεί.μηα ρξήζε ηνπ Service είλαη ζην θαηέβαζκα αξρείνπ απφ ην δηαδίθηπν ην νπνίν κφιηο νινθιεξσζεί ηεξκαηίδεη κνλφ ηνπ. ηε δεχηεξε πεξίπησζε έλα ζπζηαηηθφ φπσο έλα Activity θαιεί έλα Service κε ηελ κέζνδν bindservice(). ηελ νπζία ην ζπζηαηηθφ δεζκεχεη ην Service θαη επηθνηλσλνχλ ρξεζηκνπνηψληαο αηηήκαηα θαη ιακβάλνληαο απνηειέζκαηα θαη ν θχθινο δσήο ηνπ εί- -21-

λαη φζν είλαη δεζκεπκέλα,φηαλ φκσο δεζκεπηνχλ απφ παξαπάλσ ζπζηαηηθά απηά ηεξκαηίδνπλ κφιηο απνδεζκεπηνχλ απφ φια ηα ζπζηαηηθά πνπ ηα θάιεζαλ. Παξφια πνπ ηα Service είλαη αλεμάξηεηα,ηξέρνπλ θαη απηά ζην main thread θαη γηα ηνλ ιφγν απηφ φηαλ έλα Service πξφθεηηαη λα ρξεζηκνπνηήζεη εληαηηθά ηελ CPU πξέπεη λα δεκηνπξγείηε έλα λέν thread κέζα ζην Service ( http://developer.android.com/, Οδεγφο Android εθαξκνγήο, [14/10/2014] ) 2.4.3 Παποσείρ πεπιεσομένος θνπφο ησλ Παξνρψλ πεξηερνκέλνπ (Content providers) είλαη ε αλάθηεζε θαη ε απνζήθεπζε δεδνκέλσλ κέζα ζηηο εθαξκνγέο Android.Οη Content providers επίζεο ρξεζηκνπνηνχληαη γηα ηελ παξνρή θαη αληαιιαγή δεδνκέλσλ κεηαμχ δηαθφξσλ εθαξκνγψλ κε απαξαίηεηε πξνυπφζεζε λα έρνπλ νξηζηεί ηα θαηάιιεια δηθαηψκαηα πξφζβαζεο ζηα δεδνκέλα.τπάξρνπλ πξνεπηιεγκέλνη γηα εηθφλα, βίληεν επαθέο θαη ξπζκίζεηο, νη νπνίνη βξίζθνληαη ζην παθέην android.provider. Ο κφλνο ηξφπνο γηα κηα εθαξκνγή λα έρεη επαθή κε έλαλ content provider είλαη κνλφ κέζσ ContentResolver, θαη πνηέ άκεζα. ( http://developer.android.com/, Οδεγφο Android εθαξκνγήο, [14/10/2014] ) 2.4.4 Γιαδικαζίερ παπαζκηνίος Σν Android παξέρεη δηαδηθαζίεο παξαζθελίνπ (BroadcastReceiver) γηα ηελ ελεκέξσζε ζηνλ ρξεζηή κε κηα εηδνπνίεζε πρ ιήςε ελφο κελχκαηνο, ε ρακειήο κπαηαξηάο. Οη broadcast receivers είλαη interfaces πνπ ελεκεξψλνληαη γηα έλα ζπγθεθξηκέλν γεγνλφο απφ ην ιεηηνπξγηθφ ζχζηεκα θαη ηφηε ελεξγνπνηνχληαη θαζψο επίζεο θαη απφ εθαξκνγέο φπσο κηα εηδνπνίεζε φηη θάπνηα δεδνκέλα θαηέβεθαλ.γελ έρνπλ user Interface αιιά κπνξνχλ λα ιάβνπλ πιεξνθνξίεο θαη λα μεθηλήζνπλε έλα Activity ζαλ αληαπφθξηζε ή λα ελεκεξψζνπλ ηνλ ρξεζηή κέζσ status bar Η θιάζε Broadcast Receiver ελεξγνπνηείηαη κε ηε κέζνδν OnReceive() θαη αθπξψλεηαη θαηά ηελ επηζηξνθή απφ ηε κέζνδν απηή. ( http://developer.android.com/, Οδεγφο Android εθαξκνγήο, [14/10/2014] ) 2.4.5 Intents ε κηα εθαξκνγή Android δελ ππάξρεη ζεκείν εθθίλεζεο.κάζε εθαξκνγή κπνξεί λα μεθηλήζεη απφ δηάθνξα κέξε θαη ζπζηαηηθά αλαιφγσο ηελ πεξίπησζε πνπ παξνπζηάδε- -22-

ηαη. Απνηειεί ρξήζηκν εξγαιείν αθνχ έηζη κπνξνχκε λα μεθηλάκε άιιεο εθαξκνγέο κέζσ ηεο δηθήο καο κε απαξαίηεηε πξνυπφζεζε ε ζσζηή άδεηα.έηζη δίλεηαη ζηνλ ρξεζηή ε εληχπσζε φηη κηα εθαξκνγή είλαη εληαία θαη φρη φηη ζπλεξγάδνληαη κεηαμχ ηνπο γηα ην απνηέιεζκα πνπ απηφο ιακβάλεη ηελ πξαγκαηηθφηεηα φκσο νη εθαξκνγέο δελ κπνξνχλ λα ηξέμνπλ θνκκάηηα άιισλ εθαξκνγψλ απφ κνλέο ηνπο αιιά κφλν ελεκεξψλνπλ ην ζχζηεκα γηα ηελ πξφζεζε απηήλ κέζσ ησλ Intents. Έλα Intent ελφο ζπζηήκαηνο κπνξεί λα μεθηλήζεη απφ ηα Activities, ηα Services θαη ηνπο Broadcast receivers Απνηεινχλ αζχγρξνλα κελχκαηα πνπ ζπλδένπλ ηα ζπζηαηηθά κεηαμχ ηνπο θαηά ηελ εθηέιεζε αλεμαξηήησο πνηα εθαξκνγή ηα θάιεζε.έλα Intent κπνξεί λα έρεη γεληθφ πεξηερφκελν δίλνληαο κηα ελέξγεηα ζε έλα Αctivity φπσο ε πξνβνιή κηαο θσηνγξαθίαο ή ζπγθεθξηκέλνπ πεξηερνκέλνπ κε ηελ ρξήζε URI ηνπ ζπζηαηηθνχ πνπ ζέινπλ λα εθηειέζνπλ δεηψληαο απφ ην ζχζηεκα λα εθηειέζεη ζπγθεθξηκέλν Activity κε ην πέξαζκα ζπγθεθξηκέλσλ ηδηνηήησλ.ηηο πεξηζζφηεξεο πεξηπηψζεηο έλα intent επηζηξέθεη έλα intent φπσο γηα παξάδεηγκα ζηελ απνζηνιή ελφο email πνπ κφιηο ν ρξήζηεο ην πξαγκαηνπνηήζεη ηελ ελέξγεηα επηζηξέθεη πάιη ζην πξνεγνχκελν Activity( http://developer.android.com/, Οδεγφο Android εθαξκνγήο, [14/10/2014] ) 2.5 Αζθάλεια ζηο Android Σε ζηηγκή πνπ κηα εθαξκνγή εγθαζίζηαηαη ζηε ζπζθεπή, ιεηηνπξγεί απνθιεηζηηθά ζηε δηθηά ηεο εηθνληθή κεραλή ε νπνία απνηειεί θαη ην πιαίζην αζθαιείαο (sandbox) ηεο εθαξκνγήο. Σν Android είλαη έλα ιεηηνπξγηθφ ζχζηεκα πνιιψλ ρξεζηψλ ζην νπνίν ε θάζε εθαξκνγή αληηκεησπίδεηαη ζαλ δηαθνξεηηθφο ρξήζηεο (δηαδηθαζία sandbox). Απνδίδεη ζε έλαλ ρξήζηε κνλαδηθφ user ID πνπ απνηειεί έλαλ θσδηθφ πνπ κφλν ην ζχζηεκα γλσξίδεη φπνπ εθεί νξίδεη φιεο ηηο άδεηεο πνπ έρεη ε εθαξκνγή ζηνπο πφξνπο ηνπ ζπζηήκαηνο φπσο πρ ρξήζε GPS. Δπίζεο θάζε εθαξκνγή ηξέρεη ζηελ δηθή ηεο εηθνληθή κεραλή (VM) έηζη ψζηε ν θψδηθαο λα είλαη απνκνλσκέλνο απφ ηηο ππφινηπεο εθαξκνγέο. Με ηνλ ηξφπν απηφλ εθαξκφδεηαη ε πνιηηηθή ησλ ειαρίζησλ δηθαησκάησλ απφ ην Android ε πεξηπηψζεηο ε εθαξκνγή ρξεηάδεηαη λα κνηξαζηεί δεδνκέλα κε άιιεο εθαξκνγέο ή κε ππεξεζίεο ηφηε ε εθαξκνγή είηε κνηξάδεηαη ην user ΙD θαη έρεη θνηλνχο πφξνπο κε -23-

ηελ άιιε εθαξκνγή θαη ηξέρνπλ ζην ίδην Virtual Machine,είηε δεηά λέεο άδεηεο απφ ην ζχζηεκα φπνπ ν ρξήζηεο πξέπεη λα εγθαηαζηήζεη.. Να αλαθέξνπκε φηη ε Google Υξεζηκνπνηεί έλα πξφγξακκα ην Google Bouncer ην νπνίν ζαξψλεη ηηο εθαξκνγέο πνπ αλεβαίλνπλ ζην Google Play Store γηα θαθφβνπια ινγηζκηθά, φπνπ επηζεκάλεη ηηο χπνπηεο εθαξκνγέο θαη ελεκεξψλεη ηνλ ρξήζηε γηα ηελ απεγθαηάζηαζε ηνπ ινγηζκηθνχ απηνχ. Να αλαθέξνπκε φηη απφ ην Android 4.2 Jelly Bean θαη ζε κεηέπεηηα εθδφζεηο ππάξρεη έλα πξφγξακκα ζάξσζεο ησλ εθαξκνγψλ ζηελ ζπζθεπή -24-

-25-

3 Σεσνολογίερ ανάπηςξηρ 3.1 Eclipse Android SDK H κεηαγιψηηηζε, ε εθηέιεζε θαη ε πινπνίεζε κηαο εθαξκνγήο Android γίλεηαη ζπλήζσο ζε θάπνην πεξηβάιινλ θαηάιιειν γηα αλάπηπμε θψδηθα κε ηελ ρξήζε ηεο γιψζζαο πξνγξακκαηηζκνχ Java,ε νπνία απνηειεί θχξηα γιψζζα γηα ηελ αλάπηπμε Android ε- θαξκνγψλ. Απαξαίηεηε πξνυπφζεζε είλαη ε εγθαηάζηαζε ζηνλ ππνινγηζηή ηνπ Java Development Kit (JDK) ην νπνίν δηαζέηεη φια ηα εξγαιεία ηεο γιψζζαο. Σν πεξηβάιινλ πνπ ρξεζηκνπνηήζεθε ζηε ζπγθεθξηκέλε πηπρηαθή είλαη ην Eclipse. Άιιε επηινγή είλαη ην πεξηβάιινλ Android Studiν ην νπνίν παξέρεη λέεο δπλαηφηεηεο θαη βειηηψζεηο ζε ζρέζε κε ην Eclipse ADT θαη ζα είλαη ην επίζεκν Android IDE κφιηο είλαη έηνηκν,αθνχ αθφκα βξίζθεηε ζε έθδνζε beta. Απαξαίηεην εξγαιείν γηα ηελ αλάπηπμε εθαξκνγψλ Android απνηειεί θαη ην Android SDK (Software Development Kit). Γηα λα επηηεπρζεί ε ζχλδεζε ηνπ Android SDK κε ην IDE ζα πξέπεη λα εγθαηαζηαζεί ζην ππάξρσλ πεξηβάιινλ ην ADT (Android Development Tools) plugin, ην νπνίν είλαη απαξαίηεην γηα ηελ κεηαγιψηηηζε θαη εθηέιεζε ησλ πξνγξακκάησλ. Πιένλ φκσο φια ηα παξαπάλσ παξέρνληαη ζαλ εληαία δνκή απφ ηνλ επίζεκν ηζηφηνπν ηνπ Android. Σν ADT παξέρεη ηελ δπλαηφηεηα εγθαηάζηαζεο ελφο πξνζνκνησηή θηλεηήο ζπζθεπήο (Android Virtual Device, AVD) (Δηθφλα 4), δίλνληαο ηελ δπλαηφηεηα ζηνλ πξνγξακκαηηζηή κέζσ ηνπ ππνινγηζηή ηνπ λα πξνζνκνηψλεη θαη λα δηαρεηξίδεηαη έλα πεξηβάιινλ θηλεηνχ ηειεθψλνπ (smartphone) θαη ηακπιέηαο (tablet) κε ην ιεηηνπξγηθφ Android, ζε επίπεδν ινγηζκηθνχ (software) αιιά θαη πιηθνχ (hardware). Ο πξνζνκνησηήο πνπ εγθαζίζηαηαη κέζσ ηνπ ADT plugin είλαη ην ζπζηαηηθφ πνπ παίδεη νπζηαζηηθφ ξφιν ζε έλα επηηπρεκέλν απνηέιεζκα ζηελ ηειηθή εκθάληζε θαη ιεηηνπξγία ηεο εθαξκνγήο ηνπ. Ο πξνγξακκαηηζηήο κπνξεί λα επηιέμεη εμαξρήο ην κέγεζνο ηεο RAM, νζφλεο, ηελ έθδνζε Android πνπ ζα ρξεζηκνπνηεί θιπ. Έλαο πξνζνκνησηήο φκσο έρεη ζαλ βαζηθφ πιενλέθηεκα ηελ ρξήζε πνιιψλ πφξσλ κε απνηέιεζκα λα είλαη πνιιή αξγή ζηεο εθηέιεζε κηαο εθαξκνγήο.αλ ελαιιαθηηθή -27-

παξέρεηαη ε δπλαηφηεηα ηεο δνθηκήο ζε πξαγκαηηθή ζπζθεπή απφ ηνλ πξνγξακκαηηζηή κε άκεζε ζχλδεζε ε κε εμαγσγή θαη εγθαηάζηαζε ηνπ apk ( http://developer.android.com/, Οδεγφο Android εθαξκνγήο SDK, [14/10/2014] ) Δηθφλα 4: Πξνζνκνησηήο ηνπ ADT 3.2 Java Η Java ζρεδηάζηεθε απφ ηελ εηαηξεία πιεξνθνξηθήο Sun Microsystems ην θζηλφπσξν ηνπ 1995 θαη απνηειεί κηα αληηθεηκελνζηξαθήο γιψζζα πξνγξακκαηηζκνχ. Έγηλε δεκνθηιήο ηφζν γηα ηα ραξαθηεξηζηηθά ηεο φζν θαη γηα ηελ δσξεάλ δηαλνκή. Πεξηζζφηεξνη απφ δχν εθαηνκκχξηα πξνγξακκαηηζηέο γλσξίδνπλ ηελ γιψζζα θαη ηελ ρξεζηκνπνηνχλ ζε κέξε φπσο ε NASA, ε IBM θαη ε Kaiser Permanente. Αξρηθά ε ρξεζηκφηεηα ηεο επηθεληξσλφηαλ ζηε ζπγγξαθή κηθξψλ πξνγξακκάησλ ζε ηζηνζειίδεο. ήκεξα ηελ Java κπνξνχκε λα ηελ εληνπίζνπκε ζε δηάθνξεο ζέζεηο απφ ηειέθσλα κέρξη κεγάινπο ππνινγηζηέο θαη Web Servers -28-

Σα πξνγξάκκαηα ηεο Java απνηεινχληαη απφ κέξε ηα νπνία νλνκάδνληαη θιάζεηο. Αληίζηνηρα νη θιάζεηο πεξηιακβάλνπλ κέξε ηα νπνία νλνκάδνληαη κέζνδνη νη νπνίεο εθηεινχλ εξγαζίεο θαη επηζηξέθνπλ πιεξνθνξίεο κε ηελ νινθιήξσζή ηνπο. Η Java δηαζέηεη κία πινχζηα ζπιινγή βηβιηνζεθψλ νη νπνίεο απνηεινχληαη απφ ππάξρνπζεο θιάζεηο πνπ είλαη γλσζηέο σο Java API (Application Programming Interfaces). Σα πξνγξάκκαηα Java κεηαγισηηίδνληαη ζε κνξθή bytecode, πνπ εθηεινχληαη απφ θάζε ιεηηνπξγηθφ ζχζηεκα, ινγηζκηθφ ή ζπζθεπή κε έλα δηεξκελεπηή Java. Έρνπλ ηελ δπλαηφηεηα λα εθηεινχληαη ρσξίο θάπνηα ηξνπνπνίεζε ζε δηάθνξα πεξηβάιινληα ππνινγηζηψλ ( John R. Hubbard,2004) 3.3 MySQL Database Η MySQL είλαη έλα πνιχ γξήγνξν ζχζηεκα δηαρείξηζεο ζρεζηαθψλ βάζεσλ δεδνκέλσλ. Υξεζηκνπνηεί ηελ SQL ( Structured Query Language), ε νπνία είλαη ε ηππηθή γιψζζα εξσηεκάησλ γηα βάζεηο δεδνκέλσλ. Μηα βάζε δεδνκέλσλ επηηξέπεη ηελ απνζήθεπζε, ηελ αλαδήηεζε ηελ ηαμηλφκεζε θαη ηελ αλάθιεζε ησλ δεδνκέλσλ. Ο MySQL δηαθνκηζηήο δηαζθαιίδεη φηη κφλν πηζηνπνηεκέλνη ρξήζηεο ζα κπνξνχλ λα έρνπλ πξφζβαζε ζηε βάζε δεδνκέλσλ θαη δίλεη ηελ δπλαηφηεηα ζε πνιινχο ρξήζηεο λα δνπιεχνπλ ηαπηφρξνλα. Δίλαη ε πην δεκνθηιήο βάζε δεδνκέλσλ αλνηθηνχ θψδηθα θαη ρξεζηκνπνηείηαη ζε θάπνηεο απφ ηεο πην δηαδεδνκέλεο ππεξεζίεο, φπσο ην YouTube, ε Wikipedia, ην Google, ην Facebook θαη ην Twitter. H MySQL έρεη πνιιά πιενλεθηήκαηα φπσο: Τςειή απφδνζε: Δίλαη αξθεηά πην γξήγνξε απφ ηνπο θχξηνπο αληαγσληζηέο ηεο πνπ είλαη νη Microsoft SQL Server, Oracle θαη PostgreSQL ζχκθσλα κε εγθεθξηκέλεο δνθηκέο. Υακειφ θφζηνο: Δίλαη δηαζέζηκε δσξεάλ κε άδεηα αλνηθηνχ θψδηθα ή κε ειάρηζην θφζηνο ζε πεξίπησζε αγνξάο εκπνξηθήο άδεηαο. Μεηαθεξζηκφηεηα: Δρεη ηελ δπλαηφηεηα ρξεζηκνπνίεζεο ζε δηαθνξεηηθά ζπζηήκαηα UNIX ή Microsoft Windows. Δπθνιία ρξήζεο : Υξεζηκνπνηεί ηελ SQL ( Structured Query Language), ε ν- πνία είλαη ε ηππηθή γιψζζα εξσηεκάησλ γηα βάζεηο δεδνκέλσλ. Τπνζηήξημε: Η εηαηξεία πξνζθέξεη ππνζηήξημε, ζπκβνπιέο, εθπαίδεπζε θαη πηζηνπνηεηηθά. -29-

Η MySQL έρεη θεξδίζεη ην βξαβείν Choice Award ηνπ Linux Journal Readers πνιιέο θνξέο. Είλαη δηαζέζηκε δωξεάλ κε άδεηα αλνηθηνύ θώδηθα (open source license, general public license GPL), εθόζνλ ζπκθωλήζεη ν ελδηαθεξόκελνο κε ηνπο όξνπο ηεο θαη κέζω κηαο εκπνξηθήο άδεηαο ζε πεξίπηωζε πνπ ε εθαξκνγή πνπ πεξηιακβάλεη ηελ MySQL δελ είλαη αλνηθηνύ θώδηθα (http://www.mysql.com/, Πεξηγξαθή MySQL,[3/11/2014]) 3.4 PHP-PDO Η PHP είλαη κηα γιψζζα script απφ ηελ πιεπξά ηνπ δηαθνκηζηή, ζρεδηαζκέλε γηα ηελ δεκηνπξγία ζειίδσλ Web κε δπλακηθφ πεξηερφκελν. Ο PHP θψδηθαο κπνξεί λα ελζσκαησζεί ζε κηα HTML ζειίδα κε απνηέιεζκα λα εθηειείηε θάζε θνξά πνπ θάπνηνο ρξήζηεο επηζθέπηεηαη ηελ ζειίδα. Δίλαη έλα πξντφλ αλνηθηνχ θψδηθα (Open Source Software, OSS) πνπ ζεκαίλεη φηη δηαηίζεηαη ειεχζεξα ζε φζνπο δεηνχλ λα ηνλ αιιάμνπλ, λα ηνλ ηξνπνπνηήζνπλ ή λα ηνλ αμηνπνηήζνπλ ζε άιιεο εθαξκνγέο. Μεξηθά απφ ηα πιενλεθηήκαηα ηεο PHP είλαη ηα παξαθάησ: Απφδνζε: Γηαζέηνληαο έλαλ θζελφ δηαθνκηζηή, ν ηδηνθηήηεο ηνπ ηζηνρψξνπ κπνξεί λα εμππεξεηήζεη εθαηνκκχξηα αηηήκαηα θαζεκεξηλά. Κφζηνο: Δίλαη κηα γιψζζα ε νπνία δηαηίζεηαη δσξεάλ. Μεηαθεξζηκφηεηα: Γπλαηφηεηα ρξεζηκνπνίεζεο ζε δηαθνξεηηθά ζπζηήκαηα ηχπνπ UNIX φπσο ην Linux, ή γηα δηαθνξεηηθέο εθδφζεηο ησλ Microsoft Windows. Δπθνιία κάζεζεο: Η PHP βαζίδεηαη ζε γιψζζεο φπσο ε C θαη ε Perl. Ο πξνγξακκαηηζηήο πνπ είλαη εμνηθεησκέλνο κε ηηο παξαπάλσ γιψζζεο ή έρεη εκπεηξία απφ γιψζζεο πξνγξακκαηηζκνχ φπσο ε C++ ή Java ζα ηνπ είλαη πνιχ εχθνιν λα θαηαλνήζεη ηελ PHP. Βηβιηνζήθεο: Η PHP δηαζέηεη πιεζψξα ελζσκαησκέλσλ βηβιηνζεθψλ βνεζψληαο ζηελ εθηέιεζε ρξήζηκσλ ιεηηνπξγηψλ ζρεηηθψλ κε ην Web. Ο πξνγξακκαηηζηήο κπνξεί λα δεκηνπξγήζεη εηθφλεο GIF δπλακηθά, λα ζπλδεζεί κε άιιεο π- πεξεζίεο δηθηχσλ θαη λα δεκηνπξγήζεη PDF (Portable Document Format) έγγξαθα κε ιίγεο γξακκέο θψδηθα. -30-

Αληηθεηκελνζηξαθήο ππνζηήξημε: Η PHP φπσο θαη άιιεο γιψζζεο πξνγξακκαηηζκνχ (Java,C++) δηαζέηεη ζρεδηαζκέλεο αληηθεηκελνζηξαθείο ιεηηνπξγίεο. Μεξηθέο απφ ηηο ιεηηνπξγίεο πνπ δηαζέηεη είλαη ε θιεξνλνκηθφηεηα, νη δηαζπλδέζεηο, νη ζπλαξηήζεηο δεκηνπξγίαο θαη ε ζπκπεξηθνξά επαλάιεςεο. Τπνζηήξημε: Η εηαηξεία Zend Technologies ρξεκαηνδνηεί ηελ αλάπηπμε ηεο PHP θαη πξνζθέξεη ππνζηήξημε θαη ζρεηηθφ ινγηζκηθφ ζε εκπνξηθή βάζε. ηελ ζπγθεθξηκέλε εθαξκνγή ρξεζηκνπνηνχκε ην PDO πνπ είλαη κηα επέθηαζε ηεο PHP γηα λα δεκηνπξγήζεη ηηο ζπλδέζεηο δεδνκέλσλ, δεκηνπξγψληαο έηζη έλα εληαίν πεξηβάιινλ εξγαζίαο. ( http://el.wikipedia.org/wiki/php, Η γιψζζα πξνγξακκαηηζκνχ PHP, [21/10/2014] ) ( (https://www.drupal.org/requirements/pdo,ηηεηλαη ην PDO [21/10/2014]) 3.5 RESTful Web Services Σν RESTFul Web Services είλαη web services βαζηζκέλα ζην κνληέιν REST ε αιιηψο Representational State Transfer νπνχ ηα δεδνκέλα πνπ επηθνηλσλνχλ κεηαθέξνληαη ζε απιέο κνξθέο απφ ηηο νπνίεο νη πην γλσζηέο είλαη ε XML θαη ε JSON. Μεξηθνί ιφγνη πνπ θάλνπλ έλα RESTful application απιφ θαη γξήγνξν είλαη: Σαπηνπνίεζε ησλ πφξσλ κέζσ ηνπ URI: Οη πφξνη αλαγλσξίδνληαη κέζσ URLs ηα νπνία παξέρνπλ έλα επξχ ρψξν δηεπζπλζηνδφηεζεο. Η νκνηφκνξθε δηεπαθή: Οη πφξνη δηαρεηξίδνληαη ρξεζηκνπνηψληαο έλα ζεη απφ ηέζζεξηο ιεηηνπξγηέο γηα δεκηνπξγία, πξνζπέιαζε, αλαβάζκηζε θαη δηαγξαθή νη νπνίεο είλαη ε PUT, GET, POST θαη DELETE.Η PUT δεκηνπξγεί λένπο πφξνπο, φπνπ κπνξνχλ λα δηαγξαθνχλ κέζσ DELETE. Σν GET αλαθηά ηελ ηξέρνπζα θαηάζηαζε απφ ηνλ πφξν θαη ην POST κεηαθέξεη κηα λέα θαηάζηαζε ζε έλα πφξν. Μελχκαηα πεξηγξαθήο: Οη Πφξνη απνζπλδένληαη απφ ηελ αλαπαξάζηαζε ηνπο ψζηε λα γίλνπλ πξνζπειάζηκνη απφ κνξθέο HTML, XML, plain text, PDF, JPEG, JSON (http://docs.oracle.com/javaee/6/tutorial/doc/gijqy.html, Πεξηγξαθή RESTful Web Services, [21/10/2014]) -31-

3.6 JSON To JSON (JavaScript Object Notation) είλαη έλα ειαθξχ πξφηππν αληαιιαγήο δεδνκέλσλ. Σα πιενλεθηήκαηα ηνπ JSON είλαη φηη είλαη εχθνιν γηα ηνπο αλζξψπνπο λα ην δηαβάζνπλ θαη λα ην γξάςνπλ θαζψο θαη εχθνιν γηα ηηο κεραλέο λα ην αλαιχζνπλ (parse) θαη λα ην παξάγνπλ (generate). Δίλαη βαζηζκέλν πάλσ ζε έλα ππνζχλνιν ηεο γιψζζαο πξνγξακκαηηζκνχ JavaScript, Standard ECMA-262 Έθδνζε 3ε - Γεθέκβξηνο 1999. Σν JSON είλαη έλα πξφηππν θεηκέλνπ ην νπνίν είλαη ηειείσο αλεμάξηεην απφ γιψζζεο πξνγξακκαηηζκνχ αιιά ρξεζηκνπνηεί πξαθηηθέο (conventions) νη νπνίεο είλαη γλσζηέο ζηνπο πξνγξακκαηηζηέο ηεο νηθνγέλεηαο πξνγξακκαηηζκνχ C, ζπκπεξηιακβαλνκέλσλ ησλ C, C++, C#, Java, JavaScript, Perl, Python, θαη πνιιψλ άιισλ. Απηέο νη ηδηφηεηεο θάλνπλ ην JSON κηα ηδαληθή γιψζζα πξνγξακκαηηζκνχ δεδνκέλσλ. Σν JSON είλαη ρηηζκέλν ζε δχν δνκέο: Μηα ζπιινγή απφ δεπγάξηα νλνκάησλ/ηηκψλ. ε δηάθνξεο γιψζζεο πξνγξακκαηηζκνχ, απηφ αληηιακβάλεηαη σο έλα object, θαηαρψξηζε, δνκή, ιεμηθφ, πίλαθα hash (hash table), ιίζηα θιεηδηψλ, ή associative πίλαθα. Μία ηαμηλνκεκέλε ιίζηα ηηκψλ. ηηο πεξηζζφηεξεο γιψζζεο πξνγξακκαηηζκνχ, απηφ αληηιακβάλεηαη σο έλαο πίλαθαο (array), δηάλπζκα, ιίζηα, ή αθνινπζία. (http://json.org/json-el.html, Δηζαγσγή ζην JSON, [21/10/2014]) 3.7 XML H XML ( Extensible Markup Language) είλαη κία γιψζζα ζήκαλζεο, πνπ πεξηέρεη έλα ζχλνιν θαλφλσλ γηα ηελ ειεθηξνληθή θσδηθνπνίεζε θεηκέλσλ. Η XML ζρεδηάζηεθε δίλνληαο έκθαζε ζηελ απιφηεηα, ηε γεληθφηεηα θαη ηε ρξεζηκφηεηα ζην Γηαδίθηπν. Δίλαη κία κνξθνπνίεζε δεδνκέλσλ θεηκέλνπ, κε ηζρπξή ππνζηήξημε Unicode γηα φιεο ηηο γιψζζεο ηνπ θφζκνπ. Αλ θαη ε ζρεδίαζε ηεο XML εζηηάδεη ζηα θείκελα, ρξεζηκνπνηείηαη επξέσο γηα ηελ αλαπαξάζηαζε απζαίξεησλ δνκψλ δεδνκέλσλ, πνπ πξνθχπηνπλ γηα παξάδεηγκα ζηηο ππεξεζίεο ηζηνχ. Τπάξρεη κία πνηθηιία δηεπαθψλ πξνγξακκαηηζκνχ εθαξκνγψλ, πνπ κπνξνχλ λα ρξεζηκνπνηνχλ νη πξνγξακκαηηζηέο, γηα λα πξνζπειαχλνπλ δεδνκέλα XML, αιιά θαη δηάθνξα ζπζηήκαηα ζρεκάησλ XML, ηα νπνία είλαη ζρεδηαζκέλα γηα λα βνεζνχλ ζηνλ νξηζκφ γισζζψλ, πνπ πξνθχπηνπλ απφ ηελ XML. (http://el.wikipedia.org/wiki/xml, Tη είλαη ε XML, [21/10/2014])) -32-

-33-

4 Ανάλςζη & ζσεδίαζη εθαπμογήρ Σν πξφβιεκα απνηειεί κηα έλλνηα πνπ ζπλαληάηαη ζε φιεο ηηο επηζηήκεο θαη ηνπο θιάδνπο ηνπο, αιιά παξάιιεια ην ζπλαληάκε θαη ζηελ θαζεκεξηλφηεηά καο. Με ηνλ φξν πξφβιεκα ελλννχκε κηα θαηάζηαζε πνπ ρξήδεη αληηκεηψπηζεο θαη απαηηεί ιχζε, ελψ ε δε ιχζε δελ είλαη γλσζηή νχηε θαη πξνθαλήο.σφζν ε αληηκεηψπηζε ηνπ πξνβιήκαηνο φζν θαη ε δηαηχπσζή ηνπ είλαη δηαδηθαζίεο αλαιπηηθέο θαη απαηηνχλ νξζνινγηθή ζθέςε, αιιά θαη ζσζηφ ρεηξηζκφ ηεο θπζηθήο γιψζζαο. To πξφβιεκα πνπ πξαγκαηεχεηαη ε παξνχζα πηπρηαθή αθνξά ηελ ελεκέξσζε ησλ ρξεζηψλ γηα δηάθνξα ζπκβάληα πνπ ζπκβαίλνπλ ζηελ πφιε καο. Η Λάξηζα απνηειεί κηα πφιε κε πιεζψξα επηινγψλ γηα ςπραγσγία, ραιάξσζε, δηαζθέδαζε θαη δεκηνπξγηθφηεηα.η εθαξκνγή απηή ζπγθεληξψλεη φιεο απηέο ηηο δπλαηφηεηεο ζηελ θηλεηή ζπζθεπήο θάλνληαο πην επράξηζηεο ηηο εμφδνπο θαη ηνλ ειεχζεξν ρξφλν.δπίζεο παξέρεη ηελ δπλαηφηεηα ζε επηρεηξήζεηο ζπιιφγνπο νξγαληζκνχο λα πξνβιεζνχλ απμάλνληαο έηζη νηθνλνκηθνχο θαη θνηλσληθνχο ηνπο πφξνπο.σέινο απνηειεί έλα ζχληνκν νδεγφ κε πξνβνιή ζηα αμηνζέαηα θαη ηζηνξία πνπ απνηειεί έλα ρξήζηκν εξγαιείν ζηα ρέξηα θάπνηνπ επηζθέπηε ζηελ Λάξηζα θαη φρη κφλν Πην ζπγθεθξηκέλα ινηπφλ: Δλεκεξψλεη ηνλ ρξήζηε γηα θηλεκαηνγξαθηθά, κνπζηθά,αζιεηηθά,πνιηηηζηηθά θαη ςπραγσγηθά event. Δλεκεξψλεη ηνλ ρξήζηε γηα θαηαζηήκαηα εζηίαζεο κε φιεο ηηο απαξαίηεηεο πιεξνθνξίεο θαη ιεπηνκεξή θαζνδήγεζε. Δλεκεξψλεη ηνλ ρξήζηε γηα αμηνζέαηα,ηζηνξηθνχο ρψξνπο θαη πην γεληθά, κέξε πνπ κπνξεί λα επηζθεθηεί θαζψο παξέρεη θαη ηζηνξηθέο πιεξνθνξίεο. Δλεκεξψλεη ηνλ ρξήζηε γηα ην είδνο, ηελ εκεξνκελία,ηελ ψξα, παξέρεη πεξηγξαθή,ηελ ηνπνζεζία κέζσ ράξηε θαη streetview θαζψο θαη πιεξνθνξίεο επηθνηλσλίαο ελφο event. Σην ζεκείν απηό λα ζεκεηωζεί όηη παξόκνηα εθαξκνγή γηα ηελ Λάξηζα δελ ππάξρεη θαη πξνο ην παξόλ θαηέρεη κνλαδηθόηεηα.. -35-

4.1 Έναπξη εθαπμογήρ Απφ ηελ ζηηγκή πνπ έλαο ρξήζηεο θάλεη εγθαηάζηαζε ζηελ ζπζθεπή ηνπ θαη απνδερηεί ηνπο φξνπο ιεηηνπξγηάο ε εθαξκνγή είλαη έηνηκε λα μεθηλήζεη.ο ρξήζηεο επηιέγεη ην εηθνλίδην ηεο εθαξκνγήο θαη μεθηλά ε ιεηηνπξγία.αξρηθά παξνπζηάδεηαη ε εηθφλα έ- λαξμεο (Splash Screen) ζαλ έλα θαισζφξηζκα θαη ζηελ ζπλέρεηα πεξλάκε ζηελ αξρηθή δηεπαθή ηεο εθαξκνγήο. Παξαθάησ απεηθνλίδνληαη ηα ζηνηρεία πεξηγξαθήο. Δηθφλα 5:Δηθφλα έλαξμεο Δηθφλα 6:Αξρηθή δηεπαθή 4.2 Βάζη Γεδομένυν Η βάζε δεδνκέλσλ απνηειεί έλα απφ ηα βαζηθφηεξα ζεκεία ηεο αλάπηπμεο κηαο εθαξκνγήο ή ελφο πξνγξάκκαηνο.η πινπνίεζε ηεο βάζεο έγηλε κε ηελ ρξήζε ΜySQL θαη ζην πεξηβάιινλ αλάπηπμεο MySQL Workbench θαη είλαη εγθαηεζηεκέλε ζε έλα εμσηεξηθφ server. -36-

Η βάζε δεδνκέλσλ απνηειείηαη απφ ηξεηο πίλαθεο κε νλνκαζία events,categories θαη pois. ηνλ πίλαθα events απνζεθεχνπκε ηα εμήο πεδία: eventid:απνηειεί ην πξσηεχσλ θιεηδί θαη πεξηγξάθεη ην id ηηο θάζε εγγξαθήο. Κάζε θνξά πνπ δεκηνπξγνχκε κηα λέα εγγξαθή ελεξγνπνηείηαη απηφκαηα (auto incremental). catid: Πεξηγξάθεη ην id ηηο θάζε εγγξαθήο ζηνλ πίλαθα categories θαη είλαη μέλν θιεηδί ζηνλ πίλαθα events.οη ηηκέο είλαη απφ 1 έσο 6 πνπ πεξηγξαθνχλε αληίζηνηρα ηηο θαηεγνξίεο cinema, concerts, sports, art, food θαη nightlife. poiid:πεξηγξάθεη ην id ηεο θάζε εγγξαθήο ζηνλ πίλαθα pois θαη είλαη μέλν θιεηδί ζηνλ πίλαθα events. eventsourceurl:πεξηγξάθεη ην url ηεο πεγήο φπνπ αληιήζεθαλ ηα δεδνκέλα eventtitle: Πεξηγξάθεη ηνλ ηίηιν ελφο event eventdescription:πεξηέρεη ηελ πεξηγξαθή ελφο event eventdate: Πεξηέρεη ηελ εκεξνκελία ελφο event eventimage: Πεξηέρεη ηελ θσηνγξαθία ελφο event eventpredescription: Πεξηέρεη ηελ πξν πεξηγξαθέο ελφο event eventtime: Πεξηέρεη ηελ ψξα ελφο event eventimageurl1: Πεξηέρεη ηελ εηθνλα1 ηνπ Slideshow ελφο event eventimageurl2: Πεξηέρεη ηελ εηθνλα2 ηνπ Slideshow ελφο event eventimageurl3: Πεξηέρεη ηελ εηθνλα3 ηνπ Slideshow ελφο event ηνλ πίλαθα categories απνζεθεχνπκε ηα εμήο πεδία: catid:απνηειεί ην πξσηεχσλ θιεηδί. Πεξηγξάθεη ην id ηηο θάζε εγγξαθήο πνπ εθθξάδεη κηα θαηεγνξία. cattitle:πεξηέρεη ηνλ ηίηιν κηαο θαηεγνξίαο. Μπνξεί λα είλαη cinema, concerts, sports, art,food θαη nightlife. catisenabled:σrue αλ ε θαηεγνξία είλαη δηαζέζηκε,false αλ φρη. ηνλ πίλαθα pois απνζεθεχνπκε ηα εμήο πεδία: poiid: Απνηειεί ην πξσηεχσλ θιεηδί.πεξηγξάθεη ην id ηηο θάζε εγγξαθήο πνπ εθθξάδεη ηνπνζεζία. poititle: Πεξηέρεη ηνλ ηίηιν κηαο ηνπνζεζίαο πρ φλνκα εζηηαηνξίνπ. poilat: Πεξηέρεη ην γεσγξαθηθφ πιάηνο. -37-

poilong: Πεξηέρεη γεσγξαθηθφ κήθνο. address: Πεξηέρεη ηελ δηεχζπλζε κηαο ηνπνζεζίαο. phone: Πεξηέρεη ην ηειέθσλν κηαο ηνπνζεζίαο. email: Πεξηέρεη ην email κηαο ηνπνζεζίαο. Παξαθάησ παξνπζηάδεηαη ν ηξφπνο πνπ ηα δεδνκέλα επηθνηλσλνχλ, αιιειεπηδξνχλε θαη ζπλδένληαη κεηαμχ ηνπο ζε έλα δηάγξακκα ξνήο (Δηθφλα 7). Δηθφλα 7 Γηάγξακκα ξνήο ηεο βάζεο δεδνκέλσλ 4.3 Πλάγιο Μενού Όηαλ ν ρξήζηεο εηζέξζεη ζηελ αξρηθή νζφλε δηεπαθήο (home page) έρεη ζηελ δηάζεζε έλα πιήζνο επηινγψλ πνπ κπνξεί λα πξαγκαηνπνηήζεη ζε απηήλ ψζηε λα ελεκεξσζεί κε ηηο θαηάιιειεο πιεξνθνξίεο πνπ ηνλ ελδηαθέξνπλε. Η αξρηθή νζφλε απνηειείηαη απφ έλα πιάγην κελνχ (side menu) πνπ φηαλ ν ρξήζηεο πηέζεη ην ινγφηππν ή ζχξεη απφ αξηζηεξά πξνο ηα δεμηά απηφ εκθαλίδεηαη.ην κελνχ ππάξρεη κηα ζεηξά απφ επηινγέο πνπ είλαη ε πφιε ηεο Λάξηζα, Πεξηήγεζε, Υάξηεο θαη Ηκεξνιφγην -38-