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

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

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

Transcript

1 Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ANDROID ΓΙΑ ΤΗΝ ΔΙΑΧΕΙΡΗΣΗ ΑΥΤΟΚΙΝΗΤΟΥ Σπυρούκλας Χριστόφορος ΙΟΥΝΙΟΣ 2014 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ Καζανίδης Ιωάννης Εκπονηθείσα πτυχιακή εργασία απαραίτητη για την κτήση του βασικού πτυχίου

2 Πρόλογος Η παρούσα πτυχιακή εργασία έχει ως στόχο τη σχεδίαση, ανάπτυξη και υλοποίηση μιας πλήρους λειτουργικής εφαρμογής για smartphones στην πλατφόρμα Android. Στην εισαγωγή, γίνεται ανάλυση των συστατικών στοιχείων του Android. Ακολουθεί µια ιστορική αναδρομή των εκδόσεων και τα χαρακτηριστικών του Android, για όλες τις εκδόσεις του μέχρι και τη στιγμή της συγγραφής (Μάιος 2014). Στη συνέχεια γίνεται εκτενής παρουσίαση των εργαλείων ανάπτυξης λογισµικού και εφαρµογών στην πλατφόρµα Android, τα οποία συνοδεύονται από τα ανάλογα παραδείγµατα. Στο κεφάλαιο 3 γίνεται παρουσίαση μερικών παρόμοιων εφαμογών, και σύγκρισή τους με την υλοποίησή μας. Τα κεφάλαια 4 και 5 παρουσιάζουν ορισμένα καίρια σημεία της υλοποίησης και μια πλήρης παρουσίαση της εφαρμογής μέσα από ένα σενάριο ελέγχου αντίστοιχα. Τέλος, συνοψίζοντας παραθέτουμε μια αξιολόγηση της δουλειάς μας και αναφέρουμε μελλοντικές επεκτάσεις της.

3 Πίνακας Περιεχομένων 1. Εισαγωγή Τι είναι το Android Ιστορικά στοιχεία Εφαρμογές Πωλήσεις Android Εξέλιξη Εκδόσεις και χαρακτηριστικά Αρχιτεκτονική του Android Βασικές αρχές μιάς εφαρμογής Android Συστατικά Android εφαρμογών Ασφάλεια στο Android Γιατί Android Εργαλεία ανάπτυξης εφαρμογής Android SDK Android Studio Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Ανάλυση μερικών υπάρχοντων εφαρμογών Απαραίτητα χαρακτηριστικά των εφαρμογών Απαιτήσεις Σχεδιασμού Εφαρμογής Υλοποίηση Βάση δεδομένων Λίστες εξόδων Αλληλεπίδραση με τη βάση δεδομένων Υπολογισμοί στατιστικών με χρήση Ασύγχρονων Διεργασιών Δημιουργία γραφημάτων

4 5. Παρουσίαση και έλεγχος της εφαρμογής Μεθοδολογία ελέγχου Αναλυτική παρουσίαση εφαρμογής Επίλογος Αξιολόγηση της εφαρμογής μας Μελλοντικές επεκτάσεις

5 Ευρετήρια Ευρετήριο εικόνων Εικόνα 1. Λογότυπο πλατφόρμας Android Εικόνα 2. Το Google Play Εικόνα 3. Συγκρίσεις πωλήσεις συσκευών Εικόνα 4. Εξέλιξη του Android Εικόνα 5. Android Εικόνα 6. Λογότυπο Android 1.5 Cupcake Εικόνα 7 Λογότυπο Android 1.6 Donut Εικόνα 8. Λογότυπο Android 2.0. Eclair Εικόνα 9. Λογότυπο Android 2.2 Froyo Εικόνα 10. Λογότυπο Android 2.3 GINGERBREAD Εικόνα 11. Λογότυπο Android 3.0 HONEYCOMB Εικόνα 12. Λογότυπο Android 4.0 ICE CREAM SANDWICH Εικόνα 13. Λογότυπο Android 4.1 JELLY BEAN Εικόνα 14. Λογότυπο Android 4.4 ΚΙΤΚΑΤ Εικόνα 15. Ποσοστά των εγκατεστηµένων εκδόσεων στις Android συσκευές Εικόνα 16. Αρχιτεκτονική του Android Εικόνα 17. Κύκλος ζωής μιας δραστηριότητας (Activity lifecycle) Εικόνα 18. Κατέβασμα εφαρμογής Εικόνα 19. Εγκατάσταση Android SDK Εικόνα 20. Android Studio Εικόνα 21. Θέμα Darcula Εικόνα 22. Προεπισκόπηση όλων των οθονών Εικόνα 23. Device framed screen capture Εικόνα 24. Προεπισκόπηση με χρώμα Εικόνα 25. Hard coded Strings... 49

6 Εικόνα 26. Δημιουργία διάταξης παραλλαγής Εικόνα 27. Κατέβασμα εφαρμογής Android Studio Εικόνα 28. Καλωσόρισμα στον οδηγό εγκατάστασης Εικόνα 29. Επιλογη χρηστών Εικόνα 30. Επιλογή τοποθεσίας εγκτάστασης Εικόνα 31. Πρόοδος εγκατάστασης Εικόνα 32. Τέλος εγκατάστασης Εικόνα 33. Car Manager Εικόνα 34. Αρχική οθόνη Car Manager Εικόνα 35. Νέος ανεφοδιασμός στο Car Manager Εικόνα 36. Καρτέλα νέο σέρβις στο Car Manager Εικόνα 37. Καρτέλα νέα έξοδα στο Car Manager Εικόνα 38. Καρτέλα νέα έσοδα στο Car Manager Εικόνα 39. Στατιστικά στο Car Manager Εικόνα 40. Carango Εικόνα 41. Εισαγωγή νέου οχήματος στο Carango Εικόνα 42. Μενού στο Carango Εικόνα 43. Καρτέλα καύσιμα στο Carango Εικόνα 44. Καρτέλα λάδια στο Carango Εικόνα 45. Καρτέλα νέο σέρβις στο Carango Εικόνα 46. Καρτέλα νέα έξοδα στο Carango Εικόνα 47. Καρτέλα ασφάλιση στο Carango Εικόνα 48. Καρτέλα περίληψη στο Carango Εικόνα 49. Καρτέλα διαγραμμάτων στο Carango Εικόνα 50. Wheels Εικόνα 51. Καρτέλα νέου οχήματος στο Wheels Εικόνα 52. Αρχικό μενού στο Wheels Σελ. 6 από 129

7 Εικόνα 53. Καρτέλα νέου ανεφοδιασμού στο Wheels Εικόνα 54. Καρτέλα νέου σέρβις στο Wheels Εικόνα 55. Καρτέλα στατιστικών στο Wheels Εικόνα 56. Καρτέλα διαγραμμάτων στο Wheels Εικόνα 57. acar Εικόνα 58. Καρτέλα νέου ανεφοδιασμού στο acar Εικόνα 59 Καρτέλα νέου σέρβις στο acar Εικόνα 60. Καρτέλα νέο έξοδο στο acar Εικόνα 61. Καρτέλα νέο ταξίδι στο acar Εικόνα 62. Διάγραμμα οντοτήτων σχέσεων της βάσης δεδομένων Εικόνα 63. Επεξήγηση των φορμών για την καταχώρηση των δεδομένων Εικόνα 64. Σχεδιάγραμμα ροής εκτέλεσης ασύγχρονης Εικόνα 65(α, β). Λίστα οχημάτων και φόρμα δημιουργίας νέου οχήματος Εικόνα 66(α, β, γ). Οθόνες εξόδων για κατηγορία βενζίνης Εικόνα 67(α, β, γ). Οθόνες εξόδων για κατηγορία λαδιών Εικόνα 68(α, β, γ). Οθόνες εξόδων για κατηγορία πλυσίματος Εικόνα 69(α, β, γ). Οθόνες εξόδων για κατηγορία ασφάλισης Εικόνα 70(α, β, γ). Οθόνες εξόδων για κατηγορία σέρβις Εικόνα 71(α, β, γ). Οθόνες εξόδων για κατηγορία ελαστικών Εικόνα 72(α, β, γ). Οθόνες εξόδων για κατηγορία ΚΤΕΟ Εικόνα 73(α, β). Οθόνες εξόδων όλων των κατηγοριών Ευρετήριο Πινάκων Πίνακας 1. Σύγκριση εφαρμογών Πίνακας 2. Αντιστοιχεία πεδίων φορμών με πεδίων της βάσης δεδομένων... 88

8 Ευρετήριο Κώδικα Κώδικας 1. SQL εντολές για το σχηματισμό της βάσης της εφαρμογής Κώδικας 2. Δημιουργία του listadapter για τη λίστα οχημάτων Κώδικας 3. Ανάγνωση από και εμφάνιση σε View Κώδικας 4. Αποθήκευση ενός αντικειμένου Κώδικας 5. Ανάκτηση αντικειμένων από τη βάση δεδομένων Κώδικας 6. Κατασκευή γραφήματος γραμμών Κώδικας 7. Κατασκευή γραφήματος ράβδων Κώδικας 8. Κατασκευή γραφήματος πίτας Σελ. 8 από 129

9 1. Εισαγωγή 1.1 Τι είναι το Android Το Android είναι ένα λειτουργικό σύστημα βασισμένο στον πυρήνα του Linux και έχει σχεδιαστεί κυρίως για φορητές συσκευές με οθόνη αφής, όπως smartphones και υπολογιστές tablet. Αρχικά αναπτύχθηκε από την Android Inc., την οποία υποστηρίζε οικονομικά και αργότερα αγόρασε η Google το Το Android παρουσιάστηκε το 2007 μαζί με την ίδρυση του Open Handset Alliance: μια κοινοπραξία εταιριών υλικού, λογισμικού και τηλεπικοινωνιών που προωθούσαν την εγκαθίδρυση των ανοικτών προτύπων για τις κινητές συσκευές. Το πρώτο δημόσιο διαθέσιμο smartphone που έτρεχε Android, ήταν το HTC Dream, που κυκλοφόρησε στις 22 Οκτωβρίου Η διεπαφή χρήστη του Android βασίζεται σε άμεσο χειρισμό, με χρήση διάφορων μοτίβων αφής που αντιστοιχούν στον πραγματικό κόσμο σε ενέργειες όπως σύρσιμο, χτύπημα, τσίμπημα και αντίστροφο τσίμπημα για να διαχειριστιούν αντικείμενα στην οθόνη. Εσωτερικοί αισθητήρες, όπως επιταχυνσιόμετρα, δέκτες GPS, γυροσκόπια και αισθητήρες εγγύτητας χρησιμοποιούνται από ορισμένες εφαρμογές για να ανταποκριθούν στις πρόσθετες ενέργειες του χρήστη, για παράδειγμα, για την προσαρμογή της οθόνης από κατακόρυφο σε οριζόντιο προσανατολισμό, ανάλογα με το πώς η συσκευή είναι προσανατολισμένη. Το Android επιτρέπει στους χρήστες να προσαρμόσουν τις αρχικές τους οθόνες με τις συντομεύσεις, σε εφαρμογές και widgets, τα οποία επιτρέπουν στους χρήστες να εμφανίζουν ζωντανό περιεχόμενο, όπως μηνύματα ηλεκτρονικού ταχυδρομείου και πληροφορίες για τον καιρό, απευθείας στην αρχική οθόνη. Οι εφαρμογές μπορούν να στείλουν περαιτέρω κοινοποιήσεις προς τον χρήστη για να τον ενημερώσουν για σχετικές πληροφορίες, όπως νέα μηνύματα ηλεκτρονικού ταχυδρομείου και μηνύματα κειμένου (SMS). Ο πηγαίος κώδικας του Android δίνεται από την Google με άδεια χρήσης Apache, μια άδεια που επιτρέπει το λογισμικό να τροποποιηθεί ελεύθερα Σελ. 9 από 129

10 1 - Εισαγωγή και θα διανεμηθεί από τους κατασκευαστές εφαρμογών και τους ενθουσιώδης προγραμματιστές. Μέχρι τον Ιούλιο του 2013, το Android έχει το μεγαλύτερο αριθμό εφαρμογών ("apps") που είναι διαθέσιμα για download στο κατάστημα Google Play, το οποίο περιείχε πάνω από 1 εκατομμύριο εφαρμογές δημοσιευμένες και πάνω από 50 δισεκατομμύρια downloads. Σύμφωνα με μια έρευνα που πραγματοποιήθηκε τον Απρίλιο του 2013 διαπιστωθηκέ ότι το Android είναι η πιο διαδεδομένη πλατφόρμα μεταξύ των προγραμματιστών και το χρησιμοποιούν το 71% απο αυτούς. Εικόνα 1. Λογότυπο πλατφόρμας Android Από το Μάιο του 2012, το Android έγινε το πιο δημοφιλές λειτουργικό σύστημα κινητής τηλεφωνίας και είναι ο ηγέτης της αγοράς στις περισσότερες χώρες, συμπεριλαμβανομένων των Ηνωμένων Πολιτειών. Από το Σεπτέμβριο του 2013 έχουν ενεργοποιηθεί ένα δισεκατομμύριο Android συσκευές. 1.2 Ιστορικά στοιχεία Η Android Inc. ιδρύθηκε στο Πάλο Άλτο της Καλιφόρνια τον Οκτώβριο του 2003 από τους Andy Rubin, Rich Miner, Nick Sears και Chris White για την ανάπτυξη, σύμφωνα με τα λόγια του Rubin, «έξυπνων κινητών συσκευών που θα είναι περισσότερο ενήμερα για την τοποθεσία και τις προτιμήσεις του ιδιοκτήτη τους». Οι πρώτες προθέσεις της εταιρείας, ήταν να αναπτύξουν ένα προηγμένο λειτουργικό σύστημα για ψηφιακές φωτογραφικές μηχανές, αλλά όταν έγινε αντιληπτό ότι η αγορά για τις Σελ. 10 από 129

11 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα συσκευές δεν ήταν αρκετά μεγάλη, ενέτειναν τις προσπάθειές τους για να παράγουν ένα λειτουργικό σύστημα smartphone ώστε να ανταγωνιστούν αντίστοιχες προσπάθεις όπως το Symbian και τα Windows Mobile. Παρά τα τελευταία επιτεύγματα των ιδρυτών των εργαζομένων, η Android Inc. λειτουργούσε κρυφά, αποκαλύπτοντας μόνο ότι δούλευε πάνω σε ένα λογισμικό για κινητά τηλέφωνα. Την ίδια χρονιά, ο Rubin ξέμεινε από χρήματα. Ο Steve Perlman, στενός φίλος του Rubin, του προσέφερε $ σε μετρητά σε ένα φάκελο αλλά αρνήθηκε την συμμετοχή του στην εταιρεία. Η Google εξαγόρασε την Android Inc. στις 17 Αυγούστου του Τα βασικά στελέχη της Android Inc, συμπεριλαμβανομένων Rubin, Miner and White, έμειναν στην εταιρεία μετά την εξαγορά. Πολλά πράγματα δεν ήταν γνωστά για την Android Inc. κατά τη χρονική στιγμή αυτή, αλλά πολλοί υπέθεσαν ότι η Google σχεδιάζει να εισέλθει στην αγορά κινητής τηλεφωνίας με την κίνηση αυτή. Στην Google, η ομάδα με επικεφαλής τον Rubin ανέπτυξε μια κινητή πλατφόρμα συσκευής που τροφοδοτείται από τον πυρήνα της Linux. Εικασίες σχετικά με την πρόθεση της Google να εισέλθει στην αγορά των κινητών επικοινωνιών συνέχισαν να χτίζονται μέχρι το Δεκέμβριο του Τα αποκαλυπτήρια του iphone, ενός κινητού τηλεφώνου που βασιζόταν σε οθόνη αφής από την Apple, στις 9 Ιανουαρίου του 2007, είχε καταστρεπτικό αποτέλεσμα για την ανάπτυξη του Android. Στις 5 Νοεμβρίου 2007, το Open Handset Alliance, δημιουργήθηκε μια κοινοπραξία εταιρειών τεχνολογίας, συμπεριλαμβανομένης των Google, HTC, Sony, Samsung, Sprint Nextel, T Mobile, Qualcomm, και Texas Instruments, με στόχο την ανάπτυξη ανοικτών προτύπων για τις κινητές συσκευές. Εκείνη την ημέρα, η Android Inc. παρουσιάστε το πρώτο προϊόν της, μια πλατφόρμα κινητής συσκευής που βασίζεται στην έκδοση Linux Kernel 2.6. Tο πρώτο εμπορικά διαθέσιμο smartphone που έτρεξε με Android ήταν το HTC Dream, που κυκλοφόρησε στις 22 Οκτωβρίου του Σελ. 11 από 129

12 1 - Εισαγωγή Το 2010, η Google εγκαινίασε την σειρά Nexus μια σειρά από smartphones και tablets που έτρεχαν λογισμικό Android. Η HTC συνεργάστηκε με την Google για να κυκλοφορήσει το πρώτο smartphone Nexus, το Nexus One. Η σειρά έχει έκτοτε ενημερωθεί με νεότερες συσκευές, όπως το Nexus 5 και Nexus 7 tablet. Από το 2008, στο Android έχει γίνει πολλές ενημερώσεις, που έχουν βελτιώσει σταδιακά το λειτουργικό της σύστημα, προσθέτοντας νέα χαρακτηριστικά και διορθώνοντας σφάλματα σε προηγούμενες εκδόσεις. Κάθε νέα έκδοση ονομάζεται με αλφαβητική σειρά από το όνομα ενός γλυκού. Για παράδειγμα, την έκδοση 1.5 Cupcake ακολούθησε η έκδοση 1.6 Donut. Η τελευταία έκδοση είναι KitKat, η οποία κυκλοφόρησε στις 9 Δεκεμβρίου 2013 [1]. Εικόνα 2. Το Google Play 1.3 Εφαρμογές Πωλήσεις Android Το Android έχει μια μεγάλη κοινότητα προγραμματιστών που γράφουν εφαρμογές, οι οποίες επεκτείνουν τη λειτουργικότητα των συσκευών. Οι εφαρμογές γράφονται σε μια προσαρμοσμένη έκδοση της Java και μπορεί κάνεις να τα κατεβάσει από το online κατάστημα Google Play (πρώην Android Market) της Google, όπως και από άλλα sites. Μέχρι τον Φεβρουάριο του 2012 περισσότερες από εφαρμογές ήταν διαθέσιμες για Android ενώ εκτιμάτε ότι ο αριθμός των downloads από το Android Market μέχρι το Δεκέμβριο του 2011 είχε υπερβεί τα 10 Σελ. 12 από 129

13 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα δισεκατομμύρια. Το Android είναι η πρώτη σε πωλήσεις παγκοσμίως πλατφόρμα για smartphones καθώς μέχρι το Φεβρουάριο του 2012 μετρούσε περισσότερες από 300 εκατομμύρια συσκευές σε χρήση. Στα τελευταία αποτελέσματα που ανακοινώθηκαν όσο αφορά τις πωλήσεις των mobile λειτουργικών συστημάτων για το πρώτο τρίμηνο του 2013, τα Windows Phone έχουν ωθήσει πλέον την BlackBerry από την τρίτη θέση στη τέταρτη. Ωστόσο, ακόμη και με τα Windows Phone πλέον στην τρίτη θέση στη συνολική κατάταξη, το Android και το ios συνδυασμένα αντιπροσωπεύουν το 92,3% του συνολικού μεριδίου κατά την περίοδο αυτή, σύμφωνα με τo International Data Corporation (IDC). Android και Apple πούλησαν συνολικά συσκευές σε όλο τον κόσμο κατά τη διάρκεια του πρώτου τριμήνου του 2013 που σημαίνει αύξηση 59,1% από τα 125,4 εκατομμύρια μονάδες που πούλησαν κατά τη διάρκεια πρώτου τριμήνου του Στην Εικόνα 3 θα δείτε αναλυτικά τα αποτελέσματα [2]. Εικόνα 3. Συγκρίσεις πωλήσεις συσκευών Εξέλιξη Εκδόσεις και χαρακτηριστικά Το Android είναι πλέον 6 ετών. Με τα χρόνια, το Android απέκτησε κυρίαρχη θέση στην αγορά με πάνω από 80% πωλήσεις, αφήνοντας ios και Windows Mobile / τηλέφωνα πίσω. Έτσι, ας κοιτάξουμε πίσω στο πώς ξεκίνησε η ιστορία του μικρού πράσινου ρομπότ. Το Android παρουσιάστηκε το Νοέμβριο του 2007, αλλά στις 22 Σεπτέμβρη 2008 σηματοδοτήθηκε η «πραγματική» αρχή. Την ημέρα εκείνη, το HTC Dream (επίσης γνωστό ως T-Mobile G1) παρουσιάστηκε. Σελ. 13 από 129

14 1 - Εισαγωγή Η αρχή δεν ήταν ωραία και εύκολη, όμως. Πολλοί κριτικοί υποστήριξαν ότι το λειτουργικό σύστημα του Android δεν θα μπορούσε ποτέ να νικήσει αυτές των Apple και Microsoft. Παρά τις κριτικές όμως, το Android έκανε την διαφορά και κυκλοφόρησε από τις Sony, LG, HTC και την Samsung. Στις πρώτες εκδόσεις του Android μπορούσατε να καλέσετε, να στείλετε, να λάβετε μηνύματα κειμένου και να συνδεθείτε στο Internet. Το πράγμα που έκανε το Android μοναδικό, ήταν ότι ήταν open source, και οι χρήστες είχαν τη δυνατότητα να συνεισφέρουν στον κώδικα και να προσθέσουν καινοτόμες ιδέες [3]. Εικόνα 4. Εξέλιξη του Android Στη συνέχεια θα δούμε αναλυτικά τα χαρακτηριστικά κάθε έκδοσης του Android. Σελ. 14 από 129

15 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Android 1.0 Εικόνα 5. Android 1.0 Η έκδοση 1.0 παρουσιάστηκε τον Σεπτέμβρη του Περιέχει πολλά μοναδικά χαρακτηριστικά, όπως: Το Android Market (πλέον γνωστό ως το κατάστημα Play Google), το οποίο έδωσε στους χρήστες τη δυνατότητα να αποκτήσουν εκατοντάδες εφαρμογές για να ενισχύσουν τις αρχικές δυνατότητες του τηλεφώνου. Οι επαφές να αποθηκεύονται στο ιντερνετ και να ενσωματώνονται στο Gmail. Το λειτουργικό σύστημα είχε ένα πλήρες πρόγραμμα περιήγησης στο Internet Αναπαραγωγή βίντεο από το YouTube Υπηρεσίες της Google, όπως GTalk, Gmail, Google Maps και Google Sync Ειδοποίησης pull-down [4] [5] Σελ. 15 από 129

16 1 - Εισαγωγή Android 1.5 CUPCAKE Εικόνα 6. Λογότυπο Android 1.5 Cupcake Τον Μάιο του 2009 είχαμε την έκδοση Android 1.5, εν ονόματι Cupcake. Το Cupcake εισάγει κάποια καινούργια χαρακτηριστικά και ανανεώσεις στην διεπαφή χρήστη (User Interface): Υποστήριξη προτύπου Bluetooth A2DP και AVRCP Ικανότητα αυτόµατης σύνδεσης σε µικροσυσκευή Bluetooth από µια συγκεκριµένη απόσταση Kαταγραφή και παρακολούθηση βίντεο από την λειτουργία της κάμερας και η άμεση μεταφόρτωση του βίντεο αλλά και των φωτογραφιών στο YouTube και το Picasa αντίστοιχα. Εναλλαγή μεταξύ φωτογραφικής μηχανής και βιντεοκάμερας με ένα απλό άγγιγμα και χωρίς να φύγετε από το app κάμερα. Kαινούργιο µαλακό πληκτρολόγιο (αφής) µε πρόβλεψη κειµένου Aρκετά ενσωματωμένα widgets όπως ημερολόγιο και music player Λειτουργία αντιγραφής και επικόλλησης Κινούµενες µεταβάσεις οθόνης Καινούργια widgets και φάκελοι που µπορούν να δηµοσιευτούν στην αρχική οθόνη [4] [5] Σελ. 16 από 129

17 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Android 1.6 DONUT Εικόνα 7 Λογότυπο Android 1.6 Donut To Android 1.6 Donut κυκλοφόρησε τον Σεπτέμβριο του Η έκδοση αυτή εισάγει κάποια καινούργια χαρακτηριστικά όπως: Βελτιωμένο Android Market Ενσωματωμένη φωτογραφική μηχανή, βιντεοκάμερα και διεπαφή (interface) γκαλερί Η γκαλερί επιτρέπει πλέον στους χρήστες την επιλογή πολλαπλών φωτογραφιών για διαγραφή Ανανεωμένη αναζήτηση με φωνή, με ταχύτερη απόκριση και ολοκλήρωση με εγγενής (native) εφαρμογές, συμπεριλαμβανομένης της δυνατότητας να καλούμε επαφές Ανανεωμένη αναζήτηση με την δυνατότητα εύρεσης σελιδοδεικτών, ιστορικού, επαφών και στο διαδίκτυο από την αρχική οθόνη Ανανεωμένη υποστήριξη τεχνολογιών για CDMA/EVDO, 802.1x, VPNs και μηχανή μετατροπής κειμένου σε ομιλία (text-to-speech) Υποστήριξη για ανάλυση οθονών WVGA Πλοήγηση με οδηγίες App screenshots διαθέσιμα στο Android Market [4] [5] Σελ. 17 από 129

18 1 - Εισαγωγή Android 2.0 ECLAIR Εικόνα 8. Λογότυπο Android 2.0. Eclair Το Android 2.0 Eclair παρουσιάζεται τον Νοέμβριο 2009 (με επανεκδόσεις Android τον Δεκέμβριο 2009 (Eclair 0.1) και Android 2.1 (Eclair MR1) τον Ιανουάριο Ανάμεσα στις αλλαγές είναι: Υποστήριξη για περισσότερες οθόνες και αναλύσεις Βελτιωμένη διεπιφάνεια χρήστη Πολλαπλούς λογαριασμούς χρηστών Ζωντανές ταπετσαρίες Καινούργια διεπιφάνεια χρήσηςγια την μηχανή αναζήτησης και υποστήριξη του προτύπου HTML5 Καινούργιες λίστες επαφών Βελτιωμένοι χάρτες Google (google maps) Υποστήριξη Microsoft Exchange Ενσωματωμένη υποστήριξη flash για την Camera Ψηφιακή μεγέθυνση (zoom) Ανανεωμένο εικονικό πληκτρολόγιο Bluetooth 2.1 Υποστήριξη multi-touch Αναβαθμισμένο UI [4] [5] Σελ. 18 από 129

19 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Android 2.2 FROYO Εικόνα 9. Λογότυπο Android 2.2 Froyo Η έκδοση FROYO εμφανίστηκε τον Μάιο του 2010 και ανάμεσα σε άλλες αλλαγές περιλαμβάνει: Νέο Android Market με αυτόματη ανανέωση των εφαρμογών Ενσωμάτωση στην μηχανή αναζήτησης, της μηχανής JavaScript V8 Αυξημένη υποστήριξη Microsoft Exchange (σε πολιτικές ασφαλείας, συγχρ. ημερολογίου, auto-discovery, GAL lookup, remote wipe) Σύνδεση USB και λειτουργία δυναμικής ζώνης (hotspot) WiFi Επιλογή για απαγόρευση πρόσβασης δεδομένων πάνω από ένα δίκτυο κινητής τηλεφωνίας Γρήγορη εναλλαγή ανάμεσα σε πολλαπλές γλώσσες του πληκτρολογίου και των λεξικών τους Φωνητική κλήση και διαμοιρασμός επαφών με Bluetooth Υποστήριξη για αριθμητικούς και αλφαριθμητικούς κωδικούς Η μηχανή αναζήτησης μπορεί να αποτυπώσει κινούμενα GIFs Υποστήριξη για πεδία μεταφόρτωσης αρχείων στον browser Υποστήριξη για εγκατάσταση εφαρμογών στην επεκτάσιμη μνήμη Υποστήριξη Adobe Flash 10.1 [4] [5] Σελ. 19 από 129

20 1 - Εισαγωγή Android 2.3 GINGERBREAD Εικόνα 10. Λογότυπο Android 2.3 GINGERBREAD Η Google κυκλοφόρησε το Gingerbread επίσημα τον Δεκέμβριο του 2010, με την επανέκδοση του σε Android τον Φεβρουάριο του Έτρεχε στην πρώτη συσκευή Nexus που παράχθηκε από τη Samsung. Αυτό ήταν ένα σημαντικό βήμα, καθώς η Samsung έχει γίνει ο μεγαλύτερος κατασκευαστής smartphone. Το Gingerbread ήταν ένα πολύ επιτυχημένο λειτουργικό σύστημα, που με τον καιρό έγινε η πιο δημοφιλής έκδοση του Android. Οι αλλαγές που έχουν γίνει είναι οι ακόλουθες: Πιο γρήγορη, πιο διαισθητική εισαγωγή κειμένου Επιλογή λέξεων και αντιγραφή/επικόλληση με ένα άγγιγμα Βελτιωμένη ενεργειακή διαχείριση Υποστήριξη NFC (Near Field Communication) Υποστήριξη video κλήσης Yποστήριξη του πρωτόκολλου WebM για αναπαραγωγή video Υποστήριξη κοινωνικών δικτύων Υποστήριξη Google Wallet Υποστήριξη βαρόμετρου, γυροσκοπίου και βαρυτόμετρου Περιέχει πλούσια πολυμέσα Μετάβαση στην μπροστινή κάμερα απο πρόγραμμα κάμερας Διαχείρηση εφαρμογών [4] [5] Σελ. 20 από 129

21 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Android 3.0 HONEYCOMB Εικόνα 11. Λογότυπο Android 3.0 HONEYCOMB Το Honeycomb κυκλοφόρησε τον Φεβρουάριο του 2011 και προοριζόταν αποκλειστικά για tablets. Ακολούθησαν δύο ταχείες εκδόσεις bug-fix. ΤΟ Android 3.1 τον Ιούλιο 2011 και το Android 3.2 τον Αύγουστο Τα χαρακτηριστικά του είναι: Κλειστός πηγιαίος κώδικας Νέο, εντελώς διαφορετικό UI και ανανεωμένα widgets Υποστήριξη διπύρηνων και τετραπύρηνων επεξεργαστών Video chat µέσω Google Talk Google ebooks Τα προγράμματα περιήγησης υποστηρίζουν πολλαπλές καρτέλες Kρυπτογράφηση όλων των δεδομένων του χρήστη Ανάπτυξη λογισµικού (scripting) για 3D, σε γλώσσα η οποία καλείται "Renderscript" "Ιδιωτική περιήγηση" Συνδεσιμότητα USB αξεσουάρ, όπως εξωτερικά πληκτρολόγια ή χειριστήρια Πολλαπλή επιλογή Επιλογή drag-and-drop Πλήρους οθόνης επιλογή για την συλλογή φωτογραφιών [4] [5] Σελ. 21 από 129

22 1 - Εισαγωγή Android 4.0 ICE CREAM SANDWICH Εικόνα 12. Λογότυπο Android 4.0 ICE CREAM SANDWICH Η έκδοση Ice Cream Sandwich παρουσιάστηκε στις 19 Οκτωβρίου του 2011 και ήταν σχεδιασμένο τόσο για τα κινητά όσο και για τα tablet. Οι αλλαγές που έχουν γίνει είναι οι ακόλουθες: Τα πρόγραμμα περιήγησης στο διαδίκτυο, επιτρέπουν μέχρι και 16 καρτέλες ανοιχτές ταυτόχρονα Καλύτερη αναγνώριση φωνής Επιλογή τερματισμού εφαρμογών που τρέχουν στο παρασκήνιο Βελτίωση ασφάλειας του συστήματος, με την προσθήκη αναγνώρισης προσώπου για να ξεκλειδώνει η συσκευή Ύπαρξη εικονικών πλήκτρων, τα οποία παίρνουν τη θέση των φυσικών ή αφής, που υπήρχαν στις συσκευές Ο χρήστης μπορεί να θέσει όρια στην κίνηση πακέτων δεδομένων Υποστήριξη εγγραφής βίντεο σε 1080p. Με το Wi-Fi Direct, οι συσκευές μπορούν να συνδεθούν μεταξύ τους ασύρματα, χωρίς την μεσολάβηση κάποιου access point. Το Android Beam, αξιοποιεί πλέον το NFC αφού επιτρέπει την αποστολή δεδομένων σε κοντινής εμβέλειας συσκευές. Βελτιωμένη διεπαφή χρήστη στο Gmail Επιλογή αποθήκευση στιγμιότυπου [4] [5] Σελ. 22 από 129

23 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Android 4.1 JELLY BEAN Εικόνα 13. Λογότυπο Android 4.1 JELLY BEAN Τον Ιούλιο του 2012 παρουσιάζεται η έκδοση Jelly Bean. Έκανε μεγάλη επιτυχία καθώς εισήγαγε πάρα πολλές νέες λειτουργίες, συνδυάζοντας χαρακτηριστικά του Honeycomb και του Gingerbread. Τα νέα χαρακτηριστικά περιλαμβάνουν: Εισαγωγή του Google Now Φωνητική αναζήτηση File manager Εσωτερικούς χάρτες Βελτιώσεις στην εφαρμογή της κάμερας Εισαγωγή της λειτουργίας χειρονομίας Φωτογραφίες 360 μοιρών με το Photo Sphere Widgets στο κλείδωμα οθόνης Πρόσθεση υποστήριξης για Bluetooth gamepads - συσκευές και χειριστήρια HID Εμφάνιση ποσοστού και της αναμενόμενης ώρας που παραμένει για λήψη εφαρμογής Βελτιώσεις στην ασφάλεια Δυνατότητα δημιουργίας περιορισμένων προφίλ στα tablet [4] [5] Σελ. 23 από 129

24 1 - Εισαγωγή Android 4.4 ΚΙΤΚΑΤ Εικόνα 14. Λογότυπο Android 4.4 ΚΙΤΚΑΤ Η πιο πρόσφατη έκδοση, είναι η έκδοση Android KitKat που παρουσιάστηκε στις 31 Οκτωμβρίου του 2013 και έχει σχεδιαστεί για να τρέχει γρήγορα, ομαλά, και με απόκριση, σε ένα πολύ ευρύτερο φάσμα των συσκευών από ποτέ. Τα νέα χαρακτηριστικά είναι τα εξής: Βελτιώση απόδοσης και ασφάλειας Βελτιωμένη πρόσβαση στις κοινοποιήσεις Επιλογή καταγραφής οθόνης Βελτιωμένη χρήση της μνήμης Νέο διαφανές σύστημα UI [5] Σελ. 24 από 129

25 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Εκδόσεις Εικόνα 15. Ποσοστά των εγκατεστηµένων εκδόσεων στις Android συσκευές Όπως φαίνεται στην Εικόνα 15 πιο πάνω, η Google ανακοίνωσε τα επίσημα στατιστικά στοιχεία του οικοσυστήματος του Αndroid για το περασμένο έτος όπου οι εκδόσεις της Jelly Bean (4.1, 4.2 και 4.3) συγκεντρώνουν αθροιστικά το 60,7% των ενεργών συσκευών, αφήνοντας στη δεύτερη θέση την Gingerbread με ποσοστό 21,2% και στην τρίτη θέση την Ice Cream Sandwich με ποσοστό 16,9%. Η νεώτερη έκδοση του Android, 4.4 KitKat, στον τρίτο μήνα μετά την επίσημη παρουσίασή της, συγκεντρώνει ποσοστό 1,8%, σημειώνοντας μικρή αλλά σταθερή άνοδο. 1.5 Αρχιτεκτονική του Android Το Android δεν είναι μόνο ένα λειτουργικό σύστημα. Είναι μια στοίβα λογισμικού η οποία αποτελείτε από το λειτουργικό σύστημα, τις υπηρεσίες διασύνδεσης με τις εφαρμογές (middleware) και τέλος από τις κύριες (core) εφαρμογές, μεταξύ αυτών, ενός cient, μιας εφαρμογής διαχείρισης SMS, ενός ημερολογίου, ενός browser, εφαρμογή διαχείρισης επαφών, και άλλες οι οποίες έρχονται δεμένες με την υπόλοιπη στοιβάδα λογισμικού του Android. Στο επίσημο σχεδιάγραμμα που ακολουθεί (Εικόνα 16) θα δούμε οπτικά την αρχιτεκτονική αυτή. Από ότι βλέπουμε λοιπόν η αρχιτεκτονική του λειτουργικού συστήματος αποτελείτε από 5 βασικά επίπεδα. Τον πυρήνα Linux (Linux Kernel) Σελ. 25 από 129

26 1 - Εισαγωγή Τις βιβλιοθήκες (Libraries) Την εικονική μηχανή Dalvik (Dalvik VM) Τον χρόνο εκτέλεσης (Android Runtime) Το πλαίσιο εφαρμογής (Application Framework) [6] Εικόνα 16. Αρχιτεκτονική του Android Στη συνέχεια περιγράφουμε αναλυτικά τα επιμέρους τμήματα: Πυρήνας Linux (Linux Kernel) Η βάση της στοίβας λογισμικού του Android είναι ο πυρήνας Linux. Ο πυρήνας του συστήματος είναι τροποποιημένος και βασίζεται στην έκδοση 2.6 (και στην έκδοση για το Android 4.0) του Linux Kernel, η οποία υποστηρίζει όλες τις κύριες λειτουργίες του λειτουργικού συστήματος. Οι λειτουργίες αυτές αφορούν λειτουργίες δικτύου, διαχείριση μνήμης, διαχείριση διεργασιών, ασφάλεια του λειτουργικού, και ένα σύνολο οδηγών υλικού (hardware drivers). Οι οδηγοί αυτοί είναι υπεύθυνοι για την επικοινωνία του software με το hardware της συσκευής. Ενδεικτικά ο πυρήνας του Android περιέχει μεταξύ άλλων: Οδηγό προβολής οθόνης Οδηγό Wifi και Bluetooth Οδηγό κάμερας Σελ. 26 από 129

27 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Ο πυρήνας του Android μπορεί να βασίζεται στον πυρήνα του Linux, αλλά διαφέρει αρκετά από αυτόν. Ο λόγος είναι οι αλλαγές στην αρχιτεκτονική που έχει κάνει η Google για να είναι ελαφρύτερος και βελτιστοποιημένος για χρήση σε κινητές συσκευές. Αυτό σημαίνει ότι παρότι το Android είναι κατά βάση Linux, επί της ουσίας είναι αρκετά δύσκολο να τρέξουν εφαρμογές ή να χρησιμοποιηθούν βιβλιοθήκες από τη μία πλατφόρμα στην άλλη [6] [7] Βιβλιοθήκες Android Στο δεύτερο επίπεδο της στοίβας έχουμε τις βιβλιοθήκες του Android. Αυτές ουσιαστικά αποτελούν τα APIs που είναι διαθέσιμα στους προγραμματιστές για την ανάπτυξη των εφαρμογών. Οι βιβλιοθήκες από μόνες τους δεν αποτελούν εφαρμογές αλλά ενσωματώνονται και χρησιμοποιούνται από τις εφαρμογές για τις διάφορες λειτουργίες που παρέχει η καθεμία από αυτές. Ουσιαστικά αποτελούν ένα από τα δομικά υλικά των εφαρμογών, και άρα είναι αναπόσπαστο κομμάτι τους. Οι δυνατότητες των βιβλιοθηκών του Android γίνονται εμφανείς στους προγραμματιστές στην στοίβα του πλαισίου εφαρμογής. Το σύνολο σχεδόν των βιβλιοθηκών είναι γραμμένο σε C και C++, οι οποίες έχουν μεταγλωττιστεί για τη χρήση τους από το λειτουργικό. Μερικές από τις κύριες βιβλιοθήκες του Android είναι: System C library μια ενσωμάτωση της standard βιβλιοθήκης συστήματος της C (libc) τροποποιημένη για κινητές συσκευές βασισμένες στο Linux. Βιβλιοθήκες Πολυμέσων Υποστηρίζει αναπαραγωγή και εγγραφή πολλών δημοφιλών μέσων ήχου και εικόνας, όπως: MPEG4, H.264, MP3, AAC, AMR, JPG, και PNG Surface Manager διαχειρίζεται την πρόσβαση στο υποσύστημα προβολής, και συνθέτει απρόσκοπτα δισδιάστατα και τρισδιάστατα επίπεδα γραφικών τα οποία προέρχονται από πολλαπλές εφαρμογές. Σελ. 27 από 129

28 1 - Εισαγωγή LibWebCore μια μοντέρνα μηχανή υποστήριξης πλοήγηση στο διαδίκτυο (browser engine) η οποία χρησιμοποιείτε και από τον ενσωματωμένο browser του Android αλλά και από τις WebViews που ενσωματώνονται στις εφαρμογές. SGL η γνωστή μηχανή δισδιάστατων γραφικών Βιβλιοθήκες 3D μια υλοποίηση βασισμένη στα APIs του OpenGL ES. Οι βιβλιοθήκες χρησιμοποιούν είτε τρισδιάστατη επιτάχυνση υλικού, όπου αυτή είναι διαθέσιμη, είτε μια υψηλά βελτιωμένη τρισδιάστατη επιτάχυνση λογισμικού σε περίπτωση που η πρώτη δεν είναι διαθέσιμη. FreeType παρέχει ευκρίνεια γραφικών στα bitmaps και τις γραμματοσειρές των εφαρμογών του συστήματος. SQLite μια πανίσχυρη και συνάμα πολύ ελαφριά σχεσιακή βάση δεδομένων [6] [8] Η εικονική μηχανή Dalvik Σχεδόν το σύνολο των APIs του Android βασίζονται στη γλώσσα προγραμματισμού Java. Στην Java ως γνωστόν υπάρχει η λεγόμενη Java Virtual Machine στην οποία εκτελείτε ο κώδικας bytecode των εφαρμογών. Στο Android υπάρχει κάτι παρόμοιο και δεν είναι άλλο από την εικονική μηχανή Dalvik. Η Dalvik λοιπόν είναι η εικονική μηχανή μέσω της οποίας τρέχουν οι εφαρμογές του Android. H κάθε εφαρμογή τρέχει μέσω τις δικής της εικονικής μηχανής στη δικιά της διεργασία και για αυτό το λόγο καμία εφαρμογή δεν έχει επαφή με την άλλη, ενώ εκτελούνται ταυτόχρονα. Η Dalvik δεν υποστηρίζει τον κώδικα bytecode, αντί αυτού οι κλάσεις της Java γίνονται compile σε αρχεία.dex ώστε να τρέξουν στην VM. Τα αρχεία dex ουσιαστικά αποτελούν συμπιεσμένα δεδομένα για εξοικονόμηση χώρου κατά την εκτέλεση. Το Android είναι από τη φύση του multitasking λειτουργικό σύστημα και για αυτό επιτρέπει στις εφαρμογές του να τρέχουν σε πολλά νήματα ταυτόχρονα και να απασχολούν πολλές διαδικασίες εάν αυτό είναι Σελ. 28 από 129

29 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα αναγκαίο. Για να γίνει αυτό εφικτό η μηχανή Dalvik είναι σχεδιασμένη για να έχει ελάχιστο αντίκτυπο στη χρήση της μνήμης. Χάρη στον λιτό της σχεδιασμό, το σύστημα είναι σε θέση να τρέχει πολλές εικονικές μηχανές ταυτόχρονα [6] Χρόνος Εκτέλεσης Εφαρμογής (Android Runtime) Ο χρόνος εκτέλεσης των εφαρμογών του Android, βρίσκεται στο ίδιο επίπεδο με τις κύριες βιβλιοθήκες και την μηχανή Dalvik. Εδώ βρίσκουμε το κοινό σημείο επαφής μεταξύ των δυνατοτήτων που παρέχουν οι βιβλιοθήκες και του χρόνου εκτέλεσης της εικονικής μηχανής Dalvik τις λειτουργίες τις οποίας, περιγράψαμε παραπάνω [6] Πλαίσιο Εφαρμογής (Application Framework) Το Android παρέχει στους developers μια ανοιχτού κώδικα πλατφόρμα ανάπτυξης και τη δυνατότητα να αναπτύξουν με αυτή ιδιαίτερα καινοτόμες και πλούσιες σε υλικό, εφαρμογές. Οι developers έχουν στην διάθεση τους τη δυνατότητα ελέγχου του υλικού της συσκευής και μέσω αυτής μπορούν να αποκτήσουν πρόσβαση σε υπηρεσίες εντοπισμού, εκτέλεση διεργασιών παρασκηνίου, και πάρα πολλές ακόμη δυνατότητες οι οποίες βασίζονται στα APIs που είναι διαθέσιμα. Στο επόμενο επίπεδο της αρχιτεκτονικής του Android λοιπόν, συναντάμε το πλαίσιο των εφαρμογών. Οι developers έχουν πρόσβαση σε όλα τα APIs μεταξύ αυτών και στα κύρια APIs που χρησιμοποιούν οι ενσωματωμένες εφαρμογές. Η δομή των εφαρμογών είναι τέτοια που ευνοείται η επαναχρησιμοποίηση δομικών συστατικών, και επίσης επιτρέπεται η χρήση των δυνατοτήτων τις μίας εφαρμογής από άλλες εφαρμογές, βέβαια κάτω από τις προδιαγραφές ασφάλειας του Android. Τα σημαντικότερα δομικά στοιχεία του πλαισίου εφαρμογών είναι: Σύστημα προβολών (View System) αποτελεί ένα εκτενές σύνολο από αντικείμενα GUI τα οποία μπορούν να χρησιμοποιηθούν κατά το σχεδιασμό μιας εφαρμογής. Παραδείγματα προβολών είναι οι Σελ. 29 από 129

30 1 - Εισαγωγή λίστες (ListView), το πλέγμα (GridView), πεδία εισαγωγής κειμένου (TextView), κουμπιά, κλπ Πάροχος Περιεχομένου (Content Provider) δίνει τη δυνατότητα στις εφαρμογές να μοιράζονται ή να ανταλλάσσουν δεδομένα μιας συγκεκριμένης μορφής η οποία ορίζεται από τον πάροχο. Παραδείγματα δεδομένων, είναι οι επαφές χρήστη και οι βάσεις δεδομένων των εφαρμογών. Διαχειριστής Πόρων (Resource Manager) παρέχει πρόσβαση σε υλικό το οποίο δεν είναι σε μορφή κώδικα όπως πχ, εικόνες, αρχεία xml, πίνακες χαρακτήρων, κλπ... Διαχειριστής Ειδοποιήσεων (Notification Manager) δίνει στις εφαρμογές πρόσβαση στις υπηρεσίες ειδοποιήσεων χρήστη. Τέτοιες είναι οι ειδοποιήσεις στη notification bar, τα toast μηνύματα στο κάτω μέρος της οθόνης, η δόνηση του κινητού και η ενεργοποίηση της οθόνης. Διαχειριστής Δραστηριοτήτων (Activity Manager) διαχειρίζεται τον κύκλο ζωής των δραστηριοτήτων και παρέχει δυνατότητα πλοήγησης από δραστηριότητα σε δραστηριότητα κρατώντας αποθηκευμένη στη μνήμη τη σειρά εκτέλεσης αυτών. Στο σχεδιάγραμμα (Εικόνα 17) φαίνεται λεπτομερώς ο κύκλος ζωής κάθε δραστηριότητας [6]. 1.6 Βασικές αρχές μιάς εφαρμογής Android Οι Android εφαρμογές είναι γραμμένες στη γλώσσα προγραμματισμού Java. Τα εργαλεία του Android SDK καταρτίζουν τον κώδικα σας-μαζί με τα δεδομένα και τα αρχεία των πόρων-σε ένα APK: ένα πακέτο Android, το οποίο είναι ένα συμπιεσμένο αρχείο με κατάληξη apk.. Ένα αρχείο APK περιέχει όλα τα περιεχόμενα μιάς Android εφαρμογής και είναι το αρχείο χρησιμοποιούν οι Android συσκευες για να εγκαταστήσουν την εφαρμογή. Μόλις εγκατασταθεί σε μια συσκευή, κάθε Android εφαρμογή ζει μέσα στη δική του sandbox ασφάλεια: Σελ. 30 από 129

31 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Εικόνα 17. Κύκλος ζωής μιας δραστηριότητας (Activity lifecycle) Το λειτουργικό σύστημα του Android είναι ένα multi-user λειτουργικό σύστημα Linux, στο οποίο κάθε εφαρμογή είναι και ένας διαφορετικός χρήστης. Από προεπιλογή, το σύστημα εκχωρεί σε κάθε εφαρμογή ένα μοναδικό αναγνωριστικό χρήστη του Linux (το αναγνωριστικό χρησιμοποιείται μόνο από το σύστημα και είναι άγνωστη προς τις εφαρμογές). Το σύστημα ορίζει δικαιώματα για όλα τα αρχεία σε μια εφαρμογή, έτσι ώστε μόνο το αναγνωριστικό χρήστη που έχει εκχωρηθεί σε αυτή την εφαρμογή να μπορεί να έχει πρόσβαση σε αυτά. Κάθε διαδικασία έχει τη δική του εικονική μηχανή (VM), έτσι ώστε ο κώδικας του app να τρέχει σε απομόνωση από άλλες εφαρμογές. Από προεπιλογή, κάθε app τρέχει στη δική της διαδικασία Linux. Το Android ξεκινά την διαδικασία, όταν οποιοδήποτε από τα στοιχεία Σελ. 31 από 129

32 1 - Εισαγωγή της εφαρμογής θα πρέπει να εκτελείτε και τερματίζει την διαδικασία όταν δεν χρειάζεται πλέον ή όταν το σύστημα πρέπει να ανακτήσει τη μνήμη για άλλες εφαρμογές. Με τον τρόπο αυτό, το σύστημα Android εφαρμόζει την αρχή των ελάχιστων προνομίων. Δηλαδή, κάθε εφαρμογή, από προεπιλογή, έχει πρόσβαση μόνο στα στοιχεία που χρειάζεται για να κάνει τη δουλειά της και όχι περισσότερα. Αυτό δημιουργεί ένα πολύ ασφαλές περιβάλλον, στο οποίο μία εφαρμογή δεν μπορεί να έχει πρόσβαση στα μέρη του συστήματος, για τα οποία δεν έχει δοθεί άδεια. Ωστόσο, υπάρχουν τρόποι για μια εφαρμογή, να ανταλλάξει δεδομένα με άλλες εφαρμογές και για μια εφαρμογή να έχει πρόσβαση στις υπηρεσίες του συστήματος: Είναι δυνατόν, οι δύο εφαρμογές να μοιράζονται το ίδιο όνομα χρήστη Linux, οπότε μπορεί το ένα να έχει πρόσβαση στα αρχεία του άλλου. Για να εξοικονομήσετε πόρους συστήματος, οι εφαρμογές με το ίδιο όνομα χρήστη μπορούν επίσης να κανονίσουν να τρέχουν στην ίδια διαδικασία Linux και να μοιράζονται το ίδιο VM (οι εφαρμογές πρέπει να υπογράφονται επίσης με το ίδιο πιστοποιητικό). Μια εφαρμογή μπορεί να ζητήσει την άδεια για να έχει πρόσβαση στα δεδομένα της συσκευής, όπως επαφές του χρήστη, μηνύματα SMS, αποθηκευτικό χώρο (κάρτα SD), φωτογραφική μηχανή, Bluetooth, και πολλά άλλα. Όλα τα δικαιώματα των εφαρμογών πρέπει να χορηγούνται από το χρήστη κατά τη διάρκεια της εγκατάστασης. 1.7 Συστατικά Android εφαρμογών Οι εφαρµογές Android αποτελούνται από κάποια συστατικά, που συνδέονται χρησιµοποιώντας ένα XML αρχείο, το AndroidManifest.xml του κάθε project, το οποίο περιγράφει κάθε συστατικό και πώς αλληλεπιδρά µε Σελ. 32 από 129

33 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα τα άλλα. Υπάρχουν έξι συστατικά που παρέχουν τις δοµικές µονάδες για τις εφαρµογές: 1. Δραστηριότητα (Activity) - Είναι το επίπεδο παρουσίασης (presentation layer) της εφαρµογής. Μια δραστηριότητα είναι µια απλή οθόνη της εφαρµογής. Κάθε δραστηριότητα υλοποιείται σαν µια κλάση που επεκτείνει (extends) την βασική κλάση Δραστηριότητα (Activity base class). Η συγκεκριµένη κλάση προβάλει µια διεπαφή χρήστη (user interface) αποτελούµενη από Όψεις (Views) και ανταποκρίνεται σε Συµβάντα (Events). Ένα Activity είναι ισοδύναµo µε µια Φόρµα (Form) στην ανάπτυξη desktop εφαρµογών. 2. Υπηρεσία (Service) - Μια Υπηρεσία είναι κώδικας που τρέχει για µεγάλο χρονικό διάστηµα και χωρίς διεπαφή χρήστη (UI), ενηµερώνοντας τις πηγές δεδοµένων και τις ορατές Δραστηριότητες (Activities), ενεργοποιώντας Ειδοποιήσεις (Notifications). Αυτές τρέχουν και επεξεργάζονται δεδοµένα ακόµα και όταν οι Δραστηριότητες της εφαρµογής δεν είναι ενεργές ή ορατές. Ένα καλό παράδειγµα είναι µια εφαρµογή που αναπαράγει µουσική από µια λίστα µουσικών κοµµατιών (media player). Σε µια τέτοια εφαρµογή, θα υπήρχαν κατά πάσα πιθανότητα µία ή και παραπάνω Δραστηριότητες που επιτρέπουν στον χρήστη να επιλέξει τραγούδια και να τα αναπαράγει. Ωστόσο, η αναπαραγωγή από µόνη της δεν θα έπρεπε να διαχειρίζεται από την Δραστηριότητα γιατί ο χρήστης θα περίµενε την µουσική να συνεχίζει να παίζει ακόµη και µετά την πλοήγησή του σε µια νέα οθόνη. Σε αυτή τη περίπτωση, η Δραστηριότητα της αναπαραγωγής µουσικής θα ξεκινούσε µια Υπηρεσία (Service) για να τρέξει στο παρασκήνιο και να συνεχίσει η µουσική να παίζει. Το σύστηµα τότε θα κρατά την Υπηρεσία αναπαραγωγής ενεργή µέχρι να τελειώσει το κοµµάτι. Όταν πραγµατοποιηθεί σύνδεση σε µια Υπηρεσία, µπορεί να υπάρξει επικοινωνία µε αυτή µέσω µιας διεπαφής που προσφέρεται από την Υπηρεσία. Για την Υπηρεσία µουσικής, αυτό θα επέτρεπε την παύση ή την επιστροφή πίσω στο κοµµάτι (rewind) κλπ. Σελ. 33 από 129

34 1 - Εισαγωγή 3. Παροχέας Περιεχοµένου (Content Provider) - Οι εφαρµογές µπορούν να σώζουν τα δεδοµένα τους σε αρχεία, σε µια βάση δεδοµένων SLQLite ή µε οποιοδήποτε άλλο µηχανισµό µπορούν. Ένας Παροχέας Περιεχοµένου, ωστόσο, είναι χρήσιµος ώστε τα δεδοµένα µιας εφαρµογής να είναι διαθέσιµα και σε άλλες εφαρµογές. Ένας Παροχέας Περιεχοµένου είναι µια κλάση που υλοποιεί µια συγκεκριµένη οµάδα µεθόδων που επιτρέπουν σε άλλες εφαρµογές να αποθηκεύουν και να επανακτούν δεδοµένα του τύπου που διαχειρίζεται ο Παροχέας Περιεχοµένου. Οι συσκευές Android περιλαµβάνουν διάφορους εγγενείς Παροχείς Περιεχοµένου (Content Providers) που εκθέτουν τις χρήσιµες βάσεις δεδοµένων, όπως για παράδειγµα των στοιχείων των επαφών του χρήστη. 4. Πρoθέσεις (Intents) - Το Android χρησιµοποιεί µια ειδική κλάση που λέγεται Πρόθεση (Intent) για να κινείται από οθόνη σε οθόνη. Η Πρόθεση περιγράφει τι θέλει η εφαρµογή να γίνει στη συνέχεια. Τα δυο πιο σηµαντικά µέρη της δοµής δεδοµένων της Πρόθεσης είναι η Δράση (Action) και τα δεδοµένα βάσει των οποίων αυτή θα εκτελεστεί. Τυπικές τιµές για µια δράση είναι η MAIN (η κεντρική είσοδος της εφαρµογής), VIEW, PICK, EDIT κλπ. Τα δεδοµένα εκφράζονται ως URI (Uniform Resource Indicator). Υπάρχει µια σχετική κλάση που λέγεται Φίλτρο Πρόθεσης (IntentFilter). Ενώ µια Πρόθεση είναι στην ουσία ένα αίτηµα για να γίνει κάτι, το Φίλτρο Πρόθεσης είναι µια περιγραφή του τι είναι δυνατόν να διαχειριστεί ένας Δέκτης Πρόθεσης (Ιntent Ρeceiver). Μια Δραστηριότητα που είναι σε θέση να προβάλει πληροφορίες επικοινωνίας για ένα άτοµο, θα ανακοίνωνε µε ένα Φίλτρο Πρόθεσης (IntentFilter) ότι γνωρίζει πως να διαχειριστεί την VIEW_ACTION όταν τα δεδοµένα αντιπροσωπεύουν ένα άτοµο. Οι Δραστηριότητες ανακοινώνουν τα Φίλτρα Πρόθεσης (IntentFilters) στο AndroidManifest.xml αρχείο. Η πλοήγηση από οθόνη σε οθόνη πετυχαίνεται µε Προθέσεις. Για να πλοηγηθεί κανείς προς τα µπρος, µια Δραστηριότητα καλεί την startactivity(myintent). Το σύστηµα τότε κοιτά στα Φίλτρα Προθέσεων (Intent Filters) για όλες τις Σελ. 34 από 129

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

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

37 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Οι Ειδοποιήσεις είναι ο προτιµότερος τρόπος για τα αόρατα τµήµατα της εφαρµογής (Δέκτες µετάδοσης, Υπηρεσίες, και ανενεργές Δραστηριότητες) να προειδοποιήσουν τους χρήστες ότι κάποια γεγονότα που απαιτούν την προσοχή του χρήστη. Παραδείγµατος χάριν, όταν λαµβάνει µια συσκευή ένα µήνυµα κειµένων ή µια εισερχόµενη κλήση, προειδοποιεί µε τη λάµψη των φώτων, την παραγωγή ήχων, την επίδειξη εικονιδίων ή µε την εµφάνιση µηνυµάτων διαλόγου. Ο Χειριστής Ειδοποιήσεων (Notification Manager) είναι µια Υπηρεσία συστήµατος που χρησιµοποιείται για να χειριστεί τις ειδοποιήσεις. Καλείται µέσω της µεθόδου getsystemservice. Χρησιµοποιώντας το Χειριστή Ειδοποιήσεων, µπορούν να ενεργοποιηθούν νέες ειδοποιήσεις, να τροποποιηθούν οι υπάρχουσες ή να αφαιρεθούν εκείνες που δεν είναι απαραίτητες ή πλέον επιθυµητές [9]. 1.8 Ασφάλεια στο Android Καθώς μια εφαρμογή εγκαθίσταται στη συσκευή, λειτουργεί αποκλειστικά στη δικιά της εικονική μηχανή, η οποία αποτελεί και το πλαίσιο ασφαλείας (sandbox) της εφαρμογής. Το Android είναι ένα λειτουργικό σύστημα πολλών χρηστών στο οποίο: Η κάθε εφαρμογή αντιμετωπίζεται σαν διαφορετικός χρήστης Από προεπιλογή το σύστημα δίνει έναν μοναδικό αριθμό ID ο οποίος είναι άγνωστος στην εφαρμογή. Το σύστημα αναθέτει συγκεκριμένες άδειες χρήσης στα αρχεία της εφαρμογής, και μόνο η εφαρμογή με το σωστό ID μπορεί να έχει πρόσβαση σε αυτά. Κάθε εφαρμογή τρέχει στην δική της εικονική μηχανή (VM) απομονωμένη από τις υπόλοιπες εφαρμογές. Η κάθε VM εκκινείτε μόλις ζητηθεί από το σύστημα και κλείνει είτε επειδή δεν χρησιμοποιείτε πλέον, είτε επειδή το σύστημα θέλει να ελευθερώσει τους πόρους της μνήμης για χρήση από άλλη εφαρμογή. Με αυτό τον τρόπο το Android χρησιμοποιεί την αρχή των ελαχίστων δικαιωμάτων. Η κάθε εφαρμογή έχει πρόσβαση μέσω του AndroidManifest.xml μόνο σε όσους πόρους συστήματος χρειάζεται Σελ. 37 από 129

38 1 - Εισαγωγή και κανέναν περισσότερο. Οι πόροι και τα δικαιώματα που απαιτούνται από μία εφαρμογή γίνονται γνωστά στον χρήστη τη στιγμή της εγκατάστασης της, και ο χρήστης μπορεί να επιλέξει να μην εγκαταστήσει μια εφαρμογή εφόσον δεν συμφωνεί να τις παρέχει πρόσβαση στους πόρους που ζητάει. Η τεχνολογία Android εφαρμόζει ασφάλεια πολλών επιπέδων: Αποκλεισμός. Οι εφαρμογές στο Google Play σαρώνονται διαρκώς για τον αποκλεισμό επιβλαβών εφαρμογών και παραβάσεων πολιτικών. Μπορείτε επίσης να επιλέξετε την επαλήθευση των εφαρμογών που έχουν εγκατασταθεί από άλλες πηγές. Έλεγχος. Τα "περιβάλλοντα δοκιμών" των εφαρμογών παρεμποδίζουν την πρόσβαση των εφαρμογών σε άλλα μέρη του λειτουργικού συστήματος του tablet σας ή μεταξύ τους, εκτός και αν παραχωρήσετε άδεια κατά την εγκατάσταση Το κλείδωμα και η κρυπτογράφηση της οθόνης συμβάλουν στην παρεμπόδιση της μη εξουσιοδοτημένης πρόσβασης σε ολόκληρο το tablet. Άμυνα. Μετά τον εντοπισμό τους, είναι δυνατή η απομακρυσμένη κατάργηση των μη εξουσιοδοτημένων εφαρμογών [10] [11]. 1.9 Γιατί Android Εν κατακλείδι, παρατίθενται εδώ κάποια σηµεία και σκέψεις για το Android, σαν µια τελευταία απόδειξη της πρωτοπορίας του στο χώρο και της ισχυρής δυναµικής του. Γιατί Android λοιπόν; Είναι µια πλατφόρµα ανάπτυξης, ανοιχτή και ελεύθερη βασισµένη στο Linux. Η αρχιτεκτονική της είναι βασισµένη σε δοµικά στοιχεία τα οποία µπορούν να τροποποιηθούν, να ολοκληρωθούν και να προσαρµοστούν στις ανάγκες κάθε κατασκευαστή και κατά συνέπεια χρήστη. Περιέχει πολλές ενσωµατωµένες υπηρεσίες που µπορούν να κάνουν την εµπειρία του χρήστη µοναδική, όπως υπηρεσίες Σελ. 38 από 129

39 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα βασισµένες στην τοποθεσία, πανίσχυρη SQL βάση δεδοµένων, µηχανή αναζήτησης και χάρτες. Σύνδεση όλων των εφαρμογών μεταξύ τους και όχι ανεξάρτητη λειτουργία αυτών όπως στο ios. Για παράδειγμα, θέλω να ανεβάσω μια φωτογραφία στο Dropbox. Στην περίπτωση του Android όπως πλοηγούμαι στην gallery μπορώ με ένα απλό πάτημα του share, να ανεβάσω την φωτογραφία μου στο Dropbox, στο ios απ την άλλη θα πρέπει να ανοίξω την εφαρμογή του Dropbox και να κάνω από εκεί upload την φωτογραφία καθώς δεν συνδέονται η gallery με το Dropbox μεταξύ τους εξαιτίας των περιορισμών της Apple. Το ίδιο συμβαίνει σε οποιαδήποτε εφαρμογή αφού είναι θέμα λειτουργικού συστήματος. Άπειρη παραμετροποίηση ως εκεί που δεν αντέχεις άλλο να ασχολείσαι. Στο Android μπορώ να βάλω οτιδήποτε σε οποιαδήποτε οθόνη, να μετακινήσω τα apps όπου θέλω, να βγάλω ότι χρειάζομαι στην κεντρική οθόνη και να χρησιμοποιήσω widgets όπου θέλω για να λαμβάνω άμεσα κάθε είδους πληροφορία. Στο ios από την άλλη δεν έχω Widgets, με αποτέλεσμα να πρέπει να ανοίξω κάθε εφαρμογή ξεχωριστά για να πάρω τις πληροφορίες που χρειάζομαι, ενώ η παραμετροποίηση έγκειται στην αλλαγή θέσης των εικονιδίων των εφαρμογών αλλά και στην οργάνωση τους με φακέλους. Τέλος, στο Android μπορώ να αλλάξω και εφαρμογές του συστήματος με άλλες όπως για παράδειγμα το πληκτρολόγιο, φυσικά το ios έχει ένα από τα κορυφαία πληκτρολόγια σε smartphone αλλά υπάρχουν 3d party πολύ καλύτερα και πιο έξυπνα. Αυτόµατη διαχείριση του κύκλου ζωής µιας εφαρµογής, µε πολλαπλές δικλείδες ασφαλείας ανάµεσα στα προγράµµατα. Βελτιστοποιήσεις στον τοµέα διαχείρισης µνήµης και χαµηλής Σελ. 39 από 129

40 1 - Εισαγωγή κατανάλωσης σε τέτοιο βαθµό που δεν έχει ξανασυναντηθεί σε άλλο smartphone. Υψηλής ποιότητας γραφικά και ήχος. Φορητότητα ανάµεσα σε ένα ευρύ φάσµα ήδη υπάρχοντος υλικού αλλά και µελλοντικού. Ακόμη, οι οθόνες µπορούν να τροποποιηθούν κατάλληλα για να υποστηρίζουν οποιαδήποτε ανάλυση, µέγεθος και προσανατολισµό οθόνης. Αυτοί είναι µερικοί µόνο από τους λόγους για τους οποίους έγινε η επιλογή του Android ως πλατφόρµα ανάπτυξης σε αυτή την πτυχιακή εργασία. Η επαλήθευση όλων των παραπάνων μπορεί να γίνει χρησιµοποιώντας απλά ένα τηλέφωνο ή µια ταµπλέτα που τρέχει το λειτουργικό αυτό σύστηµα [12]. Σελ. 40 από 129

41 2. Εργαλεία ανάπτυξης εφαρμογής Μέσω του Android software development προκύπτουν ολοένα και νέες εφαρµογές που δηµιουργούνται για το λειτουργικό σύστηµα Android. Οι εφαρµογές αναπτύσσονται στη γλώσσα προγραµµατισµού Java που χρησιµοποιεί το Android. Απο τον Ιούλιο του 2013, περισσότερα από 1 εκατομμύριο εφαρμογές έχουν αναπτυχθεί για το Android, με πάνω από 25 δισεκατομμύρια downloads. Παρακάτω παρουσιάζονται τα εργαλεία που χρησιμοποιήθηκαν στην εκπόνηση της πτυχιακής. 2.1 Android SDK Το Android SDK παρέχει τα απαραίτητα εργαλεία για την ανάπτυξη προγραµµάτων χρησιµοποιώντας την γλώσσα προγραµµατισµού Java. Τα χαρακτηριστικά του παρέχουν τεράστια ευελιξία και δυνατότητα ανάπτυξης έξυπνων εφαρµογών για κινητά τηλέφωνα, παρέχοντας δυνατότητες ανάπτυξης σε επιχειρηµατίες όλων των κλάδων, είτε πρόκειται για αυτοµατοποίηση πωλήσεων, ψυχαγωγία, παιχνίδια αλλά και κάθε άλλου είδους επιχειρήσεις. Παρέχονται APIs για την χρήση προγραμμάτων περιήγησης στο διαδίκτυο, εµφάνιση δισδιάστατων και τρισδιάστατων γραφικών, χρήση των τεχνολογιών GSM, Bluetooth, EDGE, 3G και WiFi, χρήση συσκευών όπως φωτογραφική µηχανή, GPS, πυξίδα, επιταχυνσιόµετρο, δοµηµένη αποθήκευση δεδοµένων σε βάση δεδοµένων, εµφάνιση πολυµεσικού υλικού (ήχος, βίντεο, εικόνες). Το πακέτο Android SDK συνεργάζεται µε το Eclipse και το Android Studio ευνοώντας την ανάπτυξη εφαρµογών και συνεπώς ο προγραµµατιστής µπορεί εύκολα και γρήγορα να βλέπει τις αλλαγές του κώδικα στον emulator που του παρέχει το Android SDK, χωρίς να χρειάζεται να εξάγει κάθε φορά την εφαρµογή και να την εγκαθιστά σε κινητό. Επίσης, ο emulator, έχει ακριβώς την ίδια συµπεριφορά µε αυτή που θα είχε η εφαρµογή εάν είχε εγκατασταθεί σε ένα κινητό τηλέφωνο Android, κάτι που το καθιστά πολύ αξιόπιστο. Σε αναβαθµίσεις λογισµικού, η εφαρµογή εξακολουθεί να δουλεύει χωρίς την ανάγκη επανασχεδιασµού κάποιων Σελ. 41 από 129

42 2 - Εργαλεία ανάπτυξης εφαρμογής σηµαντικών κοµµατιών του κώδικα, που αφορούν την αλληλεπίδραση της εφαρµογής µε τα δοµικά µέρη του κινητού τηλεφώνου κάτι που αποτελεί άλλο ένα σηµαντικό πλεονέκτηµα Χαρακτηριστικά του SDK To Android SDK αποτελεί ένα πολύ χρήσιµο εργαλείο για την εξερεύνηση του «εσωτερικού» του Android. Παρακάτω, παρουσιάζονται τα χαρακτηριστικά του. Βελτιστοποιηµένη Dalvik εικονική µηχανή για κινητές συσκευές Εφαρµογή πλαισίου που επιτρέπει την επαναχρησιµοποίηση και την αντικατάσταση στοιχείων Βελτιστοποιηµένα γραφικά, τα οποία τροφοδοτούνται από µια προσαρµοσµένη βιβλιοθήκη 2D και 3D SQLite για αποθήκευση δεδοµένων GSM Τηλεφωνία Υποστήριξη πολυµέσων για αρχεία ήχου, βίντεο και εικόνων (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) Bluetooth, EDGE, 3G, WiFi (εξαρτώµενα από το hardware) Πλούσιο περιβάλλον ανάπτυξης, συµπεριλαµβανοµένου ενός εξοµοιωτή συσκευής Εργαλεία για τον εντοπισµό σφαλµάτων Ολοκληρωµένο πρόγραµµα περιήγησης Φωτογραφική µηχανή GPS, πυξίδα, και επιταχυνσιόµετρο Ο εξοµοιωτής (emulator) Το Android SDK περιλαµβάνει έναν εξοµοιωτή µιας εικονικής κινητής συσκευής, η οποία τρέχει το λειτουργικό του Android, προκειµένου να γίνει ευκολότερη η διαδικασία της ανάπτυξης και αποσφαλµάτωσης µιας εφαρµογής. Έτσι δεν είναι η αναγκαία η ύπαρξη πραγµατικής κινητής συσκευής για την εκτέλεση και δοκιµή των εφαρµογών. Ο εξοµοιωτής Σελ. 42 από 129

43 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα προσοµοιώνει ένα µεγάλο πλήθος λειτουργιών µιας τυπικής συσκευής, η οποία τρέχει το Android: Παρέχει µια οθόνη για την προβολή των εφαρµογών που τρέχουν Παρέχει ποικιλία πλήκτρων πλοήγησης και ελέγχου Επιτρέπει στις εφαρµογές την χρήση των υπηρεσιών που προσφέρει η πλατφόρµα του Android, δηλαδή την ειδοποίηση χρήστη, την κλήση άλλων εφαρµογών, την αναπαραγωγή ήχου και βίντεο, την πρόσβαση στο δίκτυο, το γραφικό περιβάλλον του Android, την αποθήκευση και επαναφορά δεδοµένων. Παρέχει πλήθος λειτουργιών για την ευκολότερη αποσφαλµάτωση: Προσοµοίωση καθυστέρησης και απώλειας στο κανάλι δεδοµένων Προσοµοίωση διακοπών (όπως SMS μήνυμα ή τηλεφωνική κλήση) Προσοµοίωση λήψης δεδοµένων θέσης από την συσκευή GPS. Κονσόλα για την καταγραφή της εξόδου του πυρήνα [15] Άλλα εργαλεία του Android Το Android SDK περιλαµβάνει µερικά ακόµη εργαλεία για την ανάπτυξη εφαρµογών: Το Dalvik Debug Monitor Service (DDMS), το οποίο επιτρέπει την διαχείριση των διεργασιών στον εξοµοιωτή ή στην συσκευή. Συγκεκριµένα δίνεται η δυνατότητα λήψη screenshots, εµφάνιση πληροφοριών για τον σωρό και τα νήµατα, port-forwarding υπηρεσιών, εμφάνιση αρχείου καταγραφής (logcat), προσοµοίωση εισερχόµενων κλήσεων και µηνυµάτων, προσοµοίωση δεδοµένων θέσης κ.α. Την Android Debug Bridge (ADB), η οποία επιτρέπει την διαχείριση της κατάστασης του εξοµοιωτή ή της συσκευής. Μέσω του ADB είναι δυνατή η εκτέλεση εντολών φλοιού, η διαχείριση της προώθησης θυρών και η αντιγραφή από και προς την συσκευή ή τον εξοµοιωτή. Σελ. 43 από 129

44 2 - Εργαλεία ανάπτυξης εφαρμογής Το Android Asset Packaging Tool (AAPT), το οποίο δίνει την δυνατότητα δηµιουργίας.apk αρχείων τα οποία περιέχουν τα εκτελέσιµα αρχεία και τους πόρους µιας εφαρµογής. Την Android Interface Description Language (AIDL), η οποία επιτρέπει την δηµιουργία κώδικα που επιτρέπει σε δύο διεργασίες σε µια συσκευή βασισµένη στο Android να συνοµιλούν χρησιµοποιώντας διαδιεργασιακή επικοινωνία. Την βιβλιοθήκη sqlite3, που επιτρέπει την πρόσβαση στα δεδοµένα της SQLite που δηµιουργούνται από τις διάφορες εφαρµογές. Το Traceview, που επιτρέπει την γραφική προβολή της ανάλυσης των trace log data που δηµιουργούν οι διάφορες εφαρµογές. Το mksdcard, το οποίο βοηθά στην δηµιουργία εικονικού δίσκου ο οποίος µπορεί να χρησιµοποιηθεί από τον εξοµοιωτή για την προσοµοίωση της παρουσίας εξωτερικής αποθηκευτικής κάρτας (όπως η SD card). Το dx tool, το οποίο µετατρέπει τα αρχεία.class από java bytecode σε Android bytecode. To UI/Application Exerciser Monkey, το οποίο είναι ένα πρόγραµµα που τρέχει στον εξοµοιωτή και παράγει ψευδό-τυχαίες σειρές από συµβάντα χρήστη όπως clicks, touches, gestures καθώς επίσης και έναν αριθµό από συµβάντα συστήµατος. Το activitycreator, το οποίο είναι ένα script που δηµιουργεί Ant build αρχεία τα οποία µπορούν να χρησιµοποιηθούν για την µεταγλώττιση των εφαρµογών [13] Εγκατάσταση του Android SDK 1. Από τη σελίδα κατεβάστε την εφαρμογή. Σελ. 44 από 129

45 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Εικόνα 18. Κατέβασμα εφαρμογής 2. Κάντε διπλό κλικ στο εκτελέσιμο αρχείο (.exe) για να ξεκινήσει η εγκατάσταση. Σημειώστε το όνομα και τη θέση στην οποία αποθηκεύεται το SDK διότο θα χρειαστεί να αναφερθείτε στον κατάλογο SDK αργότερα, κατά τη δημιουργία των plugin ADT και κατά τη χρήση των εργαλείων SDK από τη γραμμή εντολών. Μόλις ολοκληρωθεί η εγκατάσταση μπορείτε να ξεκινήσετε την Διαχείριση Android SDK. Εικόνα 19. Εγκατάσταση Android SDK Το Android Studio πρόκειται για ένα Android περιβάλλον ανάπτυξης που βασίζεται στο IntelliJ IDEA και είναι ειδικά σχεδιασμένα για την ανάπτυξη του Android. Εγκαινιάστηκε στις 16 Μαΐου 2013, κατά τη Σελ. 45 από 129

46 2 - Εργαλεία ανάπτυξης εφαρμογής διάρκεια της ετήσιας εκδήλωσης της Google I/O Περιέχει όλα τα Android SDK Εργαλεία για το σχεδιασμό, τη δοκιμή, την αποσφαλμάτωση και το προφίλ της εφαρμογής σας. Με την εξέταση των εργαλείων ανάπτυξης και του περιβάλλοντος, μπορούμε να πούμε οτι είναι παρόμοιο με το eclispe και την ADT plug-in, αλλά όπως ανέφερα παραπάνω το Android της επικεντρώνεται στο IDE. Υπάρχουν πολλά δροσερά χαρακτηριστικά που είναι διαθέσιμα στο Android Studio που μπορούν να προωθήσουν και να αυξήσουν την παραγωγική ανάπτυξη σας [14]. 2.2 Android Studio Εικόνα 20. Android Studio Χαρακτηριστικά του Android Studio Όπως έχω προαναφέρει είναι παρόμοιο με το Eclipse, αλλά το Android Studio έχει πολλά νέα χαρακτηριστικά γνωρίσματα που μπορούν να προωθήσουν και θα μπορούσαν να βοηθήσουν να αυξήσετε την παραγωγικη ανάπτυξη σας. Παρακάτω παρουσιάζονται τα χαρακτηριστικά του: Πολλαπλά βοηθήματα για την επεξεργασία του κώδικα (έξυπνη επεξεργασία, code re-factoring) Σελ. 46 από 129

47 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Πλούσιο επεξεργαστή κειμένου που σας επιτρέπει να κάνετε dragand-drop στα στοιχεία του UI, σχεδιαγράμματα προεπισκόπηση ςσε πολλαπλές διαμορφώσεις οθόνης, και πολλά άλλα. Ο σχεδιασμός της διάταξης μπορεί να γίνει με πολύ πιο γρήγορα τρόπο συγκριτικά με το Eclipse Υποστήριξη Gradle και Maven Πρότυπο που βασίζεται σε μάγους για τη δημιουργία κοινών Android σχεδιασμών και υλικών. Ανάλυση του Lint tool (Το Android εργαλείο Lint είναι ένα στατικό εργαλείο ανάλυσης κώδικα, που ελέγχει τα Android αρχεία προέλευσης του έργου σας, για πιθανά σφάλματα και βελτιώσεις που αφορούν την ορθότητα, την ασφάλεια, τις επιδόσεις, τη χρηστικότητα, την προσβασιμότητα και την διεθνοποίηση του κώδικα. Ενσωματωμένη υποστήριξη για την πλατφόρμα Cloud Google, η οποία ενσωματώνει το Google Cloud Messaging και App Engine ως server-side συστατικά. Θέμα Darcula. Στην πραγματικότητα πρόκειται για ένα θέμα με βάση το μαύρο χρώμα. Μπορείτε να ρυθμίσετε το θέμα dracula στο Android Studio από: File> Settings> IDE Ρυθμίσεις> Εμφάνιση> Θέμα: Darcula. Εικόνα 21. Θέμα Darcula Σελ. 47 από 129

48 2 - Εργαλεία ανάπτυξης εφαρμογής Προεπισκόπηση όλων των τύπων και προσανατολισμών οθονών. Μπορούμε να το θεωρήσουμε ως χαρακτηριστικό του Rich layout editor. Με αυτό το προνόμιο, ο χρήστης μπορεί να σχεδιάσει σχεδιαγράμματα και μπορεί να ελέγξει τα σχεδιαγράμματα με προεπισκόπηση σε όλες τις εκδοχές. Βοηθά στην πραγματικότητα τον χρήστη, να βελτιώσει το σχεδιασμό της διάταξης, ενώ του παρέχει συμβατότητα σε διάφορες διαθέσιμες αναλύσεις. Εικόνα 22. Προεπισκόπηση όλων των οθονών Device framed screen capture. Μας παρέχει τη δυνατότητα να συλλάβουμε άμεσα και να δημιουργήσουμε ένα screenshot της εφαρμογής μας. Εικόνα 23. Device framed screen capture Σελ. 48 από 129

49 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Προεπισκόπηση με χρώμα. Ένα χαρακτηριστικό χρήσιμο, ενώ εργάζομαστε σε μεγάλα έργα. Ενώ στο Eclipse επρέπε να έχουμε το 3rd party επιλογέα χρώματος, εδώ αυτό το χαρακτηριστικό μας δίνει το προνόμιο να επιλέξουμε το χρώμα από το build-επιλογέα. Εικόνα 24. Προεπισκόπηση με χρώμα Hard coded Strings. Κάθε φορά που χρησιμοποιούμε string πόρων από το strings.xml τότε εμφανίζεται η πραγματική αξία αντί για το όνομα της μεταβλητής. Εικόνα 25. Hard coded Strings Δημιουργία διάταξης παραλλαγής. Παρέχει τη δυνατότητα να δημιουργήσετε διάταξης παραλλαγής άμεσα, για παράδειγμα: διάταξη για τη μεγάλη οθόνη, διάταξη για την πολύ μεγάλη οθόνη, κλπ [16] [17]. Σελ. 49 από 129

50 2 - Εργαλεία ανάπτυξης εφαρμογής Εικόνα 26. Δημιουργία διάταξης παραλλαγής Εγκατάσταση του Android Studio 1. Λήψη της εφαρμογής Android Studio από την παρακάτω διεύθυνση: Τρέξτε το αρχείο που κατεβάσατε. Ακολουθήστε τον οδηγό εγκατάστασης για να εγκαταστήσετε το Android Studio. Εικόνα 27. Κατέβασμα εφαρμογής Android Studio 2. Οταν εμφανιστεί αυτή η οθόνη της Εικόνα 28 πατήστε Next (Επόμενο). 3. Στην οθόνη της Εικόνα 29 διαλέγεται εάν το πρόγραμμα θα εγκτασταθεί για όλους τους χρήστες του υπολογιστή η μόνο για εσάς. Μετά πατήστε Next. Σελ. 50 από 129

51 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Εικόνα 28. Καλωσόρισμα στον οδηγό εγκατάστασης Εικόνα 29. Επιλογη χρηστών Σελ. 51 από 129

52 2 - Εργαλεία ανάπτυξης εφαρμογής Εικόνα 30. Επιλογή τοποθεσίας εγκτάστασης 4. Στην Εικόνα 30 διαλέγετε που θα εγκτασταθεί το πρόγραμμα. Με την επιλογή Browse διαλέγεται το που θα εγκατασταθεί. Πατήστε μετά Next. Εικόνα 31. Πρόοδος εγκατάστασης Σελ. 52 από 129

53 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Εικόνα 32. Τέλος εγκατάστασης 5. Όταν εμφανιστεί αυτή η οθόνη Εικόνα 32 η εγκατάσταση έχει ολοκληρωθεί. Πατήστε Finish και είστε έτοιμοι να τρέξετε το πρόγραμμα [18]. Σελ. 53 από 129

54 3. Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Μέσω του Android software development προκύπτουν ολοένα και νέες εφαρµογές που δηµιουργούνται για το λειτουργικό σύστηµα Android. Οι εφαρµογές αναπτύσσονται στη γλώσσα προγραµµατισµού Java που χρησιµοποιεί το Android. Απο τον Ιούλιο του 2013, περισσότερα από 1 εκατομμύριο εφαρμογές έχουν αναπτυχθεί για το Android, με πάνω από 25 δισεκατομμύρια downloads. Παρακάτω παρουσιάζονται τα εργαλεία που χρησιμοποιήθηκαν στην εκπόνηση της πτυχιακής. 3.1 Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Όταν αγοράζoυμε ένα αυτοκίνητο, οι περισσότεροι άνθρωποι πραγματικά δεν αντιλαμβανόμαστε πόσο κοστίζει η συντήρηση του. Με τις εφαρμογές διαχείρησης αυτοκινήτου (Car management), μπορούμε να καταγράψουμε τα έξοδα του αυτοκινήτου, ώστε να δούμε πραγματικά πόσο μας κοστίζει. Με αυτές τις εφαρμογές μπορούμε να έχουμε μια περιληπτική εικόνα στο ποσό των χρημάτων που ξοδέψαμε σε: Καύσιμα Λάδια Ασφάλειες Σέρβις Ελαστικά Κ.Τ.Ε.Ο κτλ Σελ. 54 από 129

55 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα 3.2 Ανάλυση μερικών υπάρχοντων εφαρμογών Car Manager Εικόνα 33. Car Manager Πρόκειται για μια εφαρμογή που περιέχει λογιστικές πληροφορίες για τη συντήρηση του κάθε οχήματος. Περιλαμβάνει την εξέταση των καυσίμων, επισκευές, άλλα έξοδα (στάθμευσης, ασφάλειας, διανυθέντα χιλιόμετρα του αυτοκινήτου κλπ) [19]. Επίσης μας παρέχει: Φιλική προς το χρήστη διεπαφή Λογιστικές πληροφορίες σχετικά με τον ανεφοδιασμό, επισκευές και άλλες κατηγορίες δαπανών Υπολογισμός της αποδοτικότητας των καυσίμων σε διαφορετικές μονάδες (mpg, λίτρα ανά 100 χλμ., κλπ) Μία ποικιλία διαφορετικών στατιστικών Υπολογισμός του κόστους της ιδιοκτησίας ενός οχήματος Πολλά διαφορετικά διαγράμματα Υποστήριξη για πολλαπλά οχήματα / αυτοκίνητα Υπενθυμίσεις της απαιτούμενης δαπάνης ή της υπηρεσίας Όπως βλέπουμε στην αρχική οθόνη Εικόνα 34. Αρχική οθόνη Car Manager Εικόνα 35. Νέος ανεφοδιασμός στο Car Manager πρόκειται για ένα πολύ απλό πρόγραμμα. Μπορούμε να διαλέξουμε ένα από τα παρακάτω: a) Προσθέστε ανεφοδιασμό b) Προσθέστε σέρβις Σελ. 55 από 129

56 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου c) Προσθέστε έξοδο d) Προσθεστε έσοδο. Κάτω απο τις επιλογές αυτές μας εμφανίζει το σύνολο των εξόδων κ εσόδων του αυτοκινήτου μας. Συνοπτικά θα παρουσιάσουμε τις τέσσερις αυτές κατηγορίες καταχήρησης που προσφέρει το πρόγραμμα, μαζί με screenshots για κάθε ενέργεια. Εικόνα 34. Αρχική οθόνη Car Manager Εικόνα 35. Νέος ανεφοδιασμός στο Car Manager Διαλέγοντας το προσθέστε ανεφοδιασμό μας εμφανίζεται η οθόνη αυτη (Εικόνα 35), οπου εισάγουμε: Χιλιόμετρα Ημερομηνία Τιμή Σύνολο Είδος Καυσίμου Σελ. 56 από 129

57 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Βενζινάδικο Σημειώσεις Οι καταχωρήσεις αποθηκεύονται με το πάτημα του εικονιδίου με τη δισκέτα στο πάνω δεξιό μέρος της οθόνης. Εικόνα 36. Καρτέλα νέο σέρβις στο Car Manager Πατώντας προσθέστε σέρβις μας εμφανίζετε η Εικόνα 36, όπου εισάγουμε: Χιλιόμετρα Ημερομηνία Σύνολο Σημειώσεις Πατώντας στο πεδίο Όνομα μας εμφανίζεται η σχετική λίστα με διάφορα μέρη του αυτοκινήτου που είναι πιθανόν να κάνουμε σέρβις. Από την αρχική οθόνη πατώντας προσθέστε έξοδα μας εμφανίζετε η Εικόνα 37 όπου εισάγουμε: Σελ. 57 από 129

58 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Χιλιόμετρα Ημερομηνία Σύνολο Σημειώσεις Εικόνα 37. Καρτέλα νέα έξοδα στο Car Manager Πατώντας στο πεδίο Όνομα μας εμφανίζεται η σχετική λίστα με διάφορα έξοδα του αυτοκινήτου μας. Από την αρχική οθόνη πάλι, πατώντας προσθέστε έσοδα μας εμφανίζετε η Εικόνα 38 όπου εισάγουμε: Χιλιόμετρα Είδος εσόδου Ημερομηνία Σύνολο Σημειώσεις Τέλος πατώντας πάνω στα στατιστικά μας εμφανίζει τις οθόνες της Εικόνα 39, όπου βλέπουμε αναλυτικά τα έξοδα του αυτοκινήτου μας. Σελ. 58 από 129

59 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Εικόνα 38. Καρτέλα νέα έσοδα στο Car Manager Εικόνα 39. Στατιστικά στο Car Manager Σελ. 59 από 129

60 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Carango Εικόνα 40. Carango Το Carango είναι μιά μικρή αλλά αποτελεσματική εφαρμογή, για να μας βοηθήσει να διαχειριστούμε όλες τις σχετικές πληροφορίες, σχετικά με τα οχήματα μας. Με ένα απλό, επαγγελματικό περιβάλλον θα είναι διασκεδαστικό να διαχειριζόμαστε όλες τις πληροφορίες του αυτοκινήτου μας. Με το Carango μπορούμε να παρακολουθούμε την κατανάλωση καυσίμου, τις συντηρήσεις και το κόστος των υπηρεσιών για κάθε είδους όχημα. Είτε πρόκειται για ένα αυτοκίνητο ή ένα μηχανάκι, το Carango έχει όλα όσα χρειαζόμαστε για να μας βοηθήσει να ξέρουμε ακριβώς πόσο ακριβό είναι το όχημά μας [20]. Το Carango περιέχει πολλά χρήσιμα στατιστικά στοιχεία όπως η κατανάλωση καυσίμου (MPG, Km/L, λ/100χλμ, κλπ...), το συνολικό κόστος και τα χιλιόμετρα περιλιπτικά, το μέσο κόστος ανά απόσταση, τα έξοδα και πολλά άλλα. Δεν υπάρχει όριο στο πλήθος των καταχωρήσεων που μπορούμε να εισάγουμε. Επίσης περιέχει υπενθυμίσεις για προγραμματισμένες υπηρεσίες όπως επόμενη αλλαγή λαδιού, αντικατάσταση ελαστικών, γενική επιθεώρηση και πολλά άλλα. Χαρακτηριστικά : Πολλαπλές μονάδες μέτρησης Υποστήριξη πολλαπλών οχημάτων Αναλυτικά στατιστικά ανά τύπου καυσίμου 5 ενημερωτικά γραφήματα Σελ. 60 από 129

61 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Υπολογισμός χιλιομέτρων κ κατανάλωσης καυσίμου Υπενθυμίσεις υπηρεσιών και ειδοποιήσεις Πληροφορίες ασφάλισης Δημιουργία αντιγράφων ασφαλείας και επαναφορά Εικόνα 41. Εισαγωγή νέου οχήματος στο Carango Το πρώτο πράγμα που πρέπει να κάνουμε μόλις εκκινήσουμε την εφαρμογή είναι να εισάγουμε τα στοιχεία του αυτοκινήτου μας (Εικόνα 41). Τα στοιχεία που πρέπει να εισάγουμε είναι τα εξής: Αριθμός πινακίδας Μάρκα αυτοκινήτου Μοντέλο αυτοκινήτου Χιλιόμετρα Χωρητικότητα ρεζερβουάρ Το μενού της εφαρμογής ειναι απλό και εύχρηστο (Εικόνα 42). Οι επιλογές που μας παρέχει ειναι: Σελ. 61 από 129

62 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Καύσιμα Λάδια Σέρβις Υπενθυμίσεις Έξοδα Ασφάλεια Περίληψη Διαγράμματα Εικόνα 42. Μενού στο Carango Πατώντας καύσιμα στο μενού μας εμφανίζεται η οθόνη στην Εικόνα 43, όπου εισάγουμε: Ημερομηνία ανεφοδιασμού Συνολικό κόστος, τιμή καυσίμου ανά λίτρο και αιρθμός λίτρων Χιλιόμετρα Είδος καυσίμου Βενζινάδικο Σελ. 62 από 129

63 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Εικόνα 43. Καρτέλα καύσιμα στο Carango Εικόνα 44. Καρτέλα λάδια στο Carango Σελ. 63 από 129

64 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Επιλέγοντας λάδια στο μενού μας εμφανίζεται η οθόνη της Εικόνα 44, όπου εισάγουμε: Ημερομηνία αλλαγής Συνολικό κόστος Λίτρα Χιλιόμετρα Επόμενη αλλαγή Τοποθεσία αλλαγής Εικόνα 45. Καρτέλα νέο σέρβις στο Carango Επιλέγοντας σέρβις στο μενού μας εμφανίζεται η εξής οθόνη (Εικόνα 45), όπου εισάγουμε: Ημερομηνία σέρβις Είδος σέρβις Συνολικό κόστος Χιλιόμετρα Τοποθεσία σέρβις Σελ. 64 από 129

65 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Λεπτομέρειες σέρβις Πατώντας στο πεδίο είδος σέρβις μας εμφανίζεται η σχετική λίστα με διάφορα μέρη του αυτοκινήτου που είναι πιθανόν να κάνουμε σέρβις. Εικόνα 46. Καρτέλα νέα έξοδα στο Carango Επιλέγοντας έξοδα στο μενού μας εμφανίζεται η Εικόνα 46, όπου εισάγουμε: Ημερομηνία έξοδου Τύπος εξόδου Συνολικό κόστος Χιλιόμετρα Τοποθεσία εξόδου Λεπτομέρειες εξόδου Πατώντας στο πεδίο είδος εξόδου μας εμφανίζεται η σχετική λίστα με διάφορα έξοδα του αυτοκινήτου μας. Επιλέγοντας ασφάλιση στο μενού μας εμφανίζεται η οθόνη στην Σελ. 65 από 129

66 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Εικόνα 47. Καρτέλα ασφάλιση στο Carango Εικόνα 48. Καρτέλα περίληψη στο Carango όπου εισάγουμε: Ημερομηνία πληρωμής Εταιρεία Ταυτότητα ασφάλισης Κόστος Ημερομηνία λήξης Αριθμός έκτακτης ανάγκης Περισσότερες λεπτομέρειες Εικόνα 47. Καρτέλα ασφάλιση στο Carango Εικόνα 48. Καρτέλα περίληψη στο Carango Επιλέγοντας περίληψη στο μενού μας εμφανίζεται η Error! Reference source not found., όπου μας εμφανίζει: Την περίληψη του αυτοκινήτου, η οποία μας δείχνει: Την απόσταση που έχουμε διανύσει Τα χρήματα που έχουμε ξοδέψει Σελ. 66 από 129

67 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Το κόστος άνα χιλιόμετρο Την περίληψη των ανεφοδιασμών, η οποία μας δείχνει: Το συνολικό κόστος Τα λίτρα Τον μέσο όρο χιλιομέτρων άνα λίτρου Την συχνότητα άνα μήνα Τον μέσο όρο γεμισμάτων ρεζερβουάρ άνα μήνα Την περίληψη για την βενζίνη, η οποία μας δείχνει: Την ελάχιστη και μέγιστη τιμή και το μέσο όρο αυτής Την ελάχιστη και μέγιστη κατανάλωση και το μέσο όρο της Το ελάχιστο και μέγιστο κόστος άνα απόσταση και το μέσο όρο Εικόνα 49. Καρτέλα διαγραμμάτων στο Carango Επιλέγοντας διαγράμματα στο μενού μας εμφανίζεται η εξής οθόνη (Εικόνα 49), όπου μας δείχνει διαγράμματα για: Την κατανάλωση καυσίμου Την τιμή άνα κόστος απόστασης Την εξέλιξη της τιμής του καυσίμου Σελ. 67 από 129

68 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Την κατανάλωση άνα βενζινάδικο Την διανομή του καυσίμου Wheels Εικόνα 50. Wheels Το Wheels είναι μια εφαρμογή που θα κάνει τη ζωή σας εύκολη εισάγοντας απλά μερικές λεπτομέρειες για το όχημά σας. Προσφέρει χρήσιμα στατιστικά στοιχεία, όπως την οικονομία καυσίμου του οχήματος, το συνολικό κόστος με βάση τα χιλιόμετρα, το μέσο κόστος ανά απόσταση ή το ποσό του φυσικού αερίου, το μέσο κόστος ανά μήνα κτλ. Επιπλέον, η εφαρμογή αυτή θα σας επιτρέπει να παρακολουθείτε όλα τα έξοδα συντήρησης, περιλαμβανομένης της ασφάλισης, ετήσιες πληρωμές φόρων, υπηρεσίες κλπ. Είναι μιά εφαρμογή πολύ φιλική προς το χρήστη. Τα στατιστικά γραφήματα και οι διεπαφές είναι πολύ ελκυστικές και ο καθένας μπορεί να τις χρησιμοποιήσει με ευκολία [21]. Χαρακτηριστικά: Διαχειριστείτε όλα τα οχήματα σας σε μία εφαρμογή (αυτοκίνητα, SUV, φορτηγά, ποδήλατα κλπ.) Φιλικό περιβάλλον Καταγράψτε άλλα συναφή έξοδα, όπως επισκευές, κόστος ανταλλακτικών κλπ... Εκτελέστε διάφορους υπολογισμούς με βάση τα δεδομένα του ιστορικού σας Σελ. 68 από 129

69 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Το πρώτο πράγμα που πρέπει να κάνουμε μόλις εκκινήσουμε την εφαρμογή είναι να εισάγουμε τα στοιχεία του αυτοκινήτου μας (Εικόνα 51). Τα στοιχεία που πρέπει να εισάγουμε είναι τα εξής: Μάρκα αυτοκινήτου Μοντέλο αυτοκινήτου Σημειώσεις Χωρητικότητα ρεζερβουάρ Χρονολογία αυτοκινήτου Χιλιόμετρα Τύπος βενζίνης Αριθμός πινακίδας Κόστος άδειας Αν θέλουμε να διαχειριστούμε πολλαπλά οχήματα δεν έχουμε παρά να επαναλάβουμε τη διαδικασία, καταχωρώντας ξεχωριστά για κάθε όχημα τα στοιχεία του. Σελ. 69 από 129

70 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Εικόνα 51. Καρτέλα νέου οχήματος στο Wheels Μόλις αποθηκεύσουμε τουλάχιστον ένα όχημα μπορούμε να αρχίσουμε να καταχωρούμε έξοδα και να παρακολουθούμε το κόστος του. Σελ. 70 από 129

71 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Εικόνα 52. Αρχικό μενού στο Wheels Το αρχικό μενού της εφαρμογής (Εικόνα 52), μας εμφανίζει ένα ταμπλό επιλογών, μέσω του οποίου μπορούμε να προσθέσουμε: Νέο ανεφοδιασμό Νέο έξοδο Υπενθυμίσεις Διαγράμματα Τα οχήματα μου Ρυθμίσεις Στατιστικά Βοήθεια Σχετικά με την εφαρμογή Κάτω από αυτές τις επιλογές μπορούμε να δούμε την περίληψη των ανεφοδιασμών μας. Σελ. 71 από 129

72 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Εικόνα 53. Καρτέλα νέου ανεφοδιασμού στο Wheels Εικόνα 54. Καρτέλα νέου σέρβις στο Wheels Επιλέγοντας νέο ανεφοδιασμό απο το μενού μας εμφανίζεται η εξής οθόνη (Error! Reference source not found.), όπου εισάγουμε: Χιλιόμετρα Τιμή λίτρου Συνολικό κόστος Ημερομηνία Είδος καυσίμου Σημειώσεις Επιλέγοντας νέο σέρβις απο το μενού μας εμφανίζεται η εξής οθόνη (Εικόνα 54), όπου εισάγουμε: Χιλιόμετρα Επιλογή είδους σέρβις Περιγραφή Σελ. 72 από 129

73 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Ημερομηνία Επιλογή κέντρου σέρβις Τύπος πληρωμής Εικόνα 55. Καρτέλα στατιστικών στο Wheels Επιλέγοντας στατιστικά απο το μενού μας εμφανίζεται η εξής οθόνη (Εικόνα 55), όπου βλέπουμε διαφορα στατιστικά για το όχημα μας όπως: Μέσος όρος κατανάλωσης (συνολικά και τις τελευταίες 5 μέρες) Μέσο κόστος άνα χιλιόμετρο (συνολικά και τις τελευταίες 5 μέρες) Χιλιόμετρα Συνολική απόσταση σε μίλια Ημερήσια έξοδα Μηνιαία έξοδα Ετήσια έξοδα Συνολικά έξοδα Σελ. 73 από 129

74 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Εικόνα 56. Καρτέλα διαγραμμάτων στο Wheels Επιλέγοντας διαγράμματα απο το μενού μας εμφανίζεται η εξής οθόνη (Εικόνα 56), όπου βλέπουμε διάφορα διαγράμματα για το όχημα μας όπως: Κατανάλωση άνα ανεφοδιασμό Τιμή βενζίνης άνα ανεφοδιασμό Κόστος άνα ανεφοδιασμό Χιλιόμετρα άνα ανεφοδιασμό Σελ. 74 από 129

75 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα acar Εικόνα 57. acar Το acar είναι μια εφαρμογή όλα-σε-ένα για να παρακολουθείτε αποτελεσματικά τα έξοδα του καυσίμου, το κόστος συντήρησης, τα ταξίδια άνα αποστάση και τα γενικά έξοδα των οχημάτων σας. Μαζί με το φιλικό προς το χρήστη περιβάλλον εργασίας του, το acar θα σας προσφέρει πληθώρα λεπτομερών στατιστικών, πληροφοριών, γραφημάτων και αναφορών για να σας ενημερώσει για τις επιδόσεις των οχήματά σας κάθε στιγμή. Προσφέρει υπενθυμίσεις για προγραμματισμένες εργασίες συντήρησης (είτε πρόκειται για αλλαγή φίλτρου αέρα, λάδι κινητήρα ή ελέγχου, κλπ.), ακόμη και αν το acar δεν εκτελείται. Μπορείτε επίσης να παρακολουθείτε τα ταξίδια σας λεπτομερώς [22]. Χαρακτηριστικά : Πολύ μοντέρνο και φιλικό προς το χρήστη περιβάλλον Λεπτομερείς στατιστικά για το όχημά σας Διαγράμματα για γεμίσματα, υπηρεσίες, έξοδα και ταξίδια Πολύ εύκολη και ανώδυνη εισαγωγή δεδομένων Υποστήριξη πολλαπλών οχημάτων Υποστήριξη γεωγραφικών θέσεων (GPS) Η κύρια οθόνη εμφανίζει ένα ταμπλώ επιλογών όπως φαίνεται στην Εικόνα 58 μέσω του οποίου μπορούμε να προσθέσουμε: Νέο ανεφοδιασμό Νέο σέρβις Νέα έξοδα Σελ. 75 από 129

76 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Νέο ταξίδι Νέο όχημα Υπενθυμίσεις Αναζήτηση αρχείων Στατιστικές Διαγράμματα Διαχείρηση Ρυθμίσεις Εισαγωγή/Εξαγωγή Προβλεψεις Εικόνα 58. Αρχική οθόνη στο acar Εικόνα 59. Στατιστικά και διαγράμματα στο acar Κάτω από την αρχική οθόνη (Error! Reference source not found.), βλέπουμε με μια ματιά, την εικόνα του οχήματος μας με διάφορα στατιστικά και διαγράμματα. Σελ. 76 από 129

77 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Εικόνα 58. Καρτέλα νέου ανεφοδιασμού στο acar Επιλέγοντας νέο ανεφοδιασμό μας εμφανίζεται το εξής μενού (Εικόνα 58), όπου εισάγουμε: Χιλιόμετρα Τιμή/Λίτρου Λίτρα Συνολικό κόστος Όχημα Ημερομηνία/Ώρα Τύπος πληρωμής Κατηγορία καυσίμου Είδος καυσίμου Σελ. 77 από 129

78 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Εικόνα 59 Καρτέλα νέου σέρβις στο acar Επιλέγοντας νέο σέρβις μας εμφανίζεται το εξής μενού (Εικόνα 59), όπου εισάγουμε: Χιλιόμετρα Είσος σέρβις Συνολικό κόστος Όχημα Ημερομηνία/Ώρα Τύπος πληρωμής Όνομα κέντρου σέρβις Διεύθυνση Ετικέτες Σελ. 78 από 129

79 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Εικόνα 60. Καρτέλα νέο έξοδο στο acar Επιλέγοντας νέο έξοδο μας εμφανίζεται το εξής μενού (Εικόνα 60), όπου εισάγουμε: Χιλιόμετρα Είδος εξόδου Συνολικό κόστος Όχημα Ημερομηνία/Ώρα Τύπος πληρωμής Όνομα κέντρου εξόδων Διεύθυνση Ετικέτες Σημειώσεις Πατώντας στο πεδίο είδος εξόδου μας εμφανίζεται η σχετική λίστα με διάφορα έξοδα του αυτοκινήτου μας. Σελ. 79 από 129

80 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Εικόνα 61. Καρτέλα νέο ταξίδι στο acar Επιλέγοντας νέο ταξίδι μας εμφανίζεται το εξής μενού (Εικόνα 61), όπου εισάγουμε: Είδος ταξιδιού Σκοπός ταξιδιού Πελάτης Όχημα Ημερομηνία/Ώρα αναχώρησης Χιλιόμετρα Τοποθεσία αναχώρησης Ημερομηνία/Ώρα άφιξης Χιλιόμετρα Τοποθεσία άφιξης Σελ. 80 από 129

81 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Εικόνα 64. Στατιστικά στο acar Εικόνα 65. Διαγράμματα στο acar Επιλέγοντας στατιστικά μας εμφανίζεται το εξής μενού (Εικόνα 64), όπου βλέπουμε διάφορα στατιστικα που αφορουν τους ανεφοδιασμούς που έχουμε κάνει, τα σέρβις και τα έξοδα. Επιλέγοντας διαγράμματα (Error! Reference source not found.), μας εμφανίζεται το εξής μενού όπου βλέπουμε διάφορα διαγράμματα που αφορουν τα γεμίσματα που έχουμε κάνει. 3.3 Απαραίτητα χαρακτηριστικά των εφαρμογών Αναλύοντας τις παραπάνω εφαρμογές καταλήγουμε στο συμπέρασμα ότι πρόκεται για απλές εφαρμογές, που μας διευκολύνουν στη καθημερινή μας ζωή, βοηθώντας μας να γνωρίζουμε τα πραγματικά έξοδα των οχημάτων μας. Μέσω των στατιστικών και των διάφορων διαγραμμάτων μπορούμε να διαπιστώσουμε που ξοδεύουμε τα περισσότερα χρήματα για το όχημα μας. Σελ. 81 από 129

82 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου Απαραίτητα χαρακτηριστικά για τέτοιου είδους εφαρμογές είναι οι εξής: Καύσιμα Σέρβις Έξοδα Υποστήριξη πολλαπλών οχημάτων Υπενθυμίσεις Στατιστική Διαγράμματα Περίληψη Πίνακας 1. Σύγκριση εφαρμογών Ο παραπάνω πίνακας (Πίνακας 1), περιέχει συγκριτικά στοιχεία για για τα χαρακτηριστικά που εμφανίζονται στη πρώτη στήλη, για τις εφαρμογές που αναλύσαμε προηγουμένως. Στην τελευταία στήλη δείχνουμε πως κατατάσεται και η δικιά μας εφαρμογή σε σχέση με τις υπόλοιπες. 3.4 Απαιτήσεις Σχεδιασμού Εφαρμογής Σκοπός της εργασίας είναι η ανάπτυξη μιας εφαρμογής η οποία θα μας βοηθήσει να διαχειριστούμε όλες τις πληροφορίες σχετικά με τα αυτοκινητά μας. Στόχος της είναι να μας βοηθήσει να παρακολουθήσουμε Σελ. 82 από 129

83 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα τους ανεφοδιασμούς, τα έξοδα και τη συντήρηση των οχημάτων μας. Με την εφαρμογή θα είμαστε σε θέση να υπολογίζουμε: την πραγματική απόδοση των καυσίμων των οχημάτων μας σε ποιό πληντύριο μπορούμε να απευθυνθούμε, για καλύτερο πλύσιμο του αυτοκινήτου μας πότε λήγει η ασφάλεια του οχήματός μας πότε είναι το επόμενο σέβις πότε πρέπει να περάσουμε το επόμενο ΚΤΕΟ και να ανανεώσουμε την κάρτα καυσαερίου την επόμενη αλλαγή λαδιών και ελαστικών το πραγματικό κόστος χρήσης των οχημάτων μας και πολλά άλλα... Ακόμη, η εφαρμογή από σχεδιαστικής άποψης πρέπει να περιέχει τις εξής αρχές ώστε να υπάρχει καλύτερη αλληλεπίδραση: Έλεγχος χρήστη και ελευθερία. Οι χρήστες συχνά επιλέγουν λειτουργίες του συστήματος κατά λάθος. Γι αυτό το λόγο χρειάζεται η αναίρεση και η επαναφορά, ώστε ο χρήστης να μπορεί να αποχωρήσει από την ανεπιθύμητη κατάσταση, χωρίς να χρειάζεται να περάσουν μέσα από εκτεταμένη αλληλεπίδραση με την εφαρμογή. Πρόληψη των σφαλμάτων. Χρειάζεται προσεκτική σχεδίαση, η οποία να αποτρέπει ένα πρόβλημα από την εμφάνιση του εξ αρχής. Αναγνώριση αντί για ανάκληση. Ελαχιστοποίηση του φορτίου μνήμης του χρήστη, κάνοντας τα αντικείμενα, τις δράσεις και τις επιλογές ορατά. Οι οδηγίες για τη χρήση της εφαρμογής θα πρέπει να είναι ευδιάκριτα ή εύκολα ανακτήσιμα όποτε κρίνεται σκόπιμο. Αισθητική και μινιμαλιστικό σχεδιασμό. Η εφαρμογή δεν θα πρέπει να περιέχει πληροφορίες που είναι άσχετες ή που χρησιμοποιούνται σπάνια. Η βοήθεια της εφαρμογής θα πρέπει να βοηθάει τον χρήστη να αναγνωρίζει, να κάνει διάγνωση και να ανάκτηση από τα λάθη. Τα Σελ. 83 από 129

84 3 - Χρησιμότητα εφαρμογών διαχείρησης αυτοκινήτου μηνύματα λάθους πρέπει να εκφράζονται σε απλή γλώσσα (χωρίς κωδικούς), να αναφέρουν με ακρίβεια το πρόβλημα, και να προτείνουν μια λύση. Σελ. 84 από 129

85 4. Υλοποίηση Στο κεφάλαιο αυτό θα συζητήσουμε λεπτομερώς ενδιαφέροντα σημεία υλοποίησης της εφαρμογής. 4.1 Βάση δεδομένων Η εφαρμογή μας χρησιμοποιεί για τη μόνιμη αποθήκευση των καταχωρήσεων των χρηστών μια βάση δεδομένων SQLite [23] Το σύστημα βάσης δεδομένων SQLite Η SQLite αποτελεί ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων που προσφέρεται ως μια βιβλιοθήκη προγραμματισμού της γλώσσας C, ενώ διατίθεται και για πολλές άλλες γλώσσες και πλατφόρμες όπως είναι και η Java. Σε αντίθεση με τα άλλα συστήματα διαχείρισης βάσεων δεδομένων, η SQLite δεν εκτελείται ως μια ξεχωριστή διεργασία που είναι προσβάσιμη από διάφορες εφαρμογές πελάτη, αλλά αποτελεί αναπόσπαστο τμήμα της εφαρμογής. Η SQLite είναι μια βιβλιοθήκη που υλοποιεί ένα αυτόνομο, χωρίς απαίτηση για κεντρικό διακομιστή και επιπλέον ρυθμίσεις, σύστημα βάσης δεδομένων SQL, με υποστήριξη συναλλαγών (transactions). Ο κώδικας για την SQLite βρίσκεται στο δημόσιο τομέα και είναι ελεύθερη για χρήση για οποιονδήποτε σκοπό, εμπορικό ή ιδιωτικό. Η SQLite εμπεριέχεται σήμερα, σε μία πληθώρα εφαρμογών, συμπεριλαμβανομένων αρκετών έργων υψηλού προφίλ. Η SQLite είναι μία ενσωματωμένη SQL βάση δεδομένων. Σε αντίθεση με τις άλλες βάσεις δεδομένων SQL, η SQLite δεν έχει ξεχωριστό διακομιστή. Η SQLite διαβάζει και γράφει απευθείας σε συνηθισμένα αρχεία στο δίσκο. Μια πλήρης βάση δεδομένων SQL με πολλούς πίνακες, δείκτες (index), ειδοποιήσεις (triggers) και όψεις (views), περιέχονται σε ένα ενιαίο αρχείο στο δίσκο. Η μορφή του αρχείου της βάσης δεδομένων είναι ανεξάρτητη πλατφόρμας, οπότε μπορούμε να αντιγράψουμε ελεύθερα μια βάση δεδομένων μεταξύ συστημάτων 64bit και 32bit. Αυτά τα χαρακτηριστικά Σελ. 85 από 129

86 4 - Υλοποίηση καθιστούν την SQLite μια δημοφιλής επιλογή ως μορφή αρχείου εφαρμογής. Η SQLite είναι μια συμπαγής βιβλιοθήκη και συνολικά δεν καταλαμβάνει πάνω από 500KiB χώρο στο δίσκο. Μπορεί επίσης να τρέξει σε ελάχιστο χώρο στοίβας (4KiB) και σωρού (100KiB), κάνοντάς την μια δημοφιλής επιλογή για συσκευές με περιορισμένη μνήμη όπως κινητά τηλέφωνα, PDAs, και MP3 players. Υπάρχει βέβαια μια ανταλλαγή μεταξύ χρήσης μνήμης και ταχύτητα υπολογισμού. Η SQLite τρέχει πιο γρήγορα εάν της παραχωρήσουμε περισσότερη μνήμη. Παρόλα αυτά, οι επιδόσεις είναι συνήθως αρκετά καλές ακόμα και σε περιβάλλοντα με χαμηλή μνήμη. Η SQLite ελέγχεται προσεκτικά πριν από κάθε έκδοση της και έχει τη φήμη ότι είναι πολύ αξιόπιστη. Το μεγαλύτερο μέρος του πηγαίου κώδικα της SQLite είναι αφιερωμένο αποκλειστικά σε δοκιμές και ελέγχους. Μια αυτοματοποιημένη ακολουθία δοκιμών τρέχει εκατοντάδες εκατομμύρια δοκιμές με τη συμμετοχή εκατοντάδων εκατομμυρίων μεμονωμένων δηλώσεων SQL και επιτυγχάνει 100%. Οι εκτελούμενες συναλλαγές έχουν τις ιδιότητες ACID (Atomicity, Consistency, Isolation, Durability), ακόμη και αν διακοπεί από η εκτέλεση της εφαρμογής από το επανεκκινήσεις συστήματος. Όλο αυτό επαληθεύεται από τις αυτοματοποιημένες δοκιμές. Η βάση του κώδικα SQLite υποστηρίζεται από μια διεθνή ομάδα προγραμματιστών πλήρους απασχόλησης. Οι προγραμματιστές συνεχίζουν να επεκτείνουν τις δυνατότητες του SQLite και να ενισχύουν την αξιοπιστία και την απόδοσή της, διατηρώντας παράλληλα συμβατότητα με το πρότυπο SQL, και τη μορφή αρχείου βάσης δεδομένων Το σχήμα της βάσης δεδομένων της εφαρμογής Η βάση δεδομένων της εφαρμογής αποτελείται από δύο πίνακες: cars και expenses. Σελ. 86 από 129

87 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Στον πίνακα cars αποθηκεύονται οι πληροφορίες για τα καταχωρημένα αυτοκίνητα, ενώ στον πίνακα expenses αποθηκεύονται συγκεντρωτικά όλα τα καταχωρημένα έξοδα. CREATE TABLE IF NOT EXISTS cars ( ID INTEGER PRIMARY KEY, name TEXT, brand TEXT, model TEXT, year INTEGER, tag TEXT, tank_volume INTEGER ); CREATE TABLE IF NOT EXISTS expenses ( ID INTEGER PRIMARY KEY, type TEXT, car_id INTEGER, payment_date TEXT, cost DECIMAL(10,2), location TEXT, odometer INTEGER, extra_number DECIMAL(10,2), extra_string TEXT, extra_date TEXT, details TEXT ); Κώδικας 1. SQL εντολές για το σχηματισμό της βάσης της εφαρμογής Το διάγραμμα E-R (οντοτήτων - σχέσεων) της βάσης δεδομένων δίνεται στο παρακάτω σχήμα: Εικόνα 62. Διάγραμμα οντοτήτων σχέσεων της βάσης δεδομένων Σελ. 87 από 129

88 4 - Υλοποίηση Από το παραπάνω σχήμα είναι εμφανές ότι όλα τα έξοδα καταχωρούνται στον ίδιο πίνακα. Αυτό ίσως μοιάζει παράδοξο στην αρχή όμως, μειώνει αρκετά την πολυπλοκότητα της εφαρμογής και όπως θα επεξηγηθεί και στην επόμενη υποενότητα, μας επιτρέπει να βλέπουμε και τα έξοδα σε συγκεντρωτική λίστα. Όλα τα έξοδα έχουν ένα συγκεκριμένο τύπο (type) και ανήκουν σε ένα συγκεκριμένο αυτοκίνητο (car_id). Επίσης όλα τα έξοδα έχουν ημερομηνία πληρωμής, κόστος, τοποθεσία και αναφορά στα χιλιόμετρα. Συγκεκριμένα, το πεδίο θέσης χρησιμοποιείται για να αποθηκεύσει την ονομασία της τοποθεσίας ή της εταιρείας που εμπλέκεται, π.χ. το βενζινάδικο για καύσιμα την ασφαλιστική εταιρεία για την ασφάλεια το συνεργείο επισκευής αυτοκινήτων για λάδια, ελαστικά, σέρβις και τεχνικό έλεγχο το πλυντήριο για την πλύση του οχήματος Στη συνέχεια, χρησιμοποιούμε τρία πεδία: extra_number / extra_string / extra_date όπως απαιτείται για να συλλάβει το υπόλοιπο των πληροφοριών. Ο Πίνακας 2 εξηγεί τη χρήση τους. extra_number extra_string extra_date ΒΕΝΖΙΝΗ τιμή ανά λίτρο τύπος καυσίμου - ΛΑΔΙΑ επόμενη αλλαγή (χλμ) τύπος λαδιού - ΠΛΥΣΙΜΟ αξιολόγηση (1-5) εξωτερικό / εσωτερικό - ΕΛΑΣΤΙΚΑ επόμενη αλλαγή (χλμ) τύπος ελαστικών επόμενη αλλαγή (ημρ.) ΣΕΡΒΙΣ επόμενη αλλαγή (χλμ) έκτακτο / προγραμματισμένο επόμενη αλλαγή (ημρ.) ΑΣΦΑΛΕΙΑ - τηλ. έκτακτης ανάγκης ημερομηνία λήξης ΤΕΧΝ. ΕΛΕΓΧ. επιτυχής / ανεπιτυχής ΚΤΕΟ / κάρτα καυσαερίων επόμενος έλεγχος Πίνακας 2. Αντιστοιχεία πεδίων φορμών με πεδίων της βάσης δεδομένων Σελ. 88 από 129

89 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Εικόνα 63. Επεξήγηση των φορμών για την καταχώρηση των δεδομένων. Στον κώδικα της εφαρμογής, εκτός από τον υπολογισμό των στατιστικών, δεν γίνεται πουθενά αναφορά για το συσχετισμό που φαίνεται στον πίνακα παραπάνω. Η πληροφορία αυτή έχει αποκρυφτεί από το UI της εφαρμογής. Στις φόρμες εισαγωγής των στοιχείων των εξόδων τα πεδία κειμένου έχουν πάντα το ίδιο id που αντιστοιχεί στο όνομα της στήλης στον πίνακα, ενώ η σημασιολογία είναι μόνο εμφανής από την επεξηγηματική ετικέτα που ενημερώνει το χρήστη που χρησιμοποιείται η τιμή που εισάγει. Η Εικόνα 63 εξηγεί καλύτερα τη σχεδιαστική αυτή απόφαση. Έτσι όταν μεταφέρουμε δεδομένα από τη βάση στο UI και αντίστροφα δεν λαμβάνουμε υπόψιν τον Πίνακας 2. Για παράδειγμα το πεδίο κειμένου inputfieldextrastring αντιστοιχεί πάντα στη στήλη extra_string στη βάση δεδομένων, ενώ στο σχεδιασμό του UI της φόρμας έχουμε φροντίσει να έχει τοποθετηθεί η κατάλληλη ετικέτα για να εξηγεί το σκοπό της τιμής. 4.2 Λίστες εξόδων Οι οθόνες των λιστών εξόδων (ανά τύπο ή και συγκεντρωτικά) δημιουργούνται με έναν συγκεκριμένο τρόπο στην πλατφόρμα Android. Επειδή οι πόροι του συστήματος των κινητών συσκευών είναι Σελ. 89 από 129

90 4 - Υλοποίηση περιορισμένοι θα πρέπει η υλοποίηση που διαβάζει μεγάλο αριθμό εγγραφών από τη βάση δεδομένων και τα εμφανίζει σε μορφή λίστας να είναι όσο το δυνατόν περισσότερο βελτιστοποιημένη για ταχύτητα και μνήμη. Στην πραγματικότητα παρόλο που τις περισσότερες φορές οι λίστες αυτές εμφανίζουν εκατοντάδες εγγραφές, στη μνήμη δημιουργούνται τόσα κελιά όσα χωράνε σε μια πλήρη οθόνη. Καθώς ο χρήστης κάνει scroll τη λίστα τα κελιά που δεν είναι πλέον ορατά εισάγονται σε μία εικονική αποθήκη και επαναχρησιμοποιούνται για να εμφανίσουν δεδομένα για τις επόμενες εγγραφές. Με αυτή την τεχνική εξοικονομείται μνήμη και το scrolling σε αυτές τις λίστες γίνεται με αποτελεσματικό τρόπο. Ευτυχώς το Android SDK αναλαμβάνει όλη την παραπάνω διαδικασία και εμείς ως προγραμματιστές το μόνο που έχουμε να κάνουμε είναι να δηλώσουμε την πηγή των δεδομένων (π.χ. μία λίστα στη μνήμη ή στην περίπτωσή μας ένα κέρσορα ερωτήματος σε βάση δεδομένων) και από ποια πεδία οι τιμές θα πρέπει να εμφανίζονται σε ποια Views. Στη συνέχεια ένας μηχανισμός Loader αναλαμβάνει να γεμίσει τις λίστες με δεδομένα με αποδοτικό τρόπο όπως περιγράφηκε παραπάνω και επιπλέον χωρίς να επιβαρύνει το κυρίως νήμα της εφαρμογής, αφού η ανάκτηση γίνεται σε ξεχωριστό νήμα που τρέχει στο παρασκήνιο [24]. Όταν δημιουργείτε ένα ListActivity, για να γεμίσει η λίστα με δεδομένα πρέπει να του ορίσουμε το αντίστοιχο listadapter που είναι υπεύθυνο για τα δεδομένα των κελιών της λίστας. Στην εφαρμογή μας ορίζουμε τον προσαρμογέας του Κώδικας 2 για τη λίστα των οχημάτων. Όπως φαίνεται και στον Κώδικας 2 o προσαρμογέας της λίστας (listadapter) δεν είναι τίποτα παραπάνω από μια δομή που ονοματίζει τα πεδία στη βάση δεδομένων (columns) και τα View (containers) που θα εμφανιστούν οι αντίστοιχες τιμές. Το αναγνωριστικό R.layout.car_list_item είναι το αρχείο XML που περιγράφει το layout (πως θα εμφανίζεται) το κάθε κελί της λίστας. Η σειρά με την οποία εμφανίζονται τα στοιχεία του πίνακα columns αντιστοιχεί στη σειρά με την Σελ. 90 από 129

91 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα οποία εμφανίζονται τα στοιχεία του πίνακα containers, για παράδειγμα το πεδίο της βάσης δεδομένων COLUMN_BRAND (εμφανίζεται δεύτερο) εμφανίζεται στο View με id R.id.listview_subtitle (εμφανίζεται δεύτερο). public static SimpleCursorAdapter getallcarscursoradapter() { // Array of fields that will be used by the list view String[] columns = new String[]{ DBContract.CarEntry.COLUMN NAME, DBContract.CarEntry.COLUMN_BRAND, DBContract.CarEntry.COLUMN_MODEL }; int[] containers = new int[]{ R.id.listview_title, R.id.listview_subtitle, R.id.listview_comment }; return new SimpleCursorAdapter(CarBudgetoidApp.getAppContext(), R.layout.car_list_item, null, columns, containers, 0); } Κώδικας 2. Δημιουργία του listadapter για τη λίστα οχημάτων. Το μόνο που χρειάζεται μετά από αυτό είναι να κάνουμε override τη μέθοδο oncreateloader και κατά περίπτωση να δηλώσουμε την πηγή των δεδομένων, στην ουσία ένα CursorLoader που με τη σειρά του θα εκτελέσει το ερώτημα στη βάση δεδομένων και με το Cursor που θα επιστραφεί θα γεμίσει τα κελιά της λίστας, ανάλογα με τη θέση (Y offset) που βλέπει ο χρήστης την κάθε στιγμή. Με τα παραπάνω ίσως γίνεται κανοητό το πόσο εύκολο είναι να δείξουμε τη λίστα με όλα τα έξοδα του οχήματος ανεξάρτητα κατηγορίας, ως αποτέλεσμα του γεγονότος ότι διαλέξαμε να σχεδιάσουμε τη βάση δεδομένων της εφαρμογής βάζοντας όλα τα έξοδα στον ίδιο πίνακα. Το μόνο που αλλάζει κατά περίπτωση καθώς πλοηγούμαστε στις διάφορες καρτέλες είναι το ερώτημα στη βάση. Και εφόσον πρόκειται για ένα πίνακα μπορούμε προφανώς με ένα και μόνο ερώτημα να εμφανίσουμε όλα τα έξοδα ενός οχήματος. Σελ. 91 από 129

92 4 - Υλοποίηση 4.3 Αλληλεπίδραση με τη βάση δεδομένων. Για την αλληλεπίδραση με τη βάση δεδομένων, δηλαδή για καταχώρηση (INSERT), ανάγνωση (SELECT), ενημέρωση (UPDATE) και διαγραφή (DELETE) των εγγραφών υλοποιήσαμε μια υποτυπώδης συσχέτιση σχέσεων - αντικειμένων (Object Relational Mapper ή ORM) μέσω δύο Java κλάσεων [25] Ένα απλό σύστημα συσχέτισης οντοτήτων Η πρώτη κλάση org.spyrou.carbudgetoid.models.base αναλαμβάνει μια αφαιρετικού επιπέδου μοντελοποίηση των βασικών αντικειμένων της εφαρμογής και τους προσφέρει κάποιες βασικές μεθόδους για να εκτελούν τις βασικές λειτουργίες CRUD (Create Read Update Delete) που περιγράφονται παραπάνω. Η κλάση αυτή ορίζεται ως αφηρημένη (abstract) ώστε να μη μπορεί να δημιουργήσει αντικείμενα. Αντίθετα, μόνο οι υποκλάσεις της, Car και Expense έχει νόημα να δημιουργούν αντικείμενα αφού έχουν συγκεκριμένη υλοποίηση που τους επιτρέπει να αλληλεπιδρούν με τον συγκεκριμένο αντίστοιχο πίνακα στη βάση. Η Base κλάση ορίζει τις υπογραφές χρήσιμων μεθόδων, οι πιο σημαντικές από τις οποίες ακολουθούν: public long getid(); protected abstract String gettablename(); protected abstract ContentValues getcontentvalues(); protected abstract void loadfromcursorsilently(cursor c); protected abstract void loadfromcursor(cursor c); public abstract void readfromview(view view); public abstract void writetoview(view view); public abstract boolean validate(); Επίσης η κλάση Base ορίζει και υλοποιεί τις βασικές μεθόδους CRUD: public static <T extends Base> T newfromcursor( Σελ. 92 από 129

93 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Class<T> klass, Cursor c, boolean silently); // R - read public boolean save(); // C + U - create and update public int delete(); // D - delete Οι κλάσεις Car και Expense υλοποιούν όλες τις παραπάνω abstract μεθόδους έτσι ώστε οι CRUD μέθοδοι που κληρονομούν από την υπερκλάση Base να λειτουργούν γνωρίζοντας τις λεπτομέρειες υλοποίησης του κάθε πίνακα. Με αυτό τον τρόπο διαχειριζόμαστε εύκολα τα αντικείμενα της εφαρμογής μας με ένα ενιαίο interface. Αυτό απλοποιεί πολύ την ανάπτυξη της εφαρμογής αλλά και τη μετέπειτα επέκτασής της καθώς ο προγραμματιστής δεν χρειάζεται να ασχολείται ξανά με τον κώδικα διαχείρισης (αποθήκευσης και ανάγνωσης) των δεδομένων, και μπορεί να δώσει έμφαση στις σημαντικές λειτουργίες της εφαρμογής του. Στη συνέχεια θα δώσουμε ένα παράδειγμα χρήσης των παραπάνω μεθόδων σε μία καταχώρηση εξόδου στη εφαρμογή Χρήση του συστήματος συσχέτισης οντοτήτων Ας υποθέσουμε ότι θέλουμε να καταχωρήσουμε ένα νέο έξοδο. Θα δούμε τα ενδιαφέροντα σημεία υλοποίησης του ORM στην κλάση Expense. Αρχικά πρέπει να μεταβούμε στην οθόνη που βρίσκεται η φόρμα και καταχωρούμε τα στοιχεία ενός νέου εξόδου. Μόλις ολοκληρώσουμε την καταχώρηση και πατήσουμε Αποθήκευση δημιουργούμε ένα νέο αντικείμενο Expense και εκτελούμε τη μέθοδο readfromview(view expenseformview). Η μέθοδος αυτή ουσιαστικά διαβάζει τις τιμές από τα διάφορα πεδία της φόρμας που κατέγραψε ο χρήστης και τα αντιγράφει στα πεδία του αντικειμένου. Μια υλοποίηση της μεθόδου φαίνεται στον Κώδικας public void readfromview(view view) { this.helper = new ActivityHelper(view); setpaymentdate( Σελ. 93 από 129

94 4 - Υλοποίηση } helper.getstringvalue(r.id.inputfieldpaymentdate)); setcost( helper.getnumbervalue(r.id.inputfieldcost)); setlocation( helper.getstringvalue(r.id.inputfieldlocation)); setextranumber( helper.getnumbervalue(r.id.inputfieldextranumber)); setextrastring( helper.getstringvalue(r.id.inputfieldextrastring)); setextradate( helper.getstringvalue(r.id.inputfieldextradate)); setodometer( (long) helper.getnumbervalue(r.id.inputfieldodometer)); setdetails( public void writetoview(view view) { if (id > 0) { this.helper = new ActivityHelper(view.getRootView()); helper.settext( R.id.inputFieldPaymentDate, getpaymentdate()); helper.settext( R.id.inputFieldCost, Double.toString(getCost())); helper.settext( R.id.inputFieldLocation, getlocation()); helper.settext( R.id.inputFieldExtraNumber, Double.toString(getExtraNumber())); helper.settext( R.id.inputFieldExtraString, getextrastring()); helper.settext( R.id.inputFieldExtraDate, getextradate()); helper.settext( R.id.inputFieldOdometer, Long.toString(getOdometer())); helper.settext( R.id.inputFieldDetails, getdetails()); } } Κώδικας 3. Ανάγνωση από και εμφάνιση σε View. Στη συνέχεια το αντικείμενο είναι έτοιμο να αποθηκευτεί μόνιμα στη βάση δεδομένων. Αυτό γίνεται με την κλήση της μεθόδου save() (αναλυτικά στον Κώδικας 4). Η μέθοδος save() έχει οριστεί στην βασική κλάση καθώς η υλοποίηση της είναι σχετικά απλή. Πρώτα καλεί την μέθοδο validate() που ελέγχει ότι όλες οι τιμές που έχουν περαστεί στο αντικείμενο είναι ορθές. Αν η validate() επιστρέψει TRUE τότε μπορούμε να προχωρήσουμε στην αποθήκευση του αντικειμένου. Εδώ γίνεται έλεγχος αν αποθηκεύουμε ένα νέο αντικείμενο (οπότε εκτελούμε Σελ. 94 από 129

95 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα INSERT στη βάση) ή αν τροποποιούμε κάποιο ήδη υπάρχον (οπότε εκτελούμε UPDATE στη βάση). Σε κάθε περίπτωση με κλήση στην getcontentvalues() δημιουργούμε ένα αντικείμενο που περιέχει ζεύγη κλειδιών-τιμών με τα πεδία προς αποθήκευση και τις τιμές τους και στέλνουμε την αντίστοιχη εντολή στη βάση δεδομένων. Αν η κλήση στην validate() επιστρέψει FALSE τότε εμφανίζονται στη φόρμα τα αντίστοιχα επεξηγηματικά μηνύματα που βοηθάνε το χρήστη να διορθώσει τα λανθασμένα στοιχεία και να αποθηκεύσει σωστά τη φόρμα. public boolean save() { if (validate()) { if (id > 0) { getdb().update(gettablename(), getcontentvalues(), BaseColumns._ID + " =?", new String[]{String.valueOf(id)}); } else { this.id = getdb().insert(gettablename(), null, getcontentvalues()); } return true; } else { return false; } } Κώδικας 4. Αποθήκευση ενός αντικειμένου. Εκτός από καταχωρήσεις νέων αντικειμένων έχουμε φυσικά και τη δυνατότητα επεξεργασίας των υπαρχόντων εγγραφών. Από τη οθόνη της λίστας των εξόδων με παρατεταμένο πάτημα πάνω σε μια εγγραφή εμφανίζουμε το μενού που έχει επιλογές για επεξεργασία και διαγραφή της καταχώρησης. Όταν επιλέξουμε επεξεργασία γίνεται ανάγνωση από τη βάση δεδομένων της εγγραφής με το συγκεριμένο id και όταν φορτωθεί η οθόνη με τη φόρμα επεξεργασίας, κατ αντιστοιχία με τα προηγούμενα καλείται η writetoview(view expenseformview) (βλ. Κώδικας 3) η οποία αντιγράφει τις τιμές από το αντικείμενο στα πεδία της φόρμας. Η ανάκτηση του αντικειμένου από τη βάση δεδομένων γίνεται από τη βοηθητική κλάση Finder, στην οποία έχουμε υλοποιήσει μεθόδους για να μπορούμε να ανακτούμε είτε μεμονομένα είτε ομαδικά εγγραφές από τη Σελ. 95 από 129

96 4 - Υλοποίηση βάση δεδομένων με εύκολο τρόπο. Η κλάση αυτή επίσης αναλαμβάνει και μετατρέπει τις εγγραφές τις βάσης δεδομένων σε αντικείμενα της εφαρμογής μας (συγκεκριμένα σε αντικείμενα Car ή Expense). Επιγραματικά μερικές από τις πιο συχνά χρησιμοποιούμενες μέθοδοι αναγράφονται στον Κώδικας 5. // ανάκτηση ενός μόνο αντικειμένου // αυτό με το μοναδικό αναγνωριστικό id public <T extends Base> T find(long id) { return findone(basecolumns._id, String.valueOf(id)); } // ανάκτηση ενός μόνο αντικειμένου // το πρώτο που έχει στο πεδίο fieldname τιμή ίση με fieldvalue public <T extends Base> T findone(string fieldname, String fieldvalue) { return findone(fieldname + " =?", new String[]{fieldValue}); } // ανάκτηση ενός μόνο αντικειμένου με πλήρες συνθήκες αναζήτησης // επιστρέφεται το πρώτο που πληρεί τις συνθήκες αναζήτησης public <T extends Base> T findone(string where, String[] whereargs) { Cursor cursor = findsome(null, where, whereargs, null, "1"); cursor.movetofirst(); Base object = Base.newFromCursor(klass, cursor, false); return (T) object; } // ανάκτηση λίστας αποτελεσμάτων που πληρούν τις συνθήκες αναζήτησης // με συγκεκριμένη σειρά και προαιρετικά ομαδοποίηση και επιλογή των // πεδίων που επιστρέφονται public ArrayList findall(string[] select, String where, String[] whereargs, String group, String order) { ArrayList list = new ArrayList(); Cursor cursor = findsome(select, where, whereargs, group, null, order, null); cursor.movetoposition(-1); while (cursor.movetonext()) { Base object = Base.newFromCursor(klass, cursor, true); if (object!= null) list.add(klass.cast(object)); } return list; } Κώδικας 5. Ανάκτηση αντικειμένων από τη βάση δεδομένων. 4.4 Υπολογισμοί στατιστικών με χρήση Ασύγχρονων Διεργασιών Για τον υπολογισμό των στατιστικών χρησιμοποιήσαμε το προγραμματιστικό μοτίβο των Ασύγχρονων Διεργασιών (AsyncTask). Οι Σελ. 96 από 129

97 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα υπολογισμοί αυτοί είναι ιδιαίτερα απαιτητικοί σε CPU και έτσι ενδέχεται να κάνουν την εφαρμογή να φαίνεται ότι δεν αντιδρά σε είσοδο από το χρήστη. Για το λόγο αυτό τέτοιες διεργασίες πρέπει να εκτελούνται σε διαφορετικά νήματα έτσι ώστε το κύριο νήμα να είναι πάντα ελεύθερο για να λαμβάνει τα μηνύματα εισόδου από το χρήστη και να σχεδιάζει τα αντίστοιχα αποτελέσματα στην οθόνη [26] Τι είναι το AsyncTask; Πρόκειται για μια αφηρημένη κλάση που παρέχεται από το Android SDK, η οποία μας βοηθά να χρησιμοποιούμε σωστά το κύριο νήμα (UI thread) της εφαρμογής. Η τάξη αυτή μας επιτρέπει να εκτελούμε χρονοβόρες και απαιτητικές σε επεξεργαστική ισχύ ρουτίνες και να δείχνουμε μετά την ολοκλήρωσή τους τα αποτελέσματα στο κυρίως νήμα Πότε να χρησιμοποιήσουμε το AsyncTask; Οι εφαρμογές Android χρησιμοποιούν ένα προγραμματιστικό μοντέλο ενός νήματος, δηλαδή όταν μια εφαρμογή εκκινείται δημιουργείται αυτόματα ένα νήμα. Αυτό ονομάζεται κύριο νήμα, ή νήμα UI (main or UI thread). Συνεπώς αυτό το νήμα είναι υπεύθυνο για την εξυπηρέτηση των εισερχόμενων συμβάντων στην εφαρμογή (από ενέργειες του χρήστη) και υπεύθυνο για την εμφάνιση (σχεδιασμό) στην οθόνη των απαραίτητων μηνυμάτων. Ας υποθέσουμε ότι θέλουμε να κατεβάσουμε ένα αρχείο από το δίκτυο όταν πατιέται ένα κουμπί στην εφαρμογή μας. Η εφαρμογή μας πρέπει να αποστείλει ένα αίτημα και να αναμένει απάντηση από το διακομιστή για τη λήψη του αρχείου. Λόγω του μοντέλου απλού νήματος που έχουμε περιγράψει προηγουμένως, όσο η εφαρμογή αναμένει την απάντηση από τον απομακρυσμένο διακομιστή, η οθόνη δεν αντιδρά σε αγγίγματα από το χρήστη. Αυτό μπορεί να οδηγήσει σε άσχημη εμπειρία χρήστη και να αποτρέψει τους χρήστες από το να χρησιμοποιούν εκτενώς την εφαρμογή μας. Σελ. 97 από 129

98 4 - Υλοποίηση Για να αποφύγουμε το συγκεκριμένο θα πρέπει να εκτελέσουμε την λήψη του αρχείου σε ένα ξεχωριστό νήμα, έτσι ώστε το κύριο νήμα να είναι ελεύθερο για την εξυπηρέτηση των βασικών αναγκών της εφαρμογής. Το πρόβλημα με αυτό είναι ότι η βιβλιοθήκη που είναι υπεύθυνη για το σχεδιασμό στην οθόνη (Android UI Toolkit) δεν προσφέρει ασφάλεια νήματος (thread-safety) με αποτέλεσμα η διαχείριση του UI απευθείας από το επιπλέον νήμα να οδηγήσει πιθανώς σε προβλήματα στην εφαρμογή. Έτσι το ασφαλέστερο και προτιμητέο είναι όλες οι αλλαγές στο UI να γίνονται από το κυρίως νήμα. Αυτό σημαίνει πως θα πρέπει το κυρίως νήμα να παρακολουθεί την πορεία εκτέλεσης τους δεύτερου νήματος και σε συγκεκριμένα σημεία ή στο τέλος να εμφανίζει στην οθόνη το κατάλληλο μήνυμα. Το Android SDK έχει απλοποιήσει αυτή τη διαδικασία για τους προγραμματιστές, έτσι με τη χρήση του προγραμματιστικού μοτίβου των ασύγχρονων διεργασιών (AsyncTask) μπορούμε πολύ εύκολα να πετύχουμε τα παραπάνω. Μερικές από τις ποιο κοινές περιπτώσεις που μπορούμε να χρησιμοποιήσουμε αυτό το μοτίβο περιλαμβάνουν: πρόσβαση στο δίκτυο (internet) - αποστολή και λήψη δεδομένων πρόσβαση στο τοπικό σύστημα αρχείων - ανάγνσωση και εγγραφή αρχείων πρόσβαση σε τοπική βάση δεδομένων SQLite - λειτουργίες CRUD Χρήση του AsyncTask Για να χρησιμοποιήσουμε το AsyncTask το μόνο που έχουμε να κάνουμε είναι να δημιουργήσουμε μια κλάση που να κληρονομεί από την AsyncTask και να υλοποιήσουμε τις απαραίτητες μεθόδους που περιγράφονται παρακάτω. Το AsyncTask έχει τέσσερα στάδια: 1. doinbackround: Ο κωδικός εκτέλεσης μακράς διάρκειας της διεργασίας πηγαίνει σε αυτή τη μέθοδο. Σελ. 98 από 129

99 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα 2. onpostexecute: Αυτή η μέθοδος καλείται όταν ολοκληρωθεί η επεξεργασία της μεθόδου doinbackround. Τα αποτέλεσμα από την doinbackround περνιούνται σε αυτή τη μέθοδο. 3. onpreexecute: Αυτή η μέθοδος καλείται πριν καλέσουμε την μέθοδο doinbackround. 4. onprogressupdate: Αυτή η μέθοδος καλείται κάθε φορά που καλούμε την publishprogress μέσα από τον κώδικα της doinbackround για να ενημέρωνουμε το UI με στοιχεία της προόδου της διεργασίας. Η doinbackground είναι η μόνη μέθοδος που καλείται στο νήμα που δημιουργείται στο παρασκήνιο. Οι υπόλοιπες μέθοδοι καλούνται στο κυρίως νήμα και μπορούν να περιέχουν κώδικα ενημέρωσης του χωρίς πρόβλημα. Η εργασία που εκτελείται στο παρασκήνιο μπορεί να ακυρωθεί με την μεθόδου cancel. Για να ελέγξουμε αν κάποια διεργασία έχει ακυρωθεί μπορούμε να χρησιμοποιούμε την μέθοδο iscancelled. Αν κάποια εργασία ακυρωθεί τότε μετά την ολοκλήρωση της ακύρωσης εκτελείται η μέθοδος oncancelled αντί της onpostexecute Υπολογισμός στατιστικών με χρήση AsyncTask Για τον υπολογισμό των στατιστικών στην εφαρμογή μας χρησιμοποιούμε την κλάση DBExecutor που κληρονομεί από την AsyncTask. Ο ορισμός της κλάσης είναι ο ακόλουθος public class DBExecutor extends AsyncTask<String, Integer, String> { public DBExecutor(String classname, String method, View outputview) { } protected String doinbackground(string... queryparams) { } protected void onprogressupdate(integer... progress) { } protected void onpostexecute(string result) { } } Η δήλωση AsyncTask<String, Integer, String> ορίζει με τη σειρά που αναγράφονται τους τύπους των ορισμάτων των μεθόδων Σελ. 99 από 129

100 4 - Υλοποίηση doinbackground, onprogressupdate και onpostexecute. Υπάρχει ο περιορισμός ότι η μέθοδος doinbackground δέχεται μεταβλητό αριθμό παραμέτρων, όλοι όμως του ίδιου τύπου (στην περίπτωσή μας String, αφού με αυτό τον τρόπο μπορούμε να περάσουμε και συμβολοσειρές αλλά και αριθμούς που έχουν μετατραπεί σε συμβολοσειρά ως ορίσματα). Το ίδιο ισχύει και για την onprogressupdate που στην περίπτωσή μας δε χρησιμοποιείται αλλά συνήθως δηλώνεται με ορίσματα τύπου ακεραίου, αφού συνήθως δηλώνει κάποιο ποσοστό ολοκλήρωσης της διεργασίας. Τέλος η onpostexecute δέχεται ένα και μόνο όρισμα που στην εφαρμογή μας δηλώνεται τύπου String, και στην ουσία είναι το αποτέλεσμα που θα πρέπει να εμφανιστεί στην αντίστοιχη θέση στην οθόνη. Η κλάση που έχουμε δημιουργήσει είναι εξαιρετικά απλή και γενική, και χρησιμοποιεί τη δυνατότητα που μας δίνει η Java να εκτελούμε μεθόδους με βάση το όνομα και τις παραμέτρους τους κατά το χρόνο εκτέλεσης, μέσω του πακέτου Reflection. Με αυτό τον τρόπο με μία μόνο κλάση και περνώντας κατά περίπτωση το όνομα της μεθόδου που θέλουμε μπορούμε εύκολα να υπολογίζουμε και να εμφανίζουμε τα στατιστικά στις επιμέρους καρτέλες τις εφαρμογής. Μια τυπική κλήση της κλάσης DBExecutor από ένα activity για τον υπολογισμό π.χ. του συνολικού κόστους των εξόδων είναι: new DBExecutor( "org.spyrou.carbudgetoid.models.expense", "asyncgettotalcost", findviewbyid(r.id.textviewtotalcostvalue) ).execute(caridstring, expensetypestring, datefrom, dateuntil); Όπως φαίνεται και από τον ορισμό, κατά τη δημιουργία της κλάσης περνάμε τρεις ορίσματα στη μέθοδο constructor. Τα δύο πρώτα είναι τύπου String και είναι το πλήρες όνομα της κλάσης και το όνομα της μεθόδου που πρέπει να καλέσουμε για να υπολογίσουμε το συγκεκριμένο στατιστικό. Το τρίτο και τελευταίο όρισμα είναι το μοναδικό αναγνωριστικό Σελ. 100 από 129

101 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα (id) του View, που θα εμφανιστεί το αποτέλεσμα στην οθόνη. Στη συνέχεια καλούμε τη μέθοδο execute στο νέο αυτό αντικείμενο που αναλαμβάνει να εκτελέσει τον κώδικα της μεθόδου που δηλώσαμε προηγουμένως (2ο όρισμα του constructor) στο νήμα που εκτελείται στο παρασκήνιο. Όλες οι μέθοδοι που μπορούμε να εκτελέσουμε έχουν την ίδια υπογραφή και δέχονται τις εξής παραμέτρους: το κωδικό (id) του οχήματος, την κατηγορία εξόδων, και το χρονικό διάστημα για το οποίο θέλουμε να υπολογίσουμε τα στατιστικά στη μορφή αρχικής και τελικής ημερομηνίας. Εικόνα 64. Σχεδιάγραμμα ροής εκτέλεσης ασύγχρονης Στην ουσία τα ορίσματα της μεθόδου execute περνιούνται από το σύστημα στη μέθοδο doinbackground η οποία μέσω της βιβλιοθήκης Reflection θα καλέσει τη μέθοδο που έχουμε δηλώσει και θα εμφανίσει το αποτέλεσμα στο View που ορίσαμε. Η Εικόνα 64 δείχνει σχηματικά την ροή εκτέλεσης του υπολογισμού. Σελ. 101 από 129

102 4 - Υλοποίηση 4.5 Δημιουργία γραφημάτων Η δημιουργία γραφικών είναι μία αρκετά επίπονη διαδικασία. Στην εφαρμογή μας για τη δημιουργία των γραφημάτων χρησιμοποιήσαμε την εξωτερική βιβλιοθήκη HoloGraph Library, που κάνει πολύ εύκολη τη απεικόνισης γραφημάτων με κομψό και μοντέρνο σχεδιασμό [27]. Η βιβλιοθήκη είναι λογισμικό ανοικτού κώδικα και έτσι μπορεί εύκολα να τροποποιηθεί και να επεκταθεί με επιπλέον δυνατότητες. Υποστηρίζει τρεις τύπους διαγραμμάτων: a) Γραφήματα γραμμών b) Γραφήματα ράβδων c) Γραφήματα πίτας Η δημιουργία των γραφημάτων γίνεται εύκολα καθώς η βιβλιοθήκη μας παρέχει τα κατάλληλα View που πρέπει να εισάγουμε στα layout αρχεία μας, και με τον κατάλληλο κώδικα ουσιαστικά θέτουμε τα δεδομένα και η βιβλιοθήκη αναλαμβάνει αυτόματα τον σωστό σχεδιασμό στον καμβά σχεδίασης ανάλογα με τον τύπο που έχουμε επιλέξει. Όλα τα διαγράμματα έχουν τη δυνατότητα να ανταποκρίνονται και σε συμβάντα πατήματος των επιμέρους στοιχείων τους (γραμμές, στήλες, κομμάτια πίτας) αν οριστεί ο αντίστοιχος κώδικας Γραφήματα γραμμών Για τη δημιουργία αυτού του τύπου διαγραμμάτων χρειάζεται να ορίσουμε μια σειρά από σημεία (συντεταγμένες (x,y)) τα οποία ενώνονται με μία γραμμή καθώς το x (οριζόντιος άξονας) αυξάνει την τιμή του. Τα διαγράμματα αυτά υποστηρίζουν πολλαπλές γραμμές (σειρές δεδομένων) ανά διάγραμμα αλλά στην εφαρμογή μας δε χρειαστήκαμε αυτή τη λειτουργία. Στην εφαρμογή μας τα χρησιμοποιούμε για να αναπαραστήσουμε γραφικά την αυξομείωση της τιμής του καυσίμου. Ο οριζόντιος άξονας αναπαριστά τις ημερομηνίες ανεφοδιασμού (χρόνος) ενώ ο κάθετος την τιμή καυσίμου ανά λίτρο. Ένα παράδειγμα γραφήματος φαίνεται στην Εικόνα 66γ που Σελ. 102 από 129

103 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα δείχνει την καρτέλα Στατιστικά για τα έξοδα τύπου Βενζίνη. Ο κώδικας που το δημιουργεί φαίνεται στον Κώδικας 6. LineGraph linegraph = (LineGraph) outputview; linegraph.removealllines(); Line line = new Line(); line.setcolor("#ff0000"); linegraph.addline(line); double min = Double.MAX_VALUE; double max = Double.MIN_VALUE; int counter = 0; while (listiterator.hasnext()) { expense = (Expense) listiterator.next(); double y = expense.getextranumber(); min = Math.min(min, y); max = Math.max(max, y); line.addpoint(new LinePoint(counter++, y)); } // Ορίζουμε το εύρος τιμών του κάθετου άξονα με ένα μικρό // περιθώριο γύρω από τη μέγιστη και ελάχιστη τιμή, για // καλύτερη προβολή του διαγράμματος linegraph.setrangey( (float) (min ), (float) (max ) ); linegraph.setonpointclickedlistener( new LineGraph.OnPointClickedListener() public void onclick(int lineindex, int pointindex) { // Εκτέλεσε τον παρακάτω κώδικα όταν // πατηθεί το αντίστοιχο σημείο της αντίστοιχης γραμμής } ); } Κώδικας 6. Κατασκευή γραφήματος γραμμών Γραφήματα ράβδων Τα διαγράμματα αυτά χρησιμοποιούνται συνήθως για να συγκρίνουν διάφορα αντικείμενα ως προς ένα χαρακτηριστικό τους. Η σειρά των αντικειμένων δεν έχει σημασία, αλλά συχνά μπορεί να εμφανίζονται σε αύξουσα ή φθίνουσα σειρά με βάση την τιμή που έχουν. Στην εφαρμογή μας χρησιμοποιούμε τα διαγράμματα ράβδων για να συγκρίνουμε τα διάφορα Πλυντήρια αυτοκινήτων ως προς τη βαθμολογία Σελ. 103 από 129

104 4 - Υλοποίηση που τους έχουμε δώσει. Το διάγραμμα εμφανίζει μια στήλη για κάθε διαφορετική Τοποθεσία πλυσίματος και ως τιμή το μέσο όρο από τις επιμέρους βαθμολογίες που έχουμε δώσει στις συγκεκριμένες καταχωρήσεις. Ένα παράδειγμα γραφήματος φαίνεται στην Εικόνα 3.χ. που δείχνει την καρτέλα Στατιστικά για τα έξοδα τύπου Πλύσιμο. Ο κώδικας που το δημιουργεί φαίνεται στον Κώδικα 4.6. BarGraph bargraph = (BarGraph) outputview; ArrayList<Bar> points = new ArrayList<Bar>(); Bar bar; int counter = 0; while (listiterator.hasnext()) { expense = (Expense) listiterator.next(); bar = new Bar(); bar.setname(expense.getextrastring()); bar.setvalue((float) expense.getextranumber()); bar.setvaluestring( Expense.numberToFormat(expense.getExtraNumber(), 2) + labelsuffix ); bar.setcolor(colors[counter++]); points.add(bar); } bargraph.setbars(points); bargraph.setonbarclickedlistener( new BarGraph.OnBarClickedListener() public void onclick(int index) { // Εκτέλεσε τον παρακάτω κώδικα όταν πατηθεί // η αντίστοιχη ράβδος } ); } Κώδικας 7. Κατασκευή γραφήματος ράβδων Γραφήματα πίτας Τα διαγράμματα αυτά κατά κύριο λόγο χρησιμοποιούνται για να δείξουν το ποσοστό που κατέχει μία τιμή σε σχέση με τις υπόλοιπες για ένα χαρακτηριστικό ενός ή πολλών αντικειμένων. Στην εφαρμογή μας τα χρησιμοποιούμε για να δείξουμε την κατανομή του τύπου λαδιών που χρησιμοποιούμε για ένα όχημα σε σχέση με τη Σελ. 104 από 129

105 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα συνολική ποσότητα που χρησιμοποιήθηκε. Για τον υπολογισμό του ποσοστού διαιρούμε το άθροισμα όλων των λίτρων λαδιών ενός τύπου με το συνολικό άθροισμα όλων των τύπων για την επιλεγμένη πάντα περίοδο, όπως φαίνεται και στον Κώδικας 8. Ένα παράδειγμα γραφήματος φαίνεται στην Εικόνα 67γ που δείχνει την καρτέλα Στατιστικά για τα έξοδα τύπου Λάδια. PieGraph piegraph = (PieGraph) outputview; piegraph.removeslices(); PieSlice slice; double total = 0; int counter = 0; while (listiterator.hasnext()) { expense = (Expense) listiterator.next(); double y = expense.getextranumber(); total += y; slice = new PieSlice(); slice.settitle(expense.getextrastring()); slice.setvalue((float) y); slice.setcolor(colors[counter++]); piegraph.addslice(slice); } piegraph.setonsliceclickedlistener( new PieGraph.OnSliceClickedListener() public void onclick(int index) { // Εκτέλεσε τον παρακάτω κώδικα όταν πατηθεί // το αντίστοιχο κομμάτι της πίτας } ); } Κώδικας 8. Κατασκευή γραφήματος πίτας. Σελ. 105 από 129

106 5. Παρουσίαση και έλεγχος της εφαρμογής Ακολουθεί η παρουσίαση και ο έλεγχος της σωστής λειτουργίας της εφαρμογής. 5.1 Μεθοδολογία ελέγχου Ο έλεγχος πραγματοποιήθηκε με τη εκτέλεση ενός σεναρίου λειτουργίας: Υποθέτουμε ότι εχουμε ένα χρήστη: το Χρήστο. Ο Χρήστος μόλις αγόρασε ένα καινούριο όχημα και θέλει ένα πρόγραμμα, με το οποίο θα μπορεί να παρακολουθεί τα έξοδα του οχημάτος αλλά και διάφορα άλλα στατιστικά. Συγκεκριμένα θέλει να καταχωρεί τα χρήματα που ξοδεύει σε βενζίνη, λάδια, σέρβις, ασφάλιστικές εισφορές κτλ και μέσω στατιστικών και πινάκων να βλέπει σε ποιό τομέα έχει ξοδέψει τα περισσότερα χρήματα. Ακόμη θέλει να ξέρει σε ποιά περίοδο (αυτό το μήνα, το προηγούμενο μήνα, αυτό το έτος, το προηγούμενο έτος) σημειώθηκε το μεγαλύτερο κόστος. 5.2 Αναλυτική παρουσίαση εφαρμογής. Σε αυτή την ενότητα παρουσιάζεται αναλυτικά η εφαρμογή βάση του σεναρίου που παρουσιάσαμε στην προηγούμενη ενότητα. Ακολουθώντας το σενάριο, δείχνουμε σε κάθε βήμα την οθόνη του κινητού του Χρήστου. Ανοιγώντας την εφαρμογή, ο Χρήστος, έχει την δυνατότητα να επιλέξει ένα απο τα ήδη υπάρχωντα οχήματα ή να καταχωρήσει τα στοιχεία ενός νέου οχήματος (Εικόνα 65α). Για την δημιουργία νέου οχήματος, ο Χρήστος, πατάει στο κινητό το κουμπί Μενού και απο την πτυσσόμενη λίστα που εμφανίζεται διαλέγει την πρώτη επιλογή "Νέο αυτοκίνητο". Στην καρτέλα που εμφανίζεται ο Χρήστος αρχικά καταχωρει ένα Ονομα, που είναι αναγνωριστικό του οχήματος για την εφαρμογη. Μετά εισάγει τη Μάρκα, το Μοντέλο, την Χρονολογία, τον Αριθμό κυκλοφορίας και τη Χωρητικότητα του Σελ. 106 από 129

107 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα ρεζερβουάρ. Μόλις συμπληρώσει τα παραπάνω στοιχεία πατάει Αποθήκευση. Εικόνα 65(α, β). Λίστα οχημάτων και φόρμα δημιουργίας νέου οχήματος. Πατώντας Αποθήκευση επιστρέφουμε στην αρχική οθόνη, η οποία υποστηριζεί 2 λειτουργίες, το απλό πάτημα και το παρατεταμένο. Με το απλό πάτημα εμφανίζεται η οθόνη καταχώρησης εξόδων για το συγκεκριμένο αυτοκίνητο και με το παρατεταμένο πατημα μας εμφανίζονται 2 επιλογές, η Επεξεργασία καταχώρησης και η Διαγραφή καταχώρησης. Πατώντας Επεξεργασία καταχώρησης εμφανίζεται πάλι η Εικόνα 65β, όπου είναι ήδη συμπληρωμένα τα στοιχεία του οχήματος. Πατώντας Διαγραφή καταχώρησης διαγράφεται οριστικά η καταχώρηση. Ο Χρήστος με ένα απλό πάτημα διαλέγει την καταχώρηση που μόλις δημιούργησε και εμφανίζεται η οθόνη καταχώρησης των εξόδων. Τα έξοδα Σελ. 107 από 129

108 5 - Παρουσίαση και έλεγχος της εφαρμογής είναι χωρισμένα σε διάφορες κατηγορίες. Η εφαρμογή μας υποστηρίζει τις ακόλουθες κατηγορίες: Βενζίνη Λάδια Πλύσιμο Ασφάλιση Σέρβις Ελαστικά ΚΤΕΟ Επισής υποστηρίζει μια οθόνη που δείχνει συγκεντρωτικά όλες τις κατηγορίες εξόδων. Στη συνέχεια θα δούμε αναλυτικά κάθε κατηγορία δηλαδή καταχώρηση, επεξεργασία και διαγραφή εγγραφής, καθώς και την σελίδα με τα στατιστικά. Η πλοήγηση σε κάθε κατηγορία γίνεται από ένα μενού με καρτέλες που βρίσκεται στο πάνω μέρος της οθόνης. Κάθε κατηγορία είναι ουσιαστικα μια λίστα που εμφανίζει τα έξοδα σε αντίστροφη χρονολογική σειρά. Η λίστα υποστηρίζει παρατεταμένο πάτημα για επεξεργασία και διαγραφή των καταχωρήσεων, ενώ υπάρχει μενού για νέες καταχωρήσεις. Παρακάτω θα δούμε αναλυτικά μια μια τις κατηγορίες που αναφέραμε παραπάνω. Σελ. 108 από 129

109 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Βενζίνη Εικόνα 66(α, β, γ). Οθόνες εξόδων για κατηγορία βενζίνης Στην Εικόνα 66α φαίνεται με αντίστροφη χρονολογική σειρά τα έξοδα της βενζίνης. Αναλυτικά φαίνεται σε κάθε σειρά της λίστας, για κάθε καταχώρηση δηλαδή, η ημερομηνία ανεφοδιασμού, το βενζινάδικο όπου έγινε ο ανεφοδιασμός και το συνολικό κόστος ανεφοδιασμού. Σελ. 109 από 129

110 5 - Παρουσίαση και έλεγχος της εφαρμογής Απο την οθόνη της λίστας πατώντας Μενού έχουμε 2 επιλογές, Νέα καταχώρηση και Στατιστικά. Διαλέγοντας Νέα καταχώρηση μας εμφανίζεται η Εικόνα 66β όπου γίνεται καταχώρηση νέου ανεφοδιασμού. Ο Χρήστος μπορεί να καταχωρήσει Ημερομηνία ανεφοδιασμού, Κόστος, Τιμή ανα λίτρο, Τύπος καυσίμου, Βενζινάδικο, Χιλιόμετρα και Σημειώσεις. Για την καταχώρηση της Ημερομηνίας ανεφοδιασμού, πατώντας επάνω στο πεδίο μας εμφανίζεται ένα ημερολόγιο όπου διαλέγουμε την συγκεκριμένη ημερομηνία. Για την καταχώρηση του «Τύπου καυσίμου», πατώντας επάνω στο πεδίο μας εμφανίζεται μια λίστα απο όπου μπορούμε να διαλέξουμε τον συγκεκριμενο τύπο καυσίμου (Αμόλυβδη, Σούπερ αμόλυβδη, Πετρέλαιο κίνησης) με το οποίο ανεφοδιάσαμε το όχημα μας. Μόλις τελείωσει ο Χρήστος με την εκχώρηση των δεδομένων πατάει Αποθήκευση και επιστρέφει στην πρώτη οθόνη όπου πλέον εμφανίζεται και η τελευταία καταχώρηση που έκανε. Για να εμφανίσουμε την οθόνη με τα στατιστικά πατάμε Μενού και επιλέγουμε την δεύτερη επιλογή Στατιστικα. Διαλέγοντας Στατιστικά μας εμφανίζεται η Εικόνα 66γ όπου ο Χρήστος βλέπει στο επάνω μέρος της οθόνης το Συνολικό κόστος όλων των κατηγοριών και απο κάτω τα Έξοδα ανεφοδιασμού. Στα Έξοδα ανεφοδιασμού βλέπουμε στατιστικές πληροφορίες όπως το Συνολικό κόστος καυσίμου, τα Συνολικά λίτρα που καταναλώθηκαν, καθώς και την ελάχιστη, μέση και μέγιστη Τιμή βενζίνης για την επιλεγμένη περίοδο. Από το πτυσσόμενο μενού Επιλέξτε περίοδο μπορούμε να αλλάξουμε την επιλεγμένη περίοδο που έχουμε για τα στατιστικά. Οι διαθέσιμες επιλογές που έχουμε είναι Συνολικά, Αυτό το μήνα, Προηγούμενο μήνα, Αυτό το έτος και Προηγούμενο έτος. Τέλος στο κάτω μέρος της οθόνης βλέπουμε ένα διάγραμμα το οποίο έχει στο οριζόντιο άξονα τις ημερομηνίες ανεφοδιασμού και στο κάθετο την τιμή καυσίμου ανα λίτρο. Με αυτό το τρόπο μπορούμε εύκολα να παρακολουθήσουμε τις αυξομειώσεις στην τιμή της βενζίνης. Σελ. 110 από 129

111 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Λάδια Στην πρώτη οθόνη (Εικόνα 67α) φαίνεται με αντίστροφη χρονολογική σειρά τα έξοδα των λαδιών. Αναλυτικά φαίνεται σε κάθε σειρά της λίστας, για κάθε καταχώρηση δηλαδή, η ημερομηνία αλλαγής λαδιών και το συνολικό κόστος της αλλαγής. Εικόνα 67(α, β, γ). Οθόνες εξόδων για κατηγορία λαδιών Σελ. 111 από 129

112 5 - Παρουσίαση και έλεγχος της εφαρμογής Απο την οθόνη της λίστας πατώντας Μενού έχουμε 2 επιλογές, Νέα καταχώρηση και Στατιστικά. Διαλέγοντας Νέα καταχώρηση μας εμφανίζεται η δεύτερη οθόνη (Εικόνα 67β) όπου γίνεται καταχώρηση νέας αλλαγής λαδιών. Ο Χρήστος μπορεί να καταχωρήσει Ημερομηνία αλλαγής λαδιών, Κόστος, Τύπος λαδιού, Τοποθεσία αλλαγής, Χιλιόμετρα, Επόμενη αλλαγη στις και Σημειώσεις. Για την καταχώρηση της Ημερομηνίας αλλαγής λαδιού, πατώντας επάνω στο πεδίο μας εμφανίζεται ένα ημερολόγιο όπου διαλέγουμε την συγκεκριμένη ημερομηνία. Για την καταχώρηση του «Τύπου λαδιού», πατώντας επάνω στο πεδίο μας εμφανίζεται μια λίστα απο όπου μπορούμε να διαλέξουμε τον συγκεκριμενο τύπο λαδιού (Απλό, Συνθετικό 10-40, Συνθετικό 5-30, Συνθετικό 2-50). Μόλις τελειώσει ο Χρήστος με την εκχώρηση των δεδομένων πατάει Αποθήκευση και επιστρέφει στην πρώτη οθόνη όπου πλέον εμφανίζεται και η τελευταία καταχώρηση που έκανε. Για να εμφανίσουμε την οθόνη με τα στατιστικά πατάμε Μενού και επιλέγουμε την δεύτερη επιλογή Στατιστικα. Διαλέγοντας Στατιστικά μας εμφανίζεται η τρίτη οθόνη (Εικόνα 67γ) όπου ο Χρήστος βλέπει στο επάνω μέρος της οθόνης το Συνολικό κόστος όλων των κατηγοριών και απο κάτω τα Έξοδα λαδιού. Στα Έξοδα λαδιού βλέπουμε στατιστικές πληροφορίες όπως το Συνολικό κόστος λαδιών καθώς και την ελάχιστη, μέση και μέγιστη Τιμής λαδιού για την επιλεγμένη περίοδο. Από το πτυσσόμενο μενού Επιλέξτε περίοδο μπορούμε να αλλάξουμε την επιλεγμενη περίοδο που έχουμε για τα στατιστικά. Οι διαθέσιμες επιλογές που έχουμε είναι Συνολικά, Αυτό το μήνα, Προηγούμενο μήνα, Αυτό το έτος και Προηγούμενο έτος. Τέλος στο κάτω μέρος της οθόνης βλέπουμε ένα διάγραμμα πίτας, όπου διαλέγοντας το κάθε κομμάτι της πίτας, μας δείχνει το ποσοστό χρήσης του κάθε τύπου λαδιού. Σελ. 112 από 129

113 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Πλύσιμο Εικόνα 68(α, β, γ). Οθόνες εξόδων για κατηγορία πλυσίματος Στην πρώτη οθόνη (Εικόνα 68α) φαίνεται με αντίστροφη χρονολογική σειρά τα έξοδα των πλυσιμάτων. Αναλυτικά φαίνεται σε κάθε σειρά της λίστας, για κάθε καταχώρηση δηλαδή, η ημερομηνία πλυσίματος και το συνολικό κόστος του πλυσίματος. Σελ. 113 από 129

114 5 - Παρουσίαση και έλεγχος της εφαρμογής Απο την οθόνη της λίστας πατώντας Μενού έχουμε 2 επιλογές, Νέα καταχώρηση και Στατιστικά. Διαλέγοντας Νέα καταχώρηση μας εμφανίζεται η δεύτερη οθόνη (Εικόνα 68β) όπου γίνεται καταχώρηση νέας αλλαγής λαδιών. Ο Χρήστος μπορεί να καταχωρήσει Ημερομηνία πλυσίματος, Κόστος, Τύπος πλυσίματος, Αξιολόγηση, Πλυντήριο, Χιλιόμετρα, και Σημειώσεις. Για την καταχώρηση της Ημερομηνίας πλυσίματος, πατώντας επάνω στο πεδίο μας εμφανίζεται ένα ημερολόγιο όπου διαλέγουμε την συγκεκριμένη ημερομηνία. Για την καταχώρηση του «Τύπου πλυσίματος», πατώντας επάνω στο πεδίο μας εμφανίζεται μια λίστα απο όπου μπορούμε να διαλέξουμε τον συγκεκριμένο τύπο πλυσίματος (Εξωτερικά μόνο, Εσωτερικά μόνο, (Εξω+ Εσω)τερικά). Για την καταχώρηση της Αξιολόγησης, χρησιμοποιούμε ένα στοιχείο ελέγχου βαθμολόγησης που μας επιτρέπει με εύκολο τρόπο να ορίσουμε το πόσο ικανοποιημένοι μείναμε με την εξυπερέτηση του πλυντηρίου, δηλώνοντας μια βαθμολογία απο 1 εώς 5 αστέρια. Μόλις τελείωσει ο Χρήστος με την εκχώρηση των δεδομένων πατάει Αποθήκευση και επιστρέφει στην πρώτη οθόνη (Εικόνα 68α) όπου πλέον εμφανίζεται και η τελευταία καταχώρηση που έκανε. Για να εμφανίσουμε την οθόνη με τα στατιστικά πατάμε Μενού και επιλέγουμε την δεύτερη επιλογή Στατιστικα. Διαλέγοντας Στατιστικά μας εμφανίζεται η τρίτη οθόνη (Εικόνα 68γ) όπου ο Χρήστος βλέπει στο επάνω μέρος της οθόνης το Συνολικό κόστος όλων των κατηγοριών και απο κάτω τα Έξοδα πλυσίματος. Στα Έξοδα πλυσίματος βλέπουμε στατιστικές πληροφορίες όπως το Συνολικό κόστος πλυσιμάτων καθώς και την ελάχιστη, μέση και μέγιστη Τιμής πλυσίματος για την επιλεγμένη περίοδο. Απο το πτυσσόμενο μενού Επιλέξτε περίοδο μπορούμε να αλλάξουμε την επιλεγμενη περίοδο που έχουμε για τα στατιστικά. Οι διαθέσιμες επιλογές που έχουμε είναι Συνολικά, Αυτό το μήνα, Προηγούμενο μήνα, Αυτό το έτος και Προηγούμενο έτος. Τέλος στο κάτω μέρος της οθόνης βλέπουμε ένα διάγραμμα με στήλες, όπου βλέπουμε με εύκολο και γραφικό τρόπο τις βαθμολογίες που έχουμε δώσει στα διάφορα πλυντήρια αυτοκινήτων που έχουμε επισκεφτεί. Σελ. 114 από 129

115 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Ασφάλιση Στην πρώτη οθόνη (Εικόνα 69α) φαίνεται με αντίστροφη χρονολογική σειρά τα έξοδα των ασφαλίσεων. Αναλυτικά φαίνεται σε κάθε σειρά της λίστας, για κάθε καταχώρηση δηλαδή, η ημερομηνία ασφάλισης, η εταιρεία ασφάλισης και το συνολικό κόστος της ασφάλειας. Απο την οθόνη της λίστας πατώντας Μενού έχουμε 2 επιλογές, Νέα καταχώρηση και Στατιστικά. Διαλέγοντας Νέα καταχώρηση μας εμφανίζεται η δεύτερη οθόνη (Εικόνα 69β) όπου γίνεται καταχώρηση νέας αλλαγής λαδιών. Ο Χρήστος μπορεί να καταχωρήσει Ημερομηνία εκκίνησης, Ημερομηνία λήξης, Κόστος, Εταιρεία, Αριθμός εκτάκτου ανάγκης, Χιλιόμετρα, και Σημειώσεις. Για την καταχώρηση της Ημερομηνίας εκκίνησης, πατώντας επάνω στο πεδίο μας εμφανίζεται ένα ημερολόγιο όπου διαλέγουμε την συγκεκριμένη ημερομηνία. Το ίδιο ισχύει και για την καταχώρηση της Ημερομηνίας λήξης". Μόλις τελείωσει ο Χρήστος με την εκχώρηση των δεδομένων πατάει Αποθήκευση και επιστρέφει στην πρώτη οθόνη όπου πλέον εμφανίζεται και η τελευταία καταχώρηση που έκανε. Για να εμφανίσουμε την οθόνη με τα στατιστικά πατάμε Μενού και επιλέγουμε την δεύτερη επιλογή Στατιστικα. Στην οθόνη αυτή (Εικόνα 69γ) ο Χρήστος βλέπει στο επάνω μέρος το Συνολικό κόστος όλων των κατηγοριών και απο κάτω τα Έξοδα ασφάλισης. Στα Έξοδα ασφάλισης βλέπουμε στατιστικές πληροφορίες όπως το Συνολικό κόστος. Απο το πτυσσόμενο μενού Επιλέξτε περίοδο μπορούμε να αλλάξουμε την επιλεγμενη περίοδο που έχουμε για τα στατιστικά. Οι διαθέσιμες επιλογές που έχουμε είναι Συνολικά, Αυτό το μήνα, Προηγούμενο μήνα, Αυτό το έτος και Προηγούμενο έτος. Σελ. 115 από 129

116 5 - Παρουσίαση και έλεγχος της εφαρμογής Εικόνα 69(α, β, γ). Οθόνες εξόδων για κατηγορία ασφάλισης Σέρβις Στην πρώτη οθόνη (Εικόνα 70α) φαίνεται με αντίστροφη χρονολογική σειρά τα έξοδα των σέρβις. Αναλυτικά φαίνεται σε κάθε σειρά της λίστας, για κάθε καταχώρηση δηλαδή, η ημερομηνία σέρβις, η τοποθεσία του σέρβις και το συνολικό κόστος του σέρβις. Σελ. 116 από 129

117 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Εικόνα 70(α, β, γ). Οθόνες εξόδων για κατηγορία σέρβις Απο την οθόνη της λίστας πατώντας Μενού έχουμε 2 επιλογές, Νέα καταχώρηση και Στατιστικά. Διαλέγοντας Νέα καταχώρηση μας εμφανίζεται η δεύτερη οθόνη (Εικόνα 70β) όπου γίνεται καταχώρηση νέας αλλαγής λαδιών. Ο Χρήστος μπορεί να καταχωρήσει Ημερομηνία σέρβις, Κόστος, Τύπος σέρβις, Τοποθεσία σέρβις, Χιλιόμετρα, Επόμενη επίσκεψη (χλμ), Επόμενη επίσκεψη (ημρ), και Σημειώσεις. Για την καταχώρηση της Ημερομηνίας σέρβις, πατώντας επάνω στο πεδίο μας Σελ. 117 από 129

118 5 - Παρουσίαση και έλεγχος της εφαρμογής εμφανίζεται ένα ημερολόγιο όπου διαλέγουμε την συγκεκριμένη ημερομηνία. Το ίδιο ισχύει και για την καταχώρηση της Επόμενη επίσκεψη (ημρ). Για την καταχώρηση του «Τύπου σέρβις», πατώντας επάνω στο πεδίο μας εμφανίζεται μια λίστα απο όπου μπορούμε να διαλέξουμε τον συγκεκριμένο τύπο σέρβις (Προγραμματισμένο, Επείγον). Μόλις τελειώσει ο Χρήστος με την εκχώρηση των δεδομένων πατάει Αποθήκευση και επιστρέφει στην πρώτη οθόνη (Εικόνα 70α) όπου πλέον εμφανίζεται και η τελευταία καταχώρηση που έκανε. Για να εμφανίσουμε την οθόνη με τα στατιστικά πατάμε Μενού και επιλέγουμε την δεύτερη επιλογή Στατιστικα. Διαλέγοντας Στατιστικά μας εμφανίζεται η τρίτη οθόνη (Εικόνα 70γ) όπου ο Χρήστος βλέπει στο επάνω μέρος της οθόνης το Συνολικό κόστος όλων των κατηγοριών και απο κάτω τα Έξοδα σέρβις. Στα Έξοδα σέρβις βλέπουμε στατιστικές πληροφορίες όπως το Συνολικό κόστος. Απο το πτυσσόμενο μενού Επιλέξτε περίοδο μπορούμε να αλλάξουμε την επιλεγμενη περίοδο που έχουμε για τα στατιστικά. Οι διαθέσιμες επιλογές που έχουμε είναι Συνολικά, Αυτό το μήνα, Προηγούμενο μήνα, Αυτό το έτος και Προηγούμενο έτος. Σελ. 118 από 129

119 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα Ελαστικά Εικόνα 71(α, β, γ). Οθόνες εξόδων για κατηγορία ελαστικών Στην πρώτη οθόνη (Εικόνα 71α) φαίνεται με αντίστροφη χρονολογική σειρά τα έξοδα των σέρβις. Αναλυτικά φαίνεται σε κάθε σειρά της λίστας, για κάθε καταχώρηση δηλαδή, η ημερομηνία αλλαγής ελαστικών, η τοποθεσία της αλλαγής και το συνολικό κόστος της αλλαγής. Σελ. 119 από 129

120 5 - Παρουσίαση και έλεγχος της εφαρμογής Απο την οθόνη της λίστας πατώντας Μενού έχουμε 2 επιλογές, Νέα καταχώρηση και Στατιστικά. Διαλέγοντας Νέα καταχώρηση μας εμφανίζεται η δεύτερη οθόνη (Εικόνα 71β) όπου γίνεται καταχώρηση νέας αλλαγής λαδιών. Ο Χρήστος μπορεί να καταχωρήσει Ημερομηνία αλλαγής ελαστικών, Κόστος, Τύπος ελαστικού, Τοποθεσία αλλαγής, Χιλιόμετρα, Επόμενη αλλαγή (χλμ), Επόμενη αλλαγή (ημρ), και Σημειώσεις. Για την καταχώρηση της Ημερομηνίας αλλαγής, πατώντας επάνω στο πεδίο μας εμφανίζεται ένα ημερολόγιο όπου διαλέγουμε την συγκεκριμένη ημερομηνία. Το ίδιο ισχύει και για την καταχώρηση της Επόμενη αλλαγή (ημρ). Για την καταχώρηση του «Τύπου ελαστικού», πατώντας επάνω στο πεδίο μας εμφανίζεται μια λίστα απο όπου μπορούμε να διαλέξουμε τον συγκεκριμένο τύπο ελαστικών (Παντός καιρού, Παντός εδάφους, Χειμερινά, Επιδόσεως, Εκτός δρόμου). Μόλις τελείωσει ο Χρήστος με την εκχώρηση των δεδομένων πατάει Αποθήκευση και επιστρέφει στην πρώτη οθόνη όπου πλέον εμφανίζεται και η τελευταία καταχώρηση που έκανε. Για να εμφανίσουμε την οθόνη με τα στατιστικά πατάμε Μενού και επιλέγουμε την δεύτερη επιλογή Στατιστικα. Διαλέγοντας Στατιστικά μας εμφανίζεται η τρίτη οθόνη (Εικόνα 71γ) όπου ο Χρήστος βλέπει στο επάνω μέρος της οθόνης το Συνολικό κόστος όλων των κατηγοριών και απο κάτω τα Έξοδα ελαστικών. Στα Έξοδα ελαστικών βλέπουμε στατιστικές πληροφορίες όπως το Συνολικό κόστος. Απο το πτυσσόμενο μενού Επιλέξτε περίοδο μπορούμε να αλλάξουμε την επιλεγμενη περίοδο που έχουμε για τα στατιστικά. Οι διαθέσιμες επιλογές που έχουμε είναι Συνολικά, Αυτό το μήνα, Προηγούμενο μήνα, Αυτό το έτος και Προηγούμενο έτος. Σελ. 120 από 129

121 Πτυχιακή εργασία του Χριστόφορου Σπυρούκλα ΚΤΕΟ Εικόνα 72(α, β, γ). Οθόνες εξόδων για κατηγορία ΚΤΕΟ Στην πρώτη οθόνη (Εικόνα 72α) φαίνεται με αντίστροφη χρονολογική σειρά τα έξοδα των τεχνικών ελέχγων. Αναλυτικά φαίνεται σε κάθε σειρά της λίστας, για κάθε καταχώρηση δηλαδή, η ημερομηνία πληρωμής του ΚΤΕΟ, το γραφείο ΚΤΕΟ και το συνολικό κόστος της πληρωμής. Απο την οθόνη της λίστας πατώντας Μενού έχουμε 2 επιλογές, Νέα καταχώρηση και Στατιστικά. Διαλέγοντας Νέα καταχώρηση μας Σελ. 121 από 129

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Σπουδάστρια Παρασκευή Μπαράκου ΑΜ-9100 Επιβλέπων Καθηγητής Ιωάννης Τσούλος

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

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

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

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

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

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

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

Internet 1. Ρυθµίσεις ικτύου Η MID διαθέτει ενσωµατωµένο Wi-Fi module. Κάντε κλικ στο, στο µενού ρυθµίσεων θα εµφανιστεί στο MID.

Internet 1. Ρυθµίσεις ικτύου Η MID διαθέτει ενσωµατωµένο Wi-Fi module. Κάντε κλικ στο, στο µενού ρυθµίσεων θα εµφανιστεί στο MID. 1 2 9 4 3 5 6 7 8 Internet 1. Ρυθµίσεις ικτύου Η MID διαθέτει ενσωµατωµένο Wi-Fi module. Κάντε κλικ στο, στο µενού ρυθµίσεων θα εµφανιστεί στο MID. 6.3 Επιλέξτε µια εικόνα. Κάντε κλικ στο "Wallpaper"

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

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη mobile εφαρμογής διεπαφής χρήστη, για τις υπηρεσίες

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

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

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

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

Εισαγωγή Επαφών από την κάρτα SIM

Εισαγωγή Επαφών από την κάρτα SIM 1 Εισαγωγή Επαφών από την κάρτα SIM 1. Πατήστε το Πλήκτρο Κεντρικής Σελίδας > > Επαφές. 2. Πατήστε το Πλήκτρο Μενού > Εισαγωγή / Εξαγωγή > Εισαγωγή από κάρτα SIM. Η συσκευή σας ZTE-RACER θα διαβάσει αυτόματα

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

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

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

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

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

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

Περιεχόµενα. Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional. Ευχαριστίες... 17 Εισαγωγή... 19

Περιεχόµενα. Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional. Ευχαριστίες... 17 Εισαγωγή... 19 Περιεχόµενα Ευχαριστίες... 17 Εισαγωγή... 19 Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional 1 Εισαγωγή στη διαχείριση των Microsoft Windows XP Professional... 25 Ξεκίνηµα µε τα Windows XP

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

Δομή. 1 Πλήκτρα αυξομείωσης έντασης ήχου 7 Ηχεία 2 Θύρα Φόρτιση. 8 Πλήκτρο Home 3 Θύρα MicroUSB. 9 Είσοδος Κάρτας SD. 6 Μπροστινή κάμερα

Δομή. 1 Πλήκτρα αυξομείωσης έντασης ήχου 7 Ηχεία 2 Θύρα Φόρτιση. 8 Πλήκτρο Home 3 Θύρα MicroUSB. 9 Είσοδος Κάρτας SD. 6 Μπροστινή κάμερα Γρήγορος Οδηγός, Δομή 1 2 3 4 5 6 7 7 8 6 10 11 1 Πλήκτρα αυξομείωσης έντασης ήχου 7 Ηχεία 2 Θύρα Φόρτιση 8 Πλήκτρο Home 3 Θύρα MicroUSB 9 Είσοδος Κάρτας SD 4 Υποδοχή ακουστικών 3.5mm 10 Πίσω κάμερα 5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Οδηγός των Ελληνικών Microsoft WINDOWS 7

Οδηγός των Ελληνικών Microsoft WINDOWS 7 Οδηγός των Ελληνικών Microsoft WINDOWS 7 Chris Fehily Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2010 www.mgiurdas.gr Τίτλος

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

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

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

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

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

ΤΕΙ ΠΕΙΡΑΙΑ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΕΙ ΠΕΙΡΑΙΑ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Υποβοήθηση Επιβίωσης Ηλικιωμένων μέσω εφαρμογής

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

Google Apps για το Office 365 για επιχειρήσεις

Google Apps για το Office 365 για επιχειρήσεις Google Apps για το Office 365 για επιχειρήσεις Πραγματοποίηση της μετάβασης Το Office 365 για επιχειρήσεις έχει διαφορετική εμφάνιση από το Google Apps. Για το λόγο αυτό, όταν συνδεθείτε, θα δείτε αυτήν

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

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

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

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

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

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

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

ΨΗΦΙΑΚΗ ΑΛΛΗΛΕΓΓΥΗ ΟΔΗΓΟΣ

ΨΗΦΙΑΚΗ ΑΛΛΗΛΕΓΓΥΗ ΟΔΗΓΟΣ ΨΗΦΙΑΚΗ ΑΛΛΗΛΕΓΓΥΗ ΟΔΗΓΟΣ Πίνακας Περιεχομένων Ενεργοποίηση και Αρχικοποίηση Συσκευής... 4 1 Περιεχόμενα συσκευασίας ipad... 5 2 Εξοικείωση με την συσκευή... 6 3 Αρχικοποίηση και ρυθμίσεις ipad... 7 4

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

ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr. Εγχειρίδιο Χρήσης Μελών ΔΕΠ

ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr. Εγχειρίδιο Χρήσης Μελών ΔΕΠ ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr Εγχειρίδιο Χρήσης Μελών ΔΕΠ Αναζήτηση Δημόσιου Περιεχομένου Η διεύθυνση ιστού της νεάς πλατφόρμας διαχείρισης βιντεοδιαλέξεων Δήλος είναι: http://delos.uoa.gr

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

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

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

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

Κουμπί επαναφοράς (RESET BUTTON) Οπές εγκατάστασης συσκευής στην επιτοίχια βάση

Κουμπί επαναφοράς (RESET BUTTON) Οπές εγκατάστασης συσκευής στην επιτοίχια βάση Οδηγός Εγκατάστασης και Λειτουργίας Έξυπνου Ασύρματου κουδουνιού πόρτας ZV400V Εμπρόσθια Όψη Συσκευής Οπίσθια Όψη Συσκευής Οπές εγκατάστασης συσκευής στην επιτοίχια βάση Αισθητήρας κίνησης Κάμερα Θύρα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Συσκευές κατάδειξης και πληκτρολόγιο Οδηγός χρήσης

Συσκευές κατάδειξης και πληκτρολόγιο Οδηγός χρήσης Συσκευές κατάδειξης και πληκτρολόγιο Οδηγός χρήσης Copyright 2007 Hewlett-Packard Development Company, L.P. Οι ονοµασίες Microsoft και Windows είναι εµπορικά σήµατα κατατεθέντα της εταιρίας Microsoft Corporation.

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

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

Ολοκληρωμένες Δράσεις προβολής δημοσιότητας για το Δήμο Αρχανών Αστερουσίων Εγχειρίδιο Χρήσης - Παρουσίαση Novel Tech «Μέλος του Επιστημονικού & Τεχνολογικού Πάρκου Κρήτης» http://www.noveltech.gr info@noveltech.gr Ολοκληρωμένες Δράσεις προβολής δημοσιότητας για το Δήμο Αρχανών Αστερουσίων Εγχειρίδιο Χρήσης

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

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

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

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

Υποστήριξη. Σας ευχαριστούμε που επιλέξατε τα προϊόντα NETGEAR.

Υποστήριξη. Σας ευχαριστούμε που επιλέξατε τα προϊόντα NETGEAR. Έναρξη χρήσης Υποστήριξη Σας ευχαριστούμε που επιλέξατε τα προϊόντα NETGEAR. Αφού εγκαταστήσετε τη συσκευή σας, εντοπίστε τον σειριακό αριθμό στην ετικέτα του προϊόντος και χρησιμοποιήστε τον για να δηλώσετε

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

Ενηµερώσεις λογισµικού Οδηγός χρήσης

Ενηµερώσεις λογισµικού Οδηγός χρήσης Ενηµερώσεις λογισµικού Οδηγός χρήσης Copyright 2009 Hewlett-Packard Development Company, L.P. Η ονοµασία Windows είναι σήµα κατατεθέν της Microsoft Corporation στις Ηνωµένες Πολιτείες. Οι πληροφορίες στο

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

Samsung PC Studio 3.0 Οδηγός χρήστη

Samsung PC Studio 3.0 Οδηγός χρήστη Samsung PC Studio 3.0 Οδηγός χρήστη Πνευματικά Δικαιώματα 2005 Samsung Electronics Co., Ltd. Περιεχόμενα 1. Samsung PC Studio...4 1.1. Απαιτήσεις συστήματος...4 1.2. Χαρακτηριστικά του PC Studio...4 2.

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

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

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

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

Marmitek UltraViewPro 1

Marmitek UltraViewPro 1 IP CAMERA SERIES IP Eye Anywhere 10 11 20 21 470 IP RoboCam 10 11 21 541 641 ULTRAVIEW PRO ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1..1 ΕΙΣΑΓΩΓΗ....1 ΚΕΦΑΛΑΙΟ 2.. 2 ΕΓΚΑΤΑΣΤΑΣΗ... 2 ΚΕΦΑΛΑΙΟ......3 ΧΡΗΣΗ MARMITEK Ultraview

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

Χαρακτηριστικά ιστοσελίδας

Χαρακτηριστικά ιστοσελίδας Χαρακτηριστικά ιστοσελίδας COSMOS4U Web Site Pro Χαρακτηριστικά Επιπλέον Δυνατότητες Προφίλ Εταιρίας Παρουσίαση της εταιρίας σας με φωτογραφικό υλικό και κείμενα. Τήρηση προδιαγραφών και χρήση λέξεων κλειδιά

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

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

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

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

Συσκευές δείκτη και πληκτρολόγιο Οδηγός χρήσης

Συσκευές δείκτη και πληκτρολόγιο Οδηγός χρήσης Συσκευές δείκτη και πληκτρολόγιο Οδηγός χρήσης Copyright 2007 Hewlett-Packard Development Company, L.P. Οι ονοµασίες Microsoft και Windows είναι εµπορικά σήµατα κατατεθέντα της εταιρίας Microsoft Corporation.

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

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

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

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

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

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

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

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

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

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

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

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

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

1. Κατάλογος συσκευασίας

1. Κατάλογος συσκευασίας 1. Κατάλογος συσκευασίας 1. 2. Αντάπτορας AC 3. 4. Καλώδιο USB 5. Κάρτα εγγύησης 2. Γενική επισκόπηση της συσκευής 3 4 5 1 6 2 7 1 2 3 4 5 6 Πλήκτρο Λειτουργίας\Επανα φοράς Ένταση +\ Ένταση - Κάρτα Micro

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

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

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

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

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

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

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

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

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

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

ΟΔΗΓΟΣ ΓΡΗΓΟΡΗΣ ΕΝΑΡΞΗΣ

ΟΔΗΓΟΣ ΓΡΗΓΟΡΗΣ ΕΝΑΡΞΗΣ ΟΔΗΓΟΣ ΓΡΗΓΟΡΗΣ ΕΝΑΡΞΗΣ ΟΔΗΓΟΣ ΓΡΗΓΟΡΗΣ ΕΝΑΡΞΗΣ Σημειώσεις και ειδοποιήσεις ΣΗΜΕΙΩΣΗ: Η ΣΗΜΕΙΩΣΗ υποδεικνύει σημαντικές πληροφορίες που σας βοηθούν να χρησιμοποιείτε καλύτερα τον υπολογιστή σας. ΠΡΟΣΟΧΗ:

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

Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών

Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών Η LINK Technologies Α.Ε. ιδρύθηκε το 2002 με στόχο να καταστεί πυρήνας καινοτομικών λύσεων Τηλεματικής αναβαθμίζοντας καθημερινά

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

Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ. 176 75, Ελλάδα, Τηλ. 210 9580887-8 Φαξ.2109580885

Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ. 176 75, Ελλάδα, Τηλ. 210 9580887-8 Φαξ.2109580885 CubisLITE Client Οδηγίες Χρήσεως Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ. 176 75, Ελλάδα, Τηλ. 210 9580887-8 Φαξ.2109580885 1 ΠΕΡΙΕΧΟΜΕΝΑ Γενικά 1. Τι είναι ο CubisLITE Server 2. Τι είναι ο

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

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

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

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

Sricam R CONCEPTUM. SricamPC. Εγχειρίδιο εφαρμογής

Sricam R CONCEPTUM. SricamPC. Εγχειρίδιο εφαρμογής Sricam Sricam Sricam Sricam Εγχειρίδιο εφαρμογής SricamPC 1. Τι μπορείτε να κάνετε με το SricamPC Το SricamPC είναι δωρεάν λογισμικό συμβατό με Microsoft Windows 7, 8 και 10. Το SricamPC σας επιτρέπει:

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

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

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

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

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

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

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

Τ.Ε.Ι. Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων Μεσολόγγι. 7 η Διάλεξη. Μάθημα: Τεχνολογίες Διαδικτύου

Τ.Ε.Ι. Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων Μεσολόγγι. 7 η Διάλεξη. Μάθημα: Τεχνολογίες Διαδικτύου Τ.Ε.Ι. Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων Μεσολόγγι 7 η Διάλεξη Μάθημα: Τεχνολογίες Διαδικτύου Περιεχόμενα 7 η διάλεξη Δικτυακή ουδετερότητα (net neutrality) Κινητός παγκόσμιος ιστός (mobile

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

Οδηγίες Χρήσης Υπηρεσίας Τηλεδιασκέψεων

Οδηγίες Χρήσης Υπηρεσίας Τηλεδιασκέψεων Οδηγίες Χρήσης Υπηρεσίας Τηλεδιασκέψεων Η υπηρεσία Εικονικής Τάξης έχει υλοποιηθεί µε χρήση του ανοικτού λογισµικού για τηλεδιασκέψεις Big Blue Button (BBB) http://bigbluebutton.org/. Η υπηρεσία Εικονικής

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

Περιεχόμενα Πώς να χρησιμοποιήσετε το βιβλίο... 7 Αντί προλόγου... 9 Κεφάλαιο 1: Κεφάλαιο 2: Κεφάλαιο 3: Κεφάλαιο 4: Κεφάλαιο 5: Πώς να δημιουργήσω το Προφίλ μου και να γίνω μέλος στο Facebook;... 15 Τι

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

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

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

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

Διαχειριστικό Εργαλείο One Net

Διαχειριστικό Εργαλείο One Net Διαχειριστικό Εργαλείο One Net Προφίλ τελικού χρήστη Πληροφορίες χρήστη Στο μενού αυτό συγκεντρώνονται όλα τα δεδομένα που σχετίζονται άμεσα με την οντότητα του Τελικού Χρήστη. Τα δεδομένα παρουσιάζονται

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

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας Περιεχόμενα Κεφάλαιο 1 Microsoft Excel 2010... 7 Κεφάλαιο 2 Η δομή ενός φύλλου εργασίας... 19 Κεφάλαιο 3 ημιουργία νέου βιβλίου εργασίας και καταχώριση δεδομένων... 24 Κεφάλαιο 4 Συμβουλές για την καταχώριση

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

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

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

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

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

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

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

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

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

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

ηλικία Android 4.1.1 Το Αληθινό Εκπαιδευτικό Tablet για Παιδιά

ηλικία Android 4.1.1 Το Αληθινό Εκπαιδευτικό Tablet για Παιδιά Εκπαιδευτικές Εφαρµογές ειδικά σχεδιασµένες στα ελληνικά για το Clempad, προσφέρουν την απόλυτη εµπειρία παιχνιδιού και µάθησης Γονικός Έλεγχος διαχείριση περιεχοµένου Ασφαλές Internet έλεγχος µε ρυθµίσεις

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

Μάθημα 4ο. Προγράμματα

Μάθημα 4ο. Προγράμματα Μάθημα 4ο Προγράμματα Σελίδα 47 από 106 4.1 Εγκατάσταση προγραμμάτων Όπως έχουμε πει στο πρώτο μάθημα (Σημειώσεις 1ου Μαθήματος 1.3.3.Β σελ. 12) τα προγράμματα ή αλλιώς εφαρμογές αποτελούν μέρος του λογισμικού

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

Η συσκευή υποστηρίζει την αποστολή/λήψη μηνυμάτων. Πιέστε το πλήκτρο μηνυμάτων για να γράψετε ένα νέο. Επιλέξτε Μενού Μήνυμα Γράψε Μήνυμα στην

Η συσκευή υποστηρίζει την αποστολή/λήψη μηνυμάτων. Πιέστε το πλήκτρο μηνυμάτων για να γράψετε ένα νέο. Επιλέξτε Μενού Μήνυμα Γράψε Μήνυμα στην Οδηγίες Χρήσης 1 1.Μηνύμα Η συσκευή υποστηρίζει την αποστολή/λήψη μηνυμάτων SMS. Πιέστε το πλήκτρο μηνυμάτων για να γράψετε ένα νέο μήνυμα. Σύνταξη μηνύματος Επιλέξτε Μενού Μήνυμα Γράψε Μήνυμα στην συνέχεια

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

ΟΔΗΓΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΑΙ ΧΡΗΣΗΣ ΤΟΥ. WiFi V-Timer ΕΚΔΟΣΗ 1 Η

ΟΔΗΓΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΑΙ ΧΡΗΣΗΣ ΤΟΥ. WiFi V-Timer ΕΚΔΟΣΗ 1 Η ΟΔΗΓΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΑΙ ΧΡΗΣΗΣ ΤΟΥ WiFi V-Timer ΕΚΔΟΣΗ 1 Η 1 Δυνατότητες του WiFi V-Timer To WiFi V-Timer είναι ένα V-Timer με διπλή λειτουργικότητα 1. Δυνατότητα ασύρματης σύνδεσης στο Ίντερνετ μέσω

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

Οδηγίες Εγκατάστασης της εφαρμογής Readium και Readium για μαθητές με αμβλυωπία για την ανάγνωση βιβλίων epub σε Υπολογιστή.

Οδηγίες Εγκατάστασης της εφαρμογής Readium και Readium για μαθητές με αμβλυωπία για την ανάγνωση βιβλίων epub σε Υπολογιστή. Οδηγίες Εγκατάστασης της εφαρμογής Readium και Readium για μαθητές με αμβλυωπία για την ανάγνωση βιβλίων epub σε Υπολογιστή. Βήμα 1 ο : Εγκατάσταση εφαρμογής ανάγνωσης Readium και Readium για μαθητές με

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

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη 01 Εισαγωγή Μια απλή και γρήγορη εισαγωγή Το Splunk > είναι ένα πρόγραμμα το οποίο πρωτοεμφανίστηκε στην αγορά το 2003 και αποτελεί ένα πρόγραμμα εξόρυξης

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

Οδηγό γρήγορης έναρξης Vodafone 858 Smart

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP)

ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP) ΤΜΗΜΑ ΦΥΣΙΚΗΣ Α.Π.Θ. ΕΡΓΑΣΤΗΡΙΟ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP) Κ. Παρασκευόπουλος Αναπλ. Καθηγητής Θεσσαλονίκη 2004 1. Μερικά κλασσικά ερωτήματα

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

CHEVROLET MYLINK. Συνοπτικός οδηγός

CHEVROLET MYLINK. Συνοπτικός οδηγός CHEVROLET MYLINK Συνοπτικός οδηγός Το Chevrolet MyLink είναι ένα σύστημα ενημέρωσης και ψυχαγωγίας που ενισχύει την οδηγική σας εμπειρία. Λειτουργεί με απλή συνδεσιμότητα, ένα smartphone και μια υπέροχη

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

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

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

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

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

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

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

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48 ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή 6 Δημιουργία λογαριασμού 13 Εγκατάσταση και λειτουργία του Skype 28 Βασικές λειτουργίες 32 Επιλογές συνομιλίας 48 Γενικές ρυθμίσεις Skype 64 Το Skype σε φορητές συσκευές 78 Εγγραφή

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

ομή οθόνη 3 Αισθητήρας εγγύτητας 2 Υποδοχή ακουστικών 3.5mm 9 Φλας 4 Μπροστινή κάμερα 10 Κάμερα 5 Πλήκτρο ενεργοποίησης/κλειδώματος 11 Ηχείο 6 Menu

ομή οθόνη 3 Αισθητήρας εγγύτητας 2 Υποδοχή ακουστικών 3.5mm 9 Φλας 4 Μπροστινή κάμερα 10 Κάμερα 5 Πλήκτρο ενεργοποίησης/κλειδώματος 11 Ηχείο 6 Menu Γρήγορος Οδηγός, ομή 1 2 3 4 5 9 10 6 7 8 11 12 13 1 Πλήκτρο αυξομείωσης έντασης ήχου 8 Επιστροφή στην προηγούμενη 2 Υποδοχή ακουστικών 3.5mm οθόνη 3 Αισθητήρας εγγύτητας 9 Φλας 4 Μπροστινή κάμερα 10 Κάμερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ: ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ ΚΑΙ ΔΙΚΤΥΑ ΘΕΜΑ ΜΕΤΑΠΤΥΧΙΑΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ ΕΦΑΡΜΟΓΗ ΕΥΡΕΣΗΣ WiFi ΔΙΚΤΥΩΝ ΣΤΗΝ ΠΛΑΤΦΟΡΜΑ ANDROID ΦΟΙΤΗΤΡΙΑ: ΠΟΛΥΜΕΡΗ ΑΙΚΑΤΕΡΙΝΗ Α.Μ: ΜΕ11089 ΕΠΙΒΛΕΠΩΝ:

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

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

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

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

Στο παράθυρο που θα εµφανιστεί πατήστε το κουµπί Unzip.

Στο παράθυρο που θα εµφανιστεί πατήστε το κουµπί Unzip. Το αρχείο EstateWeb 4.0.2.exe περιέχει την εγκατάσταση της εφαρµογής σε συµπιεσµένη µορφή. Για αυτό το λόγο θα πρέπει πρώτα να αποσυµπιέσετε τα αρχεία της εγκατάστασης στον σκληρό σας δίσκο. Κάντε διπλό

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

Περιεχόμενα. Περιβάλλον ηλεκτρονικού υπολογιστή...9 Επιφάνεια εργασίας...12 Διαχείριση αρχείων...15 Ιοί Η/Υ...21 Διαχείριση εκτυπώσεων...

Περιεχόμενα. Περιβάλλον ηλεκτρονικού υπολογιστή...9 Επιφάνεια εργασίας...12 Διαχείριση αρχείων...15 Ιοί Η/Υ...21 Διαχείριση εκτυπώσεων... Περιεχόμενα Περιβάλλον ηλεκτρονικού υπολογιστή...9 Επιφάνεια εργασίας...12 Διαχείριση αρχείων...15 Ιοί Η/Υ...21 Διαχείριση εκτυπώσεων...22 Περιβάλλον ηλεκτρονικού υπολογιστή...23 Επιφάνεια εργασίας...26

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

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

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

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

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

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

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

2

2 1 2 1.1 1.2 3 2.1 2.2 2.3 4 3.1 3.2 5 ΠΑΡΟΥΣΙΑΣΗ ΤΟΥ ΚΙΝΗΤΟΥ ΣΑΣ ΤΗΛΕΦΩΝΟΥ Μάθετε για τα κουµπιά, την οθόνη και τα εικονίδια του νέου σας τηλεφώνου. Κουµπιά Στην µπροστινή όψη του τηλεφώνου σας θα παρατηρήσετε

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

Atlantis Orders on android

Atlantis Orders on android Atlantis Orders on android 1 Πίνακας περιεχομένων Σύντομη περιγραφή... 3 Αναλυτικότερα για τις παραγγελίες... 3 Περί συγχρονισμού... 4 Η πρώτη χρήση της συσκευής... 5 Για κανονική χρήση... 5 Διαχείριση

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