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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΜΟΙΡΑΣΜΟΣ ΓΝΩΣΗΣ ΜΕ ΓΕΩΓΡΑΦΙΚΗ ΠΛΗΡΟΦΟΡΙΑ ΜΕΣΩ ΚΙΝΗΤΟΥ ΤΗΛΕΦΩΝΟΥ Διπλωματική Εργασία του Οικονόμου Χρήστου (ΑΕΜ: 1313) Επιβλέπων Καθηγητής: Τσουμάκας Γρηγόριος ΘΕΣΣΑΛΟΝΙΚΗ ΦΕΒΡΟΥΑΡΙΟΣ i-

2

3 Πρόλογος Στη πτυχιακή αυτή διαπραγματεύονται θέματα διαμοιρασμού γνώσης γεωγραφικής πληροφορίας μέσω κινητών τηλεφώνων. Η πτυχιακή αυτή έχει ως στόχο την υλοποίηση μιας εφαρμογής κινητού τηλεφώνου για εκμετάλλευση γεωγραφικής πληροφορίας Η εφαρμογή, που λειτουργεί σε κινητά Android, δίνει τη δυνατότητα λήψης της πληροφορίας και των γεωγραφικών συντεταγμένων της με ή χωρίς GPS την απεικόνιση της σε χάρτη, αλλά και την αποστολή, αποθήκευση και εκμετάλλευση αυτής της πληροφορίας Επίσης παρουσιάζεται η πορεία και τα βασικά συστατικά του λειτουργικού για κινητά τηλέφωνα Android. Χρήστος Οικονόμου Ημερομηνία 15/02/2010 -i-

4

5 Περιεχόμενα ΠΡΟΛΟΓΟΣ...I ΠΕΡΙΕΧΟΜΕΝΑ...III 1 ΕΙΣΑΓΩΓΗ ΘΕΣΗ ΣΤΗ ΓΗ ΓΕΩΓΡΑΦΙΚΟ ΠΛΑΤΟΣ ΓΕΩΓΡΑΦΙΚΟ ΜΗΚΟΣ ΑΚΡΙΒΕΙΑ ΓΕΩΓΡΑΦΙΚΟΥ ΠΛΑΤΟΥΣ ΚΑΙ ΜΗΚΟΥΣ ANDROID ΙΣΤΟΡΙΑ ΤΟΥ ANDROID Προϊστορία Ανοιχτή Συμαχία Μικροτηλεφώνων (Open Handset Alliance) Η πορεία του Android ΟΡΙΣΜΟΣ ANDROID Τι δεν είναι το Android Τι είναι το Android ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΓΝΩΡΙΣΜΑΤΑ ΤΟΥ ANDROID SDK ΤΟ ΠΛΑΙΣΙΟ ΑΝΑΠΤΥΞΗΣ ΤΟΥ ANDROID Τι περιέχεται στο πακέτο (box) Συλλογή Λογισμικού του Android (Software Stack) Η εικονική μηχανή Dalvik Αρχιτεκτονική των Εφαρμογών Android Βιβλιοθήκες Android Προηγμένες βιβλιοθήκες Android ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ANDROID Βασικά Συστατικά AndroidManifest.xml Οι Πόροι (Resources) iii-

6 3.5.4 Διεπαφή Χρήστη (User Interface) Ο κύκλος ζωής μια εφαρμογής Προτεραιότητα των εφαρμογών και καταστάσεις των διαδικασιών 44 4 GOOGLE MAPS GOOGLE MAPS ΓΙΑ ΚΙΝΗΤΑ My Location GOOGLE MAPS ΚΑΙ ANDROID ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΤΕΚΜΗΡΙΩΣΗ ΕΦΑΡΜΟΓΗΣ ΕΡΓΑΛΕΙΑ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΕΦΑΡΜΟΓΗΣ Απόκτηση γεωγραφικής πληροφορίας Αποστολή και Αποθήκευση της Γεωγραφικής πληροφορίας Εκμετάλευση της γεωγραφικής πληροφορίας ΠΗΓΑΙΟΣ ΚΩΔΙΚΑΣ ΣΥΜΠΕΡΑΣΜΑΤΑ ΒΙΒΛΙΟΓΡΑΦΙΑ iv-

7 1 Εισαγωγή Σίγουρα η απόκτηση γνώσης της γεωγραφικής πληροφορίας είναι μια πολύ δελεαστική διαδικασία μιας και,σύμφωνα με τον Σερ Φράνσις Μπέικον, «Η γνώση είναι δύναμη». Το βασικό χαρακτηριστικό των κινητών τηλεφώνων, εξού και το όνομα τους είναι η κινητικότητα τους. Μπορεί ο καθένας να βρίσκεται σε οποιοδήποτε μέρος του πλανήτη (που υποστηρίζεται από δίκτυο κινητής τηλεφωνίας) και να κάνει χρήση των υπηρεσιών και των δυνατοτήτων που προσφέρονται στα κινητά τηλέφωνα. Συνεπώς η αλματώδης εξέλιξη, η ευρεία χρήση και η ικανότητας των κινητών τηλεφώνων να παρέχουν γεωγραφική πληροφορία σε συνδυασμό με την πολυτιμότατα της γεωγραφικής πληροφορίας αποτελεί ένα ισχυρό εφόδιο για τη δημιουργία καινοτόμων εφαρμογών. Γεωγραφική πληροφορία έχει την έννοια του προσδιορισμού κάποιας οντότητας στην επιφάνειας της γης με ακρίβεια. Τα δύο μεγέθη τα οποία χρησιμεύουν στον ακριβέστατο προσδιορισμό είναι το γεωγραφικό μήκος (longitude) και το γεωγραφικό πλάτος (latitude). Συνεπώς η εκμετάλλευση της γεωγραφικής πληροφορίας συνεπάγεται την εκμετάλλευση αυτών των δύο μεγεθών. Η εφαρμογή που δημιουργήθηκε λειτουργεί σε Android, που αποτελεί την πρώτη συλλογή λογισμικού ανοιχτού κωδικά για κινητά τηλέφωνα. Το Android αποτελείται από ένα λειτουργικό σύστημα, βασισμένο στο πυρήνα Linux 2.6, ένα περιβάλλον ανάπτυξης εφαρμογών καθώς και κάποιες εγγενής εφαρμογές και πίσω του βρίσκεται η Google. Το Android κυκλοφόρησε τον Νοέμβριο του 2007 και εκ τότε έχει γνωρίσει και συνεχίζει να γνωρίζει μεγάλη διάδοση αφού εκτός του ότι η ανάπτυξη εφαρμογών κινητών τηλεφώνων έχει διευκολυνθεί αρκετά έχει όλα τα προτερήματα των προγραμμάτων ανοιχτού κώδικα (δωρεάν διανομή,κοινότητα προγραμματιστών, διάδοση πηγαίου κώδικα κλπ.). Το βασικό προτέρημα που έχει το Android και δεν έχει κανένα άλλο λειτουργικό κινητών τηλεφώνων είναι η εγγενής υποστήριξη των Google Maps. Τα Google Maps είναι μια τεχνολογία χαρτογράφησης της γης, δηλαδή είναι ψηφιακοί χάρτες. Συνεπώς υπάρχει η δυνατότητα ενσωμάτωσης ψηφιακών χαρτών σε εφαρμογές και -1-

8 εκμετάλλευσης αυτών και των υπηρεσιών τους. Στην εφαρμογή που αναπτύσσεται για αυτή τη πτυχιακή εργασία γίνεται χρήση της υπηρεσίας My Location η οποία έχει τη δυνατότητα προσδιορισμού της γεωγραφικής θέσης χωρίς χρήση GPS. Κάνοντας χρήση λοιπόν αυτής της υπηρεσίας η εφαρμογή έχει τη δυνατότητα να απομονώνει τη γεωγραφική πληροφορία που στέλνεται απ την υπηρεσία και να την εκμεταλλεύεται ανάλογα. Η εφαρμογή που δημιουργήθηκε προσφέρει λήψη γεωγραφικής πληροφορίας, των γεωγραφικών συντεταγμένων μια τοποθεσίας, με ή χωρίς GPS, απεικόνιση της σε χάρτη, αλλά και την αποστολή, αποθήκευση και εκμετάλλευση αυτής της πληροφορίας. Συγκεκριμένα δίνεται η δυνατότητα στο χρήστη να επιλέξει με ποιο τρόπο θέλει να προσδιοριστεί η τοποθεσία του και να αποτυπωθεί σε χάρτη. Υπάρχουν 4 διαθέσιμοι τρόποι, με την ταυτότητα της κεραίας κυψέλης (cell ID), με GPS είτε χειροκίνητα με εγγραφή της διεύθυνσης είτε απευθείας πληκτρολόγηση των συντεταγμένων της τοποθεσίας. Στην συνέχεια υπάρχει δυνατότητα αποστολής της γεωγραφικής πληροφορίας που αποκτάται με γραπτό μήνυμα ή σε έναν προεπιλεγμένο εξ υπηρέτη και στην συνέχει αποθηκεύονται στη βάση δεδομένων. Τέλος παρέχονται δύο υπηρεσίες χάρτη όπου η μια επιτρέπει την αποτύπωση στο χάρτη της διαδρομής που έχει ακολουθήσει ο χρήστης χρησιμοποιώντας τα στίγματα που έχουν σταλεί στον εξυπηρέτη. Ενώ η δεύτερη αποτυπώνει στο χάρτη την τελευταία γνωστή θέση του χρήστη καθώς και τις τελευταίες θέσης των υπολοίπων χρηστών που χρησιμοποιούν την εφαρμογή (υποθέτουμε ότι ένας κλειστός κύκλος χρηστών χρησιμοποιεί έναν ξεχωριστό εξυπηρέτη) -2-

9 2 Θέση στη γη Η γη είναι μια σφαίρα. Πώς όμως μπορεί να περιγραφεί ένα σημείο που βρίσκεται στην επιφάνειά της; Ο πιο σύνηθες τρόπος να βρεθούν τα σημεία στην επιφάνεια της γης είναι από τις τυποποιημένες, γεωγραφικές συντεταγμένες αποκαλούμενες γεωγραφικό πλάτος και γεωγραφικό μήκος. Αυτές οι τιμές συντεταγμένων μετριούνται σε μοίρες, και αντιπροσωπεύουν γωνιακές αποστάσεις που υπολογίζονται από το κέντρο της γης (Εικόνα 1). 2.1 Γεωγραφικό πλάτος Εικόνα 1 : Γεωγραφικές συντεταγμένες Μπορούμε να φανταστούμε τη γη ως σφαίρα, με έναν άξονα γύρω από τον οποίο περιστρέφεται. Οι άκρες του άξονα είναι ο Βόρειος και Νότιος Πόλος. Ο Ισημερινός είναι μια γραμμή γύρω από τη γη, σε ίση απόσταση και από τους δύο πόλους (Εικόνα 2). Ο Ισημερινός είναι επίσης η γραμμή γεωγραφικού πλάτους με τιμή 0 μοίρες. Αυτό σημαίνει ότι είναι η αφετηρία για τη μέτρηση του γεωγραφικού πλάτους. Οι τιμές γεωγραφικού πλάτους δείχνουν τη γωνιακή απόσταση μεταξύ του ισημερινού και έχει φορά βόρεια ή νότια αυτού στην επιφάνεια της γης. -3-

10 Εικόνα 2: Ισημερινός Μια γραμμή που συνδέει όλα τα σημεία με την ίδια τιμή γεωγραφικού πλάτους καλείται γραμμή γεωγραφικού πλάτους. Αυτός ο όρος χρησιμοποιείται συνήθως για να αναφερθεί στις γραμμές που αντιπροσωπεύουν τις τιμές σε ακέραιες μοίρες. Όλες οι γραμμές γεωγραφικού πλάτους είναι παράλληλες στον ισημερινό, και μερικές φορές αναφέρονται ως παράλληλοι. Οι παράλληλοι είναι ισοδιάστατοι. Υπάρχουν 90 μοίρες γεωγραφικού πλάτους που πηγαίνουν βόρεια από τον ισημερινό, και ο Βόρειος Πόλος είναι σε 90 μοίρες βόρεια. Υπάρχουν 90 μοίρες νότια του ισημερινού, και ο Νότιος Πόλος είναι στις 90 μοίρες νότια (Εικόνα 3). Όταν οι κατευθυντικοί προσδιοριστές παραλείπονται, στα βόρεια γεωγραφικά πλάτη δίνονται οι θετικές τιμές και στα νότια γεωγραφικά πλάτη δίνονται οι αρνητικές τιμές. Εικόνα 3 : Γεωγραφικό πλάτος -4-

11 2.2 Γεωγραφικό μήκος Οι γραμμές γεωγραφικού μήκους, που ονομάζονται μεσημβρινοί, εκτείνονται κάθετα στις γραμμές γεωγραφικού πλάτους, και όλες περνούν μέσω των δύο πόλων. Κάθε γραμμή γεωγραφικού μήκους είναι μέρος ενός μεγάλου κύκλου. Δεν υπάρχει κανένα προφανές σημείο 0 μοιρών για το γεωγραφικό μήκος, όπως για το γεωγραφικό πλάτος. Καθ' όλη τη διάρκεια της ιστορίας πολλές διαφορετικές αφετηρίες έχουν χρησιμοποιηθεί για να μετρήσουν το γεωγραφικό μήκος. Μετά από διεθνή συμφωνία, στη μεσημβρινή γραμμή μέσω του Γκρήνουιτς, στην Αγγλία, δίνεται αυτήν την περίοδο η τιμή 0 μοιρών γεωγραφικού μήκους, αυτός ο μεσημβρινός αναφέρεται ως Πρώτος Μεσημβρινός (Prime Meridian) (Εικόνα 4). Οι τιμές γεωγραφικού μήκους δείχνουν τη γωνιακή απόσταση μεταξύ του Πρώτου Μεσημβρινού και έχουν φορά ανατολικά ή δυτικά αυτού στην επιφάνεια της γης. Εικόνα 4: Πρώτος Μεσημβρινός Η γη διαιρείται εξίσου σε 360 μοίρες γεωγραφικού μήκους (Εικόνα 5). Υπάρχουν 180 μοίρες γεωγραφικού μήκους ανατολικά του Πρώτου Μεσημβρινού,όταν ο κατευθυντικός προσδιοριστής παραλείπεται σε αυτά τα γεωγραφικά μήκη δίνονται οι θετικές τιμές. Υπάρχουν επίσης 180 μοίρες γεωγραφικού μήκους στα δυτικά του Πρώτου Μεσημβρινού, όταν ο κατευθυντικός προσδιοριστής παραλείπεται σε αυτά τα γεωγραφικά μήκη δίνονται αρνητικές τιμές. Η γραμμή γεωγραφικού μήκους 180 μοιρών είναι απέναντι από τον Πρώτο Μεσημβρινό στη γη, και είναι η ίδια πηγαίνοντας είτε ανατολικά είτε η δυτικά. -5-

12 Εικόνα 5 : Γεωφραφικό μήκος 2.3 Ακρίβεια γεωγραφικού πλάτους και μήκους Οι βαθμοί γεωγραφικού πλάτους και γεωγραφικού μήκους μπορούν να υποδιαιρεθούν περαιτέρω στα πρώτα και τα δεύτερα: υπάρχουν 60 πρώτα ( ) ανά μοίρα, και 60 δεύτερα ( ) ανά πρώτο. Παραδείγματος χάριν, μια συντεταγμένη μπορεί να γραφτεί ως Οι μοίρες μπορούν επίσης να εκφραστούν ως δεκαδικά: , μοίρες και δεκαδικά πρώτα: ", ή ακόμα και μοίρες, πρώτα, και τα δεκαδικά δεύτερα: " Όλες αυτές οι σημειώσεις επιτρέπουν τον εντοπισμό τις θέσης κάποιου στη γη με μεγάλη ακρίβεια με απόκληση ιντσών. Μια μοίρα γεωγραφικού πλάτους είναι περίπου χιλιόμετρα, και ένα πρώτο γεωγραφικού πλάτους είναι περίπου χιλιόμετρα. Ένα δεύτερο γεωγραφικού πλάτους είναι περίπου μέτρα, ή μόλις πάνω από 100 πόδια. Μια μοίρα γεωγραφικού μήκους ποικίλλει στο μέγεθος. Στον ισημερινό, είναι περίπου 69 μίλια, το ίδιο μέγεθος με τη μοίρα γεωγραφικού πλάτους. Το μέγεθος μειώνεται βαθμιαία σε μηδέν όπως οι μεσημβρινοί συγκλίνουν στους πόλους. Σε ένα γεωγραφικό πλάτος 45 μοιρών, ένας βαθμός γεωγραφικού μήκους είναι περίπου χιλιόμετρα. Επειδή μια μοίρα γεωγραφικού μήκους ποικίλλει σε μέγεθος, τα πρώτα και τα δεύτερα του γεωγραφικού μήκους ποικίλλουν επίσης, μειώνονται όσο πλησιάζουμε τους πόλους. -6-

13 3 Android Για την κατασκευή και λειτουργία της εφαρμογή της πτυχιακής χρησιμοποιήθηκε η πλατφόρμα ανοιχτού λογισμικού Android. 3.1 Ιστορία του Android Προϊστορία Τον Ιούλιο του 2005, η Google απόκτησε την Android Inc. μια μικρή νεοσύστατη εταιρεία που έδρευε στο Πάλο Άλτο, της Καλιφόρνια, στις ΗΠΑ. Οι συνιδρυτές της Android που πήγαν να εργαστούν στη Google ήταν οι Andy Rubin (συνιδρυτής του Danger), Rich Miner (συνιδρυτής της Wildfire Communications Inc.), Nick Sears ( VP στη Τ-Mobile ), και ο Chris White (επικεφαλής ανάπτυξης σχεδίου και διεπαφών σε WebTV). Τότε, λίγα ήταν γνωστά για τις λειτουργίες της Android Inc. εκτός του ότι κατασκεύαζαν λογισμικό για κινητά τηλέφωνα. Αυτό δημιούργησε φήμες ότι η Google σκόπευε να μπει στην αγορά κινητής τηλεφωνίας, αν και ήταν ασαφές ποια λειτουργία να εκτελέσει σ αυτό τον τομέα. Στη Google, η ομάδα, με επικεφαλή τον Rubin, ανέπτυξε μια πλατφόρμα κινητών συσκευών που τροφοδοτήθηκε από το λειτουργικό σύστημα Linux και την εμπορευόταν σε κατασκευαστές και διανομείς κινητών τηλεφώνων με τη υπόσχεση παροχής ενός εύκαμπτου, βελτιώσιμου συστήματος Περισσότερες υποψίες ότι η Google θα έμπαινε στην αγορά κινητών τηλεφώνων ήρθε το Δεκέμβριο του Το BBC και η Wall Street Journal ανέφεραν ότι η Google θέλει την μηχανή αναζήτησης της και τις εφαρμογές της μέσα στα κινητά τηλέφωνα και δούλευε σκληρά για να το επιτύχει. Σύντομα πολλά ειδησεογραφικά μέσα ανέφεραν φήμες ότι Google ανέπτυσσε ένα κινητό τηλέφωνο με την επωνυμία της Google. Ακόμη περισσότερες υποψίες ακολούθησαν αφού αναφέρθηκε ότι καθώς η Google καθόριζε τις τεχνικές προδιαγραφές, παρουσίαζε πρωτότυπα σε τηλεφωνικούς κατασκευαστές και σε φορείς δικτύων. Τουλάχιστον 30 πρωτότυπα τηλέφωνα αναφέρθηκαν ότι τρέχουν σε δοκιμαστικό λειτουργικό σύστημα. Το Σεπτέμβριο του 2007, η Information Week κάλυψε μια μελέτη Evalue Serve αναφέροντας ότι η Google είχε καταθέσει πολλές εφαρμογές στον τομέα της κινητής τηλεφωνίας. -7-

14 3.1.2 Ανοιχτή Συμαχία Μικροτηλεφώνων (Open Handset Alliance) Στις 5 Νοεμβρίου 2007, η Open Handset Alliance, μια κοινοπραξία διάφορων επιχειρήσεων που περιλαμβάνουν τις Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, NVIDIA, Qualcomm, Samsung Electronics, Sprint Nextel, Τ-Mobile, και Texas Instruments, παρουσιάστηκε με το στόχο να αναπτύξει ανοιχτά πρότυπα (open standards) για τις κινητές συσκευές. Μαζί με το σχηματισμό της η OHA παρουσίασε επίσης το πρώτο προϊόν τους, το Android, μια πλατφόρμα κινητών συσκευών που στηρίχτηκε στο πυρήνα Linux 2.6. Στις 9 Δεκεμβρίου 2008, αναγγέλθηκε ότι ακόμα 14 νέα μέλη θα συμμετείχαν στο πρόγραμμα του Android συμπεριλαμβανομένου: ARM Holdings Plc, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp και Vodafone. Κατά τα λεγόμενα τους, όπως αναφέρεται και στο επίσημο site, η OHA αντιπροσωπεύει: «Μια δέσμευση για την ειλικρίνεια, ένα κοινό όραμα για το μέλλον, και συγκεκριμένα σχέδια για να κάνει το όραμα μια πραγματικότητα. Για να επιταχύνει την καινοτομία στο κινητό και να προσφέρει στους καταναλωτές μια πλουσιότερη, λιγότερο ακριβή και καλύτερη εμπειρία κινητών τηλεφώνων.» Η OHA ελπίζει να παραδώσει μια καλύτερη εμπειρία λογισμικού κινητού για τους καταναλωτές παρέχοντας μια πλατφόρμα για την ανάπτυξη καινοτόμων κινητών εφαρμογών γρηγορότερα και με υψηλότερη ποιότητα χωρίς τέλη αδείας για τους προγραμματιστές λογισμικού ή τους κατασκευαστές κινητών τηλεφώνων. Η επιτυχία του Android ως πλατφόρμα κινητών τηλεφώνων θα εξαρτηθεί κατά ένα μεγάλο μέρος από την επιτυχία των συνεργατών της OHA στην κυκλοφορία επιθυμητών κινητών τηλεφώνων και κινητών υπηρεσιών που θα ενθαρρύνουν τη υιοθέτηση των Android τηλεφώνων. Οι προγραμματιστές έχουν την ευκαιρία να δημιουργήσουν καινοτόμες νέες εφαρμογές κινητών για Android ώστε να ενθαρρυνθούν περισσότερες επιχειρήσεις κινητής τεχνολογίας να γίνουν μέλη της OHA. -8-

15 3.1.3 Η πορεία του Android Στις 12 Νοεμβρίου 2007 κυκλοφόρησε το πρώτο δοκιμαστικό SDK. Οι προγραμματιστές έχουν την δυνατότητα να παρέχουν σχόλια και εντυπώσεις (feedback) και έτσι να διαμορφώσουν την ανάπτυξη του SDK. Στις 17 Απριλίου 2008 ξεκινάει το πρώτος διαγωνισμός κατασκευής εφαρμογών Android (Android Developer Challenge). Παραλαμβάνονται υποβολές αυτήν την ημερομηνία από τις οποίες επιλέγονται 20 νικητές οι οποίοι και αναγγέλλονται στις 28 Αυγούστου Συνολικά $5 εκατομμύρια απονέμονται σε προγραμματιστές για σημαντικές εφαρμογές Android. Στις 28 Αυγούστου 2008 αναγγέλλεται επίσης η δημιουργία του Android Market. Το Android Market είναι ένα Ανοικτό σύστημα διανομής εφαρμογών Android που συνδέει χρήστες και κατασκευαστές. Το Android Market έγινε στην ουσία διαθέσιμο σους χρήστες στις 22 Οκτωβρίου και υποστηρίζει δωρεάν εφαρμογές και εφαρμογές επί πληρωμή. Η πώληση εφαρμογών από προγραμματιστές των Η.Π.Α. και το Η.Β. έγινε δυνατή τον Φεβρουάριο του 2009 ενώ για κατασκευαστές από Γερμανία, Γαλλία, Ισπανία, Ολλανδία και Αυστρία τον Μάιο του Για τους χρήστες του Η.Β. η αγορά εφαρμογών επί πληρωμή έγινε δυνατή στις 13 Μαρτίου 2009 ενώ η υποστήριξη δωρεάν εφαρμογών στις Σουηδία, Δανία, Νορβηγία, Βέλγο, Ελλάδα, Ταϊβάν και Ιαπωνία πραγματοποιήθηκε τον Μάιο του Μια ανεπίσημη έρευνα έφερε στο φως λεπτομέρειες για την "ζωή" στο Android Market. Η έρευνα αυτή κάνει λόγο για την ύπαρξη πάνω από εφαρμογών το Σεπτέμβρη του 2009 από που ήταν τον Μάιο. Εντυπωσιακή αύξηση της τάξεως του 100% σε λιγότερο από 4 μήνες. Υπολογίζεται έτσι ότι μέχρι το τέλος του χρόνου θα υπάρχουν πάνω από εφαρμογές. Στις 23 Σεπτεμβρίου 2008 κυκλοφορεί το Τ-Mobile G1, το πρώτο κινητό τηλέφωνο Android καθώς και η πρώτη επίσημη έκδοση 1.0 Android SDK. Στις 21 Οκτωβρίου 2008 ο πηγαίος κώδικας του Android ανοίγει, γίνεται δηλαδή open source και την επόμενη μέρα γίνεται διαθέσιμο στους καταναλωτές. Στις 8 Δεκεμβρίου 2008 κυκλοφορεί η δεύτερη έκδοση του 1.0 Android SDK η οποία λύνει έναν αριθμό από προβλήματα ενώ τον Φεβρουάριο του 2009 κυκλοφορεί η πρώτη έκδοση του Android 1.1 SDK. Αρκετούς μήνες από την έκδοση του Android, κάποια πράγματα όπως το εικονικό πληκτρολόγιο, η δυνατότητα εγγραφής βίντεο και stereo Bluetooth κ.α. έλειπαν. Για το λόγο αυτό δημιουργήθηκε μια αναβάθμιση, που -9-

16 θα είχε τη δυνατότητα προσθήκης πάρα πολλών χρήσιμων δυνατοτήτων, με κωδική ονομασία "cupcake". Έτσι στις 27 Απριλίου 2009 κυκλοφόρησε η αναβάθμιση Cupcake και το SDK 1.5 του Android. Η έκδοση 1.5 εισάγει καινούργιες δυνατότητες όπως soft keyboards, home screen widgets, live folders, και αναγνώριση φωνής. Επίσης έχουν γίνει αλλαγές στα εργαλεία και στη δομή του ίδιου του SDK. Ένα πλεονέκτημα αυτής της αλλαγής είναι ότι οι προγραμματιστές μπορούν να χρησιμοποιήσουν διαφορετικές εκδόσεις της πλατφόρμας μέσα από μία και μόνη εγκατάσταση του SDK. Εικόνα 6 :Quick Search Box Τον Σεπτέμβριο του 2009 αναβαθμίστηκε το SDK σε 1.6. Με τις καινούργιες προσθήκες και αναβαθμίσεις το Android έχει τη δυνατότητα να λειτουργεί σε μεγαλύτερο εύρος συσκευών και δικτύων. Το πιο εντυπωσιακό χαρακτηριστικό είναι η προσθήκη του Quick Search Box (Εικόνα 6) το οποίο είναι μηχανή αναζήτησης η οποία έχει τη δυνατότητα να πραγματοποιεί αναζήτηση και στο διαδίκτυο αλλά και στα δεδομένα του τηλεφώνου, πράγμα που μπορεί να ρυθμιστεί (Εικόνα 7). Εικόνα 7 : Μενού επίλογης ρυθμίσεων του Quick Search Box -10-

17 Τον Νοέμβριο του 2009 κυκλοφορήσε το Android SDK 2.0 το οποίο παρέχει καινούρια APIs όσο αφορά στη διαχείριση και συγχρονισμό λογαριασμών και επαφών, Bluetooth και διεπαφές χρήστη. Η πιο επαναστατική εφαρμογή που λειτουργεί μόνο στην έκδοση 2.0 είναι το Google Maps Navigation η οποία μετατρέπει το Android κινητό σε σύστημα Navigation. 3.2 Ορισμός Android Σαν μια καινούργια προσθήκη σε ένα ώριμο πεδίο, αυτό της κινητής τηλεφωνίας, δεν είναι δύσκολο να δει κάνει γιατί έχει υπάρξει κάποια σύγχυση για το τι ακριβώς είναι το Android. Έτσι βοηθάει στην κατανόηση πριν το ακριβή προσδιορισμό του να προσδιορίστεί πρώτα τι δεν είναι το Android Τι δεν είναι το Android Το Android δεν είναι : Μια Java ME εφαρμογή. Οι εφαρμογές Android γράφονται χρησιμοποιώντας τη γλώσσα της Java, αλλά δε τρέχουν μέσα σε μια Java ΜΕ εικονική μηχανή, και οι κλάσεις που έχουν μεταφραστεί με Java και τα εκτελέσιμα αρχεία δεν θα τρέξουν σε Android. Μέρος του Linux Phone Standards Forum (Lips) ή της Open Mobile Alliance (OMA). Το Android τρέχει σε έναν ανοικτού κώδικα πυρήνα Linux, αν και οι στόχοι τους είναι παρόμοιοι, η πλήρης προσέγγιση του λογισμικού του Android πηγαίνει περαιτέρω από τους στόχους αυτών των οργανώσεων. o Το Linux Phone Standards Forum είναι μια κοινοπραξία που δημιουργήθηκε από μια ομάδα επιχειρήσεων ως προσπάθεια να δημιουργηθούν πρότυπα που στοχεύουν στην ενθάρρυνση της χρήσης Linux στις κινητές συσκευές. Ο κύριος σκοπός του lips Forum είναι να δημιουργήσει APIs που θα επιτρέψουν σε κατασκευαστές να χτίσουν εφαρμογές που θα λειτουργούν στα κινητά τηλέφωνα Linux όλων των κατασκευαστών. o Το Open Mobile Alliance δημιουργήθηκε τον Ιούνιο του 2002 ως απάντηση στον πολλαπλασιασμό των βιομηχανικών Forum, κάθε ένα από το οποίο εξετάζει μερικά πρωτόκολλα εφαρμογής: το WAP Forum, το Wireless Village το SyncML Initiative, το Location Interoperability -11-

18 Forum, το Mobile Games Interoperability Forum και το Mobile Wireless Internet Forum. Κάθε ένα από αυτά τα Forum είχε τα δικά του καταστατικά, τις δικές του διαδικασίες λήψης αποφάσεών, το δικό του πρόγραμμα εκδόσεων, και σε μερικές περιπτώσεις υπήρξε κάποια επικάλυψη στις προδιαγραφές, που προκαλούσε το διπλασιασμό της εργασίας. Το OMA δημιουργήθηκε για να συλλέξει αυτές τις πρωτοβουλίες κάτω από ένα ενιαίο Forum. Απλά ένα επίπεδο εφαρμογών (application layer) (όπως UIQ ή S60). To Android όχι μόνο περιλαμβάνει ένα επίπεδο εφαρμογών, αλλά επίσης περιγράφει ολόκληρο μια ενότητα λογισμικού (software stack) περιλαμβάνοντας το λειτουργικό σύστημα, βιβλιοθήκες API και εφαρμογές. o Το UIQ (γνωστό ως User Interface Quartz) είναι μια πλατφόρμα λογισμικού που βασίζεται στο Symbian OS. Ουσιαστικά αυτό είναι μια γραφική διεπαφή χρήστη που παρέχει πρόσθετα συστατικά στον πυρήνα του λειτουργικού, για να επιτρέψει την ανάπτυξη κινητών τηλεφώνων με περισσότερα χαρακτηριστικά που είναι ανοικτά σε επεκτάσεις μέσω εφαρμογές τρίτων. o Η S60 πλατφόρμα (Series 60 User Interface) είναι μια πλατφόρμα λογισμικού για τα κινητά τηλέφωνα που τρέχoυν στο Symbian OS. Το S60 είναι αυτήν την περίοδο μεταξύ των κύριων πλατφορμών smartphone στον κόσμο. Ανήκει στη Nokia η οποία και χορηγεί άδεια σε άλλους κατασκευαστές συμπεριλαμβανομένου των Lenovo, LG Electronics, Panasonic και Samsung. Ένα κινητό τηλέφωνο. Το Android περιλαμβάνει ένα σχέδιο αναφοράς για τους κατασκευαστές κινητών τηλεφώνων αφού έχει σχεδιαστεί για να υποστηρίξει πολλές εναλλακτικές συσκευές. Η απάντηση της Google στο iphone. Το iphone είναι μια πλήρως ιδιόκτητη πλατφόρμα υλικού και λογισμικού που καταβάλλεται από μια ενιαία επιχείρηση (Apple), ενώ το Android είναι μια ενότητα λογισμικού ανοιχτού κώδικα που παράγεται και που υποστηρίζεται από την Open Mobile Alliance και που σχεδιάστηκε για να λειτουργήσει σε οποιοδήποτε μικροτηλέφωνο που καλύπτει τις απαιτήσεις. -12-

19 3.2.2 Τι είναι το Android Το Android είναι μια ενότητα λογισμικού ανοιχτού κώδικα που περιλαμβάνει το λειτουργικό σύστημα, το υλικό λογισμικό, και τις βασικές εφαρμογές μαζί με ένα σύνολο βιβλιοθηκών API για τη κατασκευή κινητών εφαρμογών που μπορούν να διαμορφώσουν το όψη, την αίσθηση και τη λειτουργία των κινητών τηλεφώνων. Δίνει τη δυνατότητα στους κατασκευαστές να γράψoυν κώδικα στη Java, ελέγχοντας τη συσκευή μέσω των βιβλιοθηκών της Java κατασκευασμένες από την Google. Eφαρμογές γραμμένες σε C και άλλες γλώσσες μπορούν να μεταγλωττιστούν στον κώδικα ARM και να τρέξουν πράγμα που δε συνίσταται. 3.3 Χαρακτηριστικά γνωρίσματα του Android SDK Το πραγματικό πρόσωπο του Android σαν ένα περιβάλλον ανάπτυξης βρίσκεται στα APIs που παρέχει. Σαν μια ουδέτερη όσο αφορά τις εφαρμογές πλατφόρμα, το Android δίνει την ευκαιρία να δημιουργηθούν εφαρμογές που είναι τόσο μέρος του τηλεφώνου όσο και εκτός του πακέτου. Παρακάτω σημειώνονται μερικά από τα πιο αξιοσημείωτα χαρακτηριστικά γνωρίσματα του Android: Καμία οικονομική επιβάρυνση όσο άφορα τη χορήγηση αδειών, τη διανομή, ή την αμοιβή ανάπτυξης του λογισμικού. WI-IF Πρόσβαση υλικού. GEM, EDGE, και 3G δίκτυα για τηλεφωνία ή μεταφορά δεδομένων, που επιτρέπει σε κάποιον να πραγματοποιήσει ή να λάβει κλήσεις ή μηνύματα ms, ή να στείλει και να ανακτήσει δεδομένα μέσω των δίκτυων κινητής τηλεφωνίας. Εύκολα και κατανοητά APIs τοποκεντρικών (location-based) υπηρεσιών όπως το GPS. Πλήρης έλεγχος του υλικού πολυμέσων συμπεριλαμβανομένου της αναπαραγωγής ήχου και εγγραφής, χρησιμοποιώντας τη φωτογραφική μηχανή και το μικρόφωνο. APIs για υλικό επιταχυμέτρων (accelerometer) και πυξίδων (compass). Ανάγνωση μηνυμάτων ipc. Διαμοιραζόμενες βάσεις δεδομένων. Έναν ενσωματωμένο ανοικτoύ κώδικα βασισμένο σε webkit φυλλομετρητή. -13-

20 Πλήρης υποστήριξη εφαρμογών που ενσωματώνουν χειρισμό χαρτών ως μέρος της διεπαφής χρήστη. Υποστήριξη Peer-to-peer(P2P) χρησιμοποιώντας το Google Talk. Βελτιστοποιημένα γραφικά που περιλαμβάνουν path-based 2D βιβλιοθήκη γραφικών και υποστήριξη για τα 3D γραφικά χρησιμοποιώντας OpenGL ES. Πολυμεσικές Βιβλιοθήκες για αναπαραγωγή και για εγγραφή εικόνων και video σε ποικίλες μορφές. Ένα πλαίσιο εφαρμογών που ενθαρρύνει την επαναχρησιμοποίηση τμημάτων εφαρμογών και αντικατάσταση των εγγενών εφαρμογών. 3.4 Το πλαίσιο ανάπτυξης του Android Οι εφαρμογές Android γράφονται χρησιμοποιώντας την Java ως γλώσσα προγραμματισμού αλλά εκτελούνται χρησιμοποιώντας την εικονική μηχανή (virtual machine) Dalvik και όχι μια παραδοσιακή Java VM. Κάθε εφαρμογή Android τρέχει σε μια ξεχωριστή διαδικασία μέσα στο δικό της στιγμιότυπο της Dalvik VM, εγκαταλείποντας όλη την ευθύνη για μνήμη και διαχείριση διαδικασιών στο χρόνο εκτέλεσης, ο οποίος σταματά και τερματίζει τις διαδικασίες για να κάνει καλύτερη διαχείριση των πόρων του. Η Dalvik VM και ο χρόνος εκτέλεσης του Android βρίσκονται πάνω από έναν πυρήνα Linux που χειρίζεται τη χαμηλού επιπέδου αλληλεπίδραση υλικού συμπεριλαμβανομένων των οδηγών (drivers) και της διαχείρισης μνήμης, ενώ ένα σύνολο APIs παρέχει πρόσβαση σε όλες τις υπηρεσίες, στα χαρακτηριστικά γνωρίσματα του κινητού, και στο υλικό Τι περιέχεται στο πακέτο (box) Το Πακέτο Ανάπτυξης Λογισμικού (software development kit SDK) του Android περιλαμβάνει όλα αυτά που χρειάζεται κανείς για να δημιουργήσει, να ελέγξει και να διορθώσει μια εφαρμογή Android. Στο SDK περιλαμβάνονται: Τα Android APIs. - Ο πυρήνας του SDK είναι οι Android API βιβλιοθήκες που δίνουν στους κατασκευαστές τη δυνατότητα να έχουν πρόσβαση στη συλλογή λογισμικού του Android (Android stack). Αυτές είναι οι ίδιες βιβλιοθήκες που χρησιμοποιούνται από τη Google για να δημιουργήσουν τις εγγενείς εφαρμογές του Android. -14-

21 Τα εργαλεία ανάπτυξης (Development Tools). - Για τη μετατροπή του πηγαίου κώδικα σε εκτελέσιμες εφαρμογές Android, το SDK περιλαμβάνει διάφορα εργαλεία ανάπτυξης που δίνουν τη δυνατότητα να συνταχτούν και να διορθωθούν οι εφαρμογές. Τον εξομοιωτή του Android (Android Emulator). - Ο εξομοιωτής του Android είναι ένας πλήρως διαδραστικός εξομοιωτής συσκευών Android που περιέχει διάφορες εναλλακτικές προσόψεις (skins). Μέσω του εξομοιωτή, φαίνεται η όψη και η συμπεριφορά μιας εφαρμογής έτσι όπως θα φαινόταν σε μια πραγματική συσκευή Android. Όλες οι εφαρμογές Android μπορούν να λειτουργήσουν μέσα στη Dalvik VM για το λόγο αυτό ο εξομοιωτής λογισμικού είναι ένα άριστο περιβάλλον - είναι ουδέτερο όσο άφορα την αναπαράσταση κάποιας συσκευής, έτσι παρέχει ένα καλύτερο ανεξάρτητο περιβάλλον δοκιμής από οποιαδήποτε άλλο υλικό δοκιμών εφαρμογών. Υπάρχει η δυνατότητα να αλλάξει το skin του εξομοιωτή βάζοντας το κατάλληλο skinid στο -skin <skinid> όταν ξεκινάει η μηχανή Για παράδειγμα: emulator -skin HVGA-L Υπάρχουν 4 διαθέσιμα skins: Πίνακας 1 skinid Description Skin HVGA-L 480x320, landscape HVGA-P 320x480, portrait (default) -15-

22 QVGA-L 320x240, landscape QVGA-P 240x320, portrait Πλήρης τεκμηρίωση. - Το SDK περιλαμβάνει εκτενείς και λεπτομερείς πληροφορίες για το τι ακριβώς περιλαμβάνεται σε κάθε πακέτο και κλάση και πώς να χρησιμοποιηθεί. Επίσης έκτός από την τεκμηρίωση του κώδικα, δίνονται οδηγίες για το πως μπορεί να ξεκινήσει να δημιουργεί κανείς μια εφαρμογή καθώς επίσης και λεπτομερείς εξηγήσεις των βασικών αρχών πίσω από την ανάπτυξη εφαρμογών Android. Δείγματα κώδικα (Sample Code). - Το SDK του Android περιλαμβάνει έναν αριθμό εφαρμογών που επιδεικνύουν μερικές από τη δυνατότητες που γίνονται διαθέσιμες χρησιμοποιώντας το Android, καθώς επίσης και απλών προγραμμάτων που δίνουν έμφαση στο πώς χρησιμοποιούνται μεμονωμένα χαρακτηριστικά γνωρίσματα του API. Online υποστήριξη. - Αν και σχετικά νέο, το Android έχει δημιουργήσει αναπτυσσόμενη και ενεργή κοινότητα κατασκευαστών λογισμικού. Οι ομάδες του Google στο είναι ενεργό φόρουμ κατασκευαστών Android μέσα στους οποίους ανήκουν και μέλη της ομάδας ανάπτυξης Android της Google. -16-

23 3.4.2 Συλλογή Λογισμικού του Android (Software Stack) Η συλλογή λογισμικού του Android φαίνεται στην Εικόνα 6. Ένας πυρήνας Linux και μια συλλογή βιβλιοθηκών C/C++ μέσω ενός πλαισίου εφαρμογών παρέχει υπηρεσίες για το χρόνο εκτέλεσης και τις εφαρμογές καθώς και για τρόπους διαχείρισης τους. Εικόνα 8: Συλλογή Λογισμικού (Software Stack) Πυρήνας Linux (Linux Kernel) - Yπηρεσίες πυρήνων (συμπεριλαμβανομένων των οδηγών υλικού, διαχείριση διαδικασιών, μνήμης, ασφάλειας, δίκτυου, και ενέργειας) χειρίζονται από ένα 2.6 πυρήνα Linux. Ο πυρήνας παρέχει επίσης ένα (abstraction layer) αφαιρετικό στρώμα μεταξύ του υλικού και του υπολοίπου σωρού. Βιβλιοθήκες (Libraries) Λειτουργούν πάνω από τον πυρήνα. Το Android περιλαμβάνει διάφορες βιβλιοθήκες πυρήνων C/C++ όπως την libc και την SSL, καθώς επίσης και: Μια βιβλιοθήκη πολυμέσων για την αναπαραγωγή πολυμέσων. Ένα διαχειριστή Eπιφάνειας (Surface manager ) που διαχειρίζεται τον τρόπο με τον οποίο φαίνονται τα διάφορα στοιχεία. Βιβλιοθήκες γραφικών που περιλαμβάνουν SGL και OpenGL για τα 2D και 3D γραφικά. -17-

24 SQLite για την εγγενή υποστήριξη βάσεων δεδομένων SSL και WebKit για την μηχανή αναζήτησης Ιστού και για την ασφάλεια Διαδικτύου Ο Χρόνος Εκτέλεσης του Android (Android Runtime) - Αυτό που κάνει ένα Android τηλέφωνο στην ουσία ένα «Android τηλέφωνο» και όχι μια διεπαφή Linux κινητών είναι ο χρόνος εκτέλεσης. Συμπεριλαμβανομένων των βιβλιοθηκών πυρήνα και της Dalvik VM, χρόνος εκτέλεσης του Android είναι η κινητήρια δύναμη των εφαρμογών και, μαζί με τις βιβλιοθήκες, αποτελούν τη βάση για το πλαίσιο εφαρμογών. Βιβλιοθήκες πυρήνα (Core Libriries). - Αν και η ανάπτυξη Android εφαρμογών γίνεται σε Java, η Dalvik VM δεν είναι μια Java VM. Οι βιβλιοθήκες πυρήνα παρέχουν μεγαλύτερη χρησιμότητα από βιβλιοθήκες πυρήνα της Java καθώς επίσης και από άλλες βιβλιοθήκες του Android (Android-specific libraries). Η εικονική μηχανή Dalvik (Dalvik Virtual Machine) - H Dalvik είναι μια εικονική μηχανή βασισμένη σε μητρώα (register-based) που έχει βελτιστοποιηθεί για να εξασφαλίσει ότι μια συσκευή μπορεί να τρέξει πολλαπλά στιγμιότυπα αποδοτικά. Στηρίζεται στον πυρήνα Linux για να κάνει νηματισμό (threading) και να διαχειριστεί χαμηλά επίπεδα μνήμης. Το Πλαίσιο Εφαρμογών (Application Framework) - Το πλαίσιο εφαρμογών παρέχει τις κλάσεις που χρησιμοποιούνται για να δημιουργηθούν εφαρμογές Android. Παρέχει επίσης μια γενική αφαιρετικότητα (abstraction) για την πρόσβαση υλικού και διαχειρίζεται τους πόρους της διεπαφής χρήστη (user interface) και των εφαρμογών. Το στρώμα εφαρμογών (Application Layer) - Όλες οι εφαρμογές, και οι εγγενείς και αυτές τρίτων, έχουν χτιστεί πάνω στο στρώμα εφαρμογών χρησιμοποιώντας τις ίδιες βιβλιοθήκες API. Το στρώμα εφαρμογών λειτουργεί μέσα στον Android σε χρόνο εκτέλεσης χρησιμοποιώντας τις κλάσεις και τις υπηρεσίες που παρέχονται από το πλαίσιο εφαρμογών Η εικονική μηχανή Dalvik Ένα από τα στοιχεία κλειδί του Android είναι η εικονική μηχανή Dalvik. Το Android χρησιμοποιεί την δικιά του εικονική μηχανή, και όχι μια παραδοσιακή με σκοπό να εξασφαλίσει ότι πολλαπλά στιγμιότυπα τρέχουν αποτελεσματικά σε μια ενιαία συσκευή. -18-

25 Η Dalvik VM χρησιμοποιεί τον πυρήνα Linux της συσκευής για να χειριστεί τη χαμηλού επιπέδου λειτουργίες συμπεριλαμβανομένου ασφάλειας, πολυνηματισμού, και διαχείρισης διαδικασιών και μνήμης. Είναι επίσης δυνατό να γραφτούν εφαρμογές C/C++ που τρέχουν άμεσα στο εσωτερικό του λειτουργικού Linux. Αν και μπορεί γίνει αυτό, στις περισσότερες περιπτώσεις δεν υπάρχει κανένας λόγος. Μέσω της Dalvik VM επιτυγχάνεται η ρύθμιση της πρόσβασης στο υλικό και στις υπηρεσίες του συστήματος. Με τη χρησιμοποίηση αυτής της εικονικής μηχανής στην εκτέλεση εφαρμογής, η οποία προσφέρει ένα αφαιρετικό στρώμα, οι κατασκευαστές δεν χρειάζεται να ανησυχήσουν για κάποια υλοποίηση υλικού (hardware implementaion). H Dalvik VM εκτελεί τα Dalvik εκτελέσιμα αρχεία, ένα format βελτιστοποιημένο έτσι ώστε να καταλαμβάνει την ελάχιστη μνήμη. Τα.dex εκτελέσιμα αρχεία δημιουργούνται μετασχηματίζοντας κλάσεις που έχουν μεταγλωττιστεί από Java χρησιμοποιώντας εργαλεία που παρέχονται μέσα στο SDK. Μια απλή Java VM είναι μια εικονική μηχανή βασισμένη σε στοίβα (stack-based). Η Dalvik VM από την άλλη είναι μια εικονική μηχανή βασισμένη σε μητρώα (registerbased), έτσι αυξάνεται η αποδοτικότητα του επεξεργαστή του κινητού. Επίσης οι εικονικέ μηχανές που είναι βασισμένες σε μητρώα επιτρέπουν ταχύτερους χρόνους εκτέλεσης των μεγάλων προγραμμάτων Αρχιτεκτονική των Εφαρμογών Android Η αρχιτεκτονική του Android ενθαρρύνει την έννοια επαναχρησιμοποίησης κώδικα, που επιτρέπει να δημοσιευτούν και να μοιραστούν δραστηριότητες, υπηρεσίες και δεδομένα με άλλες εφαρμογές με πρόσβαση που ελέγχεται από τους περιορισμούς ασφάλειας που έχουν τεθεί. Έτσι γίνεται δυνατή η επέκταση και βελτιοποίηση υπαρχόντων εφαρμογών ή δημιουργίας καινούργιων χρησιμοποιώντας κώδικα από αυτές. Οι ακόλουθες υπηρεσίες εφαρμογών είναι οι ακρογωνιαίοι λίθοι της αρχιτεκτονικής όλων των εφαρμογών Android, παρέχοντας το πλαίσιο που θα χρησιμοποιηθεί για τη δημιουργία του λογισμικού : Διαχειριστής Δραστηριοτήτων (Activity Manager) - Eλέγχει τον κύκλο ζωής των δραστηριοτήτων, συμπεριλαμβανομένης της διαχείρισης του σωρού δραστηριoτήτων. -19-

26 Όψεις (Views) - Χρησιμοποιούνται για να κατασκευάσουν διεπαφές χρήστη (user interface) για τις δραστηριότητες (activities). Διαχειριστή Ειδοποιήσεων (Notification Manager) - Παρέχει ένα συνεπή και αποτελεσματικό μηχανισμό για να προειδοποιεί τον χρήστη Παροχέας Περιεχομένου (Content Providers) - Επιτρέπουν στις εφαρμογές να μοιραστούν δεδομένα μεταξύ τους. Διαχειριστής Πόρων (Resource Manager) - Υποστηρίζει πόρους εκτός κώδικα όπως συμβολοσειρές και γραφικά Βιβλιοθήκες Android Το Android προσφέρει διάφορα APIs για την ανάπτυξη εφαρμογών. Ο ακόλουθος κατάλογος APIs πυρήνα δίνει μια ιδέα για το τι είναι διαθέσιμο, όλες οι συσκευές Android υποστηρίζουν το λιγότερο αυτά τα APIs : android.util - Το πακέτο βοηθήματος (utility) πυρήνων περιέχει χαμηλού επιπέδου κλάσεις όπως τα εξειδικευμένα containers, μορφοποιητές (formatters) συμβολοσειρών, και βοηθήματα για parsing XML αρχείων. android.os - To πακέτο λειτουργικού συστήματος παρέχει την πρόσβαση στις βασικές υπηρεσίες του λειτουργικού συστήματος όπως τη διαβίβαση μηνυμάτων, τη επικοινωνία μεταξύ των επικοινωνιών, τις λειτουργίες ρολογιών, και την απασφαλμάτωση (debugging). android.graphics - Το API γραφικών παρέχει τις χαμηλού επιπέδου κλάσεις γραφικών που υποστηρίζουν τους καμβάδες (canvases), τα χρώματα, και τα βασικά στοιχεία ζωγραφικής, και δίνεται η δυνατότητα να ζωγραφίσει κανείς πάνω σε καμβά (canvas). android.text - Τα εργαλεία επεξεργασίας κειμένων για αναπαράσταση και ανάλυσης κειμένου. android.database - Παρέχει τις χαμηλού επιπέδου κλάσεις που απαιτούνται για το χειρισμό των δρομέων (cursors) κατά τη λειτουργία τους με τις βάσεις δεδομένων. android.content - Το API περιεχομένου (content) χρησιμοποιείται για να διαχειριστεί την πρόσβαση στα δεδομένα και την έκδοση τους παρέχοντας υπηρεσίες για την -20-

27 διαχείριση των πόρων, των Παροόχων Περιεχομένου (Content Provider), και των πακέτων. android.view Οι Όψεις (Views) είναι οι κλάσεις πυρήνα διεπαφών χρήστη. Όλες οι διεπαφές χρήστη κατασκευάζονται χρησιμοποιώντας μια σειρά από Όψεις που παρέχουν τα συστατικά της αλληλεπίδρασης χρηστών. android.widget - Τοποθετημένες στο πακέτο View, οι κλάσεις widget είναι τα στοιχεία της διεπαφής χρήστη (user-interface) που χρησιμοποιούνται στις εφαρμογές. Περιλαμβάνουν τις λίστες, τα κουμπιά, και τις διατάξεις (layouts). com.google.android.maps - Ένα υψηλού επιπέδου API που παρέχει πρόσβαση στις εγγενείς λειτουργίες χαρτών που μπορούν να χρησιμοποιηθούν μέσα σε εφαρμογές. Περιλαμβάνει τη λειτουργία MapView καθώς επίσης και τις κλάσεις Overlay και MapController που χρησιμοποιούνται για να διαχειριστούν και να ελέγξουν τους ενσωματωμένους χάρτες. android.app - Ένα πακέτο υψηλού επιπέδου που παρέχει πρόσβαση στο μοντέλο εφαρμογών. Το πακέτο εφαρμογών περιλαμβάνει τα Activity και Service APIs που αποτελούν τη βάση για όλες τις Android εφαρμογές. android.provider - Για να διευκολύνει την πρόσβαση των προγραμματιστών σε ορισμένους τυποποιημένους Παρόχους Περιεχομένου (Content Providers) (όπως η βάση δεδομένων επαφών), προσφέρονται κλάσεις που παρέχουν πρόσβαση σε τυποποιημένες βάσεις δεδομένων που περιλαμβάνονται σε όλες τις εκδόσεις Android. android.telephony - Τα APIs τηλεφωνίας επιτρέπουν την άμεση αλληλεπίδραση με το τηλεφωνικό σωρό (phone stack) της συσκευής, δίνοντας τη δυνατότητα, να γίνει λήψη, και έλεγχος των τηλεφωνημάτων, της κατάστασης του τηλεφώνου, και τα μηνυμάτων SMS. android.webkit - Το πακέτο WebKit περιλαμβάνει APIs για την εργασία με περιεχόμενο βασισμένο στο διαδίκτυο, συμπεριλαμβανομένου της λειτουργίας wampee για την ενσωμάτωση μηχανών αναζήτησης και ενός διαχειριστή για cookie. Εκτός από το Android APIs, ο σωρός του Android περιλαμβάνει ένα σύνολο βιβλιοθηκών C/C++. Αυτές οι βιβλιοθήκες περιλαμβάνουν: -21-

28 OpenGL - Βιβλιοθήκη που χρησιμοποιείται για να υποστηρίξει 3D γραφικά βασισμένη στο Open GL ES 1.0 API. FreeType - Υποστήριξη για τη bitmap και τη vector απόδοση γραμματοσειράς. SGL - Bβιβλιοθήκη πυρήνων που χρησιμοποιείται για να παρέχει μια μηχανή 2D γραφικών. libc - Τυποποιημένη βιβλιοθήκη C που βελτιστοποιείται για συσκευές βασισμένες σε Linux. SQLite - Ελαφριά μηχανή σχεσιακών βάσεων δεδομένων που χρησιμοποιείται για να αποθηκεύσει δεδομένα εφαρμογών. SSL - Υποστήριξη για χρήση των Secure Sockets Layer του κρυπτογραφικού πρωτοκόλλου για ασφαλείς επικοινωνίες μέσω Διαδικτύου Προηγμένες βιβλιοθήκες Android Οι βιβλιοθήκες πυρήνα παρέχουν όλες τις λειτουργίες που είναι απαραίτητες για να ξεκινήσει η δημιουργία μιας εφαρμογής για Android, αλλά οι προηγμένες βιβλιοθήκες APIs προσφέρουν πραγματικά συναρπαστικές λειτουργίες. Επειδή το Android στοχεύει να χρησιμοποιείται από ένα ευρύ φάσμα κινητών, η καταλληλότητα και η εφαρμογή των ακόλουθων APIs θα ποικίλουν ανάλογα με τη συσκευή επάνω στην οποία εφαρμόζονται. android.location - Το τοποκεντρικό API (location-based) δίνει πρόσβαση των εφαρμογών σε πληροφορίες για τη τρέχουσα φυσική θέση της συσκευής. Οι υπηρεσίες βασισμένες στη τοποθεσία παρέχουν πρόσβαση σε πληροφορίες τοποθεσίας χρησιμοποιώντας οποιοδήποτε υλικό ή τεχνολογία είναι διαθέσιμη στη συσκευή και βοηθάει στον προσδιορισμό θέσης. android.media - Τα APIs πολυμέσων παρέχουν υποστήριξη για την αναπαραγωγή και εγγραφή αρχείων ήχου και βίντεο, συμπεριλαμβανομένου πολυμέσα ροής (streamed). android.opengl - To Android προσφέρει μια ισχυρή αποδοτική 3D μηχανή που χρησιμοποιεί το OpenGL ES API με το οποίο δημιουργούνται 3D διεπαφές χρήστη για τις εφαρμογές. -22-

29 android.hardware - Όπου είναι διαθέσιμο, το API υλικού εκθέτει υλικό αισθητήρων συμπεριλαμβανομένης της φωτογραφικής μηχανής, του επιταχυμέτρων (accelerometer), και αισθητήρων πυξίδας. android.bluetooth, android.net.wifi, και android.telephony - Το Android επίσης παρέχει χαμηλού επιπέδου πρόσβαση στην πλατφόρμα υλικού, συμπεριλαμβανομένου Bluetooth, του WI-FI, και του υλικού τηλεφωνίας. 3.5 Ανάπτυξη εφαρμογών Android Το SDK του Android περιλαμβάνει διάφορα εργαλεία και βοηθήματα για τη δημιουργία, τον έλεγχο, και τη διόρθωση των προγραμμάτων. Το ADT plug-in προσθέτει τα περισσότερα από αυτά τα εργαλεία στο Eclipse IDE,στα οποία υπάρχει η δυνατότητα πρόσβασης μέσω της DDMS κατάστασης. Ο εξομοιωτής του Android (The Android Emulator) - Μια εφαρμογή της εικoνικής μηχανής του Android σχεδιασμένη να τρέξει στον υπολογιστή. Μπορεί να χρησιμοποιηθεί ο εξομοιωτής για να εξεταστούν και να διορθωθούν οι Android εφαρμογές. Η Dalvik Υπηρεσία Παρακολούθησης Απασφαλμάτωσης (Dalvik Debug Monitoring Service (DDMS)) - Η DDMS κατάσταση χρησιμοποιείται για τη παρακολούθηση και τον χειρισμό των Dalvik εικονικών μηχανών στις οποίες γίνεται η απασφαλάτωση των εφαρμογών. Android Asset Packaging Tool (AAPT) - Κατασκευάζει το εκτελέσιμο πακέτο αρχείων με κατάληξη.apk. Android Debug Bridge (ADB) - Το ADB είναι μια εφαρμογή πελάτη-εξυπηρέτη (client - server) που παρέχει μια σύνδεση με έναν τρέχοντα εξομοιωτή. Δίνει την δυνατότητα να αντιγράφούν αρχεία, να εγκατασταθούν πακέτα εφαρμογών με κατάληξη.apk, και να εκτελεστούν εντολές πυρήνα. Τα ακόλουθα πρόσθετα εργαλεία είναι επίσης διαθέσιμα: SQLite3 - Εργαλείο βάσεων δεδομένων που χρησιμοποιείται για να υπάρχει πρόσβαση στα δεδομένα της βάσεως δεδομένων SQLite που δημιουργείται και που χρησιμοποιείται από το Android. -23-

30 Traceview - Εργαλείο ανάλυσης γραφικών για την εμφάνιση των trace logs των Android εφαρμογών. MkSDCar - Δημιουργεί μια εικόνα (image) δίσκων SDCard που μπορεί να χρησιμοποιηθεί από τον εξομοιωτή για να εξομοιώσει μια εξωτερική κάρτα αποθήκευσης. dx - Μετατρέπει το.class bytecode της Java σε.dex bytecode του Android. activitycreator - Κομμάτι κώδικα που χτίζει αρχεία Ant, τα οποία μπορούν να χρησιμοποιηθούν για να μεταφράσουν εφαρμογές Android χωρίς το ADT plug-in Βασικά Συστατικά Οι εφαρμογές Android αποτελούνται από κάποια συστατικά, συνδεδεμένα χρησιμοποιώντας ένα XML αρχείο το AndroidManifest.xml του κάθε project που περιγράφει κάθε συστατικό και πώς αλληλεπιδρά με τα άλλα. Υπάρχουν έξι συστατικά που παρέχουν τις δομικές μονάδες για τις εφαρμογές: Δραστηριότητα (Activity) Είναι το επίπεδο παρουσίασης (presentation layer) της εφαρμογής. Μια δραστηριότητα είναι μια απλή οθόνη της εφαρμογής. Κάθε δραστηριότητα υλοποιείται σαν μια κλάση που επεκτείνει (extends) την βασική κλάση Δραστηριότητα (Activity base class). Η συγκεκριμένη κλάση προβάλει μια διεπαφή χρήστη (user interface) αποτελούμενη από Όψεις (Views) και ανταποκρίνεται σε Συμβάντα (Events). Ένα Activity είναι ισοδύναμo με μια Φόρμα (Form) στην ανάπτυξη desktop εφαρμογών. Υπηρεσία (Service) - Μια Υπηρεσία είναι κώδικας που τρέχει για μεγάλο χρονικό διάστημα και χωρίς διεπαφή χρήστη (UI), ενημερώνοντας τις πηγές δεδομένων και τις ορατές Δραστηριότητες (Activities) ενεργοποιώντας Ειδοποιήσεις (Notifications). Τρέχουν και επεξεργάζονται δεδομένα ακόμα και όταν οι Δραστηριότητες της εφαρμογής δεν είναι ενεργές ή ορατές. Ένα καλό παράδειγμα είναι μια εφαρμογή που αναπαράγει μουσική από μια λίστα μουσικών κομματιών (media player). Σε μια τέτοια εφαρμογή, θα υπήρχαν κατά πάσα πιθανότητα μία ή και παραπάνω Δραστηριότητες που επιτρέπουν στον χρήστη να επιλέξει τραγούδια και να τα αναπαράξει. Ωστόσο, η αναπαραγωγή από μόνη της δεν θα έπρεπε να διαχειρίζεται από την Δραστηριότητα γιατί ο χρήστης θα περίμενε την μουσική να συνεχίζει να παίζει ακόμη και μετά την πλοήγησή του σε μια νέα οθόνη. Σε αυτή τη περίπτωση, η Δραστηριότητα της -24-

31 αναπαραγωγής μουσικής θα ξεκινούσε μια Υπηρεσία (Service) για να τρέξει στο παρασκήνιο και να συνεχίσει η μουσική να παίζει. Το σύστημα τότε θα κρατά την Υπηρεσία αναπαραγωγής ενεργή μέχρι να τελειώσει το κομμάτι. Όταν πραγματοποιηθεί σύνδεση σε μια Υπηρεσία, μπορεί να υπάρξει επικοινωνία με αυτή μέσω μιας διεπαφής που προσφέρεται από την Υπηρεσία. Για την Υπηρεσία μουσικής, αυτό θα επέτρεπε τη παύση, ή την επιστροφή πίσω στο κομμάτι (rewind) κλπ.. Παροχέας Περιεχομένου (Content Provider) - Οι εφαρμογές μπορούν να σώζουν τα δεδομένα τους σε αρχεία, σε μια βάση δεδομένων SLQLite ή με οποιοδήποτε άλλο μηχανισμό μπορούν. Ένας Παροχέας Περιεχομένου, ωστόσο, είναι χρήσιμος ώστε τα δεδομένα μιας εφαρμογής να είναι διαθέσιμα και σε άλλες εφαρμογές. Ένας Παροχέας Περιεχομένου είναι μια κλάση που υλοποιεί μια συγκεκριμένη ομάδα μεθόδων που επιτρέπουν σε άλλες εφαρμογές να αποθηκεύουν και να επανακτούν δεδομένα του τύπου που διαχειρίζεται ο Παροχέας Περιεχομένου. Οι συσκευές Android περιλαμβάνουν διάφορους εγγενείς Παροχείς Περιεχομένου (Content Providers) που εκθέτουν τις χρήσιμες βάσεις δεδομένων όπως για παράδειγμα των στοιχείων των επαφών του χρήστη. Πρoθέσεις (Intents) - Το Android χρησιμοποιεί μια ειδική κλάση που λέγεται Πρόθεση (Intent) για να κινείται από οθόνη σε οθόνη. Η Πρόθεση περιγράφει τι θέλει η εφαρμογή να γίνει στη συνέχεια. Τα δυο πιο σημαντικά μέρη της δομής δεδομένων της Πρόθεσης είναι η Δράση (Action) και τα δεδομένα βάσει των οποίων αυτή θα εκτελεστεί. Τυπικές τιμές για μια δράση είναι η MAIN (η κεντρική είσοδος της εφαρμογής), VIEW, PICK, EDIT κλπ. Τα δεδομένα εκφράζονται ως URI (Uniform Resource Indicator). Για παράδειγμα, για να εμφανιστεί μια ιστοσελίδα στον φυλλομετρητή, δημιουργείται μια Πρόθεση με Δράση VIEW και τα δεδομένα ως ένα URL. New Intent(android.content.Intent.VIEW_ACTION; ContentURI.create( )); Υπάρχει μια σχετική κλάση που λέγεται Φίλτρο Πρόθεσης (IntentFilter). Ενώ μια Πρόθεση είναι στην ουσία ένα αίτημα για να γίνει κάτι, το Φίλτρο Πρόθεσης είναι μια περιγραφή του τι είναι δυνατόν να διαχειριστεί ένας Δέκτης Πρόθεσης (Ιntent -25-

32 Ρeceiver). Μια Δραστηριότητα που είναι σε θέση να προβάλει πληροφορίες επικοινωνίας για ένα άτομο θα ανακοίνωνε με ένα Φίλτρο Πρόθεσης (IntentFilter) ότι γνωρίζει πως να διαχειριστεί την VIEW_ACTION όταν τα δεδομένα αντιπροσωπεύουν ένα άτομο. Οι Δραστηριότητες ανακοινώνουν τα Φίλτρα Πρόθεσης (IntentFilters) στο AndroidManifest.xml αρχείο. Η πλοήγηση από οθόνη σε οθόνη πετυχαίνετε με Προθέσεις. Για να πλοηγηθεί κανείς προς τα μπρος, μια Δραστηριότητα καλεί την startactivity(myintent). Το σύστημα τότε κοιτά στα Φίλτρα Προθέσεων (Intent Filters) για όλες τις εγκατεστημένες εφαρμογές και διαλέγει την Δραστηριότητα που τα Φίλτρα Πρόθεσης ταιριάζουν καλύτερα με την MyIntent παράμετρο της κλήσης. Η νέα Δραστηριότητα ενημερώνεται για την Πρόθεση και ξεκινά. Η διαδικασία της υλοποίησης των Προθέσεων συμβαίνει κατά τον χρόνο εκτέλεσης της εφαρμογής όταν καλείται η startactivity, πράγμα που προσφέρει 2 πλεονεκτήματα κλειδιά: Οι Δραστηριότητες μπορούν να επαναχρησιμοποιούν κάποια λειτουργικότητα από άλλα τμήματα του κώδικα απλά κάνοντας ένα αίτημα υπό την μορφή μιας Πρόθεσης. Οι Δραστηριότητες μπορούν να αντικατασταθούν οποιαδήποτε στιγμή από μια νέα Δραστηριότητα με ένα αντίστοιχο Φίλτρο Πρόθεσης. Δέκτες Πρόθεσης (Intent Receiver) - Χρησιμοποιείται για να εκτελεστεί μια εφαρμογή σε απάντηση ενός εξωτερικού συμβάντος (external event), για παράδειγμα, όταν το τηλέφωνο χτυπά, ή όταν το δίκτυο είναι διαθέσιμο, ή όταν είναι μεσάνυχτα. Οι Δέκτες Πρόθεσης δεν προβάλουν μια διεπαφή χρήστη (UI), ωστόσο μπορούν να προβάλουν Ειδοποιήσεις (Notifications) για να ειδοποιήσουν τον χρήστη για κάτι σημαντικό που συνέβη. Οι Δέκτες Πρόθεσης είναι επίσης καταχωρημένοι στο AndroidManifest.xml, αλλά μπορούν επίσης καταχωρηθούν από τον κώδικα χρησιμοποιώντας την Context.registerReceiver(). Η εφαρμογή δεν χρειάζεται να τρέχει για να κληθούν οι Δέκτες Πρόθεσης που έχει. Το σύστημα θα κινήσει την εφαρμογή, αν χρειαστεί, όταν ένας Δέκτης Πρόθεσης ενεργοποιηθεί. Οι εφαρμογές μπορούν επίσης να στέλνουν τις δικές τους Ανακοινώσεις Πρόθεσης (Intent Broadcasts) σε άλλους με την Context.broadcastIntent(). Δέκτες Μετάδοσης (Broadcast Receivers) - Βασική Κλάση για τον κώδικα που θα λαμβάνει τις Προθέσεις (Intents) που στέλνονται από το sendbroadcast (). Μπορεί -26-

33 είτε δυναμικά να καταχωρηθεί μια περίπτωση αυτής της κατηγορίας με Context.registerReceiver () είτε να καταχωρηθεί ένα στιγμιότυπο αυτής της κλάσης σε μια εφαρμογή μέσω της ετικέτας <receiver> στο AndroidManifest.xml. Οι Δέκτες Μετάδοσης αρχίζουν αυτόματα την εφαρμογή αποκρινόμενοι σε μια εισερχόμενη Πρόθεση, που στην ουσία κάνει την εφαρμογή μια εφαρμογή οδηγούμενη από τα γεγονότα. Υπάρχουν δύο σημαντικές κατηγορίες Μεταδόσεων (Broadcasts) που μπορούν να παραληφθούν: Οι Κανονικές Μεταδόσεις Normal broadcasts (που στέλνονται με Context.sendBroadcast) είναι απολύτως ασύγχρονες. Όλοι οι Δέκτες της Μετάδοσης οργανώνονται σε μια απροσδιόριστη διαταγή, συχνά συγχρόνως. Αυτό είναι αποδοτικότερο, αλλά σημαίνει ότι οι Δέκτες δεν μπορούν να χρησιμοποιήσουν το αποτέλεσμα ή να αποβάλουν APIs που συμπεριλαμβάνονται εδώ. Οι Μεταδόσεις Διαταγής Ordered broadcasts (που στέλνονται με Context.sendOrderedBroadcast) παραδίδονται σε έναν Δέκτη τη φορά. Δεδομένου ότι κάθε Δέκτης εκτελείται στη συνέχεια, μπορεί να διαδώσει ένα αποτέλεσμα στον επόμενο Δέκτη, ή μπορεί να αποβάλει τη Μετάδοση έτσι ώστε να μη περάσει σε άλλους δέκτες. Ο χειρισμός της εκτέλεσης των Δεκτών διαταγής μπορεί να γίνει με την ιδιότητα του Φίλτρου Προθέσεων Ταιριάσματος (Matching Intent-Filter). Οι Δέκτες με την ίδια προτεραιότητα τρέχουν με τυχαία σειρά. Ειδοποιήσεις( Notifications) - Είναι ένα πλαίσιο ειδοποιήσεων χρήστη. Oι Ειδοποιήσεις δίνουν την δυνατότητα ειδοποίησης του χρήστη χωρίς να υπάρξει παρεμβολή στη τρέχουσα Δραστηριότητα (Activity) και του παρέχουν τις εξής δυνατότητες : Να δημιουργήσει ένα νέο εικονίδιο status bar. Να επιδείξει τις πρόσθετες πληροφορίες (και να προωθήσουν μια πρόθεση) στο εκτεταμένο παράθυρο status bar. Να ενεργοποιήσει τα φώτα/leds. Να δονηθεί το τηλέφωνο. Να ενεργοποιήσει διάφορους ήχους (ringtones, ήχοι του τηλεφώνου κ.λ.). -27-

34 Οι Ειδοποιήσεις είναι ο προτιμότερος τρόπος για τα αόρατα τμήματα της εφαρμογής (Δέκτες μετάδοσης, Υπηρεσίες, και ανενεργές Δραστηριότητες) να προειδοποιήσουν τους χρήστες ότι κάποια γεγονότα που έχουν εμφανιστεί απαιτούν την προσοχή του χρήστη. Παραδείγματος χάριν, όταν λαμβάνει μια συσκευή ένα μήνυμα κειμένων ή μια εισερχόμενη κλήση, προειδοποιεί με τη λάμψη των φώτων, την παραγωγή ήχων, την επίδειξη εικονιδίων, ή με την εμφάνιση μηνυμάτων διαλόγου. Ο Χειριστής Ειδοποιήσεων (Notification Manager) είναι μια Υπηρεσία συστήματος που χρησιμοποιείται για να χειριστεί τις ειδοποιήσεις. Καλείται μέσω της μεθόδου getsystemservice, όπως φαίνεται παρακάτω: String svcname = Context.NOTIFICATION_SERVICE; NotificationManager notificationmanager; notificationmanager = (NotificationManager)getSystemService(svcName); Χρησιμοποιώντας το Χειριστή Ειδοποιήσεων, μπορούν να ενεργοποιηθούν νέες ειδοποιήσεις, να τροποποιηθούν οι υπάρχουσες, ή να αφαιρεθούν εκείνες που δεν είναι απαραίτητες ή επιθυμητές AndroidManifest.xml To AndroidManifest.xml είναι ένα αρχείο που απαιτείται για κάθε εφαρμογή Android. Βρίσκεται στον root φάκελο της εφαρμογής, και περιγράφει τις καθολικές (global) μεταβλητές για το πακέτο, συμπεριλαμβανομένων των στοιχείων της εφαρμογής (δραστηριότητες, υπηρεσίες, κ.λπ.) που το πακέτο εκθέτει στον «εξωτερικό κόσμο», τo είδος δεδομένων που καθεμία από τις δραστηριότητες κ.α. μπορεί να χειριστεί, και πώς μπορούν να ενεργοποιηθούν. Ένα σημαντικό πράγμα που πρέπει να αναφερθεί για αυτό το αρχείο είναι τα λεγόμενα Φίλτρα Προθέσεων (IntentFilters). Τα φίλτρα αυτά περιγράφουν το που και το πότε μπορεί να ξεκινήσει μια Δραστηριότητα. Όταν μια Δραστηριότητα (ή το λειτουργικό σύστημα) θέλει να εκτελέσει μια ενέργεια, όπως το άνοιγμα μιας ιστοσελίδας ή το άνοιγμα μιας οθόνης επιλογής επαφής, δημιουργεί ένα αντικείμενο Προθέσης (Intent). Αυτό το αντικείμενο μπορεί να κρατήσει αρκετές πληροφορίες που -28-

35 περιγράφουν τι θέλει ο προγραμματιστής να κάνει, τα δεδομένα που απαιτούνται για να επιτευχθεί αυτό και άλλα κομμάτια των πληροφοριών. Το Android συγκρίνει πληροφορίες ενός αντικειμένου Πρόθεσης με το Φίλτρο Πρόθεσης που εκτίθενται από κάθε εφαρμογή και βρίσκει τη Δραστηριότητα που είναι καταλληλότερη να χειριστεί τα δεδομένα ή τις ενέργειες που καθορίζονται από τον καλούντα. Αν υπάρχουν περισσότερες από μία εφαρμογές ικανές να χειριστούν αυτή τη Πρόθεση, ο χρήστης έχει τη δυνατότατα να επιλέξει ποια εφαρμογή θα προτιμούσε για τη διεκπεραίωση της. Εκτός από τη δήλωση των Δραστηριοτήτων (Activities), των Παροχέων Περιεχομένου (Content Providers), των Υπηρεσιών (Services) και των Δεκτών Προθέσεων(Intent Receivers), μπορεί επίσης να καθοριστούν δικαιώματα (permissions) στo AndroidManifest.xml. Γενικά Ένα πολύ απλό AndroidManifest.xml μοιάζει με το εξής : <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="org.anddev.android.hello_android"> <application android:icon="@drawable/icon"> <activity android:name=".hello_android" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> Σχεδόν κάθε αρχείο AndroidManifest.xml (όπως και πολλά άλλα XML αρχεία Android) περιλαμβάνει τη δήλωση ονομάτων (xmlns:android= res/android ) στο πρώτο στοιχείο του. Αυτό -29-

36 κάνει μια σειρά τυποποιημένων χαρακτηριστικών του Android διαθέσιμα στο αρχείο, το οποίο θα χρησιμοποιηθεί για την παροχή περισσότερων από τα δεδομένα για τα στοιχεία του φακέλου. Σχεδόν κάθε αρχείο AndroidManifest.xml περιλαμβάνει μια μοναδική ετικέτα <application>, η οποία περιλαμβάνει πολλές ετικέτες που περιγράφουν Εφαρμογές, Δέκτες Προθέσεων (Intent Recievers), κτλ που είναι διαθέσιμες σε αυτή την εφαρμογή. Για να γίνει δυνατή η εκτέλεση μιας Δραστηριότητας άμεσα μέσω του χρήστη, θα πρέπει να υποστηρίζει την ενέργεια MAIN τη κατηγορία LAUNCER, και τo αποτέλεσμα που ακολουθεί είναι το παρακάτω: Εικόνα 9 : Απευθείας εκτελέσιμη Δραστηριότητα Το AndroidManifest.xml αρχείο περιέχει τις ακόλουθες ετικέτες <manifest> Αυτός είναι ο κόμβος, ρίζα του κάθε αρχείου And roidmanifest.xml και περιέχει μια ιδιότητα πακέτου που δείχνει το πακέτο της εφαρμογής, Συνήθως περιλαμβάνει την ιδιότητα xmlns:android που παρέχει αρκετά χαρακτηριστικά του συστήματος που χρησιμοποιούνται μέσα στο αρχείο. Ένας χαρακτηριστικός κόμβος manifest φαίνεται παρακάτω -30-

37 <manifest Xmlns:android=" package="org.anddev.android.smstretcher"> [ manifest nodes.] </manifest > H ετικέτα manifest περιλαμβάνει κόμβους που ορίζουν τα συστατικά μιας εφαρμογή, τις ρυθμίσεις ασφαλείας, και τις κλάσεις δοκιμής (test classes) που απαρτίζουν την εφαρμογή. Περιλαμβάνει τις ακόλουθες ετικέτες : application Ένα αρχείο manifest μπορεί να περιέχει μόνο ένα κόμβο application. Χρησιμοποιεί ιδιότητες για να καθορίσει τα μετα-δεδομένα της εφαρμογής (συμπεριλαμβανομένου του τίτλου, του εικονιδίου της, και του θέματος). Επίσης, λειτουργεί ως ένα δοχείο (container) που περιλαμβάνει ετικέτες Δραστηριοτήτων, Υπηρεσιών, των Παρόχων Περιεχομένου, και Δεκτών Μετάδοσης που χρησιμοποιούνται για τον καθορισμό των συστατικών της εφαρμογής. <application > [... application nodes... ] </application> activity (δραστηριότητα) - Μια ετικέτα activity απαιτείται για κάθε Δραστηριότητα που εμφανίζεται στην εφαρμογή, χρησιμοποιώντας την ιδιότητα android:name για να καθορίστεί το όνομα της κλάσης. Αυτή πρέπει να περιλαμβάνει τη κύρια εναρκτήρια Δραστηριότητα (launce Activity) και κάθε άλλη οθόνη ή παράθυρα διαλόγου που μπορεί να εμφανιστούν. Προσπαθώντας να ξεκινήσει μια Δραστηριότητα που δεν είναι ορισμένη στο manifest θα δημιουργηθεί σφάλμα χρόνου εκτέλεσης (runtime ecxeption). Κάθε Κόμβος Δραστηριότητας υποστηρίζει ετικέτες παιδιά intent-filter (φίλτρα -31-

38 προθέσεων) που προσδιορίζουν ποιες Προθέσεις (Intents) ενεργοποιούν τη Δραστηριότητα. <activity android:name=.myactivity > <intent-filter> <action android:name= android.intent.action.main /> <category android:name= android.intent.category.launcher /> </intent-filter> </activity> service (υπηρεσία) - Όπως και η ετικέτα activity, δημιουργεί μια νέα ετικέτα service για κάθε κλάση Υπηρεσίας (Service) που χρησιμοποιείται στην εφαρμογή έτσι και η ετικέτα αυτή υποστηρίζει επίσης ετικέτες παιδιά intent-filter (late runtime binding) <service android:enabled= true android:name=.myservice ></service> provider Ετικέτες φορέων παροχής χρησιμοποιούνται για κάθε Παροχέα Περιεχομένου (Content Provider) εφαρμογής. Οι Παροχείς Περιεχομένου χρησιμοποιούνται για τη διαχείριση της πρόσβασης βάσεων δεδομένων και ανταλλαγής δεδομένων εντός και μεταξύ εφαρμογών. <provider android:permission= com.paad.my_permission android:name=.mycontentprovider android:enabled= true android:authorities= com.paad.myapp.mycontentprovider > </provider> -32-

39 receiver - Με την προσθήκη ετικέτας receiver, είναι δυνατός ο ορισμός ενός Δέκτη Μετάδοσης (Broadcast Receiver) χωρίς να είναι απαραίτητη η έναρξη της εφαρμογής. Οι Δέκτες Μετάδοσης είναι σαν καθολικοί ακροατές που, μιας και οριστούν, θα εκτελεστούν κάθε φορά που ταιριάζει με μια Πρόθεση (Intent) που μεταδίδεται από μια εφαρμογή. Με τον ορισμό Δεκτών Προθέσεων στο manifest, αυτή η διαδικασία γίνεται εντελώς αυτόνομη. Εάν μια Πρόθεση που ταιριάζει μεταδοθεί, η εφαρμογή θα ξεκινήσει αυτόματα και ο Δέκτης Πρόθεσης θα ενεργοποιηθεί <receiver android:enabled= true android:label= My Broadcast Receiver android:name=.mybroadcastreceiver > </receiver> uses-permission - Ως μέρος του μοντέλου ασφαλείας, οι ετικέτες uses-permission δηλώνουν τα δικαιώματα που πρέπει να έχει μια εφαρμογή για να λειτουργήσει σωστά. Τα δικαιώματα που περιλαμβάνονται θα παρουσιαστούν στο χρήστη, για τη έγκριση ή την απόρριψη, κατά την εγκατάσταση της. Τα δικαιώματα (permissions) είναι απαραίτητα για πολλές από τις εγγενής υπηρεσίες του Android, ιδίως εκείνες οι οποίες έχουν επιπτώσεις στο κόστος ή την ασφάλεια (όπως κλήση, λήψη SMS, είτε χρησιμοποιώντας υπηρεσίες βασισμένες στην τοποθεσία). Όπως φαίνεται παρακάτω, εφαρμογές τρίτων (όχι εγγενής), μπορούν επίσης να καθορίσουν δικαιώματα πριν από την παροχή πρόσβασης σε κοινόχρηστα στοιχεία της εφαρμογής. <uses-permission android:name= android.permission.access_location > </uses-permission> permission - Πριν πραγματοποιηθεί οποιοσδήποτε περιορισμός για την πρόσβαση σε ένα στοιχείο της εφαρμογής, θα πρέπει να οριστούν τα δικαιώματα (permissions) -33-

40 στο manifest το οποίο πραγματοποιείται με τον ορισμό της ετικέτας permission. Τα στοιχεία της εφαρμογής μπορούν να τα απαιτήσουν με την προσθήκη της ιδιότητας android:permission. Άλλες εφαρμογές θα πρέπει στη συνέχεια να προσθέσουν μια ετικέτα uses-permission στα manifest τους (και να έχουν χορηγηθεί), πριν να μπορούν να χρησιμοποιούν αυτά τα προστατευόμενα στοιχεία. Εντός της ετικέτας permission, μπορεί να καθοριστεί το επίπεδο της πρόσβασης που επιτρέπεται από το συγκεκριμένο δικαίωμα (permission) (κανονικό (normal), επικίνδυνο (dangerous), υπογραφής (signature), signatureorsystem), μια ετικέτα, και μια εξωτερική πηγή που περιλαμβάνει την περιγραφή που εξηγεί τους κινδύνους της χορήγησης αυτού του δικαιώματος. <permission android:name= com.paad.detonate_device android:protectionlevel= dangerous android:label= Self Destruct > </permission> instrumentation - Oι κλάσεις Instrumentation παρέχουν ένα πλαίσιο για την εκτέλεση δοκιμών στις Δραστηριότητες (Activities) και τις Υπηρεσίες (Services) κατά το χρόνο εκτέλεσης. Παρέχουν αγκίστρια (hooks) για την παρακολούθηση της εφαρμογής και της αλληλεπίδρασης της με τους πόρους του συστήματος. <instrumentation android:label= My Test android:name=.mytestclass android:targetpackage= com.paad.apackage > </instrumentation> Οι Πόροι (Resources) Οι πόροι είναι εξωτερικά αρχεία (αρχεία εκτός κώδικα) (Εικόνα 10) που χρησιμοποιούνται από τον κώδικα της εφαρμογής και μεταφράζονται σε χρόνο build. -34-

41 To Android υποστηρίζει μια σειρά από διαφορετικά είδη αρχείων πόρων, συμπεριλαμβανομένων των XML, PNG, και JPEG. Τα αρχεία XML έχουν πολύ διαφορετικές μορφές, ανάλογα με αυτό που περιγράφουν. Εικόνα 10 : Πόροι Οι πόροι είναι εκτός πηγαίου κώδικα, και τα XML αρχεία, μεταφράζονται σε μια δυαδική, γρήγορη όσο αφορά τη φόρτωση για λόγους αποτελεσματικότητας. Οι συμβολοσειρές είναι συμπιεσμένες σε μια πιο αποτελεσματική μορφή αποθήκευσης. Κατάλογος πόρων Τύποι πόρων και που τοποθετούνται: Αρχεία διάταξης (layout) "/ res / layout /" Εικόνες "/ res / drawable /" Animations"/ res / anim /" Στιλ, αλφαριθμητικά και πίνακες "/ res / values /" Πολυμεσικά αρχεία όπως mp3s ή βίντεο "/ res / raw/" Χρησιμοποιώντας πόρους σε κώδικα Για να γίνει χρήση των πόρων στο κώδικα αρκεί μόνο η γνώση της ταυτότητας (ID) του πόρου και τον τύπο του αντικειμένου στο οποίο έχει μεταφραστεί ο πόρος. Εδώ είναι η σύνταξη για αναφορά σε έναν πόρο: -35-

42 R.τύπος_πόρου.όνομα_πόρου ή android.r.τύπος_πόρου.όνομα_πόρου Όπου τύπος_πόρου είναι η υποκλάση της R που κατέχει ένα συγκεκριμένο είδος πόρου resource. Το όνομα_πόρου είναι το χαρακτηριστικό όνομα για πόρους που καθορίζονται στα αρχεία XML, ή το όνομα του αρχείου (χωρίς την κατάληξη) για πόρους που καθορίζονται από άλλους τύπους αρχείων. Κάθε είδος πόρου θα προστεθεί σε μια συγκεκριμένη υποκλάση του R, ανάλογα με το είδος των πόρων που είναι. Αναφορά σε πόρους που μεταφράζονται (compiled) από μια εφαρμογή μπορεί να γίνει χωρίς το όνομα πακέτου (απλά ως R.τύπος_πόρου.όνομα_πόρου). Το Android περιέχει ένα πλήθος τυπικών πόρων, όπως το στιλ οθόνης (screen styles) και κουμπιά υποβάθρου. Για να γίνει αναφορά σε αυτές στον κώδικα, θα πρέπει να τη συμπληρώνει με android, όπως για παράδειγμα: android.r.drawable.button_background. Πόροι Αναφοράς Μια τιμή που παρέχεται σε μια ιδιότητα (ή πόρο) μπορεί επίσης να είναι μια αναφορά σε ένα άλλο πόρο. Αυτό χρησιμοποιείται συχνά στα αρχεία διάταξης για τη παροχή αλφαριθμητικών και εικόνων (που υπάρχουν σε άλλο αρχείο), αν και μια αναφορά μπορεί να είναι οποιουδήποτε τύπου πόρος, συμπεριλαμβανομένων χρωμάτων και ακεραίων. Για παράδειγμα, αν έχουμε πόρους χρώματος, μπορεί να γράφτεί ένα αρχείο διάταξης που καθορίζει το μέγεθος χρώματος που θα είναι η τιμή που περιέχεται σε έναν από τους πόρους: <Edit Text android:layout_width="fill_parent" -36-

43 android:layout_height="fill_parent" android:text="hello, World!" /> Η χρήση του εισάγει μια αναφορά πόρου. Το κείμενο που έπεται είναι το όνομα ενός πόρου, με τη Τύπος / όνομα. Σε αυτή την περίπτωση δεν χρειάζεται να καθοριστεί το πακέτο, διότι γίνεται αναφορά σε έναν πόρο στο ίδιο πακέτο. Για την αναφορά ενός πόρου του συστήματος, θα πρέπει να γραφτεί <EditText android:layout_width="fill_parent" android:layout_height="fill_parent" android:textcolor="@android:color/opaque_red" android:text="hello, World!" /> Επίσης, θα πρέπει να γίνεται χρήση αναφορών των πόρων κατά την παροχή αλφαριθμητικών σε ένα αρχείο διάταξης ώστε να μπορούν να εντοπίζονται: <EditText android:layout_width="fill_parent" android:layout_height="fill_parent" android:textcolor="@android:color/opaque_red" android:text="@string/hello_world" /> Ενναλαγή Πόρων & Εντοπισμού (Localization) Ενναλαγή Πόρων και Εντοπισμού είναι ένα πολύ χρήσιμο θέμα. Αυτό το θέμα δίνει λύση σε ζητήματα όπως η απαίτηση δημιουργίας μιας διεπαφής χρήστη που να τοποθετείται ταυτόχρονα και σε οθόνη προσανατολισμού πορτρέτου (portrait screen- -37-

44 orientation) και σε προσανατολισμό τοπίου (landscape screen-orientation), πράγμα που είναι σχεδόν αδύνατο. Μπορούν να οριστούν διαφορετικοί πόροι για μια εφαρμογή ανάλογα με τη γλώσσα της διεπαφής χρήστη ή τις ρυθμίσεις του υλικού της συσκευής. Αν και μπορούν να συμπεριληφθούν διάφορoι πόροι αλφαρηθμητικών, διάταξης, κ.α., το SDK δεν εκθέτει τις μεθόδους για το προσδιορισμό ποιών πόρων θα χρησιμοποιηθούν. Το Android ανιχνεύει τον κατάλληλο πόρο για το υλικό και την τοποθεσία του, και τα φορτώνει ανάλογα με την περίπτωση. Μόνο ο χρήστης μπορεί να επιλέξει εναλλακτικές ρυθμίσεις γλώσσας μέσω του πίνακα των ρυθμίσεων της συσκευής. Για να συμπεριληφθούν εναλλακτικοί πόροι, είναι απαραίτητη η δημιουργία παράλληλων φακέλων πόρων με διαφορετική κατάληξη ακολουθούμενες από παύλες, αναφέροντας τις ρυθμίσεις που έχουν οριστεί (γλώσσα, τον προσανατολισμό της οθόνης, dpi, ανάλυση,...). Για παράδειγμα, παρακάτω φαίνεται ένα Project το οποίο έχει αλφαριθμητικά για 2 διαφορετικές γλώσσες, την αγγλική (values-en) και τη γερμανική (values-de): MyApp/ res/ values-en/ strings.xml values-de/ strings.xml Το Android υποστηρίζει διάφορους τύπους τροποποιητών (qualifiers), με διάφορες τιμές για κάθε έναν απ αυτούς, οι οποίοι τοποθετούνται στο τέλος του ονόματος του φακέλου του πόρου και χωρίζονται με παύλες. Είναι δυνατή η πρόσθεση πολλών τροποποιητών για κάθε όνομα φακέλου, αλλά πρέπει να αναγράφονται με τη σειρά που αναφέρονται εδώ. Για παράδειγμα, ένας φάκελο που περιέχει πόρους drawable θα είναι ως εξής : -38-

45 MyApp/ res/ drawable-en-rus-port-92dpi-finger-keyshidden-12key-dpad-480x320/ Πιο συγκεκριμένα, μπορούν να καθοριστούν μόνο μερικές επιλογές διαμόρφωσης του πόρου. Μπορεί να αφαιρεθεί οποιαδήποτε από τις τιμές της λίστας, εφόσον οι υπόλοιπες τιμές εξακολουθούν να είναι στην ίδια σειρά: MyApp/ res/ drawable-en-rus-finger/ drawable-port/ drawable-port-160dpi/ drawable-qwerty/ To Android θα επιλέξει ποια από τα διάφορα αρχεία πόρου ταιριάζουν καλύτερα κατά το χρόνο εκτέλεσης, ανάλογα με τις τρέχουσες ρυθμίσεις διαμόρφωσης. Το αρχείο R.java Το αρχείο R.java μιας εφαρμογής δημιουργείται αυτόματα και είναι το ευρετήριο όλων των πόρων της εφαρμογής. Μπορεί να χρησιμοποιηθεί αυτή η κλάση στο πηγαίο κώδικα ως ένα είδος σύντομου τρόπου να γίνεται αναφορά σε πόρους που έχουν συμπεριληφθεί στην εφαρμογή. Αυτό είναι ιδιαίτερα ισχυρό με IDEs όπως το Eclipse διότι επιτρέπει γρήγορα και με αλληλεπίδραση τον εντοπισμό της συγκεκριμένης αναφοράς που ψάχνει κανείς. Επιπλέον υπάρχει ασφάλεια κατά την μεταγλώττιση ότι ο πόρος που θα χρησιμοποιηθεί πραγματικά υπάρχει Διεπαφή Χρήστη (User Interface) Οι Διεπαφές Χρήστη (UI) στο Android μπορούν να χτιστούν με δύο τρόπους, με τον καθορισμό κώδικα XML ή με κώδικα Java. Ο καθορισμός της δομής GUI σε XML είναι προτιμότερος, επειδή σύμφωνα με την αρχή του Μοντέλο-Θεατή-Έλεγχος (Model- -39-

46 Viewer-Control), το οτι η διεπαφή χρήστη πρέπει πάντα να ξεχωρίζει από την λογική του προγράμματος. Επιπλέον το να προσαρμοστεί ένα πρόγραμμα από μια οθόνη με συγκεκριμένη ανάλυση σε μια διαφορετικής είναι πολύ πιο εύκολο. Ο καθορισμός ενός UI σε XML είναι παρόμοιος με τη δημιουργία ενός κοινού HTML-εγγράφου, όπως για παράδειγμα: <html> <head> <title> Page Title </ title> </ head> <body> Το περιεχόμενο του στοιχείου σώματος. </ body> </ html> Ακριβώς όπως στα XML-σχεδιαγράμματα του Android. Όλα είναι αυστηρώς δομημένα και μπορούν να εκφραστούν από δεντρικές δομές. <? xml version = "1.0" encoding = "utf-8"?> <LinearLayout xmlns: android = android : orientation ="verical" android: layout_width = "fill_parent" android: layout_height = "fill_parent"> <TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Hello World" /> -40-

47 </ LinearLayout> Ιεραρχία των Στοιχείων οθόνης Η βασική λειτουργική μονάδα μιας εφαρμογής Android είναι η Δραστηριότητα, ένα αντικείμενο της κλάσης android.app.activity. Μια Δραστηριότητα μπορεί να κάνει πολλά πράγματα, αλλά από μόνη της δεν έχει παρουσία στην οθόνη. Για να δοθεί στη δραστηριότητά παρουσία στην οθόνη και σχεδιασμός διεπαφής χρήστη, είναι απαραίτητη η χρήση των Όψεων (Views) και των Ομάδων Όψεων (Viewgroups) - βασικές μονάδες της διεπαφής χρήστη για την πλατφόρμα Android. Όψεις (Views) Μια Όψη είναι ένα αντικείμενο που κληρονομεί τη βασική κλάση android.view.view. Είναι μια δομή δεδομένων της οποίας οι ιδιότητες περιέχουν τη διάταξη και το περιεχόμενο για μια συγκεκριμένη ορθογώνια επιφάνεια της οθόνης. Ένα αντικείμενο Όψης χειρίζεται τις μετρήσεις των διαστάσεων, της διάταξης, την κατάρτιση, οι αλλαγές επικεντρώνονται, η κύλιση, και βασικά οι χειρονομίες για την περιοχή της οθόνης που αντιπροσωπεύει. Η Κλάση της Όψης χρησιμεύει ως βασική κλάση για όλα τα widgets - ένα σύνολο από πλήρως υλοποιημένες υποκλάσεις που σχεδιάζουν διαδραστικά στοιχεία οθόνης. Τα widgets διαχειρίζονται τις δικές τους διαστάσεις και σχεδιασμό, ώστε να είναι δυνατή η κατασκευή της διεπαφής χρήστη πιο γρήγορα. Η λίστα των διαθέσιμων widgets περιλαμβάνει τα TextView, EditText, Button, RadioButton, Checkbox, ScrollView κλπ. Ομάδα Όψεων (Viewgroups). Ένα viewgroup είναι ένα αντικείμενο της κλάσης android.view.viewgroup. Όπως υποδηλώνει το όνομά της, ένα viewgroup είναι ένας ειδικός τύπος του αντικειμένου View η λειτουργία του οποίου είναι να περιλαμβάνει και να διαχειρίζεται δευτερεύοντα σύνολα άλλων Views και άλλων viewgroups. Τα viewgroups επιτρέπουν να προστεθεί δομή στη διεπαφή χρήστη και τη δημιουργία πολύπλοκων στοιχείων οθόνης που μπορούν να αντιμετωπιστούν ως ενιαία οντότητα. Η κλάση Viewgroup χρησιμεύει ως βασική κλάση για τη διάταξη ενός σύνολου υλοποιήσιμων υποκλίσεων που παρέχουν κοινούς τύπους διάταξης στην οθόνη. Οι -41-

48 διατάξεις (layouts) δίνουν έναν τρόπο να κατασκευαστεί μια δομή για ένα σύνολο από views. Δεντρική δομή της διεπαφής χρήστη Στη πλατφόρμα του Android, καθορίζεται η διεπαφή χρήστη μιας Διεργασίας (Activity) χρησιμοποιώντας ένα δέντρο του οποίου οι κόμβοι είναι views και viewgroup κόμβοι, όπως φαίνεται στην Eεικόνα 11. Το δέντρο μπορεί να είναι τόσο απλό όσο και σύνθετο, ανάλογα με τις απαιτήσεις του προγραμματιστή, και μπορεί να το δημιουργηθεί με το σύνολο προκαθορισμένων widgets και διατάξεων (layouts) του Android ή με την δημιουργία καινούργιων τύπων. Εικόνα 11 : Δομή διεπαφής χρήστη Για να μεταφερθεί το δέντρο στην οθόνη, η Δραστηριότητά καλεί την μέθοδο setcontentview() και περνά μια αναφορά στον αντικείμενο κόμβο της ρίζας. Μόλις το σύστημα του Android αποκτήσει την αναφορά του αντικείμενου κόμβου της ρίζας, μπορεί να λειτουργήσει άμεσα με τον κόμβο για να ακυρώσει, να μετρήσει, και να σχεδιάσει το δέντρο. Όταν η Δραστηριότητα ενεργοποιείται, το σύστημα ειδοποιεί τη δραστηριότητά και ζητεί από το κόμβο ρίζα να υπολογίσει και να σχεδιάσει το δέντρο. Ο κόμβος ρίζα στη συνέχεια δίνει εντολή στους κόμβους παιδιά του να σχεδιαστούν -42-

49 μόνα τους - με τη σειρά, κάθε κόμβος viewgroup στο δέντρο είναι υπεύθυνος για τη σχεδίαση των άμεσων παιδιών του. Κάθε viewgroup έχει την ευθύνη του υπολογισμού του διαθέσιμου χώρο που χρειάζεται, την διάταξη των παιδιών του, και καλώντας την draw() για κάθε παιδί να σχεδιαστεί. Τα παιδιά μπορούν να ζητήσουν ένα συγκεκριμένο μέγεθος και κάποια θέση στο γονέα, αλλά το αντικείμενο του γονέα έχει την τελική απόφαση για το πόσο μεγάλο μπορεί να είναι κάθε παιδί. Σύγκριση των στοιχείων της Διεπαφής Χρήστη του Android με τα στοιχεία της Swing Πίνακας 2: Android vs Swing Android Activities Views TextViews EditTexts Buttons Swing (J)Frame (J)Components (J)Labels (J)TextFields (J)Buttons Ακόμη και οι ακροατές ορίζονται παρόμοια. // Android myview.setonclicklistener(new OnClickListener(){... // Swing mybutton.addactionlistener(new ActionListener() { Ο κύκλος ζωής μια εφαρμογής Σε αντίθεση με τα περισσότερα παραδοσιακά περιβάλλοντα, οι εφαρμογές Android δεν έχουν κανέναν έλεγχο επί του κύκλου ζωής τους. Αντ 'αυτού, τα στοιχεία των εφαρμογών πρέπει να ακούν (listen) για αλλαγές στην κατάστασης της εφαρμογής και αντιδρούν αναλόγως και να είναι προετοιμασμένα για ξαφνικό τερματισμό. Κάθε εφαρμογή Android λειτουργεί στη δική της διαδικασία που τρέχει σαν ένα ξεχωριστό στιγμιότυπο Dalvik. Κατά τον χρόνο εκτέλεσης πραγματοποιείται διαχείριση μνήμης και διαδικασιών της κάθε εφαρμογής. Αν και σπάνια, είναι δυνατόν τα στοιχεία μιας εφαρμογής μέσα στην ίδια εφαρμογή να λειτουργούν σε διαφορετικές διαδικασίες ή πολλές εφαρμογές να μοιράζονται την ίδια διαδικασία χρησιμοποιώντας την εντολή android:process στα αντίστοιχα στοιχεία του Androidmanifest.xml. -43-

50 To Android επιθετικά διαχειρίζεται τους πόρους του, κάνει ό, τι χρειάζεται για να διασφαλιστεί ότι η συσκευή θα παραμένει ανταποκρίσημη (responsive). Αυτό σημαίνει ότι οι διαδικασίες (και οι εφαρμογές που φιλοξενούνται), θα πρέπει να τερματιστούν, χωρίς προειδοποίηση, αν κρίνεται απαραίτητο, για να αποδεσμευτούν οι πόροι για διαδικασίες υψηλότερης προτεραιότητας Προτεραιότητα των εφαρμογών και καταστάσεις των διαδικασιών Η σειρά με την οποία οι διαδικασίες τερματίζονται για την ανάθεση πόρων καθορίζεται από την προτεραιότητα των εφαρμογών που φιλοξενούνται. Η προτεραιότητα μιας εφαρμογής είναι ίση με την υψηλότερη προτεραιότητα ενός στοιχείου της εφαρμογής. Όταν δύο εφαρμογές έχουν την ίδια προτεραιότητα, η διαδικασία που είχε τη χαμηλότερη προτεραιότητα για περισσότερη ώρα θα τερματιστεί. Η προτεραιότητα των διαδικασιών επηρεάζεται επίσης από τις εξαρτήσεις μεταξύ των διεργασιών. Αν μια εφαρμογή εξαρτάται από μια Υπηρεσία (Service) ή από ένα Πάροχο Περιεχομένου (Content Provider) που παρέχεται από μια δεύτερη εφαρμογή, η δευτερεύουσα εφαρμογή θα πρέπει να έχει προτεραιότητα τόσο υψηλή όση και η εφαρμογή που υποστηρίζει. Όλες οι εφαρμογές Android θα παραμείνουν σε λειτουργία και στη μνήμη μέχρι το σύστημα να χρειαστεί πόρους για άλλες εφαρμογές. Εικόνα 12 Είναι σημαντικό η δομή της εφαρμογής να είναι σωστή για να εξασφαλιστεί ότι η προτεραιότητα της είναι κατάλληλη για την εργασία που κάνει. Αν δε πραγματοποιηθεί αυτό η εφαρμογή μπορεί να τερματιστεί, κατά την διάρκεια μιας σημαντικής εργασίας. -44-

51 Στην εικόνα 12 φαίνεται το Δέντρο προτεραιοτήτων που ορίζει την σειρά με την οποία θα τερματιστούν οι εφαρμογές και περιλαμβάνει: Ενεργές Διεργασίες (Active Processes) - Ενεργές (προσκηνίου) διαδικασίες είναι εκείνες που φιλοξενούν εφαρμογές με στοιχεία που την παρούσα στιγμή αλληλεπιδρούν με το χρήστη. Αυτές είναι οι διεργασίες που το Android προσπαθεί να κρατήσει ενεργές δεσμεύοντας για αυτές πόρους. Υπάρχουν γενικά πολύ λίγες από αυτές τις διαδικασίες, και τερματίζονται μόνο ως έσχατη λύση. Οι ενεργές διαδικασίες περιλαμβάνουν: Δραστηριότητες σε "ενεργό" κατάσταση. Είναι δηλαδή στο προσκήνιο και ανταποκρίνεται με τα γεγονότα του χρήστη. Δραστηριότητες (Activities), Υπηρεσίες (Services), ή Δέκτες Μετάδοσης (Broadcast Recievers) που εκτελούν επί του παρόντος onreceive χειριστή συμβάντων. Υπηρεσίες που εκτελούν έναν onstart, oncreate, ή ondestroy χειριστή συμβάντων. Ορατές Διεργασίες (Visible Processes) Οι Ορατές, αλλά ανενεργές διαδικασίες είναι εκείνες που φιλοξενούν "ορατές" Δραστηριότητες. Οι ορατές Δραστηριότητες αν και ορατές, δε βρίσκονται στο προσκήνιο ούτε ανταποκρίνονται στις ενέργειες του χρήστη. Αυτό συμβαίνει μόνο όταν μια Δραστηριότητα μόνο εν μέρει επικαλύπτεται (από μη πλήρη οθόνη ή από διαφανές Δραστηριότητα). Υπάρχουν γενικά πολύ λίγες ορατές διαδικασίες, και τερματίζονται μόνο σε ακραίες περιπτώσεις για να επιτραπεί σε ενεργές διαδικασίες να συνεχίσουν. Ενεργές Διεργασίες Υπηρεσίας (Active Service Processes) Αυτές είναι διεργασίες που φιλοξενούν Υπηρεσίες και έχουν ξεκινήσει. Οι υπηρεσίες υποστηρίζουν συνεχή επεξεργασία δεν θα πρέπει να συνεχίσει ορατή διεπαφή. Διότι οι υπηρεσίες δεν επικοινωνούν απευθείας με τον χρήστη, αυτές λαμβάνουν μικρότερη προτεραιότητα σε σχέση με τις Ορατές Δραστηριότητες. Εξακολουθούν να θεωρούνται διεργασίες προσκήνιου και δε τερματίζονται αν δεν απαιτούνται πόροι για τις Ενεργές ή Ορατές διαδικασίες. Διεργασίες Παρασκηνίου (Background Processes) - Οι Διεργασίες αυτές φιλοξενούν Δραστηριότητες που δεν είναι ορατές και δεν έχουν καμία Υπηρεσία που έχουν ξεκινήσει οι που θεωρούνται διεργασίες στο παρασκήνιο. Γενικά, θα υπάρχει ένα -45-

52 μεγάλος αριθμός διεργασιών παρασκηνίου που θα τερματίσει το Android για να ελευθερώσει πόρους για διεργασίες προσκηνίου χρησιμοποιώντας το πρότυπο last-seenfirst-killed που σημαίνει ότι θα τερματιστεί πρώτη η διεργασία που χρησιμοποιήθηκε τελευταία. Κενές Διαδικασίες (Empty Processes) - Προκειμένου να βελτιωθεί η συνολική απόδοση του συστήματος, το Android διατηρεί συχνά εφαρμογές στη μνήμη αφού έχουν τερματιστεί. Αποσκοπεί έτσι στη βελτίωση του χρόνου έναρξης των εφαρμογών όταν ξανάεκτελεστούν. Οι διαδικασίες τερματίζονται όταν αυτό απαιτείται. -46-

53 4 Google Maps Google Maps είναι μια εφαρμογή και τεχνολογία διαδικτύου χαρτογράφησης που παρέχεται από τη Google, δωρεάν (για μη-εμπορική χρήση), προσφέρει πολλές τοποκεντρικές υπηρεσίες, συμπεριλαμβανομένης της ιστοσελίδας του Google Maps, Google Ride Finder, το Google διαμετακόμισης (Transit), και χάρτες για ενσωμάτωση σε ιστοσελίδες τρίτων μέσω του Google Maps API. Διαθέτει οδικούς χάρτες, μια εφαρμογή προγραμματισμού μιας διαδρομής ανάλογα με το μέσo (πόδια, αυτοκίνητο, ή δημόσιες μεταφορές) και ενός αστικού εντοπισμού των επιχειρήσεων για πολλές χώρες σε όλο τον κόσμος. Σύμφωνα με έναν από τους δημιουργούς του (Lars Rasmussen), το Google Maps είναι «ένας τρόπος οργάνωση των πληροφοριών στον κόσμο γεωγραφικά». 4.1 Google maps για κινητά Το 2006, η Google παρουσίασε μια εφαρμογή Java που ονομάζεται Google Maps for mobile το οποίο προορίζεται να τρέχει σε οποιαδήποτε κινητό ή κινητή συσκευή που βασίζεται σε Java. Πολλά χαρακτηριστικά της υπάρχουσας διαδικτυακής εφαρμογής προσφέρονται σ αυτή την εφαρμογή My Location H έκδοση 2.0 του Google Maps για κινητά κυκλοφόρησε το Νοέμβριο του 2007 με ένα νέο χαρακτηριστικό, το My Location. To My Location δίνει τη δυνατότητα στους χρήστες να γνωρίζουν κατά προσέγγιση τη θέση τους σε ένα χάρτη, ακόμη και αν το τηλέφωνό τους δεν έχει τσιπ GPS. Το My Location είναι διαθέσιμο σε περισσότερες από 200 χώρες και σε πολλές διαφορετικές πλατφόρμες. Τα κινητά τηλέφωνα μπορούν να πραγματοποιούν και να δέχονται κλήσεις επειδή είναι συνδεδεμένα σε ένα κοντινό πύργο κυψέλης. Το τηλέφωνο γνωρίζει την ταυτότητα του πύργου κυψέλης που χρησιμοποιεί κάθε στιγμή. Εάν το τηλέφωνο έχει GPS, η εφαρμογή Maps του τηλέφωνου αποστέλλει τις συντεταγμένες GPS μαζί με τη ταυτότητα της κυψέλης (cell ID) σε έναν εξυπηρέτη τοποθεσιών της Google. Εκατομμύρια τέτοια δεδομένα πληροφορίας, δηλαδή συντεταγμένες τοποθεσίας GPS μαζί με την ταυτότητα κυψέλης -47-

54 (cell id ), στέλνονται στους εξυπηρέτες της Google. Οι εξυπηρέτες ομαδοποιούν τις ενημερώσεις GPS που αντιστοιχούν σε μια συγκεκριμένη ταυτότητα κυψέλης (cell ID) βάση κάποιου αλγόριθμου ομαδοποίησης (clustering) ώστε να βρεθεί κατά προσεγγίσει το κέντρο τους. Έτσι, όταν ένα τηλέφωνο χωρίς GPS χρειάζεται το προσδιορισμό της τοποθεσίας, η εφαρμογή στο τηλέφωνο στέλνει ερώτημα στον εξυπηρέτη της Google με τη ταυτότητα του πύργου κυψέλης και μεταφράζεται αυτό σε σε μια γεωγραφική θέση, δηλαδή, γεωγραφικό μήκος και πλάτος. Στην Εικόνα 13 φαίνεται η αρχιτεκτονική της λειτουργίας My Location. Εικόνα 13 : Αρχιτεκτονική λειτουργίας MyLocation Στη συνέχεια σχεδιάζει με μπλε χρώμα ένα κύκλο με διάμετρο που εξαρτάται από το σήμα του τηλεφώνου, αφού βάση αυτού υπολογίζει η εφαρμογή την απόσταση από την κεραία βρίσκεται. Από 15 Δεκεμβρίου του 2008, Η υπηρεσία αυτή είναι διαθέσιμη για τις ακόλουθες πλατφόρμες: Android (HTC Drem) iphone OS (iphone/ipod_touch) Windows Mobile (S60 3η έκδοση μόνο) Nokia/Symbian (UIQ v3) Symbian OS BlackBerry Τηλέφωνα με πλατφόρμα Java (MIDP 2.0 και άνω), για παράδειγμα, η Sony Ericsson K800i Palm OS (Centro και νεότερα) -48-

55 4.2 Google Maps και Android Ένα από το σημαντικότερο χαρακτηριστικό των κινητών τηλεφώνων είναι η δυνατότητα μεταφοράς τους, έτσι δεν είναι έκπληξη το γεγονός ότι ορισμένα από τα πιο δελεαστικά χαρακτηριστικά του Android είναι οι υπηρεσίες που επιτρέπουν να βρεθούν και να αποτυπωθούν σε χάρτη γεωγραφικές τοποθεσίες. Το Android επιτρέπει τη δημιουργία δραστηριοτήτων που περιλαμβάνουν διαδραστικά Google Maps, ως μέρος της διεπαφή χρήστη με πλήρη πρόσβαση σε χάρτες που μπορούν να ελεγχθούν προγραμματιστικά και να εμπλουτιστούν με τη πλούσια βιβλιοθήκη γραφικών του Android. Δίνεται πλήρης πρόσβαση στο χάρτη, επιτρέποντας το πλήρη έλεγχο των ρυθμίσεων εμφάνισης, τη μεταβολή του επίπεδου ζουμ, και τη μετακίνηση της κεντρικής τοποθεσίας. Χρησιμοποιώντας Overlays, υπάρχει η δυνατότητα επεξεργασίας του χάρτη και χειρισμό της παρέμβασης του χρήστη σ αυτόν. Η εγγενής υποστήριξη χάρτη στο Android επιτρέπει τη δημιουργία μιας σειράς από εφαρμογές βασισμένες σε χάρτη (map-based) που αυξάνουν τη κινητικότητα των συσκευών Android. Για να συνδυάσει χάρτες με τοποθεσίες, το Android περιλαμβάνει ένα API για κανονική και αντίστροφη γεωκωδικοποίηση (geocoding) που επιτρέπει να γίνει αντιστοίχιση συντεταγμένων χάρτη με μια διεύθυνση και μια διεύθυνση με μια θέση του χάρτη. Το Google Maps για κινητά είναι μια εξαιρετικά δημοφιλής εφαρμογή, και το Android προσφέρει ένα Google Map ως ένα ατομικό, επαναχρησιμοποιήσιμο στοιχείο για χρήση σε εφαρμογές. Τοποκεντρικές Υπηρεσίες (Location-based services LBS) είναι ένας γενικός όρος που χρησιμοποιείται για να περιγράψει τις διαφορετικές τεχνολογίες που χρησιμοποιούνται για το προσδιορισμό της τρέχουσα θέσης της συσκευής. Οι τοποκεντρικές υπηρεσίες Android διαχειρίζονται τεχνολογίες όπως το GPS και τη βασισμένη σε κυψέλες τεχνολογία τοποθεσίας GSM της Google που προσδιορίζει την τρέχουσα θέση της συσκευής. Μπορεί να καθορίστεί ποια τεχνολογία ανίχνευσης τοποθεσίας θα χρησιμοποιηθεί είτε με χρήση ρητά του ονόματος, είτε σιωπηρά με το προσδιορισμό μια σειράς κριτηρίων όσον αφορά την ακρίβεια, το κόστος, και άλλες απαιτήσεις. Τα δύο βασικά στοιχεία LBS είναι τα εξής: -49-

56 Διαχειριστής Τοποθεσίας (LocationManager). Παρέχει πρόσβαση στις υπηρεσίες βασισμένες στη τοποθεσία Παροχέας Τοποθεσίας (Location Providers). Κάθε ένα από τα οποία αντιπροσωπεύει μια διαφορετική τεχνολογία προσδιορισμού τηq τρέχουσας θέσης της συσκευής. Χρησιμοποιώντας το LocationManager, είναι δυνατή η: Απόκτηση της τρέχουσας θέσης της συσκευής. Παρακολούθηση της κίνησης. Ρύθμιση ειδοποιήσεων για την ανίχνευση της κυκλοφορίας μέσα και εκτός μιας προσδιορισμένης περιοχής. -50-

57 5 Περιγραφή και τεκμηρίωση Εφαρμογής Σε αυτό το κεφάλαιο θα γίνει η παρουσίαση της εφαρμογής που υλοποιήθηκε 5.1 Εργαλεία Για την ανάπτυξη της εφαμογής χρησιμοποιήθηκε η πλατφόρμα Eclipse με το ADT Plugin του Android καθώς και το SDK 1.6 του Android. Όλα αυτά διανέμονται δωρεάν στο διαδύκτιο και συνοδεύονται από αναλυτικές οδηγίες εγκατάστασης τους στις παρακάτω ιστοσελίδες : Eclipse ADT Plugin Android SDK Για το κομμάτι της εφαρμογής που αφορά τον εξυπηρέτη χρησιμοποιήθηκε ο Wamp Server,ο οποίος διατίθετε δωρεν στη σελίδα Ενώ για τη δημιουργία των αρχείων php χρησιμοποιήθηκε το DreamViewer της Adobe 5.2 Αρχιτεκτονική εφαρμογής Η αρχιτεκτονική της εφαρμογής (Εικόνα 14) αποτελείται κυριώς από 3 βασικά τμήματα. Το πρώτο τμήμα (Find) είναι αυτό που αποκτά την γεωγραφική πληροφορία, το δεύτερο (Send) είναι αυτό που την στέλνει και την αποθηκεύει ενώ το τρίτο (Map) είναι η εκμετάλευση της. -51-

58 Εικόνα 14 : Αρχιτεκτονική εφαρμογής Απόκτηση γεωγραφικής πληροφορίας Σε αυτό το στάδιο (Εικόνα 15) υπάρχει δυνατότητα χρήσης τεσσάρων διαφορετικών τρόπων απόκτησης γεωγραφικής πληροφορίας. Μέσω χρήσης GPS, μέσω της ταυτότητας της κεραίας κυψέλης που είναι συνδεδεμενο το τηλέφωνο, μέσω πληκτρολόγησης της διεύθυνσης της τοποθεσίας και τέλος μέσω της απευθείας πληκτρολόγησης των συντεταγμένων της τοποθεσίας. Εικόνα 15 : Αρχιτεκτονική της λειτουργίας απόκτησης γεωγραφικής πληροφορίας -52-

59 Το παγκόσμιο σύστημα εύρεσης τοποθεσίας, γνωστό ως GPS, είναι το μοναδικό δορυφορικό σύστημα πλοήγησης σε πλήρη λειτουργία. Ένα πλήθος περισσότερων από δύο δωδεκάδων δορυφόρων GPS μεταδίδει ραδιοφωνικά ακριβή σήματα συγχρονισμού, που επιτρέπουν σε οποιοδήποτε δέκτη GPS να καθορίσει τη θέση του (γεωγραφικό μήκος, γεωγραφικό πλάτος και ύψος), οποιουδήποτε στη γη και σε οποιαδήποτε στιγμή. Δεδομένου λοιπόν ότι το τηλέφωνο Android διαθέτει chip GPS αποκτά πολύ εύκολα τη γεωγραφική πληροφορία που χρειάζεται. Όσα κινητά δε διαθέτουν λειτουρία GPS μπορούν να χρησιμοποιήσουν τη λειτουργία Cell ID. Η εφαμογή σε αυτό το τμήμα παίρνει δυο μεγέθη το cell Id και το lat (location area code) τα οπoία είναι διαθέσημα σε οποιδήποτε κινητό και προδιορίζουν με ποια κεραία είναι συνδεδεμένο το κινητό. Στη συνέχεια συνδέται με το API των Google Maps δίνοντας αυτές τι πληροφορίες και παίρνοντας πισω τις γεωγραφικές συντεταγμένες μέσω της υπηρεσίας My Location. Έτσι η εφαρμογή αποκτά τη γεωγραφική πληροφορία που αν και μπορεί να μην είναι τελείως ακριβείς είναι πολύ κοντα στη πραγματικότητα. Τέλος δίνεται η δυνατότητα της άμεσης πληκτρολόγησης των συντεταγμένων ή της πληκτρολόγησης της διευθηνσης της τοποθεσίας του χρήστη και αυτόματα μέσω του Google Maps API γίνεται αντιστοίχηση σε ένα ζεύγος συντεταγμένων Αποστολή και Αποθήκευση της Γεωγραφικής πληροφορίας Εδώ υπάρχουν διαθέσιμοι δυο τρόποι αποστολής της γεωγραφικής πληροφορίας που αποκτάται, με γραπτό μήνυμα σε κάποιον παραλήπτη και σε κάποιον προεπιλεγμένο εξυπηρέτη (Εικόνα 16). Όσο αφορά την αποστολή σε εξυπηρέτη το γεωγραφικό πλατός, το γεωγραφικό μήκος, η παρούσα ώρα καθώς και ο κωδικός συνδρομητή στέλνονται στον εξυπηρέτη και αποθηκεύονται σε μια βάση δεδομένων. Αξίζει να σημειωθεί οτί ο χρήστης έχει τη δυνατότητα να επιλέγει και να αποθηκεύει το εξυπηρέτη στον οποίο θέλει να στείλει τα δεδομένα μέσα από μια εύχρηστη διεπαφή χρήστη. Χαρακτηριστικά πατώντας το κουμπί του Menu δίνεται η δυνατότητα της επιλογής Server Settings και στην συνέχεια εμφανίζεται ένα πεδίο όπου ο χρήστης έχει την δυνατότητα πληκτρολόγησης και αποθήκευσης της διεύθυνσης του εξυπηρέτη. -53-

60 Εικόνα 16 : Αρχιτεκτονική της λειτουργίας αποστολής και αποθήκευσης γεωγραφικής πληροφορίας Η βάση δεδομένων αποτελείται από πίνακες με τέσσερις στήλες (Εικόνα 17). Στη πρώτη στήλη (id) αποθηκεύεται η μοναδική ταυτότητα του κάθε χρήστη,η οποία είναι η Subscriber_id που λαμβάνεται από το δίκτυο, στη δεύτερη και τρίτη στήλη τις συντεταγμένες, γεωγραφικό μήκος και πλάτος αντίστοιχα, και στη τελευταία η ώρα που αποκτήθηκε αυτή η γεωγραφική πληροφορία. id Latitude Longitude time Subscriber_id_ :34:40 Subscriber_id_ :50:30 Subscriber_id_ :01:23 Εικόνα 17 : πίνακας «_Subscriber_id_2» Στη βάση υπάρχουν τόσοι πίνακες όσοι και οι χρηστές της εφαρμογής όπου το όνομα του κάθε πίνακα αντιστοιχεί στο αλφαριθμητικό «_Sybscribe_id» αντίστοιχα για κάθε χρήστη. Εκτός αυτών των πινάκων υπάρχει και ο πινακας all_locations (Εικόνα 18) στον οποίο αποθηκεύεται η τελευταία χρονικά γεωγραφική τοποθεσία του κάθε χρήστη. id Latitude Longitude time Subscriber_id_ :50:30 Subscriber_id_ :01:23 Subscriber_id_ :01:07 Εικόνα 18 : Πίνακας all_locations -54-

61 5.2.3 Εκμετάλευση της γεωγραφικής πληροφορίας Όλη η γεωγραφική πληροφορία που αποκτάται αποθηκεύεται πλήρως στον εξυπρέτη και όχι στο τηλέφωνο. Οπότε για να εκμεταλευτεί αυτή τη γεωγραφική πληροφορία συνδέεται με τον εξυπηρέτη η εφαρμογή και λαμβάνει την γεωγραφική πληροφορία που απαιτείται (Εικόνα19). Σε αυτό το τμήμα η εφαρμογή εκμεταλεύεται την γεωγραφική πληροφορία με δύο τρόπους. Μπορεί να ενώσει με μια γραμμή όλα τα σημεία που έχει στείλει ο χρήστης δημιουργώντας στην ουσία τη διαδρομή που έχει ακολουθήσει ο χρήστης δεδομένου ότι έστελνε το στίγμα του σε τακτά χρονικά διαστήματα. Έτσι η εφαρμογή στέλνει το subscriber_id του χρήστη στον εξυπηρέτη και ο εξυπηρέτης επιστρέφει το πίνακα με τις συντεταγμένες που είναι αποθηκευμένες στο πινακα που αντιστοιχεί στο subscriber_id του. Έτσι παίρνει ένα ένα τα στίγματα τα αποτυπώνει στο χάρτη και τα ενώνει με μια γραμμή. Εικόνα 19 : Αρχιτεκτονική των λειτουργιών για εκμετάλλευση της γεωφραφικής πληροφορίας Τέλος όταν ζητηθεί από την εφαρμογή να δει που βρίσκονται οι υπόλοιποι χρήστες στέλνεται στον εξυπηρέτη το όνομα του πίνακα all_locations και έτσι ο εξυπηρέτης απαντάει με τα περιεχόμενα του πίνακα all_locations, ο οποίος περιέχει τις τελευταίες χρονικά θέσεις όλων των χρηστών. Έτσι μετά είναι στο χέρι της εφαμογής να αποτυπώσει τα στίγματα των άλλων χρηστών πάνω στο χάρτη. 5.3 Πηγαίος κώδικας Η εφαρμογή αποτελείται από 12 κλάσεις που βρίσκονται στην τοποθεσία Locator\src\com.Locator\ και είναι οι εξής: Locator.java -55-

62 Loca.java MyOverlay.java MyOtherOverlay.java OneSpotOverlay.java SendStringToURL.java CoordinatesFromAdress.java CellID.java GPS.java DisplayLocation.java SendToServer.java Map.java Η Locator.java είναι η βασική κλάση της εφαρμογής μέσα στην οποία συντίθεται η διεπαφή χρήστη και καλούνται οι υπόλοιπες κλάσεις και συναρτήσεις. Η κλάση CoordinateFromAdress.java περιλαμβάνει την συνάρτηση Address GetCoordinatesFromAdress(String streetaddress,geocoder fwdgeocoder) η οποία έχει ως ορίσματα της μια διεύθυνση και ένα στιγμιότυπο της κλάσης Geocoder ενώ επιστρέφει ένα στιγμιότυπο της κλάσης Adress (μέρος του API). η οποία περιλαμβάνει ζεύγη γεωγραφικού μήκους και πλάτους. Αυτή η κλάση χρησιμοποιείται για την μετατροπή μιας πραγματικής διεύθυνσης σε ζεύγος γεωγραφικόυ πλάτους και μήκους. Η κλάσεις MyOverlay.java, MyOtherOverlay.java και OneSpotOverlay.java είναι κλάσεις που επεκτείνουν (extend) την κλάση Overlay. H κλάση Overlay δίνει τη δυνατότητα επεξεργασίας χαρτών μιας εφαρμογής μέσω ενός καμβά (canvas) που προσθέτει μέχρι κάποιο αριθμό διάφανων επιφανειών πάνω στο χάρτη. Έτσι οι παραπάνω κλάσεις χρησιμοποιούνται αντίστοιχα στον σχεδιασμό της διαδρομής στην επιλογή Draw Root, στον σχεδιασμό της θέσης των υπολοίπων χρηστών για την επιλογή See Others καθώς επίσης για τον σχεδιασμό της θέσης του χρήστη στην επιλογή Find. Η κλάση Loca.java έχει δημιουργηθεί με σκοπό κάθε στιγμιότυπο της να αντιπροσωπέυει μια ολοκληρωμένη γεωγραφική τοποθεσία. Αποτελείται από τις μεταβλητές name, lat, lng και time στις οποίες αποθηκεύεται το όνομα του χρήστη στον οποίο αναφέρεται η τοποθεσία, το γεωγραφικό μήκος και γεωγραφικό πλάτος της -56-

63 τοπθεσίας του καθώς και η χρονική στιγμή που παρατηρήθηκε τοποθεσία. η συγκεκριμένη H κλάση SendStringToUrl.java χρησιμοποείται για την αποστολή των δεδομένων στον εξυπηρέτη. O constructor της κλάσης παίρνει ως όρισμα τη διεύθυνση του εξυπηρέτη και το σύνολο των δεδομένων προς αποστολή μορφοποιημένα ανάλογα ώστε συνδιάζοντας τα με την ηλεκτρονική διεύθυνση του εξυπηρέτη να στέλνονται στον εξυπηρέτη με τη μέθοδο GET της PHP. Η κλάση CellID περιλαμβάνει τις συναρτήσεις που χρησιμοποιούνται για τον προσδιορισμό της τοποθεσίας με την μέθοδο του Cell Id. Συγκεκριμένα περιέχει την void PressCellIdButton(GsmCellLocation location,context context) η οποία έχει σαν ορίσματα ένα στιγμιότυπο της κλάσης GsmCellLocation και ένα στιγμιότυπο της κλάσης Context. Μέσω του στιγμιοτύπου της κλάσης CsmCellLocation αποκτώνται από το δίκτυο οι αριθμοί cellid και lac οι οποίοι δίνοναι ως ορίσματα στη συνάρτηση double[] findcoordinatesfromcellid(int cellid, int lac) και μέσω το API της Google γίνεται αντιστοίχιση των μεταβλήτών cellid και lac με μια γεωγραφική τοποθεσία δηλαδή με ένα ζεύγος γεωγραφικού μήκους και πλάτους το οποίο επιστρέφεται μέσω της συνάρτησης αυτής σε ένα πίνακα με double. Για να πραγματοποιηθεί αυτή η ενέργεια χρησιμοποιείται και η συνάρτηση void WriteData(OutputStream out, int cellid, int lac). H συνάρτηση void PressGPSButton(Context context, LocationManager lm) είναι η συνάρτηση που καλείται μέσα από την κλάση GPS.java η οποία χρησιμεύει στον προσδιορισμό της γεωγραφικής τοποθεσίας με τη μέθοδο GPS. Ενώ η κλάση Display- Location.java περιέχει τη μέθοδο run() η οποία αποτυπώνει στον χάρτη τις γεωγραφικές συντεταγμένες που έχει αποκτήσει η εφαρμογή με οποιαδήποτε από τις τέσσερις μεθόδους. Μέσα στη κλάση SendToServer.java υπάρχει η κλάση void Send(Context context,string id), όπου id είναι η μοναδική ταυτότητα του χρήστη, στέλνει την γεωγραφική πληροφορία στον προκαθορισμένο εξυπηρέτη. Τέλος η κλάση Map.java περιέχει όλες τις συναρτήσεις που χρησιμοποιούνται για εκμετάλευση της γεωγραφικής πληροφορίας. Συγκεκριμένα η κλάση void SeeOthers(Context context, String SubscriberId) καλείται όταν επιλεγεί η λειτουργία SeeOthers ένώ η void DrawRoot(Context context, String SubscriberId) όταν επιλεγεί η λειτουργία DrawRoot. Συναρτήσεις μέσα σ αυτή την κλάση που χρησιμοποιούνται σ αυτές τις λειτουργίες -57-

64 είναι οι BufferedReader OpenHttpConnection(String urlstring), η οποία πραγματοποιεί μια HTTP σύνδεση στην διεύθυνση urlstring, και η void GetCoordinates(String urlstring), η οποία αφου συνδεθεί με τη διεύθυνση του εξυπηρέτη urlstring διαβάζει τις συντεταγμένες απο τον εξυπηρέτη και τις αποθηκέυει σε ένα Vector ώστε να γίνουν προσπελάσιμες από την εφαρμογή. Η διεπαφή χρήστη της εφαρμογής συντίθεται από 9 xml αρχεία τα οποία βρίσκονται στην τοποθεσία Locator\res\layout\ και τα οποία παρουσιάζονται στις εικόνες Εικόνα 20 : main.xml -58-

65 Εικόνα 21 : find.xml Εικόνα 22 : text.xml -59-

66 Εικόνα 23 : adress.xml Εικόνα 24 : coordinates.xml -60-

67 Εικόνα 25 : send.xml Εικόνα 26 : sms.xml -61-

68 Εικόνα 27 : map.xml Εικόνα 28 : server_settings.xml -62-

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

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών Βιβλιογραφία: Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών Προγραμματισμός Android Ian Clifton. AndroidTM User Interface Design, Addison-Wesley, 2013 P. Deitel. H. Deitel, A. Deitel.

Διαβάστε περισσότερα

ANDROID Προγραμματισμός Εφαρμογών

ANDROID Προγραμματισμός Εφαρμογών ANDROID Προγραμματισμός Εφαρμογών Παναγιώτης Κρητιώτης ΑΜ 1607 Περιεχόμενα Εισαγωγή Βασικά Στοιχεία Χαρακτηριστικά Αρχιτεκτονική Εργαλεία Προγραμματισμού Eclipse IDE Android SDK - ADT Plugin Προσομοιωτής

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η / Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α

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

Διαβάστε περισσότερα

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

Digital Academy. Εισαγωγή στην ανάπτυξη Android Εφαρμογών Digital Academy Εισαγωγή στην ανάπτυξη Android Εφαρμογών Περιεχόμενα ΠΕΡΙΕΧΟΜΕΝΑ... 2 ΕΝΟΤΗΤΑ 1 ΠΡΩΤΗ ΓΝΩΡΙΜΙΑ ΜΕ ΤΟ ANDROID... 4 1.1 ΕΙΣΑΓΩΓΗ... 4 1.2 ΠΗΓΕΣ ΓΝΩΣΗΣ... 4 1.3 ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ... 5 1.4

Διαβάστε περισσότερα

Διπλωματική Εργασία. Μουσικές Εφαρμογές σε Περιβάλλον Κινητών Συσκευών Android με Χαρακτηριστικά Εξατομίκευσης

Διπλωματική Εργασία. Μουσικές Εφαρμογές σε Περιβάλλον Κινητών Συσκευών Android με Χαρακτηριστικά Εξατομίκευσης ΠΜΣ Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Διπλωματική Εργασία Μουσικές Εφαρμογές σε Περιβάλλον Κινητών Συσκευών Android με Χαρακτηριστικά Εξατομίκευσης Ονοματεπώνυμο: Βλάχος Αθανάσιος Επιβλέπων

Διαβάστε περισσότερα

Python και Android. Νίκος Νοδαράκης. 17 Μαΐου 2010

Python και Android. Νίκος Νοδαράκης. 17 Μαΐου 2010 Python και Python και Νίκος Νοδαράκης 17 Μαΐου 2010 Python και Τι είναι το ; Περιγραφή του Ορισµός Το είναι µια στοίβα λογισµικού για ϕορητές συσκευές που περιλαµβάνει ένα λειτουργικό σύστηµα, middleware

Διαβάστε περισσότερα

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

Διαβάστε περισσότερα

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

Διαβάστε περισσότερα

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

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΥΛΟΠΟΙΗΣΗ ΑNDROID ΕΦΑΡΜΟΓΗΣ ΑΠΟΣΤΟΛΗΣ ΣΥΝΤΟΜΩΝ ΜΗΝΥΜΑΤΩΝ ΜΕΣΩ ΤΗΣ OMNIVOICE ΤΣΙΑΛΟΣ ΔΗΜΗΤΡΙΟΣ Α.Μ.: 9883 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: Ράπτης Βασίλειος 2 ΕΥΧΑΡΙΣΤΙΕΣ

Διαβάστε περισσότερα

Πτυχιακή Εργασία. Σχολή Τεχνολογικών Εφαρµογών Τµήµα Εφαρµοσµένης Πληροφορικής και Πολυµέσων

Πτυχιακή Εργασία. Σχολή Τεχνολογικών Εφαρµογών Τµήµα Εφαρµοσµένης Πληροφορικής και Πολυµέσων Σχολή Τεχνολογικών Εφαρµογών Τµήµα Εφαρµοσµένης Πληροφορικής και Πολυµέσων Πτυχιακή Εργασία Τίτλος: ΑΝΑΛΥΣΗ ΚΑΙ ΧΡΗΣΗ ΕΡΓΑΛΕΙΩΝ ΓΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΦΑΡΜΟΓΩΝ ΣΕ ANDROID ασκαλάκης Ελευθέριος (ΑΜ:1672) Επιβλέπων

Διαβάστε περισσότερα

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης Σελίδα 1από ΤΕΙ ΚΑΒΑΛΑΣ Πτυχιακή εργασία Δικτυακή Εφαρμογή διαχείρισης ηλεκτρονικών εγγράφων υπηρεσίας. ΕΙΣΑΓΩΓΗ Μιλτιάδης Κακλαμάνης Σελίδα 2από Κατάλογος περιεχομένων ΕΙΣΑΓΩΓΗ...1 Σχετιζόμενα πρόσωπα...3

Διαβάστε περισσότερα

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Μάθημα: Ενότητα: Πληροφορική Α' Γυμν. Το του Υπολογιστή 1. Τι ονομάζεται Πρόγραμμα; Είναι οι οδηγίες που δίνονται στον υπολογιστή για να εξηγήσουμε πώς γίνεται μια εργασία (δηλαδή η

Διαβάστε περισσότερα

ΠΡΟΛΟΓΟΣ. Σε ποιους απευθύνεται αυτό το βιβλίο... vi Διάρθρωση του βιβλίου... vi

ΠΡΟΛΟΓΟΣ. Σε ποιους απευθύνεται αυτό το βιβλίο... vi Διάρθρωση του βιβλίου... vi Πίνακας Περιεχομένων ΠΡΟΛΟΓΟΣ V Σε ποιους απευθύνεται αυτό το βιβλίο... vi Διάρθρωση του βιβλίου... vi 1η Ενότητα: Κινητός ιστός... vii 2η Ενότητα: Κινητές εφαρμογές στην πλατφόρμα Android... vii 3η Ενότητα:

Διαβάστε περισσότερα

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. Οδηγός Διαχειριστή Το m-learning Toolkit είναι μια ολοκληρωμένη πλατφόρμα εξ αποστάσεως εκπαίδευσης που έχει σχεδιαστεί για να υπάρχει η δυνατότητα της πρόσβασης

Διαβάστε περισσότερα

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

Ανάπτυξη εφαρμογής ηλεκτρονικού πίνακα ανακοινώσεων για φορητή συσκευή Διατμηματικό Πρόγραμμα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήματα (Master in Information Systems MIS) Διπλωματική εργασία με θέμα: Ανάπτυξη εφαρμογής ηλεκτρονικού πίνακα ανακοινώσεων για φορητή συσκευή

Διαβάστε περισσότερα

Διαχειριστής αγροκτήματος από συσκευές με λειτουργικό σύστημα Android

Διαχειριστής αγροκτήματος από συσκευές με λειτουργικό σύστημα Android ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ Διαχειριστής αγροκτήματος από συσκευές με λειτουργικό σύστημα Android Πτυχιακή εργασία του Κουκουρή

Διαβάστε περισσότερα

ΑΛΕΞΑΝΔΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Πτυχιακή Εργασία

ΑΛΕΞΑΝΔΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Πτυχιακή Εργασία ΑΛΕΞΑΝΔΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Πτυχιακή Εργασία Ανάπτυξη πλατφόρμας και εφαρμογής κινητού τηλεφώνου για παιχνίδι τύπου «κρυμμένος θησαυρός»

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο 2016-2017 Υποχρεωτική εργασία Τα τελευταία χρόνια, λόγω της τεράστιας αύξησης της ποσότητας της πληροφορίας που έχουμε

Διαβάστε περισσότερα

Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές.

Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές. Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές. 13ο ΕΘΝΙΚΟ ΣΥΝΕΔΡΙΟ ΧΑΡΤΟΓΡΑΦΙΑΣ Η ΧΑΡΤΟΓΡΑΦΙΑ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

Διαβάστε περισσότερα

Αναζήτηση στον Ιστό. Πληκτρολόγηση του URL: στο πλαίσιο αναζήτησης του Mozilla Firefox. Enter ή κλικ στο Αναζήτηση

Αναζήτηση στον Ιστό. Πληκτρολόγηση του URL:  στο πλαίσιο αναζήτησης του Mozilla Firefox. Enter ή κλικ στο Αναζήτηση Αναζήτηση στον Ιστό Χρήση μιας μηχανής αναζήτησης Επιλογή συγκεκριμένης μηχανής αναζήτησης Είναι συχνό το φαινόμενο να θέλει ο χρήστης να εντοπίσει πληροφορίες στο διαδίκτυο και να μην ξέρει που να κοιτάξει.

Διαβάστε περισσότερα

Σχεδιαστικά Προγράμματα Επίπλου

Σχεδιαστικά Προγράμματα Επίπλου Σχεδιαστικά Προγράμματα Επίπλου Καθηγήτρια ΦΕΡΦΥΡΗ ΣΩΤΗΡΙΑ Τμήμα ΣΧΕΔΙΑΣΜΟΥ & ΤΕΧΝΟΛΟΓΙΑΣ ΞΥΛΟΥ - ΕΠΙΠΛΟΥ Σχεδιαστικά Προγράμματα Επίπλου Η σχεδίαση με τον παραδοσιακό τρόπο απαιτεί αυξημένο χρόνο, ενώ

Διαβάστε περισσότερα

Μάθημα 10 ο ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT)

Μάθημα 10 ο ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT) Μάθημα 10 ο ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT) Τι είναι Είσοδος και τι Έξοδος Με τον όρο Είσοδο (Input) αναφερόμαστε στη ροή δεδομένων προς την Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ), ενώ με τον όρο

Διαβάστε περισσότερα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα Λιόλιου Γεωργία ΕπιβλέπουσαΚαθηγήτρια: ΣατρατζέµηΜάγια, καθηγήτρια, τµ. ΕφαρµοσµένηςΠληροφορικής, ΠΑΜΑΚ Εισαγωγή Γενικά στοιχεία εφαρµογή

Διαβάστε περισσότερα

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής Μάθημα 7ο Πολυμέσα 7.Α.1 Παρουσιάσεις Οι παρουσιάσεις είναι μια εφαρμογή που χρησιμεύει στην παρουσίαση των εργασιών μας. Αποτελούν μια συνοπτική μορφή των εργασιών μας. Μέσω δημιουργίας διαφανειών, μορφοποιήσεων

Διαβάστε περισσότερα

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 1 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΑΝΑΛΥΣΗ ΜΕΝΟΥ ΕΦΑΡΜΟΓΗΣ... 4 2. ΕΠΕΞΗΓΗΣΗ ΚΕΝΤΡΙΚΟΥ ΜΕΝΟΥ ΚΑΡΤΕΛΑΣ... 5 3. ΔΗΜΙΟΥΡΓΙΑ ΠΕΛΑΤΗ... 6 4. ΑΝΑΖΗΤΗΣΗ ΠΕΛΑΤΗ... 6 5. ΕΠΕΞΕΡΓΑΣΙΑ/ΔΙΑΓΡΑΦΗ

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Ξεκινώντας NSZ-GS7. Network Media Player. Οι εικόνες επί της οθόνης, οι λειτουργίες και οι προδιαγραφές μπορεί να αλλάξουν χωρίς προειδοποίηση.

Ξεκινώντας NSZ-GS7. Network Media Player. Οι εικόνες επί της οθόνης, οι λειτουργίες και οι προδιαγραφές μπορεί να αλλάξουν χωρίς προειδοποίηση. Ξεκινώντας EL Network Media Player NSZ-GS7 Οι εικόνες επί της οθόνης, οι λειτουργίες και οι προδιαγραφές μπορεί να αλλάξουν χωρίς προειδοποίηση. Ξεκινώντας: ON/STANDBY Ενεργοποιεί ή απενεργοποιεί τη συσκευή

Διαβάστε περισσότερα

Κεφάλαιο 3 Λειτουργικά Συστήματα Β ΕΠΑΛ

Κεφάλαιο 3 Λειτουργικά Συστήματα Β ΕΠΑΛ Κεφάλαιο 3 Λειτουργικά Συστήματα Β ΕΠΑΛ ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT) Τι είναι Είσοδος και τι Έξοδος Με τον όρο Είσοδο (Input) αναφερόμαστε στη ροή δεδομένων προς την Κεντρική Μονάδα Επεξεργασίας

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

APP INVENTOR ΜΕΡΟΣ A. Σοφία Τζελέπη,

APP INVENTOR ΜΕΡΟΣ A. Σοφία Τζελέπη, APP INVENTOR ΜΕΡΟΣ A Σοφία Τζελέπη, stzelepi@sch.gr App Inventor 2 Google, 15 Dec 2010 MIT, 1 Jan 2012 Cloud-based software Gmail account Android Phone Τι είναι μια εφαρμογή σε AppInventor 3 Περιγράφω

Διαβάστε περισσότερα

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Android Grid Application Θωμάς Αντώνιος (3050073) Καραβέλλας Θεμιστοκλής (3050055) 1. Εισαγωγή Το Android αποτελεί ένα λειτουργικό σύστημα για κινητές συσκευές. Το λειτουργικό αυτό

Διαβάστε περισσότερα

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

Διαβάστε περισσότερα

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου 1. Τι ονομάζουμε κόμβο και τι σύνδεσμο σε μια μη γραμμικά διαρθρωμένη ύλη; Με την έννοια σύνδεσμος (link) σε μια μη γραμμικά διαρθρωμένη

Διαβάστε περισσότερα

Η εφαρμογή είναι βελτιστοποιημένη για όλες τις συσκευές ios και Android, με ios 9.x ή νεότερη έκδοση και Android 4.4 ή νεότερη έκδοση.

Η εφαρμογή είναι βελτιστοποιημένη για όλες τις συσκευές ios και Android, με ios 9.x ή νεότερη έκδοση και Android 4.4 ή νεότερη έκδοση. Οδηγίες βήμα προς βήμα για την εφαρμογή Με την εφαρμογή αυτή μπορείτε να χρησιμοποιήσετε ψηφιακά βιβλία (e-books) σε μορφή «Adobe Digital Editions epub» και «Adobe Digital Editions PDF», αρχεία ήχου (e-audios),

Διαβάστε περισσότερα

"Έλεγχος Συμπτωμάτων Υγείας μέσω Κινητών Android - "App edoctor""

Έλεγχος Συμπτωμάτων Υγείας μέσω Κινητών Android - App edoctor Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική» Μεταπτυχιακή Διατριβή Τίτλος Διατριβής "Έλεγχος Συμπτωμάτων Υγείας μέσω Κινητών Android - "App edoctor"" "Symptoms

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Δυναμική προσωποποιημένη ενημέρωση προσφορών Super Markets στη Θεσσαλονίκη

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Δυναμική προσωποποιημένη ενημέρωση προσφορών Super Markets στη Θεσσαλονίκη ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Δυναμική προσωποποιημένη ενημέρωση προσφορών Super Markets στη Θεσσαλονίκη Παπαδόπουλου Κυριάκου Αρ. Μητρώου: 093507 Επιβλέπων καθηγητής: Ηλιούδης Χρήστος Εισαγωγή - Σκοπός Εργασίας Καινοτόμες

Διαβάστε περισσότερα

Κατασκευή Πληροφοριακού Συστήματος Διαχείρισης Στόλου Οχημάτων

Κατασκευή Πληροφοριακού Συστήματος Διαχείρισης Στόλου Οχημάτων Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Κατασκευή Πληροφοριακού Συστήματος Διαχείρισης Στόλου Οχημάτων ΚΕΧΑΓΙΑΣ ΑΠΟΣΤΟΛΟΣ ΕΠΙΒΛΕΠΩΝ: ΔΑΣΥΓΕΝΗΣ ΜΗΝΑΣ Περίγραμμα 1.

Διαβάστε περισσότερα

Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ

Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ -Για τους Φοιτητές- Έκδοση 1.2 Οκτώβριος 2015 Υπεύθυνος Σύνταξης: Χρήστος Λάζαρης (lazaris@aueb.gr) Πίνακας Περιεχομένων Εισαγωγή...

Διαβάστε περισσότερα

Η νέα Πύλη etwinning. Εργαλεία για την κοινωνική δικτύωση και την επικοινωνία των εκπαιδευτικών. Εργαλεία διαχείρισης ενός έργου etwinning

Η νέα Πύλη etwinning. Εργαλεία για την κοινωνική δικτύωση και την επικοινωνία των εκπαιδευτικών. Εργαλεία διαχείρισης ενός έργου etwinning Η νέα Πύλη etwinning Εργαλεία για την κοινωνική δικτύωση και την επικοινωνία των εκπαιδευτικών Εργαλεία διαχείρισης ενός έργου etwinning ΝΕΑ ΠΥΛΗ ETWINNING...3 ΒΗΜΑΤΑ ΓΙΑ ΤΗ ΣΥΜΜΕΤΟΧΗ ΣΤΗ ΔΡΑΣΗ...4 ΕΓΓΡΑΦΗ

Διαβάστε περισσότερα

Smartphones και πολυμέσα

Smartphones και πολυμέσα Smartphones και πολυμέσα Λογοθέτης Σωτήρης ΚΑΘΗΓΗΤΗΣ/ΣΥΜΒΟΥΛΟΣ: ΓΕΩΡΓΙΟΣ ΣΤΥΛΙΑΡΑΣ Θεσσαλονίκη, 1 Νοεμβρίου 2009 Περιεχόμενα Ορισμοί Smartphones - Πολυμέσα Ιστορική Αναδρομή Τελευταίας τεχνολογίας Smartphones

Διαβάστε περισσότερα

APP INVENTOR ΜΕΡΟΣ A - 1 Η ΕΒΔΟΜΑΔΑ. Σοφία Τζελέπη,

APP INVENTOR ΜΕΡΟΣ A - 1 Η ΕΒΔΟΜΑΔΑ. Σοφία Τζελέπη, APP INVENTOR ΜΕΡΟΣ A - 1 Η ΕΒΔΟΜΑΔΑ Σοφία Τζελέπη, stzelepi@sch.gr App Inventor 2 Google, 15 Dec 2010 MIT, 1 Jan 2012 Cloud-based software Gmail account Android Phone Τι μπορώ να κάνω; 3 animations games

Διαβάστε περισσότερα

Το ηλεκτρονικό ταχυδρομείο: Aφορά στην αποστολή και λήψη μηνυμάτων με συγκεκριμένη δομή και με συγκεκριμένα πρωτόκολλα. Ο αποστολέας και ο παραλήπτης

Το ηλεκτρονικό ταχυδρομείο: Aφορά στην αποστολή και λήψη μηνυμάτων με συγκεκριμένη δομή και με συγκεκριμένα πρωτόκολλα. Ο αποστολέας και ο παραλήπτης ΚΕΦΑΛΑΙΟ 10 Το ηλεκτρονικό ταχυδρομείο: Aφορά στην αποστολή και λήψη μηνυμάτων με συγκεκριμένη δομή και με συγκεκριμένα πρωτόκολλα. Ο αποστολέας και ο παραλήπτης αναγνωρίζεται από μία μοναδική διεύθυνση

Διαβάστε περισσότερα

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

Ανάπτυξη διαδικτυακής εφαρμογής σε περιβάλλον κινητών συσκευών με λειτουργικό σύστημα Android Ανάπτυξη διαδικτυακής εφαρμογής σε περιβάλλον κινητών συσκευών με λειτουργικό σύστημα Android Ιωάννης Γιαννόπουλος, ΑΜ: 0430 Γεώργιος Δούρος, ΑΜ: 0686 Επιβλέπων: Γεώργιος Ασημακόπουλος Σεπτέμβριος 2014

Διαβάστε περισσότερα

Ενότητα 1η. Εισαγωγή στην Πληροφορική

Ενότητα 1η. Εισαγωγή στην Πληροφορική Ενότητα 1η Εισαγωγή στην Πληροφορική 1.1 Τι είναι Πληροφορική Ένας σύντομος ορισμός για το τι είναι πληροφορική είναι ο παρακάτω: όλα εκείνα που χρειάζεται κανείς για να παράγει, να οργανώνει και να διαχειρίζεται

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ http://leitourgika-systhmata-epal-b.ggia.info/ Σύγχρονο Λειτουργικό Σύστημα - ΛΣ Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Προγραμματισμός Διαχείρισης Συστημάτων Ι Προγραμματισμός Διαχείρισης Συστημάτων Ι Μάθημα 7ο X Window System Μιχαηλίδης Παναγιώτης Tι είναι παραθυρικό σύστημα; Ένα παραθυρικό σύστημα (window system) είναι μια γραφική διεπαφή χρήστη (Graphical

Διαβάστε περισσότερα

Χρήση του Office 365 σε iphone ή ipad

Χρήση του Office 365 σε iphone ή ipad Χρήση του Office 365 σε iphone ή ipad Οδηγός γρήγορης εκκίνησης Έλεγχος ηλεκτρονικού ταχυδρομείου Ρυθμίστε το iphone ή το ipad για αποστολή και λήψη ηλεκτρονικού ταχυδρομείου από το λογαριασμό του Office

Διαβάστε περισσότερα

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι Παρτώνας Αλέξανδρος Επιβλέπων: Δρ.

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER Η εφαρμογή LiveTripTraveller διατίθεται για κινητά τηλέφωνα με λειτουργικό σύστημα Android. Στο υπο-ιστοσελίδα www.livetrips.com/sources μπορείτε να κατεβάσετε την εφαρμογή

Διαβάστε περισσότερα

Εγχειρίδιο της εφαρμογής αναπαραγωγής CD V2.6 i. Εγχειρίδιο της εφαρμογής αναπαραγωγής CD V2.6

Εγχειρίδιο της εφαρμογής αναπαραγωγής CD V2.6 i. Εγχειρίδιο της εφαρμογής αναπαραγωγής CD V2.6 i της CD V2.6 ii Copyright 2002, 2003, 2004 Sun Microsystems Copyright 2009 Στέργιος Προσινικλής (steriosprosinikls@gmail.com) Δίνεται άδεια για αντιγραφή, διανομή και/ή τροποποίηση του εγγράφου υπό τους

Διαβάστε περισσότερα

RobotArmy Περίληψη έργου

RobotArmy Περίληψη έργου RobotArmy Περίληψη έργου Στην σημερινή εποχή η ανάγκη για αυτοματοποίηση πολλών διαδικασιών γίνεται όλο και πιο έντονη. Συνέχεια ακούγονται λέξεις όπως : βελτιστοποίηση ποιότητας ζωής, αυτοματοποίηση στον

Διαβάστε περισσότερα

Δημιουργία μιας εφαρμογής Java με το NetBeans

Δημιουργία μιας εφαρμογής Java με το NetBeans Δημιουργία μιας εφαρμογής Java με το NetBeans Για να δημιουργήσετε μια εφαρμογή Java πρέπει να ακολουθήσετε τα εξής βήματα : Αρχικά πρέπει να δημιουργηθεί ένα project το οποίο θα περιέχει όλα τα αρχεία

Διαβάστε περισσότερα

Αγροτική Ανάπτυξη Περιβάλλον

Αγροτική Ανάπτυξη Περιβάλλον ΜΟΝΑΔΕΣ ΑΡΙΣΤΕΙΑΣ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Αγροτική Ανάπτυξη Περιβάλλον 1 ος Κύκλος Εκπαίδευσης 4 ο σεμινάριο 4 Ιουλίου 2014 GRASS GIS Τι είναι το GRASS GIS; Ένα άρτιο ΣΓΠ Ανοιχτού Κώδικα (Open Source GIS)

Διαβάστε περισσότερα

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

Εισαγωγή στην Ανάπτυξη Εφαρμογών Android Εισαγωγή στην Ανάπτυξη Εφαρμογών Android Σημειώσεις σεμιναρίου Επιμέλεια: Βασίλης Κόλιας Ενότητα 2 Εισαγωγή στις εφαρμογές Graphical User Interfaces Πίνακας Περιεχομένων 4 Εισαγωγή στις εφαρμογές... 2

Διαβάστε περισσότερα

Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape

Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape Επιμέλεια: Γκέκα Ασπασία Ιωάννου Ελένη Κούνουπα Άννα Τμήμα Εφαρμογών Πληροφορικής Α 1 Εξάμηνο Δ.ΙΕΚ Αιγάλεω 1 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ JustAlert SPOTIT. Οδηγίες για την εγκατάσταση της εφαρμογής στο κινητό σας

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ JustAlert SPOTIT. Οδηγίες για την εγκατάσταση της εφαρμογής στο κινητό σας ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ JustAlert SPOTIT Συγχαρητήρια για την επιλογή σας να προμηθευτείτε την υπηρεσία JustAlert SPOTIT Μετά την ενεργοποίηση της υπηρεσίας, θα έχετε δωρεάν πρόσβαση στην προσωπική σας σελίδα

Διαβάστε περισσότερα

Linux Terminal Server Project

Linux Terminal Server Project Linux Terminal Server Project Ένα κεντρικό σύστημα διαχείρισης των τερματικών κοινού της Βιβλιοθήκης & Κέντρου Πληροφόρησης του Πανεπιστημίου Μακεδονίας Κολοβός Φίλιππος filippos@uom.gr Ευάγγελος Μπάνος

Διαβάστε περισσότερα

Συστήματα Πολυμέσων. Ανάπτυξη Πολυμεσικών Εφαρμογών Ι

Συστήματα Πολυμέσων. Ανάπτυξη Πολυμεσικών Εφαρμογών Ι Συστήματα Πολυμέσων Ανάπτυξη Πολυμεσικών Εφαρμογών Ι Ορισμός των Πολυμέσων / Multimedia Η ταυτόχρονη ενσωμάτωση μέσα σε ένα ψηφιακό περιβάλλον πληροφορίας, των: Κειμένου Ήχου Κάθε τύπου εικόνας (στατική,

Διαβάστε περισσότερα

Ολοκληρωμένο σύστημα διαχείρισης παρουσιών στο Τ.Ε.Ι. Σερρών

Ολοκληρωμένο σύστημα διαχείρισης παρουσιών στο Τ.Ε.Ι. Σερρών Παρουσίαση πτυχιακής εργασίας Ολοκληρωμένο σύστημα διαχείρισης παρουσιών στο Τ.Ε.Ι. Σερρών Επιβλέπων Καθηγητής: Αθανάσιος Πανταζόπουλος Φοιτητής: Στράτος Παντατζόγλου Περιγραφή Σκοπός της πτυχιακής εργασίας

Διαβάστε περισσότερα

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

Πολυμέσα. παρέχουν ένα περιβάλλον πρόσβασης στα τμήματα, μέσω συνδέσεων με οποιονδήποτε τρόπο Περιεχόμενα Ορισμοί Smartphone-Πολυμέσα Η εξέλιξη Τελευταίας τεχνολογίας Smartphones Χαρακτηριστικά των smartphones Λειτουργικά Συστήματα στα Smartphones Στάδια παραγωγής πολυμεσικής εφαρμογής Κατηγορίες

Διαβάστε περισσότερα

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 10: Κινητή Τηλεφωνία

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 10: Κινητή Τηλεφωνία ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 10: Κινητή Τηλεφωνία Ανδρέας Βέγλης, Αναπληρωτής Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Ταξιδιωτικός οδηγός της Θεσσαλονίκης για Android

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Ταξιδιωτικός οδηγός της Θεσσαλονίκης για Android ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ταξιδιωτικός οδηγός της Θεσσαλονίκης για Android Των φοιτητών Γιακουμή Ζαχαρία Επιβλέπων καθηγητής Κεραμόπουλος Ευκλείδης Αρ. Μητρώου: 073232 Παζαρλόγλου Ευαγγελία Αρ. Μητρώου: 073244

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

Διαβάστε περισσότερα

Σχολ.έτος Κεφάλαιο 5 ο Γνωριμία με το Λογισμικό του Υπολογιστή.

Σχολ.έτος Κεφάλαιο 5 ο Γνωριμία με το Λογισμικό του Υπολογιστή. Σχολ.έτος 2015-16 Κεφάλαιο 5 ο Γνωριμία με το Λογισμικό του Υπολογιστή. Διδακτικοί στόχοι Στο τέλος της διδακτικής ώρας οι μαθητές θα πρέπει : Να εξηγούν τις έννοιες πρόγραμμα, λογισμικό υπολογιστή. Να

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ της Πλατφόρμας Τηλεκατάρτισης ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή...2 2. Αρχική σελίδα, Εισαγωγή & Περιβάλλον Συστήματος...3 2.1. Αρχική σελίδα εισαγωγής...3 2.2. Εισαγωγή στην Πλατφόρμα Τηλε-κατάρτισης...4

Διαβάστε περισσότερα

Χρήση του RAW ORF. Κείμενο, παρουσίαση, έρευνα: Ιορδάνης Σταυρίδης DNG ARW X3F DCR NEF CRW RAW RAF CR2 SRF MRW

Χρήση του RAW ORF. Κείμενο, παρουσίαση, έρευνα: Ιορδάνης Σταυρίδης DNG ARW X3F DCR NEF CRW RAW RAF CR2 SRF MRW 8 Χρήση του RAW Κείμενο, παρουσίαση, έρευνα: Ιορδάνης Σταυρίδης DNG X3F ARW ORF DCR NEF CRW RAW RAF CR2 SRF MRW 9 Ένα ακατέργαστο αρχείο εικόνας RAW περιέχει ελάχιστα επεξεργασμένα στοιχεία από τον αισθητήρα

Διαβάστε περισσότερα

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ Αριθμ. Πρωτ.: 129334/2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ΤΟΥ ΑΡΙΣΤΟΤΕΛΕΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΑΚΟΙΝΩΝΕΙ Τη διενέργεια διαδικασίας ΑΠΕΥΘΕΙΑΣ

Διαβάστε περισσότερα

Κεφάλαιο 2.3: Ρυθμίσεις των Windows

Κεφάλαιο 2.3: Ρυθμίσεις των Windows Κεφάλαιο 2.3: Ρυθμίσεις των Windows 2.3.1 Βασικές πληροφορίες συστήματος Για να δούμε βασικές πληροφορίες για τον υπολογιστή μας, πατάμε το κουμπί «Έναρξη» και επιλέγουμε διαδοχικά «Πίνακας Ελέγχου», «Σύστημα

Διαβάστε περισσότερα

MΠΑΤΑΡΙΑ ΚΑΛΩΔΙΟ USB

MΠΑΤΑΡΙΑ ΚΑΛΩΔΙΟ USB ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ Περιεχόμενα πακέτου Ξεκινώντας Περιγραφή συσκευής Εισαγωγή κάρτας SIM & MicroSD Συνδέσεις 3G και Wi-Fi Το περιβάλλον Android Εργασία με το Android Επίλυση προβλημάτων για περισσότερες

Διαβάστε περισσότερα

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAVIS-V1-2012 TRAVIS Λογισμικό Διαχείρισης Παραβάσεων Φωτοεπισήμανσης Το σύστημα διαχείρισης παραβάσεων φωτοεπισήμανσης

Διαβάστε περισσότερα

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ. ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ Ηλεκτρονική Υποβολή Α.Π.Δ. ΠΕΡΙΕΧΟΜΕΝΑ 1) Είσοδος στην εφαρμογή 2) Δημιουργία Περιόδου Υποβολής 2.α) Ακύρωση Περιόδου Υποβολής 3) Μέθοδος Υποβολής: Συμπλήρωση Φόρμας 3.α) Συμπλήρωση

Διαβάστε περισσότερα

Οδηγός χρήστη. Xperia SmartTags NT1/NT2

Οδηγός χρήστη. Xperia SmartTags NT1/NT2 Οδηγός χρήστη Xperia SmartTags NT1/NT2 Περιεχόμενα Εισαγωγή...3 Οδηγός έναρξης...4 Ενεργοποίηση της λειτουργίας NFC...4 Περιοχή εντοπισμού NFC...4 Χρήση του Smart Connect για τη διαχείριση των ετικετών

Διαβάστε περισσότερα

Ο Οδηγός γρήγορης εκκίνησης

Ο Οδηγός γρήγορης εκκίνησης Ο Οδηγός γρήγορης εκκίνησης του Microsoft PowerPoint 2013 έχει διαφορετική εμφάνιση από προηγούμενες εκδόσεις. Γι αυτό το λόγο, δημιουργήσαμε αυτόν τον οδηγό για να ελαχιστοποιήσουμε την καμπύλη εκμάθησης.

Διαβάστε περισσότερα

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Τι είναι το υλικό ενός υπολογιστικού συστήματος; Το σύνολο των ηλεκτρονικών και μηχανικών μερών του που έχουν

Διαβάστε περισσότερα

Εφαρμογές Υπολογιστών. Κεφάλαιο 4 Λογισμικό Συστήματος

Εφαρμογές Υπολογιστών. Κεφάλαιο 4 Λογισμικό Συστήματος Λογισμικό Συστήματος Λογισμικό 2 Λογισμικό Συστήματος Τα ειδικά εργαλεία χρησιμοποιούνται για την ανάπτυξη λογισμικού εφαρμογών και την εκτέλεση βοηθητικών εργασιών. Το λειτουργικό σύστημα (operating system)

Διαβάστε περισσότερα

Tales & Trails. apps4thessaloniki 2016

Tales & Trails. apps4thessaloniki 2016 Tales & Trails apps4thessaloniki 2016 the digiwalkers team Πανισκάκη Κική, πτυχιούχος τμήματος Πληροφορικής ΑΠΘ, σχεδίαση & ανάπτυξη εφαρμογής Βακάλη Αθηνά, Kαθηγήτρια Πληροφορικής στο Αριστοτέλειο Πανεπιστήμιο

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ GPRS 1. ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ GOOGLE EARTH

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ GPRS 1. ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ GOOGLE EARTH Αχαρναί 20.7.09 ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ GPRS 1. ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ GOOGLE EARTH Για τη σωστή λειτουργία του προγράμματος πρέπει να έχετε εγκαταστήσει στον υπολογιστή σας το λογισμικό χαρτογράφησης

Διαβάστε περισσότερα

An innovative and autonomous Location Based e-tourist guide application

An innovative and autonomous Location Based e-tourist guide application An innovative and autonomous Location Based e-tourist guide application Christos Kasketis Department of Telecommunications Science and Technology, University of Peloponnese, Greece Abstract Στόχος της

Διαβάστε περισσότερα

SharePoint Online. Δημιουργήστε μια τοποθεσία ή μια δημοσίευση ειδήσεων. Αναζήτηση Βρείτε Τοποθεσίες, Άτομα ή Αρχεία.

SharePoint Online. Δημιουργήστε μια τοποθεσία ή μια δημοσίευση ειδήσεων. Αναζήτηση Βρείτε Τοποθεσίες, Άτομα ή Αρχεία. Οδηγός γρήγορης εκκίνησης Κάντε περισσότερα όπου και αν βρίσκεστε με ασφαλή πρόσβαση, κοινή χρήση και αποθήκευση αρχείων. Πραγματοποιήστε είσοδο στη συνδρομή σας στο Office 365 και επιλέξτε το SharePoint

Διαβάστε περισσότερα

QEMS TUTORIAL CRM. Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS.

QEMS TUTORIAL CRM. Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS. QEMS TUTORIAL CRM Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS. ΕΚΔΟΣΗ 1.0.1 + 26/6/2014 ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ... 2 LOGIN... 3 δικαιωματα ΕΦΑΡΜΟΓΗς... 4 ΙΔΙΟΚΤΗΤΗΣ... 4 ADMIN / MANAGER... 4 ΥΠΑΛΗΛΟΣ...

Διαβάστε περισσότερα

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

Διαβάστε περισσότερα

Χρήση του Office 365 σε τηλέφωνο Android

Χρήση του Office 365 σε τηλέφωνο Android Χρήση του Office 365 σε τηλέφωνο Android Οδηγός γρήγορης εκκίνησης Έλεγχος ηλεκτρονικού ταχυδρομείου Ρυθμίστε το τηλέφωνο Android για αποστολή και λήψη ηλεκτρονικού ταχυδρομείου από το λογαριασμό του Office

Διαβάστε περισσότερα

Τίτλος: GPS Βρες το δρόμο σου

Τίτλος: GPS Βρες το δρόμο σου Τίτλος: GPS Βρες το δρόμο σου Θέματα: διασταύρωση σφαιρών, συστήματα με συντεταγμένες, απόσταση, ταχύτητα και χρόνος, μετάδοση σήματος Διάρκεια: 90 λεπτά Ηλικία: 16+ Διαφοροποίηση: Πιο ψηλό επίπεδο: μπορεί

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Σελίδα.1/1 www.1999.gr

Σελίδα.1/1 www.1999.gr Σελίδα.1/1 LXT-4 WATCH GPS GSM TRACKER ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ Κεφάλαιο 1 γενική εισαγωγή 1.1 Εμφάνιση 1.2 Λειτουργίες Ο κάθε επιλεγμένος αριθμός μπορεί να πάρει τις πληροφορίες θέσης άμεσα μέσω της ερώτησης SMS,

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογής Ταξίμετρου σε Android

Ανάπτυξη Εφαρμογής Ταξίμετρου σε Android 2014 Ανάπτυξη Εφαρμογής Ταξίμετρου σε Android Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Μεταπτυχιακό Πρόγραμμα Σπουδών: «Ψηφιακές Επικοινωνίες και Δίκτυα» Ανάπτυξη Εφαρμογής Ταξίμετρου σε πλατφόρμα

Διαβάστε περισσότερα

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

Διαβάστε περισσότερα

Unity Editor #04 Κεντρικό Μενού: Edit, Unity Preferences

Unity Editor #04 Κεντρικό Μενού: Edit, Unity Preferences Unity Editor #04 Κεντρικό Μενού: Edit, Unity Preferences Γεια σου. Σε αυτό το μάθημα θα μιλήσουμε για τις δυνατότητες που μας δίνει η Unity να την κάνουμε να λειτουργεί όπως θέλουμε. Η αλήθεια είναι ότι

Διαβάστε περισσότερα

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5 A. EVANS, K. MARTIN, M. A. POATSY Εισαγωγή στην πληροφορική Θεωρία και πράξη 2 η έκδοση Κεφάλαιο 5 Λογισμικό συστημάτων: Το λειτουργικό σύστημα, τα βοηθητικά προγράμματα και η διαχείριση αρχείων Τα βασικά

Διαβάστε περισσότερα

Βασικά. Τα βασικά συστατικά που μπορούν να χρησιμοποιηθούν στην δημιουργία μαθημάτων είναι:

Βασικά. Τα βασικά συστατικά που μπορούν να χρησιμοποιηθούν στην δημιουργία μαθημάτων είναι: Εισαγωγή στο Moodle Βασικά Τα βασικά συστατικά που μπορούν να χρησιμοποιηθούν στην δημιουργία μαθημάτων είναι: Τα Μπλόκ (Blocks) Οι δραστηριότητες (Activities) Οι πόροι (Resources) Moodle Μπλοκς (Blocks)

Διαβάστε περισσότερα

Εφαρµογές πλοήγησης για φορητές συσκευές µε τη χρήση Web Services

Εφαρµογές πλοήγησης για φορητές συσκευές µε τη χρήση Web Services Εφαρµογές πλοήγησης για φορητές συσκευές µε τη χρήση Web Services Γεώργιος Σταυρουλάκης gstavr@dblab.ece.ntua.gr ιπλωµατική εργασία στο Εργαστήριο Συστηµάτων Βάσεων Γνώσεων και εδοµένων Επιβλέπων: Καθηγητής

Διαβάστε περισσότερα

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα 1.7 - Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Πρωτόκολλο είναι ένα σύνολο κανόνων που πρέπει να ακολουθήσουν όλοι οι σταθμοί εργασίας σε ένα δίκτυο ώστε να μπορούν

Διαβάστε περισσότερα

Παραδείγματα Δεδομένων: Οι τιμές στο κυλικείο, μια λίστα από ονόματα, τα σήματα της τροχαίας.

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

Διαβάστε περισσότερα

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Σ ε λ ί δ α 1 Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Περιεχόμενα 1. Download Arebas Easy... 2 2. Εγκατάσταση Arebas Easy... 3 3. Εγγραφή στον Arebas Server... 7 4. Παραμετροποίηση Arebas Easy...

Διαβάστε περισσότερα

ιαχείριση Τηλεφωνικών Κλήσεων

ιαχείριση Τηλεφωνικών Κλήσεων ιαχείριση Τηλεφωνικών Κλήσεων 1 Διαχει ριση Τηλεφωνικω ν Κλη σεων ΓΕΝΙΚΗ ΠΕΡΙΓΡΑΦΗ... 3 ΔΟΜΗ ΧΡΗΣΤΩΝ ΚΑΙ ΔΙΚΑΙΩΜΑΤΑ ΕΠΙ ΤΩΝ ΤΗΛΕΦΩΝΙΚΩΝ ΚΛΗΣΕΩΝ... 3 ΣΧΗΜΑΤΙΚΗ ΑΠΕΙΚΟΝΙΣΗ... 4 ΕΙΣΕΡΧΟΜΕΝΕΣ ΚΛΗΣΕΙΣ... 5

Διαβάστε περισσότερα