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

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

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

Transcript

1 ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Πτυχιακή εργασία με θέμα: «Κινητή εφαρμογή τύπου location-based που θα παρουσιάζει μια διαδρομή σε χάρτη εμπλουτισμένη με στατιστικά και πληροφορίες που θα φορτώνει ο χρήστης.» Όνομα: Καρατσούλας Δημήτριος Α.Μ.: 1009 Επιβλέπων καθηγητής: Παναγιωτάκης Σπύρος Ηράκλειο Ιούνιος 2016

2

3 Ευχαριστίες Η ολοκλήρωση της πτυχιακής αποδείχθηκε ένα μακρύ και περιπετειώδες ταξίδι. Τώρα που αυτό το ταξίδι φτάνει στο τέλος του νιώθω την ανάγκη να ευχαριστήσω μερικούς συγκεκριμένους ανθρώπους. Πρώτον πρέπει να ευχαριστήσω τον επιβλέποντα καθηγητή κ. Σπύρο Παναγιωτάκη για την ατέλειωτη υπομονή που έδειξε μέχρι να ολοκληρωθεί η εργασία. Οφείλω επίσης να ευχαριστήσω τους γονείς μου για την αμέριστη ηθική τους συμπαράσταση όλο αυτόν τον καιρό καθώς και τον αδελφό μου Βασίλη για την υποστήριξη του σε όλα τα επίπεδα και τις συμβουλές στου στο λειτουργικό κομμάτι της εφαρμογής. Πρέπει επίσης να ευχαριστήσω τους φίλους και συμφοιτητές που ο καθένας με τον τρόπο του βοήθησε σε αυτή διαδρομή όλων αυτών των ετών. Τέλος οφείλω ένα μεγάλο ευχαριστώ στους κ.κ. Δημήτρη και Γιάννη χωρίς την καταλυτική συνεισφορά των οποίων δε θα ήμουν σε θέση να ολοκληρώσω την πτυχιακή μου εργασία. ii

4 Abstract In recent years use of smartphones has been established for good in every man s daily life. A plethora of applications that run on smartphones give users the chance to improve their life in a diversity of scopes. Android is the dominant operating system on smartphones and it offers flawless collaboration across the hardware of the smartphone, for example: sensors, camera, GPS, microphone. The implementation of the thesis uses that hardware in order for the user to make a digital travelogue. The user will be activating the application right before the beginning of a travel. The device along with the help of the GPS will be recording the traveled route and show it on the screen, the user will be having the ability to add multimedia files (photographs, video, notes, sound clips) at any given time. The multimedia will be shown as pin on the traveled route. Upon the end of the travel the user can save the file for future viewing or editing. In addition the application will be showing statistics like speed, altitude, etc. that have been collected from the device sensors. The native programming language that is used to code for Android applications is Java. Java will be used for the implementation of the operational part of the application, along with XML for the layout application. Furthermore a MySQL database will be used and Google Maps Web API to display the maps. Coding will be done on the Eclipse IDE (Integrated Development Environment). iii

5 Περίληψη Εδώ και κάποια χρόνια η χρήση των smartphones έχει μπει για τα καλά στην καθημερινότητα μας. Πλήθος εφαρμογών που τρέχουν στα smartphones δίνουν στους χρήστες τις δυνατότητες να βελτιώσουν την καθημερινή τους ζωή σε πολλούς και διαφορετικούς τομείς. Το κυρίαρχο λειτουργικό σύστημα στην αγορά των smartphones είναι το Android που προσφέρει άψογη συνεργασία μεταξύ των διαφορετικών μερών της συσκευής (hardware) π.χ. αισθητήρες, κάμερα, δέκτης GPS, μικρόφωνο. Στην υλοποίηση της συγκεκριμένης πτυχιακής εργασίας (εφεξής ΕΠ) χρησιμοποιείται το προαναφερθέν hardware για τη δημιουργία από το χρήστη ενός ψηφιακού ταξιδιωτικού ημερολογίου. Ο χρήστης θα ενεργοποιεί την εφαρμογή πριν την αρχή ενός ταξιδιού. Η συσκευή με τη βοήθεια GPS θα καταγράφει τη διανυθείσα διαδρομή σε πραγματικό χρόνο και θα την εμφανίζει στην οθόνη, ο χρήστης θα μπορεί ανά πάσα στιγμή να προσθέτει πολυμεσικό υλικό (φωτογραφίες, βίντεο, ηχητικά κλιπ, σημειώσεις) που θα εμφανίζονται με τη μορφή καρφιτσών (pins) πάνω στην καταγεγραμμένη διαδρομή. Με τη λήξη του ταξιδιού ο χρήστης θα μπορεί να αποθηκεύει το αρχείο που θα έχει δημιουργηθεί για μελλοντική επισκόπηση ή επεξεργασία. Επιπροσθέτως η εφαρμογή θα παρουσιάζει στατιστικά στοιχεία όπως ταχύτητα, ύψος κ.τ.λ. που θα συλλέγονται από τους αισθητήρες της συσκευής. Εξ ορισμού η γλώσσα προγραμματισμού που χρησιμοποιείται για τη σύνθεση εφαρμογών Android είναι η Java. Για την υλοποίηση της ΠΕ θα χρησιμοποιηθεί η τεχνολογία Java για το λειτουργικό κομμάτι της εφαρμογής σε συνεργασία με τη γλώσσα XML για τη διάταξη, το οπτικό κομμάτι, (layout) της εφαρμογής. Επιπλέον θα γίνει χρήση μιας MySQL βάσης δεδομένων καθώς και του Google Maps Web API για την απεικόνιση και χρήση των χαρτών. Για την ανάπτυξη και τη σύνθεση του κώδικα θα χρησιμοποιηθεί η πλατφόρμα ανάπτυξης εφαρμογών Eclipse. iv

6 Πίνακας περιεχομένων 1 Εισαγωγή Τι είναι το Android OS Σύντομη ιστορία του Android Οι εκδόσεις του Android OS και βασικά χαρακτηριστικά τους Android Android 1.5 (Cupcake) Android 1.6 (Donut) Android (Eclair) Android 2.2 (Froyo) Android 2.3 (Gingerbread) Android 3.0 (Honeycomb) Android 4.0 (Ice Cream Sandwich) Android (Jelly Bean) Android 4.4 (KitKat) Android 5.0 (Lollipop) Android 6.0 (Marshmallow) Η αρχιτεκτονική του Android OS Πυρήνας (Linux Based Kernel) Το περιβάλλον εκτέλεσης (runtime) Βιβλιοθήκες Πλαίσιο εφαρμογών Εφαρμογές Βασική δομή μιας εφαρμογής Android Activity (Δραστηριότητες) Services (Υπηρεσίες) Content providers (Πάροχοι περιεχομένου) Broadcast receivers (Δέκτες εκπομπών) Άλλα σημαντικά στοιχεία και έννοιες των εφαρμογών Android Intent Το αρχείο Manifest.xml APIs Ο τρόπος λειτουργίας μιας εφαρμογής Android Location Based Services Υπηρεσίες και εφαρμογές Ανάπτυξη εφαρμογών LBS σε σύγχρονα κινητά περιβάλλοντα Maps & APIs Google Maps API v

7 2.3.2 Google Maps Android API Yahoo! Maps OpenLayers Microsoft Bing Maps Nokia Here Maps Map Kit W3C Geolocation API Βοηθητικά εργαλεία GML KML Market analysis Η αγορά των smartphones Τα διαθέσιμα λειτουργικά συστήματα Location Based Services Συστήματα εντοπισμού θέσης GPS (Global Positioning System) Παραλλαγές του GPS A-GPS Differential GPS S-GPS Galileo GLONASS BeiDou NAVIC IP Geolocation & HTML5 Geolocation Εργαλεία ανάπτυξης εφαρμογών σε περιβάλλον Android Γλώσσα προγραμματισμού Java Android SDK Eclipse IDE Android Studio Γλώσσα XML SQLite Genymotion Πηγές Η υλοποίηση της εφαρμογής Travel Log Κίνητρα για την ανάπτυξη της εφαρμογής Απαιτήσεις Εγκατάσταση Google Play Services στο Eclipse Έκδοση κλειδιού Google Maps API vi

8 5.3 Εισαγωγή Το AndroidManifest.xml Κεντρική οθόνη του προγράμματος Σενάρια Χρήσης Καταγραφή διαδρομής Ολοκλήρωση διαδρομής Συνέχιση διαδρομής Η ακρίβεια της τοποθεσίας Πληροφορίες πορείας Διαχείριση POIs (Σημεία Ενδιαφέροντος) Προσθήκη POI Εισαγωγή φωνητικής σημείωσης POI Εισαγωγή POI κειμένου (σημείωση) Προβολή POI Διαγραφή POI Ιστορικό Διαδρομών Μετονομασία αποθηκευμένης διαδρομής Διαγραφή αποθηκευμένης διαδρομής Προβολή αποθηκευμένης πορείας στο Google Earth (KML) Ρυθμίσεις Google Earth για την προβολή των POI στον Η/Υ Συμπεράσματα και Μελλοντικές Επεκτάσεις Συμπεράσματα Μελλοντικές επεκτάσεις Βιβλιογραφία Άρθρα, Βιβλία, κ.τ.λ Ιστοσελίδες vii

9 Πίνακας εικόνων Εικόνα 1.1 Το λογότυπο του Android OS... 1 Εικόνα 1.2 Η εξέλιξη του Android OS Εικόνα 1.3 Κατανομή των εκδόσεων του Android το Μάρτιο του Εικόνα 1.4 Διάγραμμα αρχιτεκτονικής του Android... 5 Εικόνα 1.5 Κύκλος ζωής ενός activity Εικόνα 2.1 Πωλήσεις συσκευών ανά έτος Εικόνα 2.2 Μερίδιο αγοράς Mobile OS Εικόνα 2.3 Μερίδιο αγοράς εφαρμογών ανά τύπο Εικόνα 2.4 Αξιακή αλυσίδα LBS Εικόνα 3.1 Δορυφορικά συστήματα εντοπισμού θέσης Εικόνα 3.2 Τεχνολογίες εντοπισμού θέσης Εικόνα 5.1 Εγκατάσταση Google Play Services μέσω Android SDK Manager Εικόνα 5.2 Εισαγωγή της βιβλιοθήκης στο project Εικόνα 5.3 Δημιουργία διεύθυνσης SHA1 στο cmd Εικόνα 5.4 Ενεργοποίηση Google Maps Android API v Εικόνα 5.5 Δημιουργία νέου κλειδιού Android Εικόνα 5.6 Απόκτηση κλειδιού Εικόνα 5.7 Το AndroidManifest.xml της εφαρμογής Travel Log Εικόνα 5.8 Αρχική οθόνη εφαρμογής Travel Log Εικόνα 5.9 Τμήμα της MainActivity.java που εκκινεί Εγγραφή και Ιστορικό πορείας Εικόνα 5.10 Οθόνη καταγραφής διαδρομής Εικόνα 5.11 Τμήμα κλάσης TravelRecorder.java Εικόνα 5.12 Οθόνη ολοκλήρωσης διαδρομής και σενάρια Εικόνα 5.13 Μήνυμα και σενάρια Εικόνα 5.14 Ακτίνα ακρίβειας Travel Log Εικόνα 5.15 Μετρήσεις πορείας Εικόνα 5.16 Η κλάση PathStat Εικόνα 5.17 Εισαγωγή POI Εικόνα 5.18 POIPicker class Εικόνα 5.19 Εισαγωγή φωνητικής σημείωσης Εικόνα 5.20 Εισαγωγή κειμένου Εικόνα 5.21 Διαγραφή POI Εικόνα 5.22 Ιστορικό διαδρομών Εικόνα 5.24 Μετονομασία διαδρομής Εικόνα 5.25 Η διαδρομή όπως δημιουργήθηκε από το Travel Log Εικόνα 5.26 Προβολή της διαδρομής (kml.kml) στο Google Maps Εικόνα 5.27 Η διαδρομή μας είναι αποθηκευμένη στο φάκελο current στο αρχείο kml.kml.. 45 Εικόνα 5.28 Προβολή πληροφοριών «στίγματος διαδρομής» από το Google Earth Εικόνα 5.29 Ρυθμίσεις Google Earth viii

10 1 Εισαγωγή 1.1 Τι είναι το Android OS Το Android είναι ένα λειτουργικό σύστημα που έχει αναπτυχθεί από την Google και έχει σχεδιασθεί με γνώμονα τη λειτουργία σε φορητές συσκευές με οθόνη αφής (κινητά, tablets, κ.τ.λ.). Είναι βασισμένο στον πυρήνα του λειτουργικού συστήματος Linux. Είναι λογισμικό ανοιχτού κώδικα, το οποίο σημαίνει ότι οποιοσδήποτε μπορεί να πάρει τον πηγαίο κώδικα και να τον χρησιμοποιήσει / παραμετροποιήσει όπως επιθυμεί. Η βασική γλώσσα προγραμματισμού είναι η Java ενώ για τη δημιουργία του layout (γραφικό περιβάλλον) χρησιμοποιείται η markup γλώσσα XML. Εκτός από φορητές συσκευές το λειτουργικό πλέον απευθύνεται και σε συσκευές τηλεόρασης (Android TV), αυτοκίνητα (Android Auto) ενώ η τελευταία εξέλιξη είναι τα ρολόγια χειρός και άλλες φορετές συσκευές (Android Wear). Εικόνα 1.1 Το λογότυπο του Android OS 1.2 Σύντομη ιστορία του Android Το Android άρχισε να αναπτύσσεται τον Οκτώβριο του 2003 από την νεοιδρυθείσα τότε εταιρεία Android Inc.. Στόχος σύμφωνα με τους ιδρυτές του ήταν: «Η ανάπτυξη εξυπνότερων φορητών συσκευών που θα γνωρίζουν τη θέση και τις προτιμήσεις του χρήστη». Τον Ιούλιο του 2005 η εταιρεία εξαγοράσθηκε από τη Google. Το Νοέμβριο του 2007 στα πλαίσια της ανακοίνωσης της κοινοπραξίας Open Handset Alliance, μέρος της οποίας ήταν και η Google, που αποσκοπούσε στη ανάπτυξη ανοιχτών προτύπων για φορητές συσκευές ανακοινώθηκε και το Android σαν μια πλατφόρμα κινητών συσκευών βασισμένη στον πυρήνα του λειτουργικού συστήματος Linux. Η πρώτη εμπορική συσκευή με λειτουργικό Android ήταν το HTC Dream που κυκλοφόρησε τον Οκτώβριο του Από το 2008 το Android έχει δεχθεί πολλές αναβαθμίσεις. Κάθε κύρια αναβάθμιση παίρνει το όνομα ενός γλυκού με αλφαβητική σειρά π.χ. 1.5 Cupcake, 1.6 Donut κ.ο.κ.. Αυτή τη στιγμή (τέλη 2015) η τελευταία κύρια αναβάθμιση είναι η 6.0 (Marshmallow). 1.3 Οι εκδόσεις του Android OS και βασικά χαρακτηριστικά τους Android 1 Ημερομηνία κυκλοφορίας Σεπτέμβριος 2008 Βασική συσκευή: HTC G1 (HTC Dream). Περιλαμβάνει πλήρες συμπλήρωμα των εφαρμογών της Google όπως τα Gmail, YouTube. Εμφάνιση beta έκδοσης του Android Market, δίνει τη δυνατότητα στους developer να εκδώσουν εφαρμογές και παιχνίδια αλλά δεν μπορούν ακόμα να χρεώσουν ποσά. Πρώτη εμφάνιση των widgets που περιορίζονται μόνο σε αυτά της Google και δεν είναι interactive Android 1.5 (Cupcake) Ημερομηνία κυκλοφορίας: Απρίλιος Βασική συσκευή HTC mytouch 3G (HTC Magic). Το όνομα κάθε έκδοσης πλέον θα παίρνει το όνομα ενός γλυκού με αλφαβητική σειρά. Εικονικό πληκτρολόγιο στην οθόνη αφής. Σελίδα 1

11 Εγγραφή βίντεο. Χρήση widgets τρίτων κατασκευαστών. Google Calendar και Google Music ως widgets. Εφαρμογή Google Talk. Περιστροφή οθόνης ανάλογα με τη θέση της συσκευής Android 1.6 (Donut) Ημερομηνία κυκλοφορίας: Σεπτέμβριος Υποστήριξη των πρωτοκόλλων κινητής επικοινωνίας CDMA. Διαφορετικές αναλύσεις οθόνης. Αναβάθμιση του Android Market. Εισαγωγή του Quick Search Box, (Πλαίσιο γρήγορης αναζήτησης) για αναζήτηση στη συσκευή και το web από την αρχική σελίδα. Ένδειξη χρήσης μπαταρίας, επιτρέπει στους χρήστες να δουν ποιες εφαρμογές και υπηρεσίες καταναλώνουν περισσότερη μπαταρία. Το widget Power Control προσφέρει εύκολη πρόσβαση σε Wi-Fi, Bluetooth, GPS, Sync και ρυθμίσεις οθόνης από την αρχική σελίδα Android (Eclair) Ημερομηνία κυκλοφορίας: Οκτώβριος Βασική συσκευή Motorola DROID. Πλοήγηση μέσω Google Maps. Υποστήριξη πολλαπλών λογαριασμών σε μια συσκευή. Τα κουμπιά κλήσεων είναι πλέον στο εικονικό πληκτρολόγιο. Επιπλέον χαρακτηριστικά για την κάμερα, φλας, ψηφιακό ζουμ κ.α.. Αναβάθμιση του προγράμματος πλοήγησης και υποστήριξη HTML5. Το widget Quick Contact επιτρέπει την ευκολότερη διαχείριση και συγχρονισμό των επαφών Android 2.2 (Froyo) Ημερομηνία κυκλοφορίας: Ιανουάριος Βασική συσκευή: Motorola DROID 2. Χρήση της Virtual Machine Dalvik ως compiler. Με τη χρήση νέου API είναι δυνατή η προώθηση περιεχομένου από το Chrome κατευθείαν στην επιφάνεια εργασίας της συσκευής. Η μηχανή V8 που χρησιμοποιείται στο Chrome το κάνει δύο έως πέντε φορές ταχύτερο. Υποστήριξη Flash. Η συσκευή μπορεί να λειτουργεί ως Wi-Fi hotspot. Εμφάνιση της εφαρμογής Google Goggles που επιτρέπει την οπτική αναζήτηση (αναζήτηση μέσω εικόνων και φωτογραφιών) Android 2.3 (Gingerbread) Ημερομηνία κυκλοφορίας: Δεκέμβριος Βασική συσκευή: Samsung Nexus S. Επανασχεδιασμός του πληκτρολογίου για ταχύτερη και ευκολότερη εισαγωγή κειμένου, προβλέπει τι θέλει να πληκτρολογήσει ο χρήστης και κάνει προτάσεις. Βελτίωση του αντιγραφή επικόλληση, εμφανίζονται βέλη τα οποία ο χρήστης μπορεί να μετακινήσει για να επιλέξει κείμενο. Υποστήριξη near-field communication (NFC) Android 3.0 (Honeycomb) Ημερομηνία κυκλοφορίας: Φεβρουάριος Βασική συσκευή: Motorola Xoom. Σελίδα 2

12 Αναπτύχθηκε κυρίως για tablet συσκευές. Ενιαία, συνεκτική εμφάνιση σε όλο το λειτουργικό και τις εφαρμογές με το όνομα Holo. Τα widget είναι πιο διαδραστικά, επιτρέπουν στο χρήστη το ξεφύλλισμα και την κύλιση του εμφανιζόμενου περιεχόμενου. Εισαγωγή του Fragments API που επέτρεπε στους προγραμματιστές την απεικόνιση πολλαπλών οθονών. Η Status Bar μεταφέρεται στο κάτω μέρος της οθόνης και επιτρέπει πιο εύκολη πλοήγηση στο λειτουργικό. Προσθήκη της Action Bar στην πάνω δεξιά γωνία της οθόνης που προσφέρει εύκολη πρόσβαση στις λειτουργίες κάθε εφαρμογής. Εύκολη πρόσβαση στις πιο πρόσφατες εφαρμογές μέσω του Recent Apps Android 4.0 (Ice Cream Sandwich) Ημερομηνία κυκλοφορίας: Οκτώβριος Βασική συσκευή: Samsung Galaxy Nexus. Η πλοήγηση και ο πλήρης έλεγχος του λειτουργικού γίνονται πλέον από τα εικονικά κουμπιά της οθόνης αφής. Δυνατότητα επισκόπησης και ελέγχου των ορίων της χρήσης του όγκου δεδομένων της συσκευής. Εφαρμογή του Swipe gesture (χειρονομία ολίσθησης) για τον τερματισμό εφαρμογών, σελίδων και ειδοποιήσεων. Δυνατότητα δημιουργίας φακέλων στην αρχική οθόνη της συσκευής. Δυνατότητα ξεκλειδώματος της συσκευής μέσω αναγνώρισης προσώπου με τη βοήθεια της μπροστινής κάμερας Android (Jelly Bean) Ημερομηνία κυκλοφορίας: Ιούνιος Βασική συσκευή: Asus Nexus 7. Εισαγωγή του Google Now που εμφανίζει περιεχόμενο σε μορφή καρτών ανάλογα με το ιστορικό αναζητήσεων και τις εφαρμογές που χρησιμοποιεί ο χρήστης. Παραμετροποίηση όσον αγορά στο μέγεθος και τη θέση των widgets. Δυνατότητα αναβάθμισης του λειτουργικού μέσω των Google Play Services. Δίνεται μεγαλύτερη βαρύτητα στο σχεδιασμό και τη λειτουργικότητα των ειδοποιήσεων. Το Project Butter κάνει τη διεπαφή να φαίνεται πιο ομαλή και να αποκρίνεται ταχύτερα στις χειρονομίες του χρήστη. Η χρήση του OpenGL ES 3.0 επιτρέπει την απεικόνιση καλύτερων γραφικών Android 4.4 (KitKat) Ημερομηνία κυκλοφορίας: Σεπτέμβριος Βασική συσκευή LG Nexus 5. Σχεδιασμός ώστε να απαιτείται το πολύ 512 MB μνήμη RAM. Πρόσβαση στο Google Now από την αρχική σελίδα ή απλά με τη χρήση της ηχητικής εντολής OK Google. Υποστήριξη εφαρμογών που καλύπτουν όλη την οθόνη, ακόμα και τη Status Bar. Οι περισσότερες οθόνες του λειτουργικού είναι ημιδιαφανείς επιτρέποντας την ταυτόχρονη θέαση της επιφάνειας εργασίας. Υποστήριξη του Host Card Emulation (HCE) που δίνει επιπλέον ασφάλεια στις συναλλαγές μέσω NFC. Η εφαρμογή Google Hangouts έχει τη δυνατότητα αποστολής λήψης SMS, MMS Android 5.0 (Lollipop) Ημερομηνία κυκλοφορίας: Νοέμβριος Σελίδα 3

13 Βασική συσκευή Motorola Nexus 6. Η Google εισάγει τη σχεδιαστική φιλοσοφία Material Design ως οδηγό για το σχεδιασμό της διεπαφής των εφαρμογών. Το Android Runtime (ART) αντικαθιστά τη Dalvik VM και επιτρέπει την ahead-of-time(aot) μεταγλώττιση. Το OpenGL ES 3.1 βελτιώνει τα γραφικά και δίνει τη δυνατότητα απεικόνισης μοντέρνων παιχνιδιών. Με το Android TV αποκτούν και οι τηλεοράσεις Android. Οι ειδοποιήσεις καταλαμβάνουν λιγότερο χώρο και μπορούν να απορριφθούν πιο εύκολα Android 6.0 (Marshmallow) Ημερομηνία κυκλοφορίας: Μάϊος Βελτιστοποίηση του Google Now. Υποστήριξη σαρωτή δακτυλικών αποτυπωμάτων. Εισαγωγή του Google Pay ως τρόπο ανέπαφων συναλλαγών. Παραμετροποίηση των permission των εφαρμογών από το χρήστη. Εικόνα 1.2 Η εξέλιξη του Android OS. Σελίδα 4

14 Εικόνα 1.3 Κατανομή των εκδόσεων του Android το Μάρτιο του Η αρχιτεκτονική του Android OS To λειτουργικό σύστημα Android είναι σχεδιασμένο έτσι ώστε να είναι δυνατή η επαναχρησιμοποίηση κώδικα και να επιτρέπεται ο διαμοιρασμός δεδομένων, υπηρεσιών, πόρων συστήματος και δραστηριοτήτων μεταξύ των εφαρμογών. Με αυτό τον τρόπο είναι πιο εύκολη η ανάπτυξη νέων εφαρμογών και η αναβάθμιση ήδη υπαρχόντων. Στην ουσία το Android αποτελείται από τέσσερα επίπεδα και πέντε ομάδες που αποτελούν μια στοίβα τμημάτων λογισμικού (software stack) με κάθε στοιβάδα να δέχεται υπηρεσίες από το κατώτερο επίπεδο και να παρέχει αντίστοιχα υπηρεσίες στο ανώτερο επίπεδο. Τα πέντε αυτά επίπεδα με τη σειρά από το κατώτερο στο ανώτερο είναι: Ο πυρήνας (Kernel) Linux, το περιβάλλον εκτέλεσης (runtime), βιβλιοθήκες, το πλαίσιο (framework) εφαρμογών και τέλος οι ίδιες οι εφαρμογές. Εικόνα 1.4 Διάγραμμα αρχιτεκτονικής του Android Σελίδα 5

15 1.4.1 Πυρήνας (Linux Based Kernel) Στο κατώτερο επίπεδο είναι η βάση του λειτουργικού Android, ένας πυρήνας Linux που έχει παραμετροποιηθεί κατάλληλα για φορητές συσκευές. Είναι συμβατός με διαφορετικές αρχιτεκτονικές επεξεργαστών κι αυτό προσφέρει μεγάλη συμβατότητα με το πλήθος των συσκευών που αποτελούν το οικοσύστημα Android. Περιλαμβάνει όλους τους drivers που αλληλοεπιδρούν με το hardware της συσκευής (κάμερα, οθόνη, αισθητήρες κ.τ.λ.) συνδέοντας έτσι τα προγράμματα (software) με το υλικό (hardware). Παρέχει βασικές υπηρεσίες όπως η ασφάλεια του συστήματος, η διαχείριση μνήμης και των διεργασιών, δικτύωση κ.α.. Επιπλέον παρέχει το στρώμα Hardware Abstraction Llayer (HAL) που ορίζει το πρότυπο που πρέπει να εφαρμόσουν οι κατασκευαστές hardware ώστε το Android να μη χρειάζεται να έχει γνώση των εφαρμογών του κατώτερου επιπέδου Το περιβάλλον εκτέλεσης (runtime) Το Android περιλαμβάνει ένα σύνολο βασικών βιβλιοθηκών οι οποίες παρέχουν τα περισσότερα χαρακτηριστικά των βιβλιοθηκών της γλώσσας προγραμματισμού Java. Μέχρι και την έκδοση 4.4 το runtime του Android ήταν το Dalvik VM. Οι εφαρμογές του Android γραμμένες σε Java μεταγλωττίζονται μέσω του compiler Java Virtual Machine σε bytecodes τα οποία στη συνέχεια μεταφράζονται σε αρχεία.dex (Dalvik executable) και.odex (Optimized Dalvik Executable) με τη χρήση της Dalvik VM. Τα αρχεία αυτά έχουν σχεδιαστεί για συστήματα με περιορισμένη μνήμη και επεξεργαστική ισχύ, προσφέροντας καλύτερη διαχείριση των πόρων του συστήματος. Κάθε εφαρμογή όταν εκτελείται τρέχει τη δικιά της διαδικασία με το δικό της στιγμιότυπο της Dalvik με αποτέλεσμα να είναι δυνατή η παράλληλη λειτουργία πολλών εφαρμογών χωρίς να επηρεάζουν η μια την άλλη. Από την έκδοση 5.0 και ύστερα χρησιμοποιείται το Android Runtime (ART). Το ART είναι σχεδιασμένο ώστε να είναι πλήρως συμβατό και να μπορεί να τρέχει αρχεία.dex και bytecode. Η διαφορά είναι πως η μεταγλώττιση πλέον γίνεται Ahead-of-Time (AOT). Αυτό σημαίνει πως η μεταγλώττιση γίνεται μόνο την πρώτη φορά που τρέχει η εφαρμογή και οι επόμενες εκτελέσεις γίνονται από τον ήδη υπάρχων εγγενή κώδικα Βιβλιοθήκες Στο ίδιο επίπεδο με το περιβάλλον εκτέλεσης βρίσκονται οι εγγενείς βιβλιοθήκες του Android. Περιλαμβάνει ένα σύνολο βιβλιοθηκών γραμμένες σε C και C++ και χρησιμοποιούνται από διάφορα μέρη του συστήματος. Κάθε μια απευθύνεται σε διαφορετικό κομμάτι του hardware. Δίνουν τη δυνατότητα στη συσκευή να διαχειριστεί διαφορετικούς τύπους δεδομένων. Κάποιες βιβλιοθήκες είναι: η WebKit που χρησιμεύει στην απεικόνιση web και HTML περιεχομένου, η SQLite που περιλαμβάνει κλάσεις διαχείρισης βάσεων δεδομένων, η SSL που παρέχει ασφάλεια διαδικτύου, η OpenGL που αναλαμβάνει την απεικόνιση γραφικών στην οθόνη, κ.α Πλαίσιο εφαρμογών Το επίπεδο αυτό αφορά κυρίως τους προγραμματιστές των Android εφαρμογών. Είναι ένα σύνολο υπηρεσιών που συλλογικά διαμορφώνουν το περιβάλλον στο οποίο γίνεται η εκτέλεση και η διαχείριση των εφαρμογών. Εδώ εφαρμόζεται η βασική φιλοσοφία του Android σύμφωνα με την οποία οι εφαρμογές αποτελούνται από μέρη που μπορούν να επαναχρησιμοποιηθούν, να εναλλαχθούν και να αντικατασταθούν. Επιπλέον κάθε εφαρμογή μπορεί να μοιραστεί τα δεδομένα και τις δυνατότητες της με άλλες εφαρμογές. Τα διάφορα APIs (Application Programming Interface) που είναι διαθέσιμα σε αυτό το επίπεδο δίνουν τη δυνατότητα στους προγραμματιστές να εκμεταλλευθούν πλήρως το hardware της συσκευής και να έχουν πρόσβαση σε υπηρεσίες που έχουν και οι βασικές εφαρμογές του λειτουργικού. Κάποια συστήματα και υπηρεσίες που περιλαμβάνονται σε αυτό το επίπεδο είναι τα εξής: Activity Manager: Ένα διαχειριστή δραστηριοτήτων ο οποίος διαχειρίζεται τον κύκλο ζωής (life cycle) των εφαρμογών. Content Manager: Ένα διαχειριστή περιεχομένου που επιτρέπει στις εφαρμογές την πρόσβαση σε δεδομένα άλλων εφαρμογών ή τον διαμοιρασμό των δικών τους δεδομένων με άλλες εφαρμογές. Location Manager: Μια μονάδα που κρατάει τη θέση της συσκευής ανά πάσα στιγμή, μπορεί και προσδιορίζει τη γεωγραφική θέση του χρήστη. Σελίδα 6

16 Notification Manager: Διαχειρίζεται τα μηνύματα που δέχονται και παράγουν οι εφαρμογές. Resource Manager: Ένας διαχειριστής πόρων για α στοιχεία ενός προγράμματος που δεν είναι κώδικας, όπως strings, εικόνες, layout files. View System: Το σύνολο των γραφικών στοιχείων που δημιουργούν το γραφικό περιβάλλον User Interface (UI) της εφαρμογής όπως κουμπιά (buttons), κουτιά κειμένου (text boxes), λίστες (lists), πλέγματα (grids),) κ.α Εφαρμογές Αυτό είναι το ανώτερο επίπεδο περιλαμβάνει όλες τις προεγκατεστημένες εφαρμογές του λειτουργικού και όσες εγκατασταθούν στη συνέχεια από το χρήστη. 1.5 Βασική δομή μιας εφαρμογής Android Κάθε εφαρμογή Android που εγκαθίσταται σε μια συσκευή έχει τη μορφή ενός συμπιεσμένου αρχείου μορφής.apk (Android Package) κάθε.apk αποτελείται από πολύ συγκεκριμένα συστατικά, φακέλους και αρχεία. Το φάκελο src που περιλαμβάνει όλα τα αρχεία.java που καθορίζουν τη λειτουργικότητα και τις υπηρεσίες της εφαρμογής, το φάκελο res που περιλαμβάνει όλα τα αρχεία.xml που ορίζουν το γραφικό περιβάλλον της εφαρμογής, ένα αρχείο AndroidManifest.xml στο οποίο δηλώνονται όλα τα συστατικά μέρη, οι σημαντικές παράμετροι αλλά και τα modules της εφαρμογής. Επίσης μπορεί να περιλαμβάνει άλλους φακέλους και αρχεία ανάλογα με την εφαρμογή. Κάθε εφαρμογή αποτελείται από τέσσερεις τύπους βασικών δομικών στοιχείων. Κάθε τύπος επιτελεί ένα πολύ συγκεκριμένο σκοπό και έχει ένα συγκεκριμένο κύκλο ζωής που ορίζει τον τρόπο με τον οποίο δημιουργείται και τερματίζεται Activity (Δραστηριότητες) Κάθε οθόνη με δικό της γραφικό περιβάλλον (UI) αποτελεί ένα ξεχωριστό Activity. Στην ουσία κάθε Activity αντιπροσωπεύει μια ενέργεια που μπορεί να εκτελέσει ο χρήστης στην εφαρμογή. Κάθε Activity ορίζεται και υλοποιείται σαν μια υποκλάση (android.app.activity). Δηλώνονται στο Manifest όπως και στα packages στα οποία ανήκουν. Το σύνολο των Activities αποτελούν το τελικό αποτέλεσμα που βλέπει ο χρήστης στην συσκευή του. Αν και όλα μαζί αποτελούν το σύνολο της εμπειρίας που αντιμετωπίζει ο χρήστης λειτουργούν ανεξάρτητα το ένα από το άλλο. Τα Activities διαχειρίζονται από το σύστημα σαν μια στοίβα, όταν ξεκινάει ένα νέο activity γίνεται το τρέχον activity και τοποθετείται στην κορυφή της στοίβας. Το προηγούμενο activity παραμένει στην πιο κάτω θέση της στοίβας μέχρι να τερματιστεί το νέο. Κάθε activity μπορεί να βρεθεί σε τέσσερεις διαφορετικές καταστάσεις: Τρέχον όταν είναι στο προσκήνιο της οθόνης και στην κορυφή της στοίβας. Σε παύση όταν είναι μεν ορατό αλλά πλέον ο χρήστης εστιάζει σε άλλο activity, υποχωρεί παρακάτω στη στοίβα. Σταματημένο όταν αντικαθίσταται από ένα άλλο νέο ενεργό activity. Τερματισμός όταν ένα σταματημένο ή σε παύση activity αποσύρεται από τη μνήμη. Σελίδα 7

17 Εικόνα 1.5 Κύκλος ζωής ενός activity Services (Υπηρεσίες) Κάθε υπηρεσία τρέχει στο παρασκήνιο για την εκτέλεση μακροχρόνιων διεργασιών ή την παροχή κάποιας λειτουργίας σε κάποια άλλη εφαρμογή. Δεν έχει γραφικό περιβάλλον αλλά επιτρέπει την ταυτόχρονη εκτέλεση εργασιών από διαφορετικές εφαρμογές. Πρέπει να δηλωθεί στο AndroidManifest.xml Content providers (Πάροχοι περιεχομένου) Διαχειρίζονται ένα κοινό σύνολο δεδομένων. Τα δεδομένα μπορεί είναι αποθηκευμένα σε ο- ποιοδήποτε μέρος μπορεί να έχει πρόσβαση η εφαρμογή, στο σύστημα αρχείων, μια SQLite βάση δεδομένων, τo Web, και αλλού. Μέσω των Content providers οι εφαρμογές μπορούν να ανταλλάξουν δεδομένα μεταξύ τους ή ακόμα και να τροποποιήσουν τα δεδομένα εφόσον τους επιτρέπεται. Κάθε Content provider ορίζεται και υλοποιείται σαν μια υποκλάση (android.content.contentprovider) και πρέπει να εφαρμόζει ένα τυποποιημένο σύνολο από APIs που επιτρέπουν τις συναλλαγές μεταξύ άλλων εφαρμογών Broadcast receivers (Δέκτες εκπομπών) Είναι τα στοιχεία που ανταποκρίνονται στις ανακοινώσεις του συστήματος για το τι συμβαίνει στη συσκευή όπως π.χ. όταν η οθόνη απενεργοποιείται, όταν τα επίπεδα της μπαταρίας εξαντλούνται κ.α. Ακόμα και εφαρμογές μπορούν να εκπέμπουν ανακοινώσεις και να ενημερώνουν άλλες εφαρμογές. Επιτελούν πολύ μικρές εργασίες και στην ουσία αποτελούν «πύλες» για τα υπόλοιπα στοιχεία της ε- φαρμογής Δεν απεικονίζονται γραφικά αλλά μπορούν να εμφανίσουν κάποια ενημέρωση στη status bar της οθόνης. Υλοποιούνται ως μια υποκλάση (android.content.broadcastreceiver) και εκδηλώνονται σαν ένα αντικείμενο Intent. Σελίδα 8

18 1.6 Άλλα σημαντικά στοιχεία και έννοιες των εφαρμογών Android Intent Τρία από τα τέσσερα δομικά στοιχεία (activities, services, broadcast receivers) ενεργοποιούνται με ένα ασύγχρονο μήνυμα που ονομάζεται Intent, είναι ένα μήνυμα που, δηλώνει μια πρόθεση, αιτείται μια ενέργεια από κάποιο άλλο στοιχείο της εφαρμογής. Αποτελεί μια αφηρημένη περιγραφή της ενέργειας που πρέπει να εκτελεστεί. Τα Intent δεσμεύουν διαφορετικά μεταξύ τους στοιχεία κατά τη διάρκεια της εκτέλεσης της εφαρμογής είτε ανήκουν στην ίδια την εφαρμογή είτε σε άλλη Το αρχείο Manifest.xml Πριν το σύστημα Android μπορέσει να ξεκινήσει την εκτέλεση ενός στοιχείου της εφαρμογής διαβάζει το αρχείο AndroidManifest.xml (δηλωτικό αρχείο) της εφαρμογής. Η εφαρμογή πρέπει να δηλώνει όλα τα συστατικά της μέρη σε αυτό το αρχείο, το οποίο θα πρέπει να είναι στο root directory της εφαρμογής. Στο AndroidManifest.xml συμπεριλαμβάνονται επίσης: Τα δικαιώματα χρήστη (permissions) που χρειάζεται η εφαρμογή, όπως η πρόσβαση στο Internet, ή πρόσβαση στις επαφές του χρήστη κ.τ.λ.. Δήλωση του ελάχιστο επίπεδου API που απαιτείται από την εφαρμογή, βάσει των APIs που χρειάζεται η εφαρμογή για να λειτουργήσει. Δήλωση των χαρακτηριστικών του υλικού και του λογισμικού που χρησιμοποιούνται ή που απαιτούνται από την εφαρμογή, όπως μια φωτογραφική μηχανή, bluetooth υπηρεσίες, ή μια οθόνη αφής κ.τ.λ.. Τις API βιβλιοθήκες με τις οποίες η εφαρμογή θα πρέπει να συνδέεται (εκτός του πλαισίου των Android APIs), όπως η βιβλιοθήκη Google Maps. Αποτελεί το θεμέλιο λίθο της εφαρμογής και είναι το πρώτο αρχείο που διαβάζει το σύστημα πριν την εκτέλεση της εφαρμογής APIs Το API (Application Programming Interfaces, Διεπαφή Προγραμματισμού Εφαρμογών) είναι μια διεπαφή που απευθύνεται σε λογισμικό και όχι ανθρώπινους χρήστες. Επιτρέπει στα λογισμικά να επικοινωνούν μεταξύ τους και να μοιράζονται δεδομένα και πληροφορίες. αποτελούν μια συλλογή προγραμματιστικών διαδικασιών και εργαλείων που παρέχει ένα λειτουργικό σύστημα, μια βιβλιοθήκη ή μια εφαρμογή και επιτρέπει να γίνονται προς αυτά αιτήσεις από άλλες εφαρμογές ή/και ανταλλαγή δεδομένων. Αποτελούν ένα ουσιαστικό εργαλείο που βοηθά τους προγραμματιστές να εκμεταλλευτούν στοιχεία και υπηρεσίες άλλων προγραμμάτων και να αναπτύξουν πιο γρήγορα κι εύκολα τις δικές τους εφαρμογές. 1.7 Ο τρόπος λειτουργίας μιας εφαρμογής Android Όπως προαναφέραμε οι εφαρμογές Android είναι γραμμένες στην αντικειμενοστραφή γλώσσα προγραμματισμού Java. Τα εργαλεία Android SDK (Software Development Toolkit) μεταγλωττίζουν τον κώδικα μαζί με συνοδευτικά δεδομένα και τα αρχεία πόρων (resource files) σε ένα APK. To APK περιλαμβάνει όλα τα περιεχόμενα της εφαρμογής και χρησιμοποιείται προκειμένου να γίνει η εγκατάσταση της εφαρμογής στη συσκευή. Μόλις εγκατασταθεί στη συσκευή κάθε εφαρμογή λειτουργεί στο δικό της ασφαλισμένο,απομονωμένο από τις υπόλοιπες εφαρμογές, χώρο (security sandbox). Το Android είναι ένα λειτουργικό σύστημα πολλαπλών χρηστών στο οποίο κάθε εφαρμογή αντιμετωπίζεται ως διαφορετικός χρήστης. Εξ ορισμού το σύστημα εκχωρεί σε κάθε εφαρμογή ένα μοναδικό αναγνωριστικό χρήστη (ID) Linux. Το ID είναι γνωστό μόνο στο σύστημα και όχι στην εφαρμογή. Το σύστημα καθορίζει τα δικαιώματα για όλα τα αρχεία μιας εφαρμογής έτσι ώστε μόνο το αναγνωριστικό χρήστη που έχει εκχωρηθεί σε αυτή την εφαρμογή να έχει πρόσβαση σε αυτά. Κάθε διαδικασία τρέχει στη δίκιά της εικονική μηχανή (Virtual Machine), με αυτόν το τρόπο κάθε εφαρμογή τρέχει τον κώδικα της απομονωμένο από τις υπόλοιπες εφαρμογές. Εξ ορισμού κάθε εφαρμογή τρέχει στη δίκιά της διαδικασία Linux. Το Android ξεκινά τη διαδικασία όταν οποιοδήποτε από τα δομικά στοιχεία της εφαρμογής πρέπει να εκτελεστεί, Σελίδα 9

19 στη συνέχεια,, όταν πλέον δεν είναι πλέον απαραίτητη ή όταν το σύστημα πρέπει να ανακτήσει τη μνήμη για άλλες εφαρμογές η διαδικασία τερματίζεται. Με αυτόν τον τρόπο το Android εφαρμόζει την αρχή της αναγκαίας γνώσης (principle of least privilege, POLP). Δηλαδή, κάθε εφαρμογή, εξ ορισμού, έχει πρόσβαση μόνο στα στοιχεία που χρειάζεται για να εκτελέσει την εργασία της και τίποτα περισσότερο. Αυτό δημιουργεί ένα πολύ ασφαλές περιβάλλον στο οποίο κάθε εφαρμογή δεν έχει πρόσβαση στα στοιχεία του συστήματος για τα οποία δεν έχει την απαιτούμενη άδεια. Ωστόσο, υπάρχουν τρόποι μια εφαρμογή για να μοιράζεται δεδομένα με άλλες εφαρμογές και να έχει πρόσβαση στις υπηρεσίες του συστήματος. Σελίδα 10

20 2 Location Based Services Ο όρος αναφέρεται σε μία κατηγορία υπηρεσιών της πληροφορικής, η κύρια λειτουργία της οποίας είναι η χρήση δεδομένων τοποθεσίας και προσαρμογή του περιεχόμενου τους ανάλογα με τη γεωγραφική θέση του χρήστη, στο υπόλοιπο της εργασίας θα χρησιμοποιείται το ακρωνύμιο LBS. Η θέση ανιχνεύεται με μηχανισμούς εντοπισμού θέσης όπως το GPS (Global Positioning System) ή το Base Transceiver Station (BTS) οι οποίοι βασίζονται σε συστήματα δορυφόρων, υποδομές κυψελωτών δικτύων ή δικτύων Wi-Fi. Η βασική αρχή είναι πως η θέση εντοπίζεται βάσει της έντασης των σημάτων που ανταλλάσσονται μεταξύ πομπού δέκτη. Ουσιαστικά τα LBS είναι το αποτέλεσμα της σύγκλησης τριών διαφορετικών τομέων της τεχνολογίας. Των τεχνολογιών επικοινωνίας και πληροφοριών όπως τα συστήματα κινητών τηλεπικοινωνιών, οι τεχνολογίες εντοπισμού θέσης και οι φορητές συσκευές με τις τεχνολογίες διαδικτύου και τις τεχνολογίες γεωπληροφοριακών συστημάτων (Geographic Information Systems - GIS) και χωρικών βάσεων δεδομένων (spatial databases). 2.1 Υπηρεσίες και εφαρμογές Τα LBS χρησιμοποιούν ένα σταθμό βάσης, ενώ εμφανίζουν μία ακτίνα γύρω από αυτό το σταθμό βάσης η οποία εξαρτάται από την ακρίβεια της υπηρεσίας. Κύριο κανάλι για τον εντοπισμό της θέσης είναι το GPS το οποίο χρησιμοποιεί ένα δίκτυο δορυφόρων θεσιθεσίας. Με αυτή την τεχνική η ακρίβεια και η ταχύτητα του εντοπισμού θέσης είναι μεγαλύτερες σε σχέση με τις υπόλοιπες τεχνικές. Σε περίπτωση που δεν είναι διαθέσιμο το GPS, τότε η επικοινωνία με τον πάροχο της υπηρεσίας γίνεται μέσω του κοντινότερου επίγειου σταθμού βάσης του δικτύου κινητής τηλεφωνίας (GSM). Επειδή όμως το σήμα σε αυτή τη περίπτωση εκπέμπεται μέσω δικτύου που η κύρια λειτουργία του είναι να μεταφέρει φωνητικό σήμα παρουσιάζεται κάποια καθυστέρηση στον εντοπισμό θέσης. Αυτό λειτουργεί εντοπίζοντας τη τοποθεσία της κινητής συσκευής σε σχέση με το σε ποια κυψέλη του δικτύου βρίσκεται η συσκευή, ενώ η τοποθεσία υπολογίζεται με τεχνικές όπως η χρονική καθυστέρηση λήψης σήματος από το σταθμό βάσης. Οι εφαρμογές που βασίζονται σε υπηρεσίες LBS ποικίλλουν και εξελίσσονται ραγδαία. Στην αρχή παρείχαν κυρίως προσωποιημένες πληροφορίες και προτάσεις διασκέδασης και ψυχαγωγίας. Πλέον το εύρος είναι τεράστιο. Προσφέρουν βοήθεια στον εντοπισμό συγκεκριμένων τοποθεσιών, σημείων ενδιαφέροντος και καταστημάτων σε ένα χώρο. Δίνουν πληροφορίες για τον καιρό και οτιδήποτε άλλο πρέπει να γνωρίζει ο χρήστης για τη θέση που βρίσκεται σε μια δεδομένη στιγμή. Βοηθούν τους χρήστες που προπονούνται σε τρέξιμο, ποδηλασία κ.τ.λ. να καταγράψουν πληροφορίες όπως η διανυθείσα απόσταση, η μέση ταχύτητα κ.τ.λ.. Προσφέρουν μεγαλύτερη ασφάλεια στις συναλλαγές Εφαρμογές που βασίζονται σε LBS υπηρεσίες περιλαμβάνουν ακόμα την παροχή πληροφοριών, πλοήγησης και οδηγιών σε οχήματα και οδηγούς. Τη διαφήμιση με την προβολή καταστημάτων και επιχειρήσεων ανάλογα με τη φυσική θέση του χρήστη. Τα Geotagging games που εκμεταλλευόμενα τις επιπλέον πληροφορίες που παρέχουν αυτές οι υπηρεσίες προσφέρουν πρωτότυπες εμπειρίες. Τις social εφαρμογές (κοινωνικής δικτύωσης) που μπορούν να συνδυαστούν στη δημιουργία υπηρεσιών διαμορφούμενες από δεδομένα πλήθους χρηστών (crowdsourcing). Τις εφαρμογές augmented reality (επαυξημένης πραγματικότητας), τη σύνδεση δηλαδή αντικειμένων και κτηρίων στον πραγματικό κόσμο με ψηφιακό υλικό. Τον εντοπισμό αντικειμένων και τις μεταφορές εμπορευμάτων. Τα LBS επίσης βοηθούν τοπογράφους, αρχιτέκτονες και πολιτικούς μηχανικούς στο σχεδιασμό και την υλοποίηση έργων υποδομών. Η ναυσιπλοΐα όπως είναι εύκολα κατανοητό εξαρτάται πλήρως από αυτού του είδους τις υπηρεσίες σε όλες της τις εκφάνσεις. Τα σώματα ασφαλείας τέλος χρησιμοποιούν τα LBS σε αποστολές έρευνας και διάσωσης, στη θαλάσσια παρακολούθηση, τον έλεγχο και την προστασία των συνόρων και άλλες στρατιωτικές εφαρμογές. Σε συνδυασμό με συστημάτα GIS παρέχεται η δυνατότητα οπτικοποίησης, μοντελοποίησης και ανάλυσης χωρικών πληροφοριών για μεγάλης κλίμακας εφαρμογές όπως περιβαλλοντικές, οικολογικές, διαχείριση φυσικών πόρων, αποτίμηση ιδιοκτησίας, σχεδιασμός υποδομών επισκόπηση και βελτίωση της κυκλοφορίας των οχημάτων. Τέτοιες υλοποιήσεις πληροφοριακών συστημάτων, αντιμετωπίζουν τους περιορισμούς των παραδοσιακών μεθόδων σχεδιασμού που δεν μπορούν να ανταποκριθούν στις ταχύτατες εξελίξεις και απαιτήσεις του σύγχρονου τρόπου ζωής. Αρνητικό στοιχείο όμως Σελίδα 11

21 είναι η χαμηλή συμβατότητα των ήδη υπαρχόντων συστημάτων διαχείρισης της κυκλοφορίας με τα σύγχρονα γεωπληροφοριακά συστημάτα. Για να λειτουργήσουν σωστά τα LBS έχουν ανάγκη και τις κατάλληλες υποδομές. Σε επίπεδο κτιρίων είναι απαραίτητη η ύπαρξη δικτύων όπως Wi-Fi ή RTLS. Σε επίπεδο επικράτειας βασίζονται σε κυψελωτά δίκτυα όπως τα GSM και LTE. Σε παγκόσμιο επίπεδο τα LBS χρειάζονται δορυφορικά συστήματα εντοπισμού θέσης όπως τα GPS, Galileo, κ.τ.λ.. Επιπλέον οι συσκευές στις οποίες τρέχουν εφαρμογές με LBS πρέπει να έχουν εγκατεστημένα και τα κατάλληλα APIs, Google Maps κ.τ.λ. 2.2 Ανάπτυξη εφαρμογών LBS σε σύγχρονα κινητά περιβάλλοντα Προκειμένου να καταστεί δυνατή η ανάπτυξη μιας LBS εφαρμογής ανεξαρτήτου πλατφόρμας απαιτούνται συγκεκριμένα προγραμματιστικά εργαλεία για την καλύτερη δυνατή εκμετάλλευση των χαρακτηριστικών που προσφέρουν υλικό και λογισμικό. Για το περιβάλλον Android σε πρώτη φάση πρέπει να γίνει η αίτηση ενός API key από τα Google Play Services με το οποίο θα συνδεθεί η εφαρμογή ώστε να αναγνωρίζεται και να της επιτρέπεται η πρόσβαση στα APIs που χρειάζεται. Η απαραίτητη συλλογή των APIs περιλαμβάνει τα Google Maps API, Location API, Direction API και Places API. Επιπροσθέτως το ActivityRecognitionApi ανιχνεύει(locomotion) τον τρόπο με τον οποίο κινείται ο χρήστης (πεζός, ποδήλατο, αυτοκίνητο κ.τ.λ.) και το GeofencingApi παρέχει τη δυνατότητα να εκτελεστεί μια ενέργεια όταν ο χρήστης εισχωρήσει ή αποχωρήσει από μια συγκεκριμένη περιοχή. Από τη μεριά του ios τα απαραίτητα LBS APIs είναι τα LVisit, CLRegion, startmonitoringsignificantlocationchanges, CLBeaconRegion. Υπάρχουν και APIs για την ανάπτυξη εφαρμογών με HTM5 αλλά σε αντίθεση με τα Android και ios που υποστηρίζουν τον εντοπισμό θέσης μέσω GPS, Wi-Fi και κυψελωτών δικτύων τα HTML5 υποστηρίζουν κυρίως το GPS. Επιπλέον χρειάζεται η ύπαρξη χαρτών με κάθε λειτουργικό να έχει τους δικούς του. Η Apple το MapKit, το Android τα Google Maps και το Windows Phone τα HERE Maps με τα καθένα να έχει τα δικά του χαρακτηριστικά και API που υποστηρίζει. Για τις HTML5 υπάρχει μια πληθώρα χαρτών τρίτων κατασκευαστών που μπορούν να χρησιμοποιηθούν με το καθένα να υποστηρίζει ή όχι συγκεκριμένες τεχνολογίες και με διαφορετική τιμολογιακή πολιτική. Τέτοιοι χάρτες έκτος των προαναφερθέντων είναι τα : CloudMade, Nutiteq, TomTom, Trimble/Spime, mapit και mapquest. 2.3 Maps & APIs Η δημοφιλία των ψηφιακών χαρτών και των LBS γενικότερα έχουν αυξηθεί κατακόρυφα τα τελευταία χρόνια Το ίδιο και το ενδιαφέρον εταιρειών όπως η Microsoft, η Yahoo! και η Google οι οποίες με στόχο την αύξηση των χρηστών τους και την πρόσβαση στα δεδομένα που προκύπτουν διαθέτουν χάρτες και APIs δωρεάν Google Maps API Το Google Maps είναι μία υπηρεσία ψηφιακής χαρτογράφησης Η χαρτογράφηση και η ανάπτυξη της εφαρμογής αυτής έγινε αποκλειστικά από τη Google προσφέροντας ένα παγκόσμιο ψηφιακό χάρτη σε συνδυασμό με διάφορες υπηρεσίες όπως η πλοήγηση και οι διαφορετικές επιλογές προβολής του χάρτη. Πέραν της απλής προβολής οδικού χάρτη ο χρήστης μπορεί να προβάλει και την τοπογραφία και το υψόμετρο του εδάφους με την επιλογή Terrain. Η επιλογή Earth δίνει πρόσβαση στο σύνολο των δορυφορικών φωτογραφιών που αποτελούν το χάρτη. Μέσω του Street View παρέχεται η δυνατότητα της εικονικής κυκλοφορίας σε περιοχές και κτίρια που η Google έχει εικονογραφήσει ψηφιακά με ειδικά εξοπλισμένα οχήματα. Εκτός της απλής πλοήγησης μεταξύ δύο σημείων παρέχει επιπλέον πληροφορίες σε σχέση με την κατάσταση της κυκλοφορίας σε μια περιοχή καθώς και τις συγκοινωνίες που την καλύπτουν. Κάθε χρήστης μπορεί να συνεισφέρει στο Google Maps με φωτογραφίες μιας περιοχής και οδηγίες, πληροφορίες και κριτικές για συγκεκριμένες περιοχές, καταστήματα, ξενοδοχεία, μνημεία και άλλα σημεία ενδιαφέροντος. Έχει αναπτυχθεί με βάση τις γλώσσες JavaScript και XML καθώς είναι web based. Υποστηρίζεται από τα πρωτόκολλα JSON, KML, XML Είναι open-source με αποτέλεσμα τρίτοι προγραμματιστές να μπορούν να το παραμετροποιήσουν με νέα χαρακτηριστικά και δυνατότητες ανάλογα με τις Σελίδα 12

22 ανάγκες των υπηρεσιών τους. Ουσιαστικά υπάρχει μια ποικιλία Google Maps APIs που παρέχουν διαφορετικές λειτουργίες όπως τα: Embed API, Maps Image APIs, Places API, Web Services API και Google Maps API for Work Google Maps Android API Είναι το αντίστοιχο Android API αλλά γραμμένο σε JAVA προκειμένου να τρέχει στο Android OS. Αποτελείται από μια σειρά από βιβλιοθήκες που βοηθούν στην πλήρη λειτουργική ενσωμάτωση των Google χαρτών σε οποιαδήποτε Αndroid εφαρμογή Yahoo! Maps H ανερχόμενη προσπάθεια της Yahoo! στο χώρο των Maps APIs. Έχει ενσωματωμένες λειτουργιές για την πρόγνωση καιρού, την εκτύπωση χαρτών, τη ζωντανή μετάδοση της κατάστασης της κυκλοφορίας και οδηγίες πλοήγησης. Στους εγγεγραμμένους χρήστες παρέχεται και βιβλίο διευθύνσεων για τις πιο συχνά χρησιμοποιούμενες τοποθεσίες. Από το 2013 συνεργάζεται με την Nokia και τη δική της υπηρεσία χαρτών Here Maps. Με την βοήθεια του Adobe Flash διατίθεται σε 3 εκδοχές υλοποίησης JavaScript, ActionScript και Adobe Flex 1.5. Για τη λειτουργία του χρειάζεται flash player plugin, το οποίο τρέχει μέσω AJAX OpenLayers Είναι open source βιβλιοθήκη γραμμένη σε JavaScript που χρησιμοποιεί τεχνολογίες HTML5 όπως WebGL, Canvas 2D για την απεικόνιση χαρτών σε μοντέρνους browser και web-based εφαρμογές. Μπορεί και αντλεί δεδομένα από πολλές διαφορετικές πηγές όπως OpenStreetMap, Bing, MapQuest, Stamen κ.α.. Επίσης έχει τη δυνατότητα επεξεργασίας διανυσματικών δεδομένων από GeoJSON, TopoJSON, KML, GML κ.α Microsoft Bing Maps Αποτελεί το Maps API της Microsoft και έχει βασιστεί σε προγενέστερες υλοποιήσεις, όπως τα MapPoint και TerraServer. Η Microsoft στα τέλη του 2006 πρόσθεσε την δυνατότητα προβολής των χαρτών σε 3D με την χρήση ενός.net Direct3D API. Έχει διάφορες επιλογές προβολής των χαρτών, καθεμιά με δικές της λειτουργίες, Aerial, Bird's Eye, Enhanced Bird s Eye, Ordnance Survey, Traffic Flow, Venue Maps, Aerial 3D, Streetside. Υποστηρίζεται από έξι διαφορετικά APIs: Το V8 Web Control που υποστηρίζει και desktop και mobile λειτουργικά και είναι ιδανικό για web-based και mobile εφαρμογές με την υποστήριξη JavaScript και Type- Script. Bing Maps. Τα REST Services που αφορούν κυρίως υπηρεσίες όπως geocoding και αντίστροφο geocoding τη μετατροπή δηλαδή της λεκτικής περιγραφής μιας τοποθεσίας σε χωρικές συντεταγμένες και το αντίστροφο τη δρομολόγηση και τις στατικές εικόνες, δεδομένου ότι είναι API τύπου REST μπορούν να χρησιμοποιηθούν σχεδόν σε κάθε προγραμματιστικό περιβάλλον. Το REST (Representational State Transfer,) είναι μια αρχιτεκτονική ανάπτυξης web εφαρμογών. Τα Spatial Data Services, δηλαδή υπηρεσίες χωρικών δεδομένων που βασίζονται σε REST και προσφέρουν τρεις βασικές λειτουργίες. Geocoding κατά ομάδες, δεδομένα POI (Point Of Interest, σημεία ενδιαφέροντος) και τη δυνατότητα αποθήκευσης και προβολής των χωρικών δεδομένων. Windows 10 Universal Windows Platform, χρησιμοποιούν τεχνολογίες όπως η C# και η XAML για την ανάπτυξη εφαρμογών χαρτών για κάθε συσκευή που τρέχει Windows 10. Για την ανάπτυξη desktop Windows 8 εφαρμογών υπάρχουν 2 APIs. Το JavaScript API που βασίζεται στο Bing Maps AJAX V7 κει είναι ιδανικό για το χειρισμό ήδη υπαρχόντων εφαρμογών Bing Maps AJAΧ και το. NET API που χρησιμοποιεί C#, VB ή C++. Τέλος το Windows Presentation Foundation που απευθύνεται στην ανάπτυξη εφαρμογών για Microsoft Surface tablets. Σελίδα 13

23 2.3.6 Nokia Here Maps Κυκλοφόρησαν από τη Nokia το 2012 και είναι το αποτέλεσμα της συγχώνευσης με τη NavTeq το Προσφέρεται για όλα τα mobile OS και desktop Windows. Απευθύνονται κυρίως σε λύσεις και εφαρμογές που προορίζονται για την πλοήγηση οχημάτων. Το Δεκέμβριο το 2015 πουλήθηκε στις αυτοκινητοβιομηχανίες Audi, BMW και Daimler Map Kit Οι ψηφιακοί χάρτες της Apple που απευθύνονται αποκλειστικά σε εφαρμογές για το ios χωρίς τη δυνατότητα παραμετροποίησης από τρίτους. Είναι γραμμένο στη γλώσσα Swift που χρησιμοποιεί το ios. Μεταξύ άλλων διαθέτουν τη λειτουργία MKLocalSearch που επιτρέπει την εύκολη αναζήτηση (POIs) σε μια περιοχή ορισμένη από το χρήστη W3C Geolocation API Αποτελεί την προσπάθεια του World Wide Web Consortium (W3C) για την ανάπτυξη ενός προτύπου που θα ανακτά πληροφορίες γεωγραφικής θέσης από τις συσκευές πελάτες. Ορίζει ένα σύνολο αντικειμένων συμβατών με το πρότυπο ECMAScript τα οποία εκτελούνται στην εφαρμογή και παρέχουν την τοποθεσία της συσκευής με τη συμβολή Location Information Servers(LIS). Οι πηγές που παρέχουν την πληροφορία μπορεί να είναι: IP address, Wi-Fi και Bluetooth MAC address, radio-frequency identification (RFID), περιοχή σύνδεσης Wi-Fi, GPS και GSM/CDMA cell Ids. 2.4 Βοηθητικά εργαλεία GML Η GML (Geography Markup Language) είναι ένα κομμάτι της XML που έχει οριστεί από το Open Geospatial Consortium (OGC) για την καταγραφή γεωγραφικών χαρακτηριστικών. Χρησιμεύει ως γλώσσα μοντελοποίησης για γεωγραφικά συστήματα. Κλειδί για την χρησιμότητα της GML είναι η ικανότητά της να ενσωματώσει όλες τις μορφές των γεωγραφικών πληροφοριών, συμπεριλαμβανομένων όχι μόνο συμβατικών διανυσματικών αλλά και διακριτών αντικείμενων, ενώ λαμβάνει δεδομένα και από τους αισθητήρες κάθε συσκευής. Τα αρχεία του μπορούν να αποθηκευτούν ως.gml ή.xml KML Η γλώσσα σήμανσης KML (Keyhole Markup Language) είναι μια γραμματική XML που αποτελεί δημιουργία της Google και συμπληρώνει τη GML, για τη διαμόρφωση και αποθήκευση γεωγραφικών χαρακτηριστικών, όπως σημεία, γραμμές, εικόνες, πολύγωνα και μοντέλα για εμφάνιση στο Google Earth, το Google Maps και άλλες εφαρμογές. Η μορφή αρχείου είναι το.kml. Υπάρχει η δυνατότητα χρήσης της KML για την κοινή χρήση μερών και πληροφοριών με άλλους χρήστες αυτών των εφαρμογών. Το Google Earth λειτουργεί ως πρόγραμμα περιήγησης αρχείων KML. Επεξεργάζεται ένα αρχείο KML με παρόμοιο τρόπο με την επεξεργασία των αρχείων HTML και XML από τα προγράμματα περιήγησης ιστού. Όπως το HTML έτσι και το KML διαθέτει δομή βασισμένη σε ετικέτες, χρησιμοποιώντας ονόματα και χαρακτηριστικά για συγκεκριμένους σκοπούς εμφάνισης. Το Google Earth μπορεί να διαβάζει και συμπιεσμένα αρχεία.kml (.kmz). Αντίθετα το Google Maps μπορεί να εμφανίσει μόνο μερικά χαρακτηριστικά του KML. 2.5 Market analysis Δεδομένου ότι η εφαρμογή που πραγματεύεται η Π.Ε. φιλοδοξεί να έχει και εμπορικό ενδιαφέρον κρίνεται σκόπιμη και η ανάπτυξη ενός στοιχειώδους επιχειρηματικού πλάνου προκειμένου να προβλεφθεί όσο είναι δυνατόν η πορεία μια τέτοιας εφαρμογής στην αγορά Η αγορά των smartphones Από την πρώτη τους εμφάνιση η αγορά των έξυπνων κινητών τηλεφώνων διαρκώς μεγαλώνει. Από το 2008 το μερίδιο τους στην αγορά διαρκώς αυξάνεται ενώ αντίθετα αυτό των συμβατικών απλών συσκευών μειώνεται. Από το 2013 τα smartphones άρχισαν να υπερτερούν σε κυκλοφορία των απλών Σελίδα 14

24 κινητών τηλεφώνων. Εντυπωσιακές αυξήσεις πωλήσεων εμφανίζονται σε χώρες όπως η Κίνα, η Ινδία και οι χώρες της Νοτίου Αμερικής στις οποίες ειδικά κυκλοφορούν συσκευές πολύ χαμηλού κόστους προκειμένου οι εταιρείες να εκμεταλλευτούν την τεράστια αγορά που υπάρχει εκεί παρά τη χαμηλή οικονομία. Αν και από το 2016 έχουν αρχίσει και εμφανίζονται σημάδια κόπωσης και ομαλοποίησης της αγοράς, σύμφωνα με εκτιμήσεις, το 2020 θα κυκλοφορούν παγκοσμίως σχεδόν δύο δισεκατομμύρια συσκευές smartphone Πωλήσεις συσκευών σε εκατομμύρια ανά έτος Smartphones Απλές συσκευές Εικόνα 2.1 Πωλήσεις συσκευών ανά έτος Τα διαθέσιμα λειτουργικά συστήματα Με την έκρηξη των έξυπνων κινητών τηλεφώνων είχαμε και ένα άτυπο πόλεμο μεταξύ των κατασκευαστών λειτουργικών για το ποιο θα κυριαρχήσει στην αγορά. Το 2016 ουσιαστικά έχουν επιβιώσει μόνο τρία λειτουργικά. Διαφορετικής φιλοσοφίας το καθένα. Το Android είναι κυρίαρχο με εξάπλωση πάνω από 84% στην παγκόσμια αγορά. Αυτό οφείλεται κατά κύριο λόγο στο ότι η Google το διαθέτει δωρεάν ενώ υπακούει στις επιταγές του ανοιχτού κώδικα με αποτέλεσμα να ενθαρρύνεται η ανάπτυξη παραλλαγών του από τρίτους κατασκευαστές και να είναι και οι προγραμματιστές πιο ελεύθεροι στην ανάπτυξη των εφαρμογών. Αυτό έχει σαν αποτέλεσμα την κυκλοφορία μιας τεράστιας ποικιλίας συσκευών ακόμα πολύ φθηνών οι οποίες απευθύνονται κυρίως στις αγορές των αναπτυσσόμενων χωρών. Ακολουθεί το ios της Apple με περίπου 15%. Η Apple κατασκευάζει η ίδια τόσο το λειτουργικό όσο και τις συσκευές τις οποίες και διαθέτει σε αρκετά υψηλή τιμή, κάτι που δικαιολογείται εν μέρει λόγω της πολύ υψηλής ποιότητας κατασκευής. Η Apple δεν αδειοδοτεί κανέναν άλλο να κυκλοφορήσει συσκευές ios και ανανεώνει συσκευές και λειτουργικό σε ετήσια βάση. Σελίδα 15

25 Ένα πολύ μικρό μερίδιο της τάξης του 0,7% κατέχει η Microsoft η οποία μπήκε σχετικά καθυστερημένα στην αγορά αλλά έχοντας σαν οδηγούς την άλλοτε κραταιά Nokia για το κατασκευαστικό κομμάτι και το μεγάλο brand name των Windows στο λειτουργικό προσπαθεί να αυξήσει το μερίδιο της στην αγορά. Το υπόλοιπο 0,4% μοιράζεται μεταξύ του BlackBerry OS που είχε πάντα μια κατεύθυνση προς επαγγελματίες και άλλα λειτουργικά. Μερίδιο αγοράς φορητών λειτουργικών συστημάτων το 1ο τρίμηνο του ,2 14,8 0,7 0,2 84,1 Android ios Windows Mobile BlackBerry OS Άλλα Εικόνα 2.2 Μερίδιο αγοράς Mobile OS Location Based Services Επειδή τα LBS έχουν μια τεράστια γκάμα εφαρμογών και υποστηρίζουν μια ποικιλία apps. Αυτό έχει σαν αποτέλεσμα να εκπροσωπούν ένα αρκετά μεγάλο μερίδιο της παγκόσμιας αγοράς εφαρμογών smartphones. Στην αγορά των LBS εμπλέκεται μια μεγάλη γκάμα επιχειρήσεων, από τους κατασκευαστές συστημάτων εντοπισμού θέσης μέχρι πωλητές εφαρμογών. Ο κύκλος εργασιών των υπηρεσιών LBS το 2015 ήταν περίπου 11,4 δισεκατομμύρια δολάρια και σύμφωνα με προβλέψεις το νούμερο αυτό θα έχει αυξηθεί το 2020 με μεικτό ετήσιο ρυθμό αύξησης 37% στα 55 δισεκατομμύρια δολάρια. Αναμένεται ότι οι τεχνολογικές εξελίξεις στον τομέα των συστημάτων γεωγραφικού εντοπισμού και τα ασύρματα δίκτυα θα επιτρέψουν την κυκλοφορία όλο και πιο οικονομικών και βελτιωμένων συσκευών που θα εκμεταλλεύονται τις LBS δημιουργώντας μια πολλά υποσχόμενη αγορά. Αξίζει όμως να αναφερθεί και η μεγάλη συνεισφορά των LBS στο σύγχρονο μάρκετινγκ. Μέσω των LBS εφαρμογών οι επιχειρήσεις είναι σε θέση να προβάλλονται με συγκριτικά πολύ χαμηλό κόστος. Να κάνουν καταχωρήσεις και να δίνουν προσφορές ανάλογε με τη θέση των καταναλωτών στο χάρτη. Επίσης τα LBS προσφέρουν εργαλεία για την εκτίμηση της διάθεσης του καταναλωτικού κοινού. Σελίδα 16

26 Μερίδιο αγοράς το 2016 σύμφωνα με App Store & Google Play ανά τύπο ,35 4,5 5, ,83 8,24 8,54 10,67 Games Business & Παραγωγικότητα Life style Βοηθητικά Ειδήσεις Εφαρμογές που υποστηρίζονται από LBS Εκπαιδευση Ψυχαγωγία Βιντεο & φωτογραφίες Λοιπά Εικόνα 2.3 Μερίδιο αγοράς εφαρμογών ανά τύπο Εικόνα 2.4 Αξιακή αλυσίδα LBS Σελίδα 17

27 3 Συστήματα εντοπισμού θέσης Από τις απαρχές της ιστορίας, που ο άνθρωπος ταξίδευε σε στεριά και θάλασσα είχε δημιουργηθεί η ανάγκη για την μέγιστη δυνατή ακρίβεια στον εντοπισμό της θέσης του και την πλοήγηση του στους χώρους που κινούνταν. Η ανάγκη αυτή έφερε μεγάλες εξελίξεις στο πέρασμα των αιώνων με αποτέλεσμα τις τελευταίες δεκαετίες τα συστήματα γεωγραφικού εντοπισμού να έχουν κυρίαρχο ρόλο στην καθημερινότητα μας. Αυτή τη στιγμή υπάρχει μια πληθώρα τέτοιων συστημάτων, όπως το GPS, το Galileo, το BeiDou κ.α.. Αν και οι υλοποιήσεις είναι διαφορετικές η βασική αρχή χάρη στην οποία γίνεται ο εντοπισμός θέσης είναι ο ίδιος. Πομπός και δέκτης επικοινωνούν και ανάλογα με την ένταση του σήματος που ανταλλάσσεται μπορεί να εκτιμηθεί η απόσταση μεταξύ των δύο. 3.1 GPS (Global Positioning System) To GPS (Παγκόσμιο Σύστημα Στιγματοθέτησης) είναι αυτή τη στιγμή το κυρίαρχο σύστημα εντοπισμού θέσης. Το σύστημα αναπτύχθηκε αρχικά από το Υπουργείο Άμυνας των ΗΠΑ και ονομάστηκε NAVSTAR GPS (Navigation Signal Timing and Ranging Global Positioning System). Εξακολουθεί να βρίσκεται υπό τον έλεγχο του αμερικανικού υπουργείου άμυνας. Αρχικά το υψηλότερης α- κρίβειας σήμα ήταν δεσμευμένο για αποκλειστική χρήση και ήταν ανοικτό σε όλους ένα υποβαθμισμένο σήμα (Επιλεκτική Διαθεσιμότητα) που προσφέρει ακρίβεια 100 μέτρων. Από την 1/5/2000 στρατός και κοινό έχουν πρόσβαση σε σήμα ίδιας ακρίβειας. Το Υπουργείο Άμυνας των ΗΠΑ είναι υποχρεωμένο δια νόμου να διατηρεί μια τυποποιημένη υπηρεσία εντοπισμού θέσης που θα είναι διαθέσιμη σε συνεχή, παγκόσμια βάση χωρίς αδικαιολόγητη διακοπή ή υποβάθμιση των πολιτικών χρήσεων. Παρόλα αυτά έχουν αναπτυχθεί τεχνικές για άρνηση πρόσβασης στο δημόσιο σήμα του GPS ανά γεωγραφική περιοχή σε περίπτωση που κριθεί απαραίτητη η προστασία των στρατευμάτων. Βασίζεται σε ένα "πλέγμα" εικοσιτεσσάρων δορυφόρων γύρω από τη Γη σε μεσαίου ύψους τροχιές που εκπέμπουν μεγάλης ακρίβειας ραδιοσήματα., και σε ένα δίκτυο επίγειων συσκευών εφοδιασμένων με ειδικές συσκευές εντοπισμού, οι οποίες ονομάζονται "πομποδέκτες GPS". Οι πομποδέκτες αυτοί παρέχουν ακριβείς πληροφορίες για τη θέση ενός σημείου, το υψόμετρό του, την ταχύτητα και την κατεύθυνση της κίνησης του ανεξαρτήτως καιρικών συνθηκών και υπό οποιεσδήποτε συνθήκες κίνησης στο δίκτυο των δορυφόρων. Για να λειτουργήσει σωστά το σύστημα πρέπει να υπάρχει ανά πάσα στιγμή ανεμπόδιστη οπτική επαφή με τουλάχιστον τέσσερις δορυφόρους GPS για τον καθορισμό της θέσης και του χρόνου σε καρτεσιανό σύστημα συντεταγμένων. Σε συνδυασμό με ειδικό λογισμικό χαρτογράφησης μπορούν να απεικονιστούν γραφικά οι πληροφορίες αυτές. Η λειτουργία του GPS βασίζεται στην αρχή ότι η θέση ενός δορυφόρου μπορεί να εντοπιστεί ανάλογα με την ισχύ του σήματος που λαμβάνεται από αυτόν. Ένας δέκτης GPS εντοπίζει τη θέση του μέσω μιας διαδικασίας που ονομάζεται τριπλευρισμός. Κάθε ραδιοσήμα που λαμβάνει ο δέκτης GPS περιλαμβάνει πληροφορίες για τη θέση και την τοπική ώρα του δορυφόρου.. Ο GPS αφαιρεί την τρέχουσα ώρα από τη στιγμή που στάλθηκε το σήμα. Για τον προσδιορισμό του στίγματος στο χώρο αρκούν οι μετρήσεις των αποστάσεων από τρία σημεία γνωστών συντεταγμένων, δηλαδή των δορυφόρων. Ο τέταρτος δορυφόρος χρειάζεται για τον προσδιορισμό της διαφοράς ανάμεσα στις ενδείξεις των χρονομέτρων του δέκτη και του δορυφόρου. Με την προσθήκη 8 επιπλέον δορυφόρων και τη χρήση ειδικών τεχνικών το 2015 έχει επιτευχθεί ακρίβεια στον εντοπισμό θέσης μικρότερη των 3.5 μέτρων υπό ιδανικές συνθήκες. Αποτελείται από τρία διακριτά λειτουργικά τμήματα: 1. Διαστημικό τμήμα Αποτελεί το κεντρικό τμήμα του GPS. Το δίκτυο των δορυφόρων που χρησιμοποιούνται αποτελείται από 24 ενεργούς δορυφόρους εντοπισμού θέσης και 8 επιπρόσθετους οι οποίοι χρησιμοποιούνται για να παρέχουν μεγαλύτερη ακρίβεια στους υπολογισμούς των δεκτών και άλλες απαραίτητες μετρήσεις. Ο αριθμός των ενεργών δορυφόρων διατηρείται σταθερός, αφού όσοι αντιμετωπίζουν φθορά αντικαθίστανται με νέους προκειμένου να εξασφαλιστεί η σωστή λειτουργία του συστήματος. Οι δορυφόροι αυτοί καλύπτουν ομοιόμορφα με το σήμα τους ολόκληρο τον πλανήτη, Όλοι οι δορυφόροι βρίσκονται σε ύψος χιλιομέτρων πάνω από την επιφάνεια της θάλασσας και η ακτίνα περιστροφής τους είναι χιλιόμετρα με κλίση 55 μοιρών σε σχέση με τον ισημερινό, ενώ εκτελούν δύο περιστροφές γύρω από Σελίδα 18

28 τη Γη κάθε 24ωρο. Οι τροχιές είναι επιλεγμένες έτσι ώστε ανά πάσα στιγμή να υπάρχουν τουλάχιστον 6 δορυφόροι ορατοί από σχεδόν κάθε σημείο της επιφάνειας της γης, Κάθε δορυφόρος εκπέμπει σήματα χαμηλής έντασης περίπου Watt, γ αυτό το λόγο είναι σημαντικό να υπάρχει άμεση οπτική επαφή του δέκτη με τον ουρανό κατά τη χρήση του συστήματος. Επίσης κάθε δορυφόρος διαθέτει ένα ατομικό ρολόι που αναπροσαρμόζεται πολλές φορές μέσα τη μέρα προκειμένου να επιτυγχάνεται η μέγιστη δυνατή ακρίβεια. 2. Επίγειο Τμήμα Ελέγχου Εξασφαλίζει τη σωστή και αδιάκοπη λειτουργία του GPS. Οι έλεγχοι που πραγματοποιούνται σε αυτούς αφορούν στη σωστή τους ταχύτητα, υψόμετρο και επίσης στην επάρκεια της ηλεκτρικής τους ενέργειας. Παράλληλα, εφαρμόζονται όλες οι κατάλληλες ενέργειες που αφορούν στο σύστημα χρονομέτρησης των δορυφόρων, έτσι ώστε να αποτρέπεται η παροχή λάθος πληροφοριών στους χρήστες. Το τμήμα επίγειου ελέγχου αποτελείται τόσο από ένα επανδρωμένο Κολοράντο (ΗΠΑ), που αποτελεί και τον κεντρικό σταθμό που συντονίζει τους υπόλοιπους όσο και από τέσσερα μη επανδρωμένα κέντρα σε Χαβάη (Ανατολικός Ειρηνικός Ωκεανός), Ascension Island (Ατλαντικός Ωκεανός), Diego Garcia (Ινδικός Ωκεανός), Kwajalein (Δυτικός Ειρηνικός Ωκεανός). Εξασφαλίζει τη σωστή και αδιάκοπη λειτουργία του GPS. Οι έλεγχοι που πραγματοποιούνται σε αυτούς αφορούν στη σωστή τους ταχύτητα, υψόμετρο και επίσης στην επάρκεια της ηλεκτρικής τους ενέργειας. Παράλληλα, εφαρμόζονται όλες οι κατάλληλες ενέργειες που αφορούν στο σύστημα χρονομέτρησης των δορυφόρων, έτσι ώστε να αποτρέπεται η παροχή λάθος πληροφοριών στους χρήστες. Το τμήμα επίγειου ελέγχου αποτελείται τόσο από ένα επανδρωμένο Κολοράντο (ΗΠΑ), που αποτελεί και τον κεντρικό σταθμό που συντονίζει τους υπόλοιπους όσο και από τέσσερα μη επανδρωμένα κέντρα σε Χαβάη (Ανατολικός Ειρηνικός Ωκεανός), Ascension Island (Ατλαντικός Ωκεανός), Diego Garcia (Ινδικός Ωκεανός), Kwajalein (Δυτικός Ειρηνικός Ωκεανός). 3. Τμήμα Τελικού Χρήστη Απαρτίζεται από τους δέκτες GPS ανά την υφήλιο. Κάθε δέκτης μπορεί να λαμβάνει σήματα από 6 12 δορυφόρους ταυτόχρονα. Για να προσφέρουν ακόμη περισσότερες πληροφορίες, οι δέκτες αυτοί συνδυάζονται με ειδικό λογισμικό το οποίο προβάλλει ένα χάρτη στην οθόνη της συσκευής GPS. Πρόκειται ουσιαστικά, για λογισμικό το οποίο λαμβάνει από τους δορυφόρους τις πληροφορίες για το στίγμα του σημείου πάνω στο οποίο βρίσκεται ο δέκτης και τις μετατρέπει σε κατανοητή μορφή, πληροφορώντας με αυτό τον τρόπο τον χρήστη για την ακριβή γεωγραφική του θέση. Στην παραπάνω αρχιτεκτονική υπακούουν και όλα τα υπόλοιπα δορυφορικά συστημάτα εντοπισμού θέσης. 3.2 Παραλλαγές του GPS A-GPS A-GPS Το Assisted (υποβοηθούμενο)-gps, χρησιμοποιείται ως επί το πλείστον σε συσκευές κυψελωτής τεχνολογίας. Ενώ οι απλοί δέκτες GPS εξαρτώνται αποκλειστικά από τα ραδιοσήματα των δορυφόρων, το A-GPS είναι σε θέση να χρησιμοποιεί και τα δεδομένα των σταθμών κινητής τηλεφωνίας για την ενίσχυση της ποιότητας και της ακρίβειας (βοήθεια) όταν οι συνθήκες το απαιτούν και δεν υπάρχει οπτική επαφή με τους δορυφόρους Ένα A-GPS μπορεί να αντιμετωπίσει αυτά τα προβλήματα, χρησιμοποιώντας τα διαθέσιμα δεδομένα από ένα κυψελωτό δίκτυο. Για το λόγο αυτό η χρήση του A- GPS λογίζεται ως χρήση δεδομένων από τους παρόχους και χρεώνεται ανάλογα.. Το A-GPS εξαρτάται από το δίκτυο Internet ή τη σύνδεση με έναν ISP (Internet Service Provider) ή CNP (Cellular Network Provider), στην περίπτωση συσκευών κινητής τηλεφωνίας. Η βοήθεια στο A-GPS παρέχεται με δύο διαφορετικούς τρόπους: Σελίδα 19

29 MSB Mobile Station Based, παρέχει τα δεδομένα τροχιάς των δορυφόρων στο δέκτη με αποτέλεσμα ο δέκτης να κλειδώνει πιο γρήγορα στους δορυφόρους. MSA Mobile Station Assisted, ο server υπολογίζει τη θέση του δορυφόρου με βάση τις πληροφορίες που παίρνει από τη συσκευή δέκτη Differential GPS Είναι η προσπάθεια βελτίωσης του GPS στα 10 cm. Χρησιμοποιεί ένα δίκτυο επίγειων σταθερών σταθμών αναφοράς για να μεταδώσει τη διαφορά μεταξύ των θέσεων που υποδεικνύονται από το GPS (δορυφορικά) και τις γνωστές σταθερές θέσεις. Αυτοί οι σταθμοί μεταδίδουν τη διαφορά μεταξύ των μετρούμενων δορυφορικών και των πραγματικών ψευδοαποστάσεων για να μπορέσει ο δέκτης να διορθώσει τις ψευδοαποστάσεις του κατά το ίδιο ποσό. Το ψηφιακό σήμα διόρθωσης μεταδίδεται σε τοπικό επίπεδο υπέργεια με βάση πομπούς μικρότερης εμβέλειας S-GPS Το Simultaneous-GPS, προσφέρει τη δυνατότητα ταυτόχρονης χρήσης τηλεφωνικών κλήσεων ή δεδομένων και σήματος GPS με χρονική πολυπλεξία. σε μια κεραία. Λόγω σχεδιασμού αποτελεί α- κόμα μια ακριβή λύση 3.3 Galileo Αποτελεί την ευρωπαϊκή απάντηση στο αμερικανικό GPS. Αναπτύχθηκε προκειμένου να απεξαρτηθούν οι χώρες της Ευρώπης από την κατά βούληση διάθεση του GPS από τον αμερικανικό στρατό αλλά και τη βελτίωση της ακρίβειας του εντοπισμού θέσης. Στα αρχικά του στάδια χρηματοδοτούνταν και από την κυβέρνηση της Κίνας. Σε αντίθεση με τα υπόλοιπα συστήματα γεωγραφικού εντοπισμού απευθύνεται κυρίως στη χρήση από το κοινό και όχι το στρατό. Το Μάϊο του 2016 αποτελείται μόνο από 14 δορυφόρους. Όταν θα είναι πλήρως λειτουργικό, το 2020, θα αποτελείται από 30 δορυφόρους, 24 κύριους και 6 εφεδρικούς. Η ακρίβεια του θα φτάνει το 1 μέτρο για ελεύθερη χρήση ενώ επί πληρωμή φτάνει σε ακρίβεια εκατοστού. Κάθε δορυφόρος διαθέτει δύο ατομικά ρολόγια για μέγιστη ακρίβεια και εκπέμπει 6 RHCP (Right-Handed Circularly Polarized) σήμα για την υποστήριξη των διαφορετικών υπηρεσιών που υλοποιεί, με πολύ μεγάλο εύρος σε κάποιες περιπτώσεις έως και 70 MHz. 3.4 GLONASS Το 1970 η τότε Ε.Σ.Σ.Δ. άρχισε να αναπτύσσει το δικό της σύστημα γεωγραφικού εντοπισμού. Σύμφωνα με τον αρχικό σχεδιασμό του θα αποτελούνταν από 24 δορυφόρους και θα προσέφερε ακρίβεια 20 μέτρων για μη στρατιωτικούς σκοπούς και 10 μέτρα για στρατιωτικούς σκοπούς. Λόγω της πολιτικής και οικονομικής κρίσης τη δεκαετία του 90 το σύστημα έφτασε να αποτελείται μόνο από 6 δορυφόρους το 2001 και να μην είναι πλήρως λειτουργικό και να μπορεί να προσφέρει υπηρεσίες μόνο στη ρωσική επικράτεια. Μετά την ανάκαμψη της οικονομίας όμως, από το Δεκέμβριο του 2015 η λειτουργικότητα του έχει επανέλθει στο 100%. Το GLONASS προσφέρει επιπλέον δορυφόρους στο δίκτυο του GPS ανεβάζοντας το συνολικό δίκτυο σε 48 δορυφόρους, αυτό έχει σαν αποτέλεσμα την μεγάλη αύξηση της ακρίβειας ακόμα και σε πολύ δύσκολες περιοχές όπως πόλεις με ψηλά κτίρια ή περιοχές με μειωμένη ορατότητα που εμποδίζουν την οπτική επαφή των δορυφόρων με τους επίγειους δέκτες. 3.5 BeiDou Προέκυψε όταν η Κίνα σταμάτησε τη χρηματοδότηση του Ευρωπαϊκού Galileo και άρχισε να αναπτύσσει το δικό της σύστημα θεσιγνωσίας. Αποτελείται από δυο ξεχωριστά δορυφορικά συστήματα. Ένα περιορισμένο σύστημα δοκιμών που λειτουργεί από το 2000 και ένα πλήρες σύστημα που είναι ακόμα υπό κατασκευή. Το πρώτο αποτελείται μόνο από τρείς δορυφόρους και καλύπτει μόνο την περιοχή της Κίνας. Το δεύτερο όταν θα ολοκληρωθεί θα αποτελείται από 35 δορυφόρους. Αυτή τη στιγμή αποτελείται από 10 και παρέχει υπηρεσίες στην περιοχή της Ασίας και του Ειρηνικού ωκεανού. Εκτιμάται ότι μέχρι το 2020 θα καλύπτει την παγκόσμια επικράτεια και θα προσφέρει ακρίβεια μισού μέτρου, προς το παρόν η ακρίβεια φτάνει τα 20 μέτρα. Τα εκπεμπόμενα σήματα Σελίδα 20

30 χρησιμοποιούν αρχές πολυπλεξίας CDMA και έχουν παρόμοια δομή με τα υπόλοιπα δορυφορικά συστήματα θεσιγνωσίας. 3.6 NAVIC Navic σημαίνει πλοηγός στα σανσκριτικά. Είναι το δορυφορικό σύστημα θεσιγνωσίας της Ινδίας και έχει σχεδιαστεί ώστε να προσφέρει υπηρεσίες στην επικράτεια της Ινδίας καθώς και σε όλες τις περιοχές που απέχουν έως και χιλιόμετρα από τα σύνορα της Ινδίας. Το διαστημικό κομμάτι αποτελείται συνολικά από επτά δορυφόρους. Τρείς σε γεωστατική και τέσσερεις σε γεωσύγχρονη τροχιά. Στο επίγειο ένα δίκτυο 21 σταθμών σε ολόκληρη τη χώρα θα παρέχει στοιχεία για τον προσδιορισμό της τροχιάς των δορυφόρων και την παρακολούθηση του σήματος πλοήγησης. Αναμένεται να είναι λειτουργικό μετά τα μέσα του Σύστημα GPS GLONASS BeiDou Galileo NAVIC Ιδιοκτήτης Η.Π.Α. Ρωσία Κίνα Ε.Ε. Ινδία Κωδικοποίηση CDMA FDMA CDMA CDMA CDMA Ύψος τροχιάς 20,180 km 19,130 km 21,150 km 23,222 km 36,000 km Περίοδος 11 h 58 min 11 h 16 min 12 h 38 min 14 h 5 min Περιστροφές ανά αστρική η- μέρα 2 17/8 17/9 17/10 Δορυφόροι GHz (B1) GHz (E5a and GHz (SP) Συχνότητα GHz GHz E5b) (L1 signal) GHz (L2 signal) GHz (SP) (B1-2) GHz (B2) GHz (B3) GHz (E6) GHz (E2-L1- E11) L5-band MHz S-band MHz) Κατάσταση Λειτουργικό Λειτουργικό Ημιλειτουργικό Ημιλειτουργικό Μη Λειτουργικό Εικόνα 3.1 Δορυφορικά συστήματα εντοπισμού θέσης 3.7 IP Geolocation & HTML5 Geolocation Οι τεχνολογίες του Διαδικτύου συνεισφέρουν επίσης στον εντοπισμό θέσης χωρίς όμως την ακρίβεια των δορυφορικών συστημάτων. Στο IP Geolocation κάποιο πρόγραμμα που τρέχει σε server αντιστοιχεί τη διεύθυνση IP κάθε συνδρομητή internet στις πραγματικές διευθύνσεις σε μια βάση δεδομένων. Είναι μια μέθοδος που έχει πολύ μικρή ακρίβεια, μπορεί να φτάσει μέχρι επίπεδο πόλης και γ αυτό χρησιμοποιείται για την προβολή τοπικών επιχειρήσεων, καιρού κ.τ.λ. Το HTML5 Geolocation χρησιμοποιεί τη MAC Address καθώς και την ισχύ του σήματος κάθε συνδρομητή, η ακρίβεια εδώ φτάνει σε επίπεδο μερικών μέτρων. Απαιτεί το Geolocation API ενώ οι και browser πρέπει να υποστηρίζουν HTML5. Σελίδα 21

31 GPS, GLONASS, DGPS, Galileo E-OTD(MB), OTDOA (MB), A-GPS (MB) Bluetooth, UWB (RTD Φορητές συσκευές Μέθοδοι δορυφορικού εντοπισμού Δίκτυα που χρησιμοποιούνται Μέθοδοι κυψελωτών δικτύων CELL-ID, TA, RTT, ECGI, TOA, AOA, E-OTD (MA), OTDOA (MA), AGPS (MA), Database Correlation, Location Pattern Matching Άλλες τεχνολογίες WLAN, UWB (TDOA), DTV Εικόνα 3.2 Τεχνολογίες εντοπισμού θέσης Σελίδα 22

32 4 Εργαλεία ανάπτυξης εφαρμογών σε περιβάλλον Android 4.1 Γλώσσα προγραμματισμού Java Η Java αποτελεί τη native γλώσσα του Android. Η Java είναι μια αντικειμενοστραφής γλώσσα προγραμματισμού που σχεδιάστηκε από την εταιρεία πληροφορικής Sun Microsystems, πρωτοεμφανίστηκε το 1995 ενώ από το 2010 είναι στη δικαιοδοσία της Oracle. To βασικό πλεονέκτημα της Java έναντι άλλων γλωσσών είναι ότι τα προγράμματα που είναι γραμμένα σε Java τρέχουνε ακριβώς το ίδιο ανεξάρτητα από το είδος του επεξεργαστή αλλά και του λειτουργικού συστήματος χωρίς να χρειαστεί να ξαναγίνει μεταγλώττιση (compiling) ή να αλλάξει ο πηγαίος κώδικας δηλαδή προσφέρει ανεξαρτησία του προγράμματος από άλλους παράγοντες πέραν της δυνατότητας το σύστημα να μπορεί να εκτελέσει Java εφαρμογές. Αυτό επιτυγχάνεται χάρη στο JVM ( Java Virtual Machine, εικονική μηχανή Java). Εφόσον σε ένα σύστημα είναι εγκατεστημένη η JVM αυτό σημαίνει πως το σύστημα μπορεί να τρέξει εφαρμογές Java. H JVM μεταγλωττίζει κάθε πρόγραμμα Java μέσω του μεταγλωττιστή javac, ο οποίος παράγει έναν αριθμό από αρχεία.class (κώδικας byte ή bytecode). Το bytecode είναι η μορφή που παίρνει ο πηγαίος κώδικας της Java όταν μεταγλωττιστεί. Όταν χρειαστεί να εκτελεστεί η εφαρμογή το JVM θα διαβάσει τα αρχεία.class, στη συνέχεια τα μεταφράζει στην εκάστοτε γλώσσα μηχανής που υποστηρίζεται από το λειτουργικό σύστημα και τον επεξεργαστή. Για διαφορετικές πλατφόρμες υπάρχουν διαφορετικά JVM. Οι πιο σύγχρονες εφαρμογές του JVM μπορούν και μεταγλωττίζουν εκ των προτέρων τμήματα bytecode απευθείας σε κώδικα μηχανής (εγγενή κώδικα ή nativecode) με αποτέλεσμα να βελτιώνεται η ταχύτητα. Επειδή το JVM είναι υπεύθυνο για την επικοινωνία χρήστη υπολογιστή ανιχνεύει το κώδικα ο οποίος θα έχει καταστροφικά αποτελέσματα για τον υπολογιστή και δεν επιτρέπει να εκτελεστεί. Αυτό δίνει μεγαλύτερη ασφάλεια στα συστήματα που τρέχουν σε Java. Στη Java η απελευθέρωση μνήμης είναι αυτόματη και γίνεται μέσω του συλλέκτη απορριμμάτων., (Garbage collector) Αυτό είναι ιδιαίτερα σημαντικό γιατί είναι κοινά τα σφάλματα προγραμμάτων που οφείλονται σε λανθασμένο χειρισμό της μνήμης. Σε γενικές γραμμές η Java είναι πιο αργή σε σχέση με άλλες γλώσσες υψηλού επιπέδου (high-level) όπως η C και η C++. Παρόλα αυτά γίνονται συνεχείς προσπάθειες για τη βελτιστοποίηση της εικονικής μηχανής οι οποίες ανάλογα με την εφαρμογή μπορεί σε κάποια σημεία να προσφέρουν καλύτερα και σε κάποια άλλα χειρότερα αποτελέσματα. Για την ανάπτυξη εφαρμογών Java σε κάθε περιβάλλον είναι απαραίτητη η ύπαρξη κάποιων βασικών προγραμματιστικών εργαλείων. Το JDK Java Development Kit που είναι το σύνολο των βασικών βιβλιοθηκών και της εικονικής μηχανής Java Virtual Machine (JVM) για την ολοκληρωμένη ανάπτυξη εφαρμογών και είναι η πλέον χρησιμοποιημένη εργαλειοθήκη λογισμικού. Σε συνδυασμό με το Android SDK παρέχει όλα τα απαιτούμενα εργαλεία στα IDE για την ανάπτυξη των εφαρμογών Android. Κάθε εφαρμογή γραμμένη σε Java και ανεξαρτήτου πλατφόρμας και λειτουργικού συστήματος απαιτεί το JRE (Java Runtime Enviroment) για να μπορεί να τρέξει. Είναι ένα πακέτο λογισμικού που παρέχει τις ελάχιστες απαιτήσεις που απαιτούνται για να μπορέσει να εκτελεσθεί μια εφαρμογή Java. Περιλαμβάνει βασικές βιβλιοθήκες και κλάσεις, το JVM, όπως και ένα browser plugin. Για την ανάπτυξη της εφαρμογής έχουν χρησιμοποιηθεί τα JDK 7 και JRE 7, παρότι πλέον η Oracle έχει πλέον προχωρήσει στην έκδοση 8 της Java κι έχει σταματήσει να υποστηρίζει την έκδοση 7. Αυτό έγινε επειδή το Eclipse Luna IDE που επιλέχθηκε για την ανάπτυξη της εφαρμογής δεν υποστηρίζει την έκδοση 8 της Java. 4.2 Android SDK Το Android SDK (Android Software Development Kit) είναι ένα πακέτο το οποίο περιλαμβάνει τα απαραίτητα εργαλεία για την ανάπτυξη, εκσφαλμάτωση (debugging) και υλοποίηση μίας Android εφαρμογής. Περιέχει όλες τις βιβλιοθήκες και τα API που είναι διαθέσιμα στην εκάστοτε έκδοση του Σελίδα 23

33 λειτουργικού καθώς και έναν emulator (εξομοιωτή) Android, για να μπορεί η εφαρμογή να δοκιμαστεί σε περιβάλλον μη Android (Windows κ.τ.λ). To emulator προσφέρει τις λειτουργίες ενός Android smartphone σε εικονική μορφή. Επιπλέον το Android SDK παρέχει κάποια δείγματα (samples) και δοκιμαστικές εφαρμογές οι οποίες αποσκοπούν στην εξοικείωση των προγραμματιστών με την ανάπτυξη εφαρμογών Android. Μέσω του ενσωματωμένου SDK Manager o προγραμματιστής μπορεί να επιλέξει τα API και άλλα εργαλεία που επιθυμεί να έχει στη διάθεση του για την ανάπτυξη της εφαρμογής. 4.3 Eclipse IDE Το Eclipse IDE (Integrated Development Environment, ολοκληρωμένο περιβάλλον ανάπτυξης) είναι μία σουίτα λογισμικού που επιτρέπει την ανάπτυξη εφαρμογών σε πολλές διαφορετικές γλώσσες, μεταξύ αυτών Java, COBOL, Fortran, JavaScript, Perl, PHP, Python, Ruby, Scala, Groovy, Erlang και C/C++. Παρέχει όλα τα απαραίτητα εργαλεία που θα χρειαστεί ο προγραμματιστής κατά τη διαδικασία συγγραφής και εκτέλεσης του κώδικα Είναι ελεύθερης διανομής (freeware) και ανοικτού κώδικα (open source) και αποτελεί από τις πλέον δημοφιλείς σουίτες ανάπτυξης κώδικα. Περιέχει μια βάση εργασίας (workspace) και ένα σύστημα για επεκτασιμότητα (plugin). Πιο συγκεκριμένα, το Eclipse παρέχει plugins για μια ευρεία ποικιλία χαρακτηριστικών όπως για UML διαγράμματα, DB Explorer κ.α. Για τη συγγραφή και εκτέλεση Android εφαρμογών είναι απαραίτητο το ADT plugin (Android Development Tools). Αυτό αναλαμβάνει τη σύνδεση του SDK με το γραφικό περιβάλλον του Eclipse. Από τα μέσα του 2015 η Google έχει σταματήσει την υποστήριξη του Eclipse χάριν του επίσημου δικού της IDE Android Studio. Παρ όλα αυτά για την ανάπτυξη της εφαρμογής προτιμήθηκε το Eclipse αφού αυτός ήταν ο αρχικός σχεδιασμός και υπήρχε η σχετική οικειότητα. 4.4 Android Studio Το Μάϊο του 2013 ανακοινώθηκε το επίσημο Android IDE της Google, to Android Studio. Από τα μέσα του 2015 αποτελεί και το μόνο επίσημο IDE που υποστηρίζεται από τη Google. Το Android Studio IDE (Integrated Development Enviroment) είναι μία ολοκληρωμένη πλατφόρμα στην οποία μπορούν οι προγραμματιστές να συνθέτουν και να εκτελούν εφαρμογές για το λειτουργικό σύστημα Android. Το πακέτο που είναι διαθέσιμο προς λήψη δωρεάν περιέχει το προγραμματιστικό περιβάλλον Android Studio και το πακέτο ανάπτυξης εφαρμογών Android SDK. Βασίζεται στο λογισμικό της JetBrains IntelliJ IDEA, είναι σχεδιασμένο για αποκλειστική χρήση για ανάπτυξη Android εφαρμογών και είναι διαθέσιμο για τα λειτουργικά συστήματα Windows, Mac OS X και Linux. Σημαντικά του γνωρίσματα: Υποστήριξη βασισμένη στο εργαλεία αυτόματης παραγωγής κώδικα Gradle. Τα εργαλεία Lint (Lint Tools) τα οποία δίνουν την δυνατότητα καταγραφής της απόδοσης, της χρηστικότητας, της συμβατότητας εκδόσεων του Android, και άλλων προβλημάτων όπως καταγραφή μερικών ύποπτων και μη δομικών τμημάτων του πηγαίου κώδικα που μπορούν να προκαλέσουν σφάλματα. Ανάλυση κώδικα κατά την επεξεργασία (On-the-fly Code Analysis). Το IDE επισημαίνει προειδοποιήσεις και σφάλματα στον κώδικα κατά τη σύνταξη και επιτρέπει να εφαρμοστεί μια προτεινόμενη γρήγορη λύση αυτόματα. Το ενοποιημένο σύστημα Proguard που δίνει την δυνατότητα να συρρίκνωσης, βελτίωσης και απόκρυψης του κώδικα με την αφαίρεση αχρησιμοποίητου κώδικα και την μετονομασία κατηγοριών και πεδίων και ώστε το.apk που θα προκύψει να είναι πιο δύσκολο να αντιστραφεί μηχανικά (Reverse Engineering) και άρα να υπάρξει υποκλοπή κώδικα. Δυνατότητα ψηφιακής υπογραφής της παραχθείσας εφαρμογής με πιστοποιητικό (Certificate). Το Android απαιτεί ότι όλες οι εφαρμογές είναι ψηφιακά υπογεγραμμένες με ένα πιστοποιητικό για να μπορέσουν να εγκατασταθούν. Το Android χρησιμοποιεί αυτό το πιστοποιητικό για την ταυτοποίηση του συγγραφέα/προγραμματιστή ενός app, χωρίς να χρειάζεται να υπογραφτεί από κάποια αρχή έκδοσης πιστοποιητικών. Πρότυπα κώδικα (Code templates) που βοηθούν στην ανάπτυξη εφαρμογών κοινών χαρακτηριστικών. Σελίδα 24

34 Η ενσωματωμένη υποστήριξη για την πλατφόρμα της Google Cloud, καθιστώντας εύκολη την ενσωμάτωση του Google Cloud Messaging και του App Engine. Ένας drag-n-drop editor για την εύκολη προεπισκόπηση του γραφικού περιβάλλοντος της ε- φαρμογής. Υποστήριξη για φορετές συσκευές Android Wear. Ενσωμάτωση του συστήματος καταγραφής LogCat με δυνατότητα αναζήτησης και εφαρμογής διάφορων φίλτρων εμφάνισης Ενσωμάτωση του εργαλείου Dalvik Debug Monitor Server (DDMS) για debugging. Συμπεριλαμβάνει την λειτουργία θέασης ιεραρχίας (Hierarchy View) που μας δίνει τη δυνατότητα να δούμε την ιεραρχία των στοιχείων της διεπαφής. Σε αντίθεση με το Eclipse IDE το Android Studio διαθέτει επιλογή migratation, μεταφορά δηλαδή ενός project από περιβάλλον Eclipse σε περιβάλλον Android Studio. 4.5 Γλώσσα XML Η extensible Markup Language (XML) είναι μια είναι μία γλώσσα σήμανσης, που περιέχει ένα σύνολο κανόνων για την ηλεκτρονική κωδικοποίηση κειμένων. Ορίζεται, κυρίως, στην προδιαγραφή XML 1.0 (XML 1.0 Specification), που δημιούργησε ο διεθνής οργανισμός προτύπων W3C (World Wide Web Consortium), αλλά και σε διάφορες άλλες σχετικές προδιαγραφές ανοιχτών προτύπων. Η XML σχεδιάστηκε δίνοντας έμφαση στην απλότητα, τη γενικότητα και τη χρησιμότητα στο Διαδίκτυο. Είναι μία μορφοποίηση δεδομένων κειμένου, με ισχυρή υποστήριξη Unicode για όλες τις γλώσσες του κόσμου. Στο Android η XML χρησιμοποιείται για την απόδοση του γραφικού περιβάλλοντος της εφαρμογής, κάθε Activity αντιστοιχεί σε ένα αρχείο.xml και έχουν ακριβώς το ίδιο όνομα. Στο αρχείο.xml ορίζονται όλα τα Views, παραλληλόγραμμα δηλαδή που περιλαμβάνουν κάθε γραφικό στοιχείο της διεπαφής. 4.6 SQLite Το SQLite είναι ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων, που περιέχεται σε μια C προγραμματιστική βιβλιοθήκη και υλοποιεί το μεγαλύτερο μέρος του προτύπου SQL (Structured Query Language), χρησιμοποιώντας μια δυναμική SQL σύνταξη. Σε αντίθεση με άλλα συστήματα διαχείρισης βάσης δεδομένων, το SQLite δεν έχει ξεχωριστή διαδικασία για το διακομιστή (server) αλλά είναι ενσωματωμένο μέρος της εφαρμογής. Διαβάζει και εγγράφει κατευθείαν στα αρχεία του δίσκους βάση δεδομένων. Μια πλήρης βάση δεδομένων SQLite μπορεί να είναι αποθηκευμένη σε ένα μόνο ενιαίο αρχείο. Έχει ελεύθερη διανομή για κάθε πλατφόρμα κι αρχιτεκτονική και αποτελεί την πιο διαδομένη βάση δεδομένων. Είναι μια μικρού μεγέθους συμπαγής βιβλιοθήκη και μπορεί να έχει μέγεθος λίγες εκατοντάδες kb (>500kB) έτσι είναι ιδανική για χρήση σε φορητές συσκευές με περιορισμένους πόρους. Γι αυτό το λόγο χρησιμοποιείται στο Android. Οι απαραίτητες κλάσεις για τη λειτουργία της βάσης βρίσκονται στο πακέτο «android.database.sqlite». 4.7 Genymotion Αποτελεί ένα ειδικό λογισμικό διαχείρισης εικονικών μηχανών (Virtual Machine) Android μέσω χρήσης VirtualBox αλλά με πολύ βελτιωμένες επιδόσεις και χρήσιμα εργαλεία όπως εξομοίωση πλήκτρων, κάμερας, Wi-Fi και GPS. Συνεργάζεται μέσω plugin με το Eclipse χωρίς όμως να ενσωματώνει στις προρυθμισμένες συσκευές του τα Google Play Services, υπάρχει όμως η δυνατότητα εγκατάστασης κάθε απαιτούμενης βιβλιοθήκες μέσα από την γραμμή εντολών του Android Debug Bridge (adb). Σε σχέση με τον ενσωματωμένο AVD Manager του Eclipse έχει πολύ ταχύτερη απόκριση και καλύτερη απόδοση. Γι αυτό και προτιμήθηκε κατά την ανάπτυξη της εφαρμογής δεδομένων και των απαιτήσεων. 4.8 Πηγές Υπάρχει πραγματικά τεράστιος όγκος υλικού μελέτης για όσους ενδιαφέρονται για την ανάπτυξη εφαρμογών σε περιβάλλον Android. Κυκλοφορούν δεκάδες βιβλία και video tutorial, υπάρχουν πάρα πολλές ιστοσελίδες που απευθύνονται σε κάθε επίδοξο προγραμματιστή, Νιώθω όμως την ανάγκη Σελίδα 25

35 να αναφερθώ σε δύο συγκεκριμένες ιστοσελίδες που αποτελούν πραγματικά εργαλεία. Πρώτον η επίσημη ιστοσελίδα της google για τους προγραμματιστές Android η οποία αποτελεί ένα πληρέστατο οδηγό για αρχάριους και επαγγελματίες με διεξοδικές οδηγίες και λεπτομέρειες για κάθε κλάση, μέθοδο, και οποιοδήποτε εργαλείο είναι απαραίτητο για την ανάπτυξη μιας εφαρμογής. Δεύτερον το που αποτελεί ένα παγκόσμιο δικτυακό τόπο συνάντησης όλων των προγραμματιστών στο οποίο ο καθένας μπορεί να βρει απάντηση σε κάθε πρόβλημα που αντιμετωπίζει κατά την ανάπτυξη μιας εφαρμογής απευθυνόμενος σε προγραμματιστές από όλον τον κόσμο. Και στις δύο αυτές ιστοσελίδες οι επισκέψεις ήταν καθημερινές κατά την ανάπτυξη του λειτουργικού μέρους της εφαρμογής. Ως εκ τούτου δεν κρίθηκε απαραίτητη η αναφορά κάθε υποσελίδας στη βιβλιογραφία καθώς η λίστα θα ήταν πραγματικά ατέλειωτη. Σελίδα 26

36 5 Η υλοποίηση της εφαρμογής Travel Log 5.1 Κίνητρα για την ανάπτυξη της εφαρμογής Όπως είδαμε το Android OS και ειδικά οι LBS εφαρμογές αποτελούν ήδη μια τεράστια αλλά και ταχύτητα αναπτυσσόμενή αγορά. Όλο και περισσότεροι προγραμματιστές χρειάζονται για να καλύψουν τη μεγάλη ζήτησε σε καινούργιες εφαρμογές. Σε συνδυασμό με την τάση της μεταφοράς των αντικειμένων του φυσικού κόσμου στον ψηφιακό αλλά και την πεποίθηση πως η αρχική ιδέα θα μπορούσε να καλύψει ένα κενό στην αγορά δημιούργησαν τα κίνητρα για την ενασχόληση με το συγκεκριμένο αντικείμενο. 5.2 Απαιτήσεις Η εφαρμογή Travel Log είναι συμβατή με συσκευές Android 4+ (ICS, Jellybean, KitKat) με α- νάλυσης οθόνης τα 480x800 (ή 800x480) pixels ή ανώτερη. Η συσκευή πρέπει να υποστηρίζει GPS (υψηλής ακρίβειας) και να έχει εγκατεστημένες τις υπηρεσίες Google Play όπως και ένα κλειδί Google Maps API Εγκατάσταση Google Play Services στο Eclipse 1. Μέσω του Android SDK Manager του Eclipse εγκαθιστούμε τo Google Play Services. Εικόνα 5.1 Εγκατάσταση Google Play Services μέσω Android SDK Manager 2. Μετά τη λήψη του Google Play Services θα πρέπει να το εισάγουμε στο Eclipse για να χρησιμοποιηθεί ως βιβλιοθήκη για την εφαρμογή μας. Προσθέτουμε την βιβλιοθήκη Google play services στο project μας πηγαίνοντας File Import Android Existing Android Code Into Workspace, πηγαίνουμε στο σημείο του δίσκου που έχουμε αποθηκεύσει το SDK και ακολουθούμε την διαδρομή <android-sdk- Σελίδα 27

37 folder>/extras/google/google_play_services/libproject/google-play-services_lib Είναι σημαντικό κατά την εισαγωγή να τσεκάρουμε το πλαίσιο για να αντιγραφεί η βιβλιοθήκη στο workspace μας. Εικόνα 5.2 Εισαγωγή της βιβλιοθήκης στο project Σελίδα 28

38 5.2.2 Έκδοση κλειδιού Google Maps API 1. Βρίσκουμε την διεύθυνση SHA-1 με τη χρήση Java keytool. Ανοίγουμε το cmd τερματικό μέσα στο φάκελο που έχουμε την java στο σκληρό μας και να εκτελέσουμε την ακόλουθη εντολή για να δημιουργηθεί η διεύθυνση SHA-1. keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android Σαν έξοδο της εντολής θα πάρουμε: Εικόνα 5.3 Δημιουργία διεύθυνσης SHA1 στο cmd 2. Πηγαίνουμε στην Κονσόλα Google API Επιλέγουμε Services στην αριστερή πλευρά και να ενεργοποιούμε από την λίστα το Google Maps Android API v2 Εικόνα 5.4 Ενεργοποίηση Google Maps Android API v2 Σελίδα 29

39 3. Τώρα επιλέγουμε από τα αριστερά το API Access και κάνουμε κλικ στο πλήκτρο Create νέου Android Key. Εικόνα 5.5 Δημιουργία νέου κλειδιού Android 4. Στο αναδυόμενο παράθυρο που μας ανοίγει βάζουμε την διεύθυνση SHA1 στο τέλος της Ελληνικό ερωτηματικό και στην συνέχεια το ακριβές όνομα του πακέτου της εφαρμογής μας και κάνουμε κλικ στο δημιουργία. Εικόνα 5.6 Απόκτηση κλειδιού Με αυτό τον τρόπο έχουμε δημιουργήσει το API κλειδί μας και μπορούμε να κάνουμε χρήση των χαρτών της Google. 5.3 Εισαγωγή Σκοπός του Travel Log είναι η αυτοματοποιημένη καταγραφή σε χάρτη της πορείας του χρήστη (σε μορφή αρχείου KML) με παράλληλη καταγραφή ορισμένων χρήσιμων πληροφοριών (όπως η διανυθείσα απόσταση, η ταχύτητα μετακίνησης του και το υψόμετρο) αλλά και η δυνατότητα προσθήκης Σελίδα 30

40 «Σημείων Ενδιαφέροντος» (Points of Interest ή POIs εφεξής) από τον χρήστη σε οποιοδήποτε σημείο του χάρτη εκείνος επιθυμεί. 5.4 Το AndroidManifest.xml Το αρχείο πάντα και για κάθε εφαρμογή έχει ακριβώς το ίδιο όνομα «AndroidManifest.xml» το οποίο γράφεται σε μορφή camel case, όλοι οι χαρακτήρες μαζί χωρίς κενά με το πρώτο γράμμα κάθε λέξης να είναι κεφαλαίο. Μέσα στο manifest έχει δηλωθεί το API level στο οποίο λειτουργεί η εφαρμογή. Στην περίπτωση μας είναι το API 14 δηλαδή το Android IceCream Sandwich που αν και κυκλοφόρησε το 2011 την εποχή που άρχισε να αναπτύσσεται η εφαρμογή (καλοκαίρι 2014) ήταν από τις πιο δημοφιλείς εκδόσεις Android. Αυτό δε σημαίνει πως η εφαρμογή δεν είναι συμβατή με τις επόμενες εκδόσεις, απλά χρησιμοποιεί τις βιβλιοθήκες και τα API του API Level 14. Επιπλέον περιλαμβάνονται τα permissions που χρειάζεται να έχει η εφαρμογή για να έχει πρόσβαση στο Internet (INTERNET) στην εύρεση της κατά προσέγγιση και ακριβούς θέσης (ACCESS_COARSE_LOCATION) και (ACCESS_FINE_LOCATION) αντίστοιχα, στις πληροφορίες για τα δίκτυα (ACCESS_NETWORK_STATE), να διαβάζει (READ_EXTERNAL_STORAGE) και να αποθηκεύει (WRITE_EXTERNAL_STORAGE) σε εξωτερικές πηγές και την καταγραφή ήχου (RECORD_AUDIO). Τέλος το manifest περιλαμβάνει δήλωση του κλειδιού μας. Το κλειδί επιβεβαιώνει ότι έχουμε εγγραφεί στην υπηρεσία Google Maps μέσω της κονσόλας Google APIs. Σελίδα 31

41 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="com.example.travellog" android:versioncode="1" android:versionname="1.0" > <uses-feature android:glesversion="0x " android:required="true"/> <uses-sdk android:minsdkversion="14" android:targetsdkversion="14" /> <uses-permission android:name="android.permission.access_fine_location"/> <uses-permission android:name="android.permission.access_coarse_location"/> <uses-permission android:name="android.permission.access_network_state"/> <uses-permission android:name="android.permission.internet"/> <uses-permission android:name="android.permission.write_external_storage"/> <uses-permission android:name="android.permission.read_external_storage"/> <uses-permission android:name="android.permission.record_audio"/> <application android:allowbackup="true" > <meta-data android:name="com.google.android.gms.version" /> <meta-data android:name="com.google.android.geo.api_key" android:value=""/> <activity android:name="com.example.travellog.mainactivity" android:configchanges="keyboard keyboardhidden orientation screensize"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name="com.example.travellog.travelrecorder" android:configchanges="keyboard keyboardhidden orientation screensize"></activity> <activity android:name="com.example.travellog.travelbrowser" android:configchanges="keyboard keyboardhidden orientation screensize"></activity> </application> </manifest> Εικόνα 5.7 Το AndroidManifest.xml της εφαρμογής Travel Log Σελίδα 32

42 5.5 Κεντρική οθόνη του προγράμματος Κάθε εφαρμογή Android ξεκινά με μια κλάση MainActivity.java η οποία έχει απαραίτητα πάντα το ίδιο όνομα. Και συνδέεται με το κεντρικό Activity της εφαρμογής. Οι υπηρεσίες του Travel Log ομαδοποιούνται σε 2 κατηγορίες: Καταγραφή διαδρομής Το πρόγραμμα καταγράφει την πορεία του χρήστη στον χώρο σε μορφή αρχείου KML. Ιστορικό διαδρομών Επιτρέπει την ανασκόπηση της πορείας του χρήστη στον χώρο, η πορεία διαβάζεται από αρχείο μορφής KML Το υλικό της συσκευής (δέκτης GPS) επικοινωνεί με το δορυφορικό δίκτυο GPS επιτυχώς Αν η ένδειξη αναβοσβήνει τότε ο δέκτης GPS της συσκευής δεν έχει α- ποκαταστήσει/κλειδώσει την επικοινωνία με το δορυφορικό δίκτυο GPS. Ο χρόνος αποκατάστασης της επικοινωνίας με το δορυφορικό δίκτυο εξαρτάται από γεωγραφικούς παράγοντες αλλά και από το υλικό της συσκευής (δέκτης GPS, δέκτης A-GPS, ενεργή σύνδεση Δεδομένων) Ο δέκτης GPS της συσκευής είναι ανενεργός ή υπάρχει πρόβλημα επικοινωνίας με το Google Fused Location Provider (Google Play Services) Η ένδειξη αναβοσβήνει ώστε να τραβήξει την προσοχή του χρήστη Εικόνα 5.8 Αρχική οθόνη εφαρμογής Travel Log // Έναρξη του TravelRecorder activity (εγγραφή πορείας) private void starttravelrecording() { startactivity(new Intent(getApplication(), TravelRecorder.class)); } // Έναρξη του TravelBrowser activity (ιστορικό) private void starttravelbrowser() { startactivity(new Intent(getApplication(), TravelBrowser.class)); } Εικόνα 5.9 Τμήμα της MainActivity.java που εκκινεί Εγγραφή και Ιστορικό πορείας Σελίδα 33

43 5.6 Σενάρια Χρήσης Καταγραφή διαδρομής Η καταγραφή πορείας του Travel Log ξεκινάει αμέσως μόλις το GPS της συσκευής ενεργοποιηθεί και εκτελείται από την κλάση TravelRecorder.java Σε περίπτωση που το GPS δεν είναι έτοιμο (warmed-up) τότε το πρόγραμμα προβάλει στον χάρτη, την τελευταία γνωστή (εφόσον υπάρχει) γεωγραφική θέση της συσκευής. Μόλις το GPS ξεκινήσει την μετάδοση γεωγραφικών πληροφοριών, το Travel Log παρουσιάζει την θέση του χρήστη με ένα στίγμα (Marker) μπλε χρώματος στον χάρτη. Αυτό το στίγμα ονομάζεται «στίγμα του χρήστη» και αναβοσβήνει ανά μερικά χιλιοστά του δευτερολέπτου ώστε να είναι πάντα εύκολα διακριτό. Καθώς ο χρήστης μετακινείται στον χώρο η εφαρμογή υπολογίζει συνεχώς την απόσταση του από το τελευταίο γνωστό γεωγραφικό του στίγμα (σημείο) και αν αυτή είναι 50 ή περισσότερα μέτρα (meters), το πρόγραμμα τοποθετεί αυτόματα ένα γκρίζο στίγμα το οποίο ονομάζεται «στίγμα πορείας» ενώ παράλληλα σχεδιάζει μια γραμμή μπλε χρώματος που ονομάζεται «γραμμή πορείας» προς αυτό. Το πρόγραμμα κρατάει στατιστικές πληροφορίες (μέσος όρος απόστασης, ταχύτητας και υψόμετρου) για κάθε «στίγμα πορείας» στο χάρτη. Ο συνολικός αριθμός «στιγμάτων πορείας» που μπορεί να καταγράψει η ε- φαρμογή είναι (ή 102,4 χλμ), μόλις ο αριθμός αυτός συμπληρωθεί, το Travel Log θα αρχίσει να αντικαθιστά τα παλιότερα «στίγματα πορείας» (αλλά και την «γραμμή πορείας») με τις πιο πρόσφατες μετρήσεις. Το σύνολο των στοιχείων της πορείας του χρήστη καταγράφεται παράλληλα και σε μερικά βοηθητικά αρχεία στην εξωτερική μονάδα αποθήκευσης της συσκευής ώστε σε περίπτωση διακοπής του προγράμματος (από τον χρήστη ή από το Android) να μειώνεται ο κίνδυνος απώλειας της εν εξελίξει πορείας (διαδρομής). // Έλεγχος κατάστασης Google Play Services if(!mainactivity.checkforgoogleplayservices(this, this, MSGBOX_FATAL)) return; Εικόνα 5.10 Οθόνη καταγραφής διαδρομής // Ανάκτηση πρόσβασης στο Google Map class μέσω του FragmentManager gmap = ((MapFragment)getFragmentManager().findFragmentById(R.id.rec_map)).getMap(); if(gmap == null) { MsgBox.show(this, this, MSGBOX_FATAL, R.string.msg_gp_frag_error, R.string.title_error); finish(); return; } Εικόνα 5.11 Τμήμα κλάσης TravelRecorder.java Στην κλάση TravelRecorder.java εκτός από τον έλεγχο της κατάστασης του Google Play Services που απαιτείται κάθε φορά χρειάζεται και το MapFragment. Το MapFragment, είναι υποκλάση της κλάσης Android Fragment, η οποία επιτρέπει να προσθέσουμε ένα χάρτη στο Android Fragment. Μέσω του αντικειμένου MapFragment αποκτούμε πρόσβαση στους χάρτες του Google Maps. Το Google Maps Android API απαιτεί API επίπεδο 12 ή μεγαλύτερο για να υποστηρίζει αντικείμενα τύπου MapFragment. Για να εμφανίσουμε ένα χάρτη μέσω MapFragment ακολουθούμε τα βήματα: Σελίδα 34

44 1. Αρχικά, πρέπει να αποκτήσουμε ένα API key με τη διαδικασία που περιγράφεται παραπάνω και να τροποποιήσουμε κατάλληλα το αρχείο Android Manifest. 2. Προσθέτουμε ένα αντικείμενο Fragment στην Activity η οποία θέλουμε να χειρίζεται το χάρτη. 3. Μέσα στο αντικείμενο της Activity στην συνάρτηση oncreate(), δημιουργούμε ένα α- ντικείμενο GoogleMap μέσα στο MapFragment. Το αντικείμενο GoogleMap είναι η παρουσίαση του χάρτη και εάν θέλουμε να τροποποιήσουμε τον χάρτη αρκεί να τροποποιήσουμε το αντικείμενο GoogleMap. 4. Το τελευταίο βήμα είναι η προσθήκη των κατάλληλων δικαιωμάτων και ρυθμίσεων στο αρχείο AndroidManifest.xml της εφαρμογής μας. Το MapFragment αυτόματα εμφανίζει το χάρτη στην ολοκλήρωση της μεθόδου oncreate(). Για να ορίσουμε ένα αντικείμενο Fragment στο layout αρχείο της Activity, προσθέτουμε ένα στοιχείο <fragment>. Σε αυτό το στοιχείο, θέτουμε το χαρακτηριστικό android:name σε "com.google.android.gms.maps.mapfragment". Με αυτόν τον τρόπο, αυτόματα επισυνάπτεται ένα MapFragment στη συγκεκριμένη Activity Ολοκλήρωση διαδρομής Ο χρήστης μπορεί να ολοκληρώσει μια εν εξελίξει διαδρομή πατώντας το πλήκτρο «Ολοκλήρωση διαδρομής» Απόκριση Το πρόγραμμα ολοκληρώνει την διαδρομή μεταφέροντας την στο «Ιστορικό Διαδρομών» Ναι Το πρόγραμμα διακόπτει προσωρινά την διαδρομή, ο χρήστης μπορεί να συνεχίσει την κα- Αργότερα ταγραφή της διαδρομής αργότερα Ο χρήστης δεν επιθυμεί την ολοκλήρωση της Όχι διαδρομής Εικόνα 5.12 Οθόνη ολοκλήρωσης διαδρομής και σενάρια Η καταγραφή της διαδρομής δεν διακόπτεται ακόμα και αν η εφαρμογή μεταφερθεί στο παρασκήνιο εκτός και αν διακοπεί συνολικά η λειτουργία του προγράμματος για λόγους εξοικονόμησης πόρων από το Android Σελίδα 35

45 5.6.3 Συνέχιση διαδρομής Αν ο χρήστης δεν έχει ολοκληρώσει μια προγενέστερη διαδρομή, τότε με το πάτημα του πλήκτρου «Καταγραφή διαδρομής» θα ερωτηθεί από την εφαρμογή για την συνέχιση της (ή μη) Απόκριση Ναι Όχι Άκυρο Το πρόγραμμα φορτώνει την αποθηκευμένη διαδρομή στον χάρτη και συνεχίζει την καταγραφή από το πιο πρόσφατο «στίγμα πορείας» Το πρόγραμμα διαγράφει την αποθηκευμένη διαδρομή και ξεκινάει μια νέα Ο χρήστης δεν επιθυμεί την καταγραφή της διαδρομής Εικόνα 5.13 Μήνυμα και σενάρια Σελίδα 36

46 5.7 Η ακρίβεια της τοποθεσίας Η εφαρμογή μετράει συνεχώς την ακρίβεια του γεωγραφικού στίγματος που μεταδίδει το δορυφορικό δίκτυο GPS στο υλικό της συσκευής. Η ακρίβεια, δηλαδή το πόσο κοντά στην πραγματική θέση του χρήστη στον χώρο βρίσκεται το «στίγμα του χρήστη» του προγράμματος στον χάρτη, εξαρτάται από την γεωγραφία της περιοχής (για παράδειγμα, πόσοι δορυφόροι είναι σε απευθείας επαφή με την συσκευή) αλλά και από το ίδιο το υλικό (πόσο ευαίσθητο είναι το GPS της συσκευής). Σε περίπτωση που η εφαρμογή ανιχνεύσει πως η ακρίβεια του «στίγματος του χρήστη» είναι 10 μέτρα ή περισσότερα, τότε εμφανίζει στον χάρτη έναν κύκλο (ονομάζεται «ακτίνα πιθανής θέσης») η περιφέρεια του οποίου είναι ανάλογη της ακρίβειας του στίγματος (σε μέτρα). Άρα, όσο μεγαλύτερη η περιφέρεια του κύκλου, τόσο χαμηλότερη η ακρίβεια του γεωγραφικού στίγματος της συσκευής. 5.8 Πληροφορίες πορείας Εικόνα 5.14 Ακτίνα ακρίβειας Travel Log Η ταχύτητα μετακίνησης του χρήστη στον χώρο (σε μορφή χιλιόμετρων ανά ώρα [kmh]) και το υψόμετρο της τοποθεσίας του χρήστη (από την επιφάνια της θάλασσας σε χιλιόμετρα [km]). Όταν οι τιμές από την τελευταία μέτρηση είναι αυξημένες (+) εμφανίζονται με μπλε χρώμα, αλλιώς (-) με κόκκινο. Οι μέσοι όροι των μετρήσεων της διαδρομής εμφανίζονται (ή αποκρύπτονται) αφού ο χρήστης πατήσει στο πλήκτρο (i). Ο χρήστης μπορεί να ενημερωθεί για τις μετρήσεις κάποιου «στίγματος πορείας» (εφόσον είναι διαθέσιμες) πατώντας επάνω του. Εικόνα 5.15 Μετρήσεις πορείας Σελίδα 37

47 package com.example.travellog; import java.util.hashmap; public class PathStat { public final double lat, lng; public final float distance, speed, alt; /* * ctor * lat και lng, το γεωγραφικό στίγμα της μέτρησης * distance, η απόσταση (σε μέτρα) που διανύθηκε από από το τελευταίο γεωγραφικό στίγμα * speed, η ταχύτητα μετακίνησης (σε μέτρα ανά ώρα) από το τελευταίο γεωγραφικό στίγμα * alt, το υψόμετρο (σε μέτρα) του γεωγραφικού στίγματος */ public PathStat(final double lat, final double lng, final float distance, final float speed, final float alt) { this.lat = lat; this.lng = lng; this.distance = distance; this.speed = speed; this.alt = alt; } /* * make * * Στατική συνάρτηση δημιουργίας ενός νέου PathStat * * ΕΙΣΟΔΟΣ: Οι παράμετροι του ctor της PathStat class * ΕΞΟΔΟΣ: Ένα νέο PathStat class */ public static PathStat make(final double lat, final double lng, final float distance, final float speed, final float alt) { return new PathStat(lat, lng, distance, speed, alt); } /* * PathStatAverage * * Εσωτερική class υπολογισμού των μέσων όρων που προκύπτουν από μια πλειάδα * μετρήσεων κατηγορίας PathStat */ public static class PathStatAverage { public float mdistance = 0, // μ.ο. μετακίνησης σε μέτρα mspeed = 0, // μ.ο. ταχύτητας μετακίνησης σε μέτρα/ώρα malt = 0; // μ.ο. υψόμετρου σε μέτρα public PathStatAverage() {} Εικόνα 5.16 Η κλάση PathStat Σελίδα 38

48 Η κλάση PathStat είναι υπεύθυνη για την καταγραφή των στατιστικών και τον υπολογισμό των M.O. Χρησιμοποιεί την κλάση HashMap για να πάρει τις απαιτούμενες τιμές από το χάρτη ώστε να κάνει τους υπολογισμούς που χρειάζονται. Η τοπική κλάση PathStatAverage υπολογίζει τους μ.ό. 5.9 Διαχείριση POIs (Σημεία Ενδιαφέροντος) Ως POI (Point Of Interest) ή Σημείο Ενδιαφέροντος ονομάζουμε οποιοδήποτε γεωγραφικό στίγμα εισάγεται από τον χρήστης στον χάρτη της καταγραφόμενης πορείας. Οι τύποι POI που υποστηρίζονται από την εφαρμογή είναι: 1. Φωτογραφία (εικόνα) από την κάμερα της συσκευής (αν υπάρχει) 2. Βίντεο από την κάμερα της συσκευής (αν υπάρχει και εφόσον υποστηρίζεται η βιντεοσκόπηση από το υλικό) 3. Εγγραφή φωνής (ήχος αν υποστηρίζεται από το υλικό [διαθέτει μικρόφωνο ή ενσύρματο hands-free]) 4. Κείμενο (σημείωση) μικρού μεγέθους (1KB) Εικόνα 5.17 Εισαγωγή POI Η λήψη φωτογραφίας και βίντεο γίνεται από το προεπιλεγμένο πρόγραμμα λήψης φωτογραφίας ή / και βίντεο της συσκευής. Η εγγραφή φωνής και η προσθήκη σημειώσεων γίνεται από την ίδια την εφαρμογή Προσθήκη POI Η εισαγωγή POI στον χάρτη του προγράμματος μπορεί να γίνει με δυο τρόπους. Ο πρώτος τρόπος εισαγωγής ονομάζεται «Μαζικός» και γίνεται με το πάτημα του ανάλογου πλήκτρου POI (με βάση το περιεχόμενο που θέλετε να προσθέσετε) στην «μπάρα εντολών» του προγράμματος και ύστερα πατώντας στο σημείο του χάρτη που θα εισαχθεί το POI σας. Μόλις το POI εισαχθεί, η εφαρμογή σας επιτρέπει να εισάγετε εύκολα κάποιο επόμενο (αν θέλετε) πατώντας σε ένα νέο σημείο του χάρτη. Για να διακόψετε την εισαγωγή POI πατήστε στο ενεργοποιημένο πλήκτρο POI της «μπάρας εντολών». Μπορείτε να αλλάζετε τύπο POI κατά βούληση. Ο δεύτερος τρόπος εισαγωγής ονομάζεται «Ατομικός» και γίνεται με παρατεταμένο πάτημα στο σημείο του χάρτη που θα εισαχθεί το POI σας. Σελίδα 39

49 public class POIPicker { final public static int POI_PICTURE = 0,// POI Εικόνας POI_VIDEO = 1, // Βίντεο POI_AUDIO = 2, // Ήχου POI_TEXT = 3, // Κειμένου POI_BACK = 4; // Άκυρη η εισαγωγή POI /* * ctor * Το πατρογονικό Activity (context), * Ο POIPickerListener * Το γεωγραφικό στίγμα του προς εισαγωγή POI (latlng κατηγορίας LatLng) */ protected POIPicker(final Context context, final POIPickerListener listener, final LatLng latlng) { final OnClickListener clicklistener; // Κατασκευή διάλογου επιλογής POI final AlertDialog.Builder alertopts = new AlertDialog.Builder(context).setTitle(context.getString(R.string.title_add_poi)).setIcon(R.drawable.ic_action_poipicker).setItems(R.array.poi_array, clicklistener = new OnClickListener() public void onclick(dialoginterface dialog, int which) { if(listener!= null) { /* * Αν το which := με το Negative Button Id τότε επέστρεψε POI_BACK * στον POI Listener διαφορετικά την τιμή which ως έχει (αφού * αντιστοιχεί πάντα μεταξύ του POI_PICTURE.. POI_TEXT) */ listener.onselectedpoi( which!= DialogInterface.BUTTON_NEGATIVE? which: POI_BACK, latlng); } } }).setnegativebutton(r.string.msg_cancel, clicklistener); Εικόνα 5.18 POIPicker class Η κλάση POIPicker είναι υπεύθυνη για τη δημιουργία διαλόγου εισαγωγής POI. Σελίδα 40

50 5.9.2 Εισαγωγή φωνητικής σημείωσης POI Η εγγραφή ήχου (φωνής) γίνεται από τον ενσωματωμένο καταγραφέα ήχου του προγράμματος. Αυτό κρίθηκε αναγκαίο αφού αρκετοί κατασκευαστές επιλέγουν την μη παροχή κάποιας προεγκατεστημένης εφαρμογής καταγραφής ήχου από το μικρόφωνο της συσκευής. Ο καταγραφέας ήχου του προγράμματος δέχεται είσοδο από το μικρόφωνο της συσκευής (αν υπάρχει) ή από ενσύρματο handsfree. Ο ήχος αποθηκεύεται σε μορφή Narrow Band (NR) AMR με την διάρκεια εγγραφής να περιορίζεται από τον διαθέσιμο χώρο της εξωτερικής μονάδας αποθήκευσης της συσκευής. Ο χρόνος εγγραφής ανανεώνεται ανά δευτερόλεπτο. Για να ακυρώσετε την εγγραφή πατήστε το πλήκτρο «Επιστροφή», για να ολοκληρώσετε και να αποθηκεύσετε την εγγραφή, πατήστε το πλήκτρο «Αποθήκευση». Μια εν εξελίξει εγγραφή δεν διακόπτεται ακόμα και αν η εφαρμογή μεταφερθεί στο παρασκήνιο (εκτός και αν διακοπεί συνολικά η λειτουργία του προγράμματος για λόγους εξοικονόμησης πόρων από το Android). Εικόνα 5.19 Εισαγωγή φωνητικής σημείωσης Σελίδα 41

51 5.9.3 Εισαγωγή POI κειμένου (σημείωση) Η εισαγωγή κειμένου (σημείωση) γίνεται από τον ενσωματωμένο «επεξεργαστή κειμένου» του προγράμματος. Ο επεξεργαστής κειμένου της εφαρμογής επιτρέπει την εισαγωγή μέχρι 1024 χαρακτήρων Unicode, αποθηκευμένους σε μορφή UTF-8. Εικόνα 5.20 Εισαγωγή κειμένου Εικόνα Προβολή POI Για να προβάλλετε το περιεχόμενο ενός POI αρκεί να πατήσετε το εικονίδιο του στον χάρτη. Οι εικόνες, τα βίντεο και η εγγραφή φωνής προβάλλονται /αναπαράγονται από το προεπιλεγμένο πρόγραμμα προβολής της συσκευής. Το κείμενο (σημείωση) προβάλλεται από τον επεξεργαστή κειμένου του προγράμματος. Εικόνα 5.19 Προβολή POI Διαγραφή POI Η διαγραφή POI γίνεται με το πάτημα του πλήκτρου X στην «μπάρα εντολών» του προγράμματος και ύστερα πατώντας στο POI που θέλετε να διαγραφτεί. Για να διακόψετε την διαγραφή POI πατήστε στο ενεργοποιημένο πλήκτρο Χ της «μπάρας εντολών». Σελίδα 42

52 Εικόνα 5.21 Διαγραφή POI 5.10 Ιστορικό Διαδρομών Στο ιστορικό των διαδρομών αποθηκεύεται κάθε «ολοκληρωμένη διαδρομή» του χρήστη. Κάθε διαδρομή αποθηκεύεται στον φάκελο TravelLog της εξωτερικής μονάδας αποθήκευσης της συσκευή. Η ακριβής διαδρομή (όπως και η φυσική θέση [εσωτερική μνήμη Flash της συσκευής ή αφαιρούμενη κάρτα SD]) προς αυτόν τον φάκελο εξαρτάται από τον κατασκευαστή κάθε συσκευής. Ως ονομασία διαδρομής αποδίδεται εξορισμού η ημερομηνία και ώρα ολοκλήρωσης της διαδρομής (σαν «Μέρας- Μήνας-Έτους Ώρας Λεπτών»). Ο φάκελος αποθήκευσης μιας μη ολοκληρωμένης διαδρομής («τρέχουσας διαδρομής») ονομάζεται πάντα current. Κάθε φάκελος περιέχει τα αρχεία διαδρομής και τα αρχεία των POI του χρήστη. Η ονομασία των POI του χρήστη περιέχει το γεωγραφικό στίγμα (σε μορφή latitude και longitude) κωδικοποιημένο σε μορφή (safe) BASE64. Ο τύπος κάθε POI (εικόνα, βίντεο, ήχος ή κείμενο) ορίζεται από την επέκταση που ακολουθεί κάθε αρχείο (.jpg,.3gp,.amr ή.txt). Η διαδρομή του χρήστη (μαζί με τις πληροφορίες της) αποθηκεύεται σε δυο μορφές αρχείων, η πρώτη είναι δυαδική και χρησιμοποιείται όταν ο χρήστης συνεχίζει μια μη ολοκληρωμένη πορεία (για λόγους ταχύτητας κατά την ανάγνωση και αποθήκευση των πληροφοριών) και η δεύτερη είναι σε μορφή.kml η οποία χρησιμοποιείται κάθε φορά που ο χρήστης προβάλει την πορεία από το Ιστορικό. Η παραγόμενη μορφή.kml είναι συμβατή για προβολή από το γεωδαιτικό πρόγραμμα Google Earth (για προσωπικούς υπολογιστές). Σελίδα 43

53 Εικόνα 5.22 Ιστορικό διαδρομών 5.11 Μετονομασία αποθηκευμένης διαδρομής Για να μετονομάσετε μια αποθηκευμένη διαδρομή πατήστε στο εικονίδιο «μετονομασίας διαδρομής» (μολυβάκι). Στο διάλογο που ακολουθεί δώστε νέα ονομασία διαδρομής ή πατήστε «Επιστροφή» για να ακυρώσετε την διαδικασία. Η ονομασία διαδρομής έχει μέγιστο μήκος 64 χαρακτήρες πλην των:? : " * / \ < > που δεν υποστηρίζονται. Εικόνα 5.23 Μετονομασία διαδρομής 5.12 Διαγραφή αποθηκευμένης διαδρομής Για να διαγράψετε μια ή περισσότερες αποθηκευμένες διαδρομές πατήστε στο τετραγωνάκι που υπάρχει στα δεξιά ώστε να μαρκαριστεί και ύστερα στο εικονίδιο διαγραφής (κάδο απορριμμάτων).στην προτροπή επιβεβαίωσης του προγράμματος απαντήστε καταφατικά. Σελίδα 44

54 5.13 Προβολή αποθηκευμένης πορείας στο Google Earth (KML) Για να προβάλλετε μια αποθηκευμένη πορεία σε κάποιο λογισμικό προβολής (viewer) αρχείων KML θα πρέπει αφού συνδέσετε την συσκευή σας με τον Η/Υ να μεταβείτε στον ομώνυμο φάκελο του προγράμματος (φάκελος TravelLog ) στην «εξωτερική μονάδα αποθήκευσης» της συσκευή και να επιλέξετε από τον φάκελο της διαδρομής που θα προβληθεί, το αρχείο kml.kml. Εικόνα 5.26 Η διαδρομή μας είναι αποθηκευμένη στο φάκελο current στο αρχείο kml.kml Εικόνα 5.24 Η διαδρομή όπως δημιουργήθηκε από το Travel Log Εικόνα 5.25 Προβολή της διαδρομής (kml.kml) στο Google Maps Σελίδα 45

55 Ρυθμίσεις Google Earth για την προβολή των POI στον Η/Υ Η προβολή των POI του TravelLog από το Google Earth (ή άλλο KML viewer) εξαρτάται από το κατά πόσο υπάρχουν στον Η/Υ εγκατεστημένες οι κατάλληλες εφαρμογές (ή οδηγοί) που μπορεί να αναπαράγουν το περιεχόμενο κάθε POI. Για την προβολή των αρχείων βίντεο, χρειάζεται πρόγραμμα προβολής συμβατό με το format αρχείων 3GPP ενώ για την αναπαραγωγή των POI ήχου, χρειάζεται πρόγραμμα αναπαραγωγής συμβατό με το format αρχείων NB ARM. Οι εικόνες (JPG) προβάλλονται αυτόματα από το Google Earth σε πλήρες μέγεθος (κάνοντας κλικ στο Thumbnail balloon του POI). Το κείμενο (text) μπορεί να προβληθεί από το Google Earth ή από κάποιο εξωτερικό πρόγραμμα προβολής αρχείων κειμένου (για παράδειγμα το Σημειωματάριο» των MS-Windows). Αν αντιμετωπίσετε προβλήματα κατά την προβολή των POI από το Google Earth επιβεβαιώστε ότι οι παρακάτω ρυθμίσεις του προγράμματος είναι ενεργές: Σε περίπτωση που ο Media Player των MS-Windows αρνηθεί την αναπαραγωγή αρχείων βίντεο ή ήχου των POI, δοκιμάστε να εγκαταστήσετε τους οδηγούς πολυμέσων Combined Community Codec Pack και ύστερα ορίστε ως πρόγραμμα αναπαραγωγής πολυμέσων για αυτούς τους τύπους πολυμέσων των POI σας, το Media Player Classic Home Cinema που παρέχεται στο πακέτο εγκατάστασης του Combined Community Codec Pack. Εικόνα 5.27 Προβολή πληροφοριών «στίγματος διαδρομής» από το Google Earth Εικόνα 5.28 Ρυθμίσεις Google Earth Σελίδα 46

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

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

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

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 Ιωάννης Γιαννόπουλος, ΑΜ: 0430 Γεώργιος Δούρος, ΑΜ: 0686 Επιβλέπων: Γεώργιος Ασημακόπουλος Σεπτέμβριος 2014

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network).

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network). ΙΔΡΥΜΑ ΝΕΟΛΑΙΑΣ ΚΑΙ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΥΟΥ Καλαμάτα, 2015 Το Διαδίκτυο Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network). Πρόκειται

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

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

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

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

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

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

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

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

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

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

Γεωπροσδιορισμός σε κινητές συσκευές και αξιοποίησή τους (Geolocation) ΓΤΠ61 Κοντάκης Σπυριδάκης

Γεωπροσδιορισμός σε κινητές συσκευές και αξιοποίησή τους (Geolocation) ΓΤΠ61 Κοντάκης Σπυριδάκης Γεωπροσδιορισμός σε κινητές συσκευές και αξιοποίησή τους (Geolocation) ΓΤΠ61 Κοντάκης Σπυριδάκης 2 Geolocation Γεωπροσδιορισμός ή γεωεντοπισμος (Geolocation) είναι ο γεωγραφικός προσδιορισμός ενός αντικειμένου

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

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

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

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

Κινητές τεχνολογίες;

Κινητές τεχνολογίες; Κινητές τεχνολογίες Κινητές τεχνολογίες; Ασύρματη δικτύωση Κινητές επικοινωνίες Τεχνολογίες Πληροφορικής Σύγχρονες κινητές συσκευές Πρόσβαση στο Internet Αισθητήρες Δέκτης GPS Ηλεκτρονική πυξίδα Επιταχυνσιόμετρο

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

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

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

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

Γεω-χωρικές υπηρεσίες και τεχνολογίες WEB. Βασίλειος Βεσκούκης Μηχανικός ΗΥ, Επ.Καθ. ΕΜΠ

Γεω-χωρικές υπηρεσίες και τεχνολογίες WEB. Βασίλειος Βεσκούκης Μηχανικός ΗΥ, Επ.Καθ. ΕΜΠ Γεω-χωρικές υπηρεσίες και τεχνολογίες WEB Βασίλειος Βεσκούκης Μηχανικός ΗΥ, Επ.Καθ. ΕΜΠ Ο κύκλος του Computing Από το mainframe στο PC και από το PC στο cloud Διαδίκτυο: εφαρμογές, media, επικοινωνία "Smart

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

TaxiCounter Android App. Περδίκης Ανδρέας ME10069

TaxiCounter Android App. Περδίκης Ανδρέας ME10069 TaxiCounter Android App Περδίκης Ανδρέας ME10069 Content Android Operating System Development Tools Taxi Counter Algorithm Design Development Process Android Operating System Android is a Linux-based operating

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

ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE)

ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE) ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE) ΣΤΟΧΟΙ: 1. Λογισμικό 2. Λογισμικό Λειτουργικού Συστήματος 3. Προσαρμοστικό Γραφικών Χρήστη 4. Λογισμικών Εφαρμογών 5. Διαφορά Μεταξύ Λογισμικού Λειτουργικού Συστήματος Και

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

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

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

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

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

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

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

Θεσσαλονίκη Alert - Αναλυτική παρουσίαση εφαρμογής

Θεσσαλονίκη Alert - Αναλυτική παρουσίαση εφαρμογής Θεσσαλονίκη Alert - Αναλυτική παρουσίαση εφαρμογής Δεληγιαννίδης Θεόδωρος Περίληψη Η "Θεσσαλονίκη Alert" είναι μια εφαρμογή του τύπου crowdsourcing που αφορά το Δήμο Θεσσαλονίκης και τους πολίτες του.

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 5 Λογισµικό - Software Γιώργος Γιαγλής Το σηµερινό µάθηµα Λογισµικό (Software)

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

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

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

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

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Μάθημα Πρώτο Εισαγωγή στις Υπηρεσίες Ιστού (Web Services) Μοντέλα WS JSON Χρήση (consume) WS μέσω python Πρόσβαση σε WS και άντληση δεδομένων Παραδείγματα

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος Κεφάλαιο 3.1: Λειτουργικά Συστήματα 1 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Ένα σύγχρονο υπολογιστικό σύστημα αποτελείται από: το υλικό: τα ηλεκτρονικά μέρη του υπολογιστή και το λογισμικό: το σύνολο

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

Περιεχόµενα 1. Εγκατάσταση 2. Εισαγωγή 3. Σύνδεση 4. Ρυθµίσεις 2.1 Περιοχή εργασιών και πλοήγησης 2.2 Περιοχή απεικόνισης "Λεπτοµέρειες" 2.3 Περιοχή απεικόνισης "Στατιστικά" 4.1 Προφίλ 4.2 ίκτυο 4.2.1

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

Κεφάλαιο 1 Συναντώντας τις Τεχνολογίες του Σήμερα. Ενισχυμένη Έκδοση 2017

Κεφάλαιο 1 Συναντώντας τις Τεχνολογίες του Σήμερα. Ενισχυμένη Έκδοση 2017 Κεφάλαιο 1 Συναντώντας τις Τεχνολογίες του Σήμερα Ενισχυμένη Έκδοση 2017 Επισκόπηση Στόχων Να διακρίνετε μεταξύ φορητών υπολογιστών (laptops), tablets, επιτραπέζιων υπολογιστών (desktops) και εξυπηρετητών

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

Οδηγός Σύνδεσης (για Φωτογραφικές Μηχανές D-SLR)

Οδηγός Σύνδεσης (για Φωτογραφικές Μηχανές D-SLR) SB7J01(1J)/ 6MB4121J-01 Οδηγός Σύνδεσης (για Φωτογραφικές Μηχανές D-SLR) Gr Πίνακας περιεχομένων Εισαγωγή...2 Το Περιβάλλον Εργασίας...2 Προβλήματα με τη Σύνδεση;...2 Περισσότερα για το SnapBridge...2

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

Δίνουμε λύσεις, δεν προτείνουμε

Δίνουμε λύσεις, δεν προτείνουμε Δίνουμε λύσεις, δεν προτείνουμε Σχετικά με εμάς Ολοκληρωμένες λύσεις προβολής επαγγελματιών στο διαδίκτυο. Ο Όμιλος FOCUS-ON, ένας όμιλος Web & Mobile Services, ξεκίνησε τη δραστηριοποίησή του το 2008

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

Τμήμα Πληροφορικής & Επικοινωνιών ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Εφαρμογή για το λειτουργικό σύστημα Android

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

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

ΚΕΦΑΛΑΙΟ 10. Υπηρεσίες και εφαρμογές Διαδικτύου. ΚΕΦΑΛΑΙΟ 10 Υπηρεσίες και εφαρμογές Διαδικτύου. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 10. Υπηρεσίες και εφαρμογές Διαδικτύου. ΚΕΦΑΛΑΙΟ 10 Υπηρεσίες και εφαρμογές Διαδικτύου. Α Γενικού Λυκείου Α Γενικού Λυκείου 87 Διδακτικές ενότητες 10.1 Υπηρεσίες Διαδικτύου 10.2 Ο παγκόσμιος ιστός, υπηρεσίες και εφαρμογές Διαδικτύου Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να μπορούν να διακρίνουν

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

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

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

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

Πλατφόρμα Cloud. Έκδοση 1.0. Οδηγός χρήσης

Πλατφόρμα Cloud. Έκδοση 1.0. Οδηγός χρήσης Πλατφόρμα Cloud Έκδοση 1.0 Οδηγός χρήσης Σεπτέμβριος 2017 www.lexmark.com Περιεχόμενα 2 Περιεχόμενα Ιστορικό αλλαγών...3 Επισκόπηση... 4 Ξεκινώντας...5 Απαιτήσεις συστήματος...5 Πρόσβαση στην Πλατφόρμα

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

economy Δρ. Πάνος Φιτσιλής, Καθηγητής ΤΕΙ Θεσσαλίας fitsilis@teilar.gr Πρόγραμμα Μεταπτυχιακών Σπουδών Διοίκηση και Διαχείριση Έργων

economy Δρ. Πάνος Φιτσιλής, Καθηγητής ΤΕΙ Θεσσαλίας fitsilis@teilar.gr Πρόγραμμα Μεταπτυχιακών Σπουδών Διοίκηση και Διαχείριση Έργων economy Δρ. Πάνος Φιτσιλής, Καθηγητής ΤΕΙ Θεσσαλίας fitsilis@teilar.gr 1 Διοίκηση και Διαχείριση Έργων Τι είναι τα apps H λέξη app είναι μια λέξη που έχει μπει στο λεξικό όλων μας Λογισμικό εφαρμογή Λειτουργεί

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

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

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

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

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

ΠΑΡΑΡΤΗΜΑ ΓΡΕΒΕΝΩΝ ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ ΓΡΕΒΕΝΩΝ ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Θέμα : ΥΛΟΠΟΙΗΣΗ ΞΕΝΟΓΛΩΣΣΗΣ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΕΦΑΡΜΟΓΗΣ ΣΕ ΠΛΑΤΦΟΡΜΑ ANDROID Όνοματεπώνυμο : Στέκας Ιγνάτιος Επιβλέπων : Σωτήριος Κοντογιάννης Ημερομηνία

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

Κινητό τηλέφωνο. Κινητό τηλέφωνο

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

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

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

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

Σχεδιασμός και Υλοποίηση ενός πληροφοριακού συστήματος για τους τεχνικούς του φυσικού αερίου

Σχεδιασμός και Υλοποίηση ενός πληροφοριακού συστήματος για τους τεχνικούς του φυσικού αερίου Διπλωματική Εργασία Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Σχεδιασμός και Υλοποίηση ενός πληροφοριακού συστήματος για τους τεχνικούς του φυσικού αερίου Ποτσίκα Ηλιάνα

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

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

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

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

Υπηρεσία διαμοιρασμού αρχείων

Υπηρεσία διαμοιρασμού αρχείων 7 Ιουνίου 2013 Υπηρεσία διαμοιρασμού αρχείων Πανεπιστήμιο Κύπρου, Τμήμα Πληροφορικής Ομάδα Τεχνικής Υποστήριξης v0.4 Πίνακας περιεχομένων Γενικά... 2 Διαθεσιμότητα... 2 Πρόσβαση... 2 Φυλλομετρητή ιστού...

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

"Εφαρμογή Android για λήψη ανακοινώσεων" ("Android application for receiving announcements") Πτυχιακή Εργασία. Κρουσταλάκης Νικόλαος

Εφαρμογή Android για λήψη ανακοινώσεων (Android application for receiving announcements) Πτυχιακή Εργασία. Κρουσταλάκης Νικόλαος "Εφαρμογή Android για λήψη ανακοινώσεων" ("Android application for receiving announcements") Πτυχιακή Εργασία Κρουσταλάκης Νικόλαος Επιβλέπων Καθηγητής: Παπαδάκης Νικόλαος Ηράκλειο, Απρίλιος 2015 2 "Εφαρμογή

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

Ανάπτυξη δικτυακών εκπαιδευτικών παιχνιδιών πολλών χρηστών. Δ. Μετάφας. (Android, ipad κ.α.). Το παιχνίδι που θα επιλεγεί για την

Ανάπτυξη δικτυακών εκπαιδευτικών παιχνιδιών πολλών χρηστών. Δ. Μετάφας. (Android, ipad κ.α.). Το παιχνίδι που θα επιλεγεί για την 31 Ανάπτυξη δικτυακών εκπαιδευτικών παιχνιδιών πολλών χρηστών Δ. Μετάφας Στόχος της εργασίας είναι η ανάπτυξη δικτυακού εκπαιδευτικού παιχνιδιού πολλών χρηστών, ανεξάρτητο πλατφόρμας λειτουργικού συστήματος.

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

Κινητές τεχνολογίες;

Κινητές τεχνολογίες; Κινητές τεχνολογίες Κινητές τεχνολογίες; Ασύρματη δικτύωση Κινητές επικοινωνίες Τεχνολογίες Πληροφορικής Σύγχρονες κινητές συσκευές Έχουν δυνατότητα πρόσβαση στο Internet Είναι εφοδιασμένες με Αισθητήρες

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

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

ΔΗΜΙΟΥΡΓΙΑMOBILE ΕΦΑΡΜΟΓΩΝ ΓΙΑ ANDROID ΣΥΣΚΕΥΕΣ ΜΕ APPINVENTOR

ΔΗΜΙΟΥΡΓΙΑMOBILE ΕΦΑΡΜΟΓΩΝ ΓΙΑ ANDROID ΣΥΣΚΕΥΕΣ ΜΕ APPINVENTOR ΔΗΜΙΟΥΡΓΙΑMOBILE ΕΦΑΡΜΟΓΩΝ ΓΙΑ ANDROID ΣΥΣΚΕΥΕΣ ΜΕ APPINVENTOR Σοφία Τζελέπη Σύμβουλος Πληροφορικής Δυτ. Θεσ/νικης Απρίλιος 2013 http://users.sch.gr/stzelepi/portal stzelepi@sch.gr ΑΠΡΙΛΙΟΣ 2013 App Inventor

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

H διασύνδεση του αυτοκινήτου με τον έξω κόσμο είναι ο πιο γρήγορα αναπτυσσόμενος τομέας στη σύγχρονη αυτοκινητοβιομηχανία. Με το Sensus η Volvo παρείχ

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

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

Στοιχεία παρουσίασης. Εισαγωγή Θεωρητικό υπόβαθρο Υλοποίηση λογισμικού μέρους συστήματος Συμπεράσματα Μελλοντικές Επεκτάσεις

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

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

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

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

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

Εγχειρίδιο Χρήσης-Οδηγός Εκπαίδευσης Χρηστών. - Δήμος Δέλτα - Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

Εγχειρίδιο Χρήσης-Οδηγός Εκπαίδευσης Χρηστών. - Δήμος Δέλτα - Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Ανάπτυξη διαδικτυακής εφαρμογής υποστήριξης των δράσεων περιβαλλοντικής διαχείρισης της παράκτιας ζώνης του Θερμαϊκού Κόλπου και διαδραστικής εφαρμογής αναφοράς περιβαλλοντικών προβλημάτων Εγχειρίδιο Χρήσης-Οδηγός

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

Διεθνής έρευνα για την εξάπλωση των Smartphones και Tablets

Διεθνής έρευνα για την εξάπλωση των Smartphones και Tablets Διαγραφή από τη λίστα Σε αυτό το τεύχος: Φεβρουάριος 2014 Mobile e-commerce από την Altec Software Mobile e-commerce από την Altec Software Διεθνής έρευνα για την εξάπλωση των Smartphones και Tablets Ετήσια

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία AtYourService CY : Create a REST API Δημήτρης Χριστοδούλου Λεμεσός 2016 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ Κεφάλαιο 2. Το περιβάλλον του παγκόσμιου Ιστού Επιμέλεια: Καραγιάννης Σπύρος Καθηγητής ΠΕ19 Πλεονεκτήματα παγκόσμιου Ιστού Εξυπηρετητής Ιστού & Ιστοσελίδες Κύριες

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

ενηµέρωσης ταξιδιωτών και επισκεπτών του ήµου Ρεθύµνου µε τα παρακάτω υποσυστήµατα : µέσω σχετικής πλατφόρµας, εκ µέρους της δηµοτικής αρχής

ενηµέρωσης ταξιδιωτών και επισκεπτών του ήµου Ρεθύµνου µε τα παρακάτω υποσυστήµατα : µέσω σχετικής πλατφόρµας, εκ µέρους της δηµοτικής αρχής Παρουσίαση Έργου Αξιοποίηση των Ασύρµατων ευρυζωνικών δικτύων µε εφαρµογή καινοτόµων ηλεκτρονικών υπηρεσιών και χρήση φορητών συσκευών από τους δηµότες και το προσωπικό του ήµου Ρεθύµνου Εισηγητής : Κουκουτίµπας

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

ΚΕΦΑΛΑΙΟ 2 - ΛΟΓΙΣΜΙΚΟ

ΚΕΦΑΛΑΙΟ 2 - ΛΟΓΙΣΜΙΚΟ ΚΕΦΑΛΑΙΟ 2 - ΛΟΓΙΣΜΙΚΟ ΕΡΩΤΗΣΗ 1: Σε ποιες μεγάλες κατηγορίες μπορούμε να χωρίσουμε το Λογισμικό. Μπορούμε να χωρίσουμε το Λογισμικό στις παρακάτω μεγάλες κατηγορίες: στο Λογισμικό Συστήματος (System Software),

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

Επιμέλεια: Μαργαρίτα Ρουγγέρη Επιβλέπων: Γεώργιος Στυλιαράς Πληροφορική Πολυμέσα ΓΤΠ61 4 η Εργασία 2011

Επιμέλεια: Μαργαρίτα Ρουγγέρη Επιβλέπων: Γεώργιος Στυλιαράς Πληροφορική Πολυμέσα ΓΤΠ61 4 η Εργασία 2011 Επιμέλεια: Μαργαρίτα Ρουγγέρη 71953 Επιβλέπων: Γεώργιος Στυλιαράς Πληροφορική Πολυμέσα ΓΤΠ61 4 η Εργασία 2011 Λειτουργικό σύστημα κινητή τηλεφωνία Google Open source Smart phones, tablets, mp3, τηλεοράσεις

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

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 4 Λογισμικό συστήματος Καραμαούνας Πολύκαρπος 1 4.1 Λογισμικό συστήματος (application software) Καραμαούνας Πολύκαρπος 2 Λογισμικό εφαρμογών (application software): προγράμματα για την αντιμετώπιση

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

Google Earth. Τσαγκαλίδης Κωνσταντίνος Πληροφορική 29/11/2014

Google Earth. Τσαγκαλίδης Κωνσταντίνος Πληροφορική 29/11/2014 2014 Google Earth Τσαγκαλίδης Κωνσταντίνος Πληροφορική 29/11/2014 2 Περιεχόμενα Πίνακας περιεχομένων Εξώφυλλο... 1 Περιεχόμενα... 2 Εισαγωγή... 3 Βασικά Εργαλεία... 4 -Search Panel -Overview Map - Hide/Show

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

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018 Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα

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

Information Technology for Business

Information Technology for Business Information Technology for Business Lecturer: N. Kyritsis, MBA, Ph.D. Candidate e-mail: kyritsis@ist.edu.gr Computer System Hardware Υποδομή του Information Technology Υλικό Υπολογιστών (Hardware) Λογισμικό

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

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112 Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112 Πλωτάρχης Γ. ΚΑΤΣΗΣ ΠΝ Γιατί χρησιµοποιούµε δίκτυα? Δίκτυο Σύνολο Η/Υ και συσκευών Συνδεδεµένα µε κάποιο µέσο Stand-alone

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

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

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

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

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 Στόχος της

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

Μεταφορές - Ναυτιλία

Μεταφορές - Ναυτιλία ΜΟΝΑΔΕΣ ΑΡΙΣΤΕΙΑΣ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Μεταφορές - Ναυτιλία 3 η Σειρά Εκπαίδευσης 2 ο σεμινάριο 13 Μαΐου 2015 Χάρτες... παντού OpenStreetMap OpenStreetMap Υπηρεσία απεικόνισης και διάθεσης χωρικών δεδομένων

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

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

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

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

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

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

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

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

Έντυπος χάρτης νησιού και χρήση διαδραστικών τεχνολογιών για την προβολή σημείων ενδιαφέροντος. Έντυπος χάρτης νησιού και χρήση διαδραστικών τεχνολογιών για την προβολή σημείων ενδιαφέροντος. Παπαδόπουλος Αθανάσιος Α.Μ.131276 email: std131276@ac.eap.gr ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Γραφικές Τέχνες

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

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

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

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

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

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

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

GK7211 FAQ (Συχνές ερωτήσεις) για το Transformer TF201

GK7211 FAQ (Συχνές ερωτήσεις) για το Transformer TF201 GK7211 FAQ (Συχνές ερωτήσεις) για το Transformer TF201 Διαχείριση αρχείων... 2 Πώς να μπω στα δεδομένα μου που είναι αποθηκευμένα στο microsd, στην κάρτα SD και τη συσκευή USB;... 2 Πώς να μετακινήσω το

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

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

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

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

Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R216-Z

Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R216-Z Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R216-Z Καλώς ήρθατε στον κόσμο των κινητών επικοινωνιών 1 Καλώς ήρθατε 2 Επισκόπηση συσκευής 3 Γρήγορο ξεκίνημα 5 Εφαρμογή Mobile Wi-Fi Web 6 Επισκόπηση εφαρμογής

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

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 ELab Π Τ Υ Χ Ι Α

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

BO.M.I.S BOLLARD MANAGEMENT INFORMATION SYSTEM ΛΟΓΙΣΜΙΚΟ ΔΙΑΧΕΙΡΗΣΗΣ ΑΝΑΔΥΟΜΕΝΩΝ ΠΑΣΑΛΩΝ ΔΙΑΧΕΙΡΗΣΗΣ ΚΥΚΛΟΦΟΡΙΑΣ BOMIS-V1-2012

BO.M.I.S BOLLARD MANAGEMENT INFORMATION SYSTEM ΛΟΓΙΣΜΙΚΟ ΔΙΑΧΕΙΡΗΣΗΣ ΑΝΑΔΥΟΜΕΝΩΝ ΠΑΣΑΛΩΝ ΔΙΑΧΕΙΡΗΣΗΣ ΚΥΚΛΟΦΟΡΙΑΣ BOMIS-V1-2012 BO.M.I.S BOLLARD MANAGEMENT INFORMATION SYSTEM ΛΟΓΙΣΜΙΚΟ ΔΙΑΧΕΙΡΗΣΗΣ ΑΝΑΔΥΟΜΕΝΩΝ ΠΑΣΑΛΩΝ ΔΙΑΧΕΙΡΗΣΗΣ ΚΥΚΛΟΦΟΡΙΑΣ 1 - ΛΟΓΙΣΜΙΚΟ ΔΙΑΧΕΙΡΗΣΗΣ ΑΝΑΔΥΟΜΕΝΩΝ ΠΑΣΑΛΩΝ ΔΙΑΧΕΙΡΗΣΗΣ ΚΥΚΛΟΦΟΡΙΑΣ Το σύστημα διαχείρισης

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

Προεπισκόπηση Παρουσίασης Διαδραστικοί Πίνακες

Προεπισκόπηση Παρουσίασης Διαδραστικοί Πίνακες Οριζόντιο Έργο Υποστήριξης Σχολείων, Εκπαιδευτικών και Μαθητών στο Δρόμο για το ΨΗΦΙΑΚΟ ΣΧΟΛΕΙΟ, νέες υπηρεσίες Πανελλήνιου Σχολικού Δικτύου και Στήριξη του ΨΗΦΙΑΚΟΥ ΣΧΟΛΕΙΟΥ Δράση Α8 Πρακτική εκπαίδευση

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

ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ

ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ Χαρίτων Ευσταθιάδης Σοφία Γεωργιάδου Πανεπιστήμιο Κύπρου Τμήμα Πληροφορικής ΕΠΛ 425

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

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

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

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

Ημερομηνία Παράδοσης: 4/4/2013

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

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

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή):

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή): Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή): 1. Ο Παγκόσμιος Ιστός (world wide web): a. Ταυτίζεται με το Internet b. Είναι υπηρεσία διαχείρισης και πρόσβασης σε

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

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

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

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

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014 Εισαγωγικές έννοιες Ιωάννης Γ. Τσούλος 2014 Διάγραμμα παρουσιάσεως 1. Κατηγορίες κινητών τηλεφώνων 2. Κατηγορίες έξυπνων κινητών τηλεφώνων 3. Προγραμματισμός κινητών συσκευών 4. Ξεκίνημα με το Eclipse

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

GK6915 FAQ (Συχνές ερωτήσεις) για το Eee Pad TF201

GK6915 FAQ (Συχνές ερωτήσεις) για το Eee Pad TF201 GK6915 FAQ (Συχνές ερωτήσεις) για το Eee Pad TF201 Διαχείριση αρχείων... 2 Πώς να μπω στα δεδομένα μου που είναι αποθηκευμένα στο microsd, στην κάρτα SD και τη συσκευή USB;... 2 Πώς να μετακινήσω το επιλεγμένο

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

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425 Cloud Computing with Google and Microsoft Despoina Trikomitou Andreas Diavastos Class: EPL425 Σχεδιάγραμμα Εισαγωγή Τεχνολογίες Cloud Computing Περιγραφή Εργασίας Επιτεύγματα Εργασίας Συμπεράσματα Cloud

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

Χρήση σύγχρονων τεχνολογιών για τη δημιουργία και χρήση χαρτών για άγνωστους προορισμούς

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

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

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α' ΛΥΚΕΙΟΥ ΕΝΟΤΗΤΑ 1η ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ 1. Τι ονομάζουμε υλικό και τι λογισμικό ενός υπολογιστικού συστήματος; 2. Τι είναι α) η μητρική πλακέτα ( motherboard), β) η κεντρική μονάδα

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

υπηρεσιες προστιθέμενης αξίας Υπηρεσίες προστιθέμενης αξίας

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

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Ανάπτυξη εφαρμογής Android και IOS σε περιβάλλον Flash. ΟΝΟΜΑΤΕΠΩΝΥΜΑ ΣΠΟΥΔΑΣΤΩΝ

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Ανάπτυξη εφαρμογής Android και IOS σε περιβάλλον Flash. ΟΝΟΜΑΤΕΠΩΝΥΜΑ ΣΠΟΥΔΑΣΤΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τ.Ε.Ι. ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΏΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη εφαρμογής Android και IOS σε περιβάλλον Flash. ΟΝΟΜΑΤΕΠΩΝΥΜΑ ΣΠΟΥΔΑΣΤΩΝ Μπουρσινός Ιωάννης A.M.:

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

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου 49 Διδακτικές ενότητες 6.1 Γλώσσες και εργαλεία προγραμματισμού 6.2 Σύγχρονα προγραμματιστικά περιβάλλοντα Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν την ανάγκη ύπαρξης τόσο

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

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

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

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

Κεφάλαιο 4. Διδακτικοί Στόχοι. Για την αναγκαιότητα, τον τρόπο συνεργασίας, τις δυνατότητες και τον τρόπο εγκατάστασης των περιφερειακών συσκευών.

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr 1 Δομημένος προγραμματισμός έναντι αντικειμενοστρεφούς

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

Κοιτάζοντας Πιο Λεπτομερώς. Ανδρεάκης Σωτήρης Καραμολέγκος Χρήστος Καλαματιανός Βασίλης

Κοιτάζοντας Πιο Λεπτομερώς. Ανδρεάκης Σωτήρης Καραμολέγκος Χρήστος Καλαματιανός Βασίλης Κοιτάζοντας Πιο Λεπτομερώς Ανδρεάκης Σωτήρης Καραμολέγκος Χρήστος Καλαματιανός Βασίλης Στην έρευνα που κάναμε ασχοληθήκαμε με την λεπτομερή λειτουργία των κινητών τηλεφώνων και πως αυτά μπορούν να επηρεάσουν

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

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ MOODLE

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ MOODLE ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ MOODLE Η διαδικασία μεταφοράς του υλικού ενός μαθήματος από την πλατφόρμα Blackboard Vista στην πλατφόρμα Moodle σε βήματα είναι η ακόλουθη:

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