ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕΛΕΤΗ ΚΑΙ ΑΠΟΤΥΠΩΣΗ ΤΗΣ ΔΟΜΗΣ ΚΑΙ ΤΩΝ ΒΑΣΙΚΩΝ ΧΑΡΑΚΤΗΡΙΣΤΙΚΩΝ ΤΟΥ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ANDROID V 4.4 KITKAT Σπουδαστής : Πατανούδης Δημήτριος (ΑΕΜ 137) Επιβλέπων : Δρ. Σπυρίδων Α. Καζαρλής Καθηγητής Υπεύθυνος Τομέα ΣΕΡΡΕΣ 2015
Εισαγωγή Επικοινωνία είναι η διαδικασία της ανταλλαγής πληροφορίας μεταξύ δύο ή περισσοτέρων μερών για τα οποία η πληροφορία έχει νόημα, οπότε αποκτά νόημα και η ανταλλαγή της ως πράξη. Επικοινωνία έχουμε για παράδειγμα μεταξύ έμβιων όντων με την ανταλλαγή σκέψεων, μηνυμάτων, συναισθημάτων ή πληροφορίας μέσω της ομιλίας, της εικόνας, της γραφής, της συμπεριφοράς κλπ. Η επικοινωνία αποτελεί ένα σημαντικό κομμάτι ολόκληρου του πλανήτη μας. Χάρη σε αυτήν η καθημερινότητα μας έγινε πιο εύκολη και η επικοινωνία με μακρινούς συγγενείς πιο άμεση. Αυτό έχει και ως αποτέλεσμα όλες αυτές οι επικοινωνιακές συσκευές να έχουν ακόμα και συναισθηματική αξία για μας. Η επικοινωνία έχει αναπτυχθεί με την πάροδο του χρόνου. Επικοινωνία είναι η ανταλλαγή υλικών και πνευματικών αγαθών. Τα παλαιότερα χρόνια η μορφή της επικοινωνίας ήταν κυρίως λεκτική, αλλά στις μέρες μας χρησιμοποιείται και η μαζική επικοινωνία η οποία δεν είναι μορφή επικοινωνίας που δόθηκε από την φύση. Σε αυτήν περιλαμβάνονται τα νέα μέσα, όπως είναι η τηλεόραση, το τηλέφωνο, ο κινηματογράφος, το Διαδίκτυο (Internet) κ.ά. Στην παρούσα πτυχιακή εργασία θα γίνει μία αναφορά των βασικών χαρακτηριστικών του λειτουργικού συστήματος Android, που χρησιμοποιείται στα κινητά τηλέφωνα νέας γενιάς (smartphone) και στα tablets. Συγκεκριμένα θα γίνει αναφορά στα χαρακτηριστικά της έκδοσης Android 4.4 KitKat.
ΚΕΦΑΛΑΙΟ 1 Το Λειτουργικό Σύστημα Android Το Android είναι ένα λειτουργικό σύστημα ανοιχτού κώδικα, κατασκευασμένο για συσκευές κινητής τηλεφωνίας και tablets βασισμένο στον πυρήνα του λειτουργικού Linux. Αρχικά αναπτύχθηκε από την Google και αργότερα από την Open Handset Alliance. Επιτρέπει στους κατασκευαστές λογισμικού να συνθέτουν κώδικα με την χρήση της γλώσσας προγραμματισμού Java, ελέγχοντας την συσκευή μέσω βιβλιοθηκών λογισμικού ανεπτυγμένων από την Google. Το Android είναι, κατά κύριο λόγο σχεδιασμένο, για συσκευές με οθόνη αφής,όπως τα smartphone και τα tablets. Επίσης με ειδικά σχεδιασμένο περιβάλλον χρήστη χρησιμοποιείται και σε τηλεοράσεις (Android TV), αυτοκίνητα (Android Auto) και σε ρολόγια χειρός (Android Wear). Το λογότυπο για το λειτουργικό σύστημα Android είναι ένα ρομπότ σε χρώμα πράσινου μήλου και σχεδιάστηκε από τη γραφίστρια Irina Blok. Το λογότυπο του Android
ΚΕΦΑΛΑΙΟ 1 Το Λειτουργικό Σύστημα Android Όλα ξεκίνησαν όταν ο Andy Rubin, συνιδρυτής μαζί με τους, Rich Miner, Nick Sears και Chris White της Android Inc. θέλησε την Άνοιξη του 2005 να χρησιμοποιήσει την Google ως κατ’ εξοχήν μηχανή αναζήτησης για το T-Mobile Sidekick, μια φερέλπιδα συσκευή κινητού, την οποία είχε αναπτύξει με την ομάδα συνεργατών του. Εν συνεχεία, ζήτησε να συναντηθεί με τον Larry Page, ο οποίος είναι ο ένας από τους δύο ιδρυτές της Google. Σε αυτήν τη συνάντηση ο Rubin παρουσίασε το Android ως ένα εν δυνάμει παγκόσμιο ανοικτό λειτουργικό σύστημα που θα άλλαζε για πάντα τον τρόπο που οι χρήστες χρησιμοποιούν το κινητό τους, τονίζοντας, ταυτόχρονα, τη σταθερή υπεροχή που παρατηρείται στις συνήθειες του αγοραστικού κοινού των κινητών τηλεφώνων, σε αντιδιαστολή με τις πωλήσεις ηλεκτρονικών υπολογιστών. Την ίδια στιγμή ο Larry Page δεν ήθελε να γίνει απλά ένας υποστηρικτής του Android, ήθελε να γίνει ο ιδιοκτήτης του. Ο Andy Rubin εκμεταλλευόμενος και την εμφάνιση της Apple με το iPhone, έθεσε τους δικούς του όρους σε αυτήν την διαπραγμάτευση. Ο επιχειρηματικός και τεχνολογικός κόσμος περίμενε πως η Google θα απαντούσε με ένα gPhone, αλλά αυτό δεν έγινε, διότι έγινε κάτι άλλο, πολύ σημαντικότερο. Στις 5 Νοεμβρίου 2007, ανακοινώθηκε η Open Handset Alliance (ΟΗΑ), μια κοινοπραξία εταιρειών τεχνολογίας, όπως η HTC, η Sony, η Samsung, η Sprint Nextel, η Texas Instruments και φυσικά η Google. Η OHA συστάθηκε με στόχο τη δημιουργία μιας πλατφόρμας ανοιχτού κώδικα που θα έχει ενσωματωμένο το λογισμικό Linux για τις συσκευές κινητής τηλεφωνίας. Εκείνη την ημέρα, παρουσιάστηκε το Android ως το πρώτο προϊόν τής, μια πλατφόρμα για συσκευές κινητής τηλεφωνίας βασισμένη στην έκδοση του πυρήνα Linux
ΚΕΦΑΛΑΙΟ 1 Το Λειτουργικό Σύστημα Android Εταιρίες κοινοπραξίας OHA
ΚΕΦΑΛΑΙΟ 1 Το Λειτουργικό Σύστημα Android Η πρώτη εμπορικά διαθέσιμη συσκευή που έτρεχε σε Android ήταν το HTC Dream, που κυκλοφόρησε στις 22 Οκτωβρίου Το 2010, η Google εγκαινίασε τις συσκευές της σειράς Nexus, μια σειρά από smartphone και tablets που έχουν το λειτουργικό σύστημα Android, όπως αυτούσιο αυτό κατασκευάστηκε, από τους εταίρους. Η HTC συνεργάστηκε με την Google για να κυκλοφορήσει το πρώτο smartphone Nexus, το Nexus One. Η Google δημιουργεί την σειρά Nexus, η οποία λειτουργεί ως ναυαρχίδα των συσκευών Android, επιδεικνύοντας έτσι τα πιο πρόσφατα στοιχεία λογισμικού και hardware του λειτουργικού συστήματος Android. HTC Dream Το πρώτο Android Nexus smartphone
ΚΕΦΑΛΑΙΟ 1 Το Λειτουργικό Σύστημα Android Από το 2011, το Android είναι το πιο διαδεδομένο λειτουργικό σύστημα σε συσκευές κινητής τηλεφωνίας. Από το 2013, οι συσκευές με λειτουργικό σύστημα Android είναι πρώτες σε πωλήσεις παγκοσμίως, ξεπερνώντας ακόμα και το σύνολο των πωλήσεων των συσκευών με λειτουργικό σύστημα Windows Mobile, iOS και Mac OS. Το Android είναι πολύ δημοφιλές σε τεχνολογικές εταιρίες που απαιτούν ένα έτοιμο, χαμηλού κόστους και προσαρμόσιμο λειτουργικό σύστημα για συσκευές υψηλής τεχνολογίας. Η ανοιχτή φύση του λειτουργικού έχει ενθαρρύνει μια μεγάλη κοινότητα προγραμματιστών, να χρησιμοποιήσουν τον πηγαίο κώδικα του Android, σαν θεμέλιο για νέα σχέδια τα οποία θα προσθέσουν νέα χαρακτηριστικά για προχωρημένους χρήστες, ή να φέρουν το Android σε συσκευές που έχουν κυκλοφορήσει με άλλο λειτουργικό σύστημα. Σύγκριση πωλήσεων συσκευών smartphone
ΚΕΦΑΛΑΙΟ 1 Το Λειτουργικό Σύστημα Android Το Android έχει μια μεγάλη κοινότητα προγραμματιστών που γράφουν εφαρμογές, οι οποίες επεκτείνουν τη λειτουργικότητα των συσκευών. Οι εφαρμογές γράφονται σε μια προσαρμοσμένη έκδοση της JAVA και μπορεί κάνεις να κατεβάσει από το OnLine κατάστημα Google Play (πρώην Android Market) της Google όπως και από άλλα sites. Μέχρι τον Ιανουάριο του 2015 περισσότερες από 1.43 εκατομμύρια εφαρμογές ήταν διαθέσιμες για Android ενώ εκτιμάτε ότι ο αριθμός των downloads από το Android Market έχει υπερβεί τα 50 δισεκατομμύρια. Το Android είναι η πρώτη σε πωλήσεις παγκοσμίως πλατφόρμα για smartphone, καθώς μέχρι το Δεκέμβριο του 2014 μετρούσε περισσότερες από 1 δισεκατομμύριο συσκευές σε χρήση. Αριθμός εφαρμογών στα διάφορα App STORES Ιούλιος 2014
ΚΕΦΑΛΑΙΟ 1 Το Λειτουργικό Σύστημα Android Από το 2008, το Android έχει δει πολλές ενημερώσεις που έχουν βελτιώσει σταδιακά το λειτουργικό σύστημα, προσθέτοντας νέα χαρακτηριστικά και διορθώνοντας σφάλματα προηγούμενων εκδόσεων. Κάθε κύρια έκδοση ονομάζεται με αλφαβητική σειρά μετά από ένα γλυκό, για παράδειγμα, η έκδοση 1.5 Cupcake ακολουθήθηκε από 1.6 Donut. Η έκδοση, KitKat, κυκλοφόρησε ως μια ενημερωμένη έκδοση ασφαλείας μόνο, η οποίο κυκλοφόρησε στις 19 Ιουνίου το 2014, λίγο μετά την κυκλοφορία του Η τελευταία έκδοση του Android, κυκλοφόρησε στις 12 Νοεμβρίου 2014 και είναι η Lollipop 5.0, η οποία ως βασικό της χαρακτηριστικό έχει την εισαγωγή του “material design” σαν νέα γλώσσα σχεδιασμού. Ακολουθήθηκε από δύο διορθωμένες εκδόσεις, την και Η εξέλιξή του λόγω της open source φύσης του, είναι ραγδαία και αυτό αντικατοπτρίζεται στο γεγονός ότι οι 7 κύριες εκδόσεις του έχουν κυκλοφορήσει σε διάστημα 2.5 ετών, από τον Απρίλη του 2009 μέχρι τον Νοέμβριο του 2011.
ΚΕΦΑΛΑΙΟ 1 Το Λειτουργικό Σύστημα Android Εκδόσεις Android
ΚΕΦΑΛΑΙΟ 1 Το Λειτουργικό Σύστημα Android Android 1.5 Cupcake Η έκδοση “Cupcake”, βασισμένη στο Linux Kernel , παρουσιάστηκε στις 27 Απριλίου του Υποστηρίζει νέες λειτουργίες για την κάμερα τις συσκευής, όπως η καταγραφή και παρακολούθηση βίντεο από την λειτουργία της κάμερας και η άμεση μεταφόρτωση του βίντεο, αλλά και των φωτογραφιών στο Youtube και το Picasa αντίστοιχα απευθείας από το τηλέφωνο. Έχει νέο έξυπνο πληκτρολόγιο με πρόβλεψη κειμένου. Υποστηρίζει πρότυπο Bluetooth A2DP και AVRCP, ενώ έχει και την ικανότητα να συνδέεται αυτόματα σε μικροσυσκευές Bluetooth από μια συγκεκριμένη απόσταση. Android 1.6 Donut Η έκδοση “Donut”, βασισμένη στο Linux Kernel , παρουσιάστηκε στις 15 Σεπτεμβρίου του 2009.Έχει ταχύτερη απόκριση σε σχέση με την προηγούμενη έκδοση. Υποστηρίζεται πλέον η επιλογή πολλαπλών αρχείων ταυτόχρονα, έχει ανανεωμένο γκάλερι και φωτογραφική μηχανή, καθώς και βελτιωμένο Android Market. Έχει ανανεωμένη φωνητική αναζήτηση, με ταχύτερη απόκριση και βαθύτερη ολοκλήρωση με εγγενείς (native) εφαρμογές, συμπεριλαμβανομένης της δυνατότητας κλήσης επαφών. Δυνατότητα αναζήτησης σελιδοδεικτών, ιστορικού, επαφών αλλά και στο διαδίκτυο από την αρχική οθόνη. Ανανεωμένη υποστήριξη τεχνολογιών για CDMA/EVDO, 802.1x, VPNs και με μηχανή μετατροπής κειμένου σε ομιλία (text-tospeech).
ΚΕΦΑΛΑΙΟ 1 Το Λειτουργικό Σύστημα Android Android Eclair Η έκδοση “Eclair”, βασισμένη και αυτή στον Linux Kernel , παρουσιάστηκε στις 26 Οκτωβρίου του 2009, ενώ τον Ιανουάριο του 2010 υπήρξε η πρώτη αναβάθμιση σε Αndroid 2.1 Eclair (MR1). Υπάρχει νέος browser ο οποίος υποστηρίζει το πρότυπο HTML5, νέο UI και βελτιωμένοι χάρτες Google (Google Maps 3.1.2). Έχει ενσωματωθεί η υποστήριξη φλας για την κάμερα η οποία έχει πλέον και ψηφιακό zoom. Επίσης έχει βελτιωθεί η κλάση MotionEvent ώστε να υπάρχει η δυνατότητα για γεγονότα πολλαπλής αφής (multitouch events). Υποστηρίζεται Bluetooth 2.1 και έχει βελτιωθεί και το πληκτρολόγιο. Android Froyo Η έκδοση “Froyo”, βασισμένη στο Linux Kernel , παρουσιάστηκε στις 20 Μαΐου του Υπάρχει βελτίωση στην ταχύτητα γενικά του λειτουργικού συστήματος, στην μνήμη και στην απόδοση. Ενσωματώθηκε ο μηχανισμός JavaScript του Chrome V8 στον browser και υπάρχει πλέον Adobe Flash Υπάρχει ένα ανανεωμένο Android Market και ο χρήστης μπορεί πλέον να ελέγχει αν θα γίνεται ή όχι κίνηση πακέτων δεδομένων από το δίκτυο κινητής τηλεφωνίας. Υπάρχει η δυνατότητα εγκατάστασης εφαρμογών στην κάρτα μνήμης και η μεταφορά τους εκεί από τη μνήμη του τηλεφώνου. Επίσης το τηλέφωνο πλέον μπορεί να μετατραπεί σε WiFi hotspot.
ΚΕΦΑΛΑΙΟ 1 Το Λειτουργικό Σύστημα Android Android Gingerbread Η έκδοση “Gingerbread”, είναι βασισμένη στο Linux Kernel και παρουσιάστηκε στις 6 Δεκεμβρίου του 2010, ενώ τον Φεβρουάριο του 2011 αναβαθμίστηκε σε Android Στην έκδοση αυτή υπάρχουν αλλαγές στο UI, το οποίο έχει γίνει πιο απλό και ταχύ. Υπάρχει το πρωτόκολλο SIP για κλήσεις μέσω VoIP, υποστηρίζεται ο τύπος βίντεο WebM/VP8 και ο κωδικοποιητής AAC. Υπάρχει η δυνατότητα για Copy-Paste σε όλο το σύστημα και όχι μόνο στην ίδια εφαρμογή. Υποστηρίζεται το NFC (Near Field Communication) και η ύπαρξη πολλαπλών καμερών. Επίσης, έχει βελτιωθεί η ενεργειακή υποστήριξη και έχει γίνει μετάβαση από το σύστημα αρχείων YAFFS στο ext4 στις νέες συσκευές. Android Honeycomb Η έκδοση “Honeycomb”, βασίζεται στο Linux Kernel και παρουσιάστηκε στις 22 Φεβρουαρίου του 2011, με την διαφορά, ότι προορίστηκε αποκλειστικά για την λειτουργία tablets. Οι αλλαγές που έγιναν στην έκδοση αυτή έχουν να κάνουν κυρίως με τη βελτίωση της υποστήριξης των tablets. Υπάρχει ένα νέο, εντελώς διαφορετικό, UI και υποστηρίζονται διπύρηνοι και τετραπύρηνοι επεξεργαστές. Ακόμα, έχει απλοποιηθεί το multitasking έτσι ώστε ο χρήστης να μπορεί με τη χρήση ενός πλήκτρου (recent apps) να περνάει από μια εφαρμογή σε άλλη. Υπάρχει η δυνατότητα για Video Chat μέσω της εφαρμογής Google Talk, καθώς και η υποστήριξη ανάγνωσης βιβλίων μέσω του Google eBooks.
ΚΕΦΑΛΑΙΟ 1 Το Λειτουργικό Σύστημα Android Android Ice Cream Sandwich Η έκδοση “Ice Cream Sandwich”, βασισμένη στο Linux Kernel 3.0.1, παρουσιάστηκε στις 18 Οκτωβρίου του Πλέον στο UI, το οποίο είναι και πάλι διαφορετικό, υπάρχουν εικονικά πλήκτρα τα οποία παίρνουν τη θέση των φυσικών ή αφής που υπήρχαν στις συσκευές. Ο browser μπορεί να ανοίξει ταυτόχρονα μέχρι και 16 καρτέλες. Η εφαρμογή Android Beam αξιοποιεί πλέον το NFC (Near Field Communicaions) αφού επιτρέπει την αποστολή δεδομένων από τη συσκευή σε όσες βρίσκονται εντός μιας μικρής ακτίνας εμβέλειας. Ακόμα με την ύπαρξη του Wi-Fi Direct συσκευές μπορούν να συνδεθούν μεταξύ τους ασύρματα χωρίς την μεσολάβηση κάποιου access point. Τέλος, υποστηρίζεται η εγγραφή βίντεο σε 1080p. Android Jelly Bean Η έκδοση “Jelly Bean” βασισμένη στο Linux Kernel , παρουσιάστηκε στις 27 Ιουλίου Η σημαντική προσθήκη στο Android 4.1 “Jelly Bean” είναι αυτό που το Google ονομάζει Project Butter. Με το Project Butter η Google διόρθωσε τα προβλήματα απόδοσης στο λειτουργικό και πλέον έχει ομαλότερη κίνηση στα γραφικά στα 60fps χωρίς να γνωστά κολλήματα των προηγούμενων εκδόσεων. Oι χρήστες tablet μπορούν να ορίσουν διαφορετικά προφίλ χρήστη και να ξεκλειδώνουν το tablet στο κατάλληλο, καθώς και κάθε χρήστης να έχει την δική του αρχική οθόνη. Η εναλλαγή από τον ένα λογαριασμό χρήστη στον άλλο μπορεί να γίνει χωρίς log in και log out.
ΚΕΦΑΛΑΙΟ 1 Το Λειτουργικό Σύστημα Android Android Kit Kat Η Google ανακοίνωσε την έκδοση Android 4.4 KitKat στις 3 Σεπτεμβρίου Το αρχικό όνομα για την έκδοση 4.4 ήταν Key Lime Pie, το όνομα αυτό απορρίφθηκε όμως διότι θεωρήθηκε πως πολλοί λίγοι γνώριζαν τη γεύση της Key Lime Pie. Η έκδοση 4.4 KitKat απευθύνεται σε μεγαλύτερο φάσμα συσκευών σε σχέση με τις προηγούμενες εκδόσεις, διότι απαιτεί 512 MB της RAM ως ελάχιστη συνιστάμενη μνήμη. Αυτή η βελτιστοποίηση, γνωστή και ως “Project Svelte” ώθησε τη μετονομασία των συσκευών με μνήμη λιγότερο από 512 MB της RAM σε “low RAM” συσκευές. Android Lollipop Η έκδοση 5.0 Lollipop είναι η τελευταία αναβάθμιση του λειτουργικού συστήματος. Ανακοινώθηκες στις 25 Ιουνίου 2014, ενώ κυκλοφόρησε για πρώτη φορά στις 12 Νοεμβρίου του ίδιου έτους, σε επιλεγμένες συσκευές Nexus και Google Play. Μία από τις μεγαλύτερες αλλαγές αυτής της έκδοσης είναι, το επανασχεδιασμένο γραφικό περιβάλλον, το επονομαζόμενο “ Material Design “. Η εμφάνιση του Android γίνεται πιο επίπεδη και πολύχρωμη. Η σημαντικότερη αλλαγή είναι του Runtime από Dalvik cache σε ART. Το ART φέρνει καλύτερη διαχείριση μνήμης και κατά πολύ βελτιωμένους χρόνους εκκίνησης των εφαρμογών. Το Project Volta είναι ένα νέο εργαλείο που επιτρέπει στους προγραμματιστές, να δουν τι και πως καταναλώνει μπαταρία σε μια εφαρμογή, επιτρέποντάς τους να ορίσουν πότε θα τρέχουν συγκεκριμένες λειτουργίες της εφαρμογής.
ΚΕΦΑΛΑΙΟ 2 Αρχιτεκτονική και Σύστημα Αρχείων του Android Το Android είναι ένα λειτουργικό σύστημα και σαν λειτουργικό σύστημα σκοπός του είναι να παρέχει ένα επίπεδο αφαιρετικότητας ανάμεσα στο υλικό και τον χρήστη. Για να το καταφέρει αυτό, το Android, αποτελείτε από μία στοίβα λογισμικών τμημάτων (software stack) με ξεκάθαρους και αυστηρά καθορισμένους ρόλους. Στο χαμηλότερο επίπεδο βρίσκεται ο πυρήνας του Linux. Ο πυρήνας του Linux είναι γνωστός για την μεγάλη ποικιλία αρχιτεκτονικών επεξεργαστών με τις οποίες είναι συμβατός. Στο αμέσως επόμενο επίπεδο, βρίσκονται οι βασικές βιβλιοθήκες του συστήματος. Εδώ βρίσκονται οι βιβλιοθήκες για την υλοποίηση των γραφικών, τα συστήματα βάσεων δεδομένων, η βασική βιβλιοθήκη της γλώσσας προγραμματισμού C και άλλα. Το Android Runtime, βρίσκεται στο ίδιο επίπεδο με τις βιβλιοθήκες και περιλαμβάνει την εικονική μηχανή (virtual machine). Η εικονική μηχανή, διερμηνεύει τις εφαρμογές Android καθώς και την υλοποίηση των βασικών βιβλιοθηκών της Java που προσφέρονται στον προγραμματιστή για την ανάπτυξη των δικών του εφαρμογών. Το προτελευταίο επίπεδο είναι το ονομαζόμενο Application Framework και προσφέρει στον προγραμματιστή ένα πλήθος δυνατοτήτων, σχετιζόμενων με το λειτουργικό σύστημα και την συσκευή που το φιλοξενεί στο σύνολό τους. Τέλος, το τελευταίο επίπεδο της στοίβας είναι το επίπεδο όπου βρίσκονται οι εφαρμογές για το περιβάλλον του Android.
ΚΕΦΑΛΑΙΟ 2 Αρχιτεκτονική και Σύστημα Αρχείων του Android Τα Επίπεδα του ΛΣ Android
ΚΕΦΑΛΑΙΟ 2 Αρχιτεκτονική και Σύστημα Αρχείων του Android Ο Πυρήνας Linux Στο πρώτο επίπεδο της στοίβας λογισμικού του Android είναι ο Πυρήνας του Linux. Η Google χρησιμοποίησε μια τροποποιημένη μορφή του πυρήνα του Linux έκδοσης 2.6 για το λειτουργικό σύστημα Android. Με την έκδοση 3.3 του πυρήνα του Linux, έχει γίνει η πολυπόθητη από πολλούς συγχώνευση του κώδικα του Android. Πλέον τα νέα χαρακτηριστικά που εισάγονται στον πυρήνα γίνονται άμεσα διαθέσιμα και στο λειτουργικό σύστημα Android. Επιπλέον, έχουμε δυνατότητες για την εκτέλεση του Android ακόμη και σε προσωπικούς υπολογιστές. Ο πυρήνας του Linux χρησιμοποιεί στην περίπτωση του Android το επονομαζόμενο επίπεδο αφαίρεσης υλικού (hardware abstraction layer). Με αυτή την λειτουργία, αν κάποιος κατασκευαστής επιθυμεί να διαθέσει τις συσκευές του με το λειτουργικό σύστημα Android, το μόνο που χρειάζεται, θεωρητικά, είναι να υλοποιήσει τους οδηγούς που απαιτούνται για τα περιφερικά που διαθέτει κάθε συσκευή του. Εκτός από το επίπεδο αφαιρετικότητας που προσφέρει ο πυρήνας, το Android, επωφελείται και από τις μεθόδους διαχείρισης μνήμης, διαχείρισης ενέργειας και διαχείρισης διεργασιών που ακολουθεί το Linux.
ΚΕΦΑΛΑΙΟ 2 Αρχιτεκτονική και Σύστημα Αρχείων του Android Οι Βασικές Βιβλιοθήκες Οι βασικές βιβλιοθήκες του συστήματος είναι αυτές που παρέχουν τις βασικές λειτουργικότητες όπως αυτή των γραφικών, του ήχου και άλλες. Οι βιβλιοθήκες που βρίσκονται σε αυτό το επίπεδο είναι ουσιαστικά βιβλιοθήκες υλοποιημένες στην γλώσσα προγραμματισμού C ή C++ Μια από τις βιβλιοθήκες του επιπέδου αυτού είναι ο διαχειριστής σχεδιαστικών επιφανειών (surface manager). Η διαχείριση των σχεδιαστικών επιφανειών έχει να κάνει με την διαχείριση των παραθύρων των εφαρμογών καθώς και με τον τρόπο με τον οποίο αυτές εμφανίζονται στην οθόνη της συσκευής. Ο διαχειριστής σχεδιαστικών επιφανειών σε συνδυασμό με τον διαχειριστή παραθύρων (window manager), που βρίσκεται στο επόμενο επίπεδο της στοίβας, είναι υπεύθυνος για την λεγόμενη σύνθεση των παραθύρων των εφαρμογών ανάλογα με την διάταξη που αυτές έχουν στην οθόνη. Στο συγκεκριμένο επίπεδο βρίσκεται το ονομαζόμενο Media Framework του Android. Σε όλες τις σύγχρονες συσκευές αυτό αποτελεί την καρδιά του συστήματος από την άποψη ότι είναι υπεύθυνο για την σωστή αναπαραγωγή ήχου και βίντεο σε μια συσκευή. Δυο πολύ σημαντικές βιβλιοθήκες στο επίπεδο αυτό είναι η υλοποίηση του προτύπου OpenGL ES και του SGL. Οι δυο αυτές βιβλιοθήκες προσφέρουν την δυνατότητα, στα παραπάνω επίπεδα της στοίβας, σχεδίασης τρισδιάστατων και δισδιάστατων γραφικών αντίστοιχα.
ΚΕΦΑΛΑΙΟ 2 Αρχιτεκτονική και Σύστημα Αρχείων του Android Οι Βασικές Βιβλιοθήκες Το Android χρησιμοποιεί την βιβλιοθήκη FreeType για να αποτυπώσει γραμματοσειρές στην οθόνη. Η FreeType παρέχει την δυνατότητα για αποτύπωση γραμματοσειρών που αναπαρίστανται από απλά bitmaps (raster fonts) αλλά και γραμματοσειρών που περιγράφονται μαθηματικά με καμπύλες (Bezier vector fonts). Η σημαντική διαφορά μεταξύ των δυο τύπων γραμματοσειρών είναι η ικανότητα μεγέθυνσης που η κάθε μια έχει. Στις εφαρμογές για Android συνήθως γίνεται επεξεργασία και αποθήκευση μεγάλου όγκου πληροφοριών το λειτουργικό σύστημα παρέχει μια βιβλιοθήκη που μπορεί να χρησιμοποιηθεί σαν ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων. Έχει επιλεχθεί η SQLite η οποία αποτελεί μια από τις πιο διαδεδομένες μηχανές παγκοσμίως και είναι, φυσικά, ανοιχτού κώδικα. Μια άλλη βιβλιοθήκη στο επίπεδο αυτό είναι η μηχανή διάταξης γραφικών (layout engine) WebKit. Η Google υλοποίησε την βασική βιβλιοθήκη της C (libc) με στόχο την μείωση της απαιτούμενης μνήμης από αυτήν και έχει συμπεριλάβει μια βιβλιοθήκη που υλοποιεί το OpenSSL πρότυπο για την διαχείριση πιστοποιητικών κατά την δημιουργία ασφαλών συνδέσεων με απομακρυσμένους εξυπηρετητές
ΚΕΦΑΛΑΙΟ 2 Αρχιτεκτονική και Σύστημα Αρχείων του Android Android Runtime Οι εφαρμογές του Android είναι γραμμένες στην γλώσσα προγραμματισμού Java. Ως γνωστόν προγράμματα που είναι γραμμένα σε αυτήν την γλώσσα απαιτούν την ύπαρξη ενός compiler Java για την εκτέλεσή τους. Στο Android υλοποιήθηκε ένας compiler ειδικά για το Android. Στο επίπεδο του Android Runtime βρίσκονται και οι βασικές βιβλιοθήκες της Java οι οποίες όμως είναι γραμμένες ειδικά για τον compiler του Android. Το όνομα του compiler του Android είναι Dalvik. Κάθε εφαρμογή στο Android εκτελείτε σε ένα δικό της στιγμιότυπο του Dalvik απομονώνοντάς την από τις υπόλοιπες εφαρμογές διασφαλίζοντας έτσι την ευστάθεια και την ασφάλεια του λειτουργικού συστήματος. Τα αρχεία εγκατάστασης των εφαρμογών έχουν την κατάληξη.apk και περιέχουν τα αρχεία.dex, που περιέχουν τα bytecodes προς εκτέλεση από τον Dalvik, καθώς και διάφορα συνοδευτικά αρχεία που η κάθε εφαρμογή χρειάζεται. Στο Android, ο απαιτούμενος έλεγχος, προτιμάται να γίνεται κατά την εγκατάσταση της εφαρμογής προκειμένου να μειωθεί ο χρόνος της πρώτης εκκίνησης της εφαρμογής από τον χρήστη. Στον Dalvik υπάρχουν τμήματα μνήμης που είναι κοινά και άλλα που ανήκουν μονάχα στην εκάστοτε εφαρμογή. Για την διαχείριση των κοινών τμημάτων μνήμης το Android χρησιμοποιεί το Zygote. Το Zygote είναι μια διεργασία που ξεκινά κατά την εκκίνηση του λειτουργικού συστήματος, φορτώνει και αρχικοποιεί κλάσεις που χρησιμοποιούνται πολύ συχνά από τις εφαρμογές.
ΚΕΦΑΛΑΙΟ 2 Αρχιτεκτονική και Σύστημα Αρχείων του Android Android Runtime Ένας μηχανισμός του Android για σωστή διαχείριση μνήμης είναι ο συλλέκτης σκουπιδιών (garbage collector). Κάθε στιγμιότυπο του διερμηνευτή έχει τον δικό του συλλέκτη. Κύριος ρόλος του συλλέκτη είναι να ελευθερώνει περιοχές μνήμης που καταλαμβάνονται από δεδομένα που δεν θα χρειαστούν ξανά κατά την πορεία εκτέλεσης του της εφαρμογής. Eνα σημαντικό χαρακτηριστικό του Android Runntime είναι η ύπαρξη του JIT (Just in Time) μεταφραστή. Ο JIT έχει σαν σκοπό την μετάφραση από bytecodes σε κώδικα μηχανής. Υπάρχουν δυο ειδών μεταφραστών, οι βασισμένοι σε μεθόδους (method based) και οι βασισμένοι σε ακολουθίες εκτέλεσης (trace based). Οι πρώτοι μεταφράζουν ολόκληρες μεθόδους από τον εκτελούμενο κώδικα σε γλώσσα μηχανής πριν την εκτέλεσή τους ενώ οι δεύτεροι μεταφράζουν ένα σύνολο εντολών που ανήκουν σε ένα κοινό δρόμο εκτέλεσης.
ΚΕΦΑΛΑΙΟ 2 Αρχιτεκτονική και Σύστημα Αρχείων του Android Application Framework Το επίπεδο αυτό παρέχει μια πληθώρα από API τα οποία δίνουν την δυνατότητα στον προγραμματιστή να ενσωματώσει στις εφαρμογές του δυνατότητες όπως συνδεσιμότητα στο διαδίκτυο, πρόσβαση στα αποθηκευτικά μέσα της συσκευής και άλλα. Όλες οι βιβλιοθήκες του επιπέδου αυτού είναι γραμμένες στην γλώσσα προγραμματισμού Java. Ο τρόπος που είναι οργανωμένα τα API στο επίπεδο αυτό ακολουθεί την λογική του διαχειριστή (manager). Για κάθε υπηρεσία που προσφέρει το επίπεδο αυτό υπάρχουν διαχειριστές που οι εφαρμογές μπορούν να καλέσουν για να τους παρασχεθεί η αντίστοιχη υπηρεσία. Η κλάση View στο Android είναι η βασική κλάση τα στιγμιότυπα της οποίας συνθέτουν μια διεπαφή χρήστη. Όλα τα ορατά στην οθόνη στοιχεία μιας διεπαφής αποτελούν στιγμιότυπα της κλάσης αυτής. Για την κάλυψη της ανάγκης αλληλεπίδρασης του χρήστη με την διεπαφή, η κλάση View, παρέχει ένα σύνολο μεθόδων που εκτελούνται όταν ανιχνευθεί κάποιο συμβάν από τον χρήστη (πάτημα κουμπιού, παρατεταμένο πάτημα κουμπιού κ.λπ).
ΚΕΦΑΛΑΙΟ 2 Αρχιτεκτονική και Σύστημα Αρχείων του Android Application Framework Παράλληλα με τον έλεγχο της απόκρισης της εφαρμογής στα διάφορα συμβάντα, ο προγραμματιστής, έχει στα χέρια του ένα σύνολο κλάσεων (υποκλάσεις της Dialog) οι οποίες του επιτρέπουν να εμφανίζει στον χρήστη παράθυρα με σύντομα μηνύματα και να λαμβάνει κάποια απόκριση σε αυτά. Τα Toast μηνύματα είναι μικρά μηνύματα που εμφανίζονται στο κάτω μέρος της οθόνης σε ένα μικρό πλαίσιο και εξαφανίζονται μετά από κάποια δευτερόλεπτα. Σε αντίθεση με ένα πλαίσιο διαλόγου τα Toast μηνύματα δεν επικαλύπτουν την τρέχουσα εφαρμογή στο σύνολό της. Τα μηνύματα στην μπάρα κατάστασης είναι τα λιγότερο επεμβατικά μιας και δεν επηρεάζουν την εμφάνιση της τρέχουσας εφαρμογής στο ελάχιστο. Οι κλάσεις που παρέχουν τις δυνατότητες να αναπαράγουμε πολυμέσα, αξιοποιούν το Media Framework που αναφέραμε προηγούμενα στο επίπεδο με τις βασικές βιβλιοθήκες του Android. Χαρακτηριστικά παραδείγματα τέτοιων κλάσεων είναι οι MediaPlayer και MediaRecorder. Μεγάλη σημασία έχει η ικανότητα δικτύωσης των κινητών συσκευών. Χαρακτηριστική κλάση είναι η ConnectivityManager που παρέχει πληροφορίες για τις δυνατές συνδέσεις μιας συσκευής καθώς και για την κατάσταση της κάθε σύνδεσης. Τέλος, δίνεται η δυνατότητα στις εφαρμογές να χρησιμοποιούν (σε όσες συσκευές είναι διαθέσιμο) το Bluetooth για να συνδέονται με άλλες συσκευές και να ανταλλάσσουν δεδομένα.
ΚΕΦΑΛΑΙΟ 2 Αρχιτεκτονική και Σύστημα Αρχείων του Android Application Framework Οι εφαρμογές στο Android χρειάζονται πολλές φορές να αποθηκεύουν πληροφορίες σε μια πιο μόνιμη μορφή. Στο Android οι εφαρμογές έχουν τις εξής επιλογές: SharedPreferences: Η κλάση αυτή παρέχει την δυνατότητα αποθήκευσης ζευγών ονόματος- τιμής όπου οι τιμές είναι κάποιου βασικού τύπου (ακέραιοι αριθμοί, αλφαριθμητικά κ.λπ.) Internal/External Storage: Αν η εφαρμογή επιθυμεί να μην έχει κανένας άλλος πρόσβαση στα δεδομένα της μπορεί να τα αποθηκεύσει στον εσωτερικό αποθηκευτικό χώρο. Database Storage: Αν μια εφαρμογή επιθυμεί να έχει μια οργανωμένη βάση δεδομένων μπορεί να αξιοποιήσει αυτές τις δυνατότητες για την αποθήκευση των δεδομένων της. Network Storage: Αν καμία από τις παραπάνω μεθόδους δεν καλύπτει τις ανάγκες μιας εφαρμογής τότε μπορεί να αποθηκεύσει τα δεδομένα της σε κάποιον απομακρυσμένο εξυπηρετητή χρησιμοποιώντας τις δυνατότητες δικτύωσης που παρέχει Android. Το Android παρέχει και API τα οποία δίνουν ένα σύνολο χρήσιμων δυνατοτήτων και βοηθούν τις εφαρμογές να γίνουν περισσότερο ελκυστικές και ανταγωνιστικές. Τέτοια είναι, το Location & Maps API, το Search API, το WebKit API, το Speech API.
ΚΕΦΑΛΑΙΟ 2 Αρχιτεκτονική και Σύστημα Αρχείων του Android Applications Εδώ βρίσκονται όλες οι εφαρμογές του χρήστη και είναι γραμμένες σε Java. Αρκεί να αναφέρουμε ότι όλες οι δυνατότητες που έχουμε αναφέρει μέχρι τώρα είναι στην διάθεση των εφαρμογών. Όλα τα API που διαθέτει το Application Framework είναι στα χέρια του προγραμματιστή για να τα συνδυάσει και να δημιουργήσει εφαρμογές για το περιβάλλον του Android. Στο επίπεδο αυτό βρίσκονται και οι προ εγκατεστημένες εφαρμογές του Android, όπως η εφαρμογή για την αποστολή SMS, η εφαρμογή για την πραγματοποίηση κλήσεων και άλλες. Το Σύστημα Αρχείων του Android Το σύστημα αρχείων που χρησιμοποιείται στο Android, μετά την έκδοση 2.3, είναι το extended file system 4(ext4). Το extended file system δημιουργήθηκε ειδικά για τον πυρήνα του Linux. Το ext4 είναι το τέταρτο σε σειρά στην οικογένεια των extended file systems. Συμπεριλήφθηκε για πρώτη φορά στην έκδοση Linux Τον Δεκέμβριο του 2010, η Google ανακοίνωσε πως θα χρησιμοποιήσει το ext4 αντί του YAFFS, ως σύστημα αρχείων στο λειτουργικό της από την έκδοση 2.3 και μετά.
ΚΕΦΑΛΑΙΟ 2 Αρχιτεκτονική και Σύστημα Αρχείων του Android Το Σύστημα Αρχείων του Android Το σύστημα αρχείων ext4 μπορεί να υποστηρίξει τόμους έως και 1 exbibyte (1 exbibyte = 2 60 bytes) και αρχεία μεγέθους έως και 16 tebibytes (1 tebibyte = 2 40 bytes). Μια επέκταση στο ext4 είναι μία σειρά από συνεχόμενα φυσικά μπλοκ, βελτιώνοντας έτσι την απόδοση των μεγάλων αρχείων και μειώνοντας των κατακερματισμό τους. Μπορεί να χαρτογραφήσει έως 128 MiB (1 Mib = 2 20 bytes), συνεχόμενου χώρου στην μνήμη, σε ένα μπλοκ 4 Kib (1 Kib = 2 10 bytes). Με το ext4 υπάρχει συμβατότητα με προηγούμενες εκδόσεις συστήματος αρχείων ext3, ext2. Το ext4,μπορεί να προκαθορίσει τον χώρο στον δίσκο για ένα αρχείο. Ο χώρος αυτός, είναι εγγυημένος για το αρχείο και ενδέχεται να είναι και συνεχόμενος. Το ext4 χρησιμοποιεί την τεχνική κατανομής της μνήμης, γνωστή και ως καθυστερημένη κατανομή (delayed allocation). Με αυτήν την τεχνική, μειώνεται ο κατακερματισμός της αποθήκευσης των αρχείων, με αποτέλεσμα την κατανομή μεγαλύτερου χώρου στην μνήμη για τα δεδομένα. Έχουμε αύξηση του αριθμού των υποφακέλων, στο σύστημα αρχείων ext4. Στην προηγούμενη έκδοση ext3, ο αριθμός των υποφακέλων που μπορούσε να υποστηριχτεί ήταν έως Στο ext4 ο αριθμός αυτός γίνεται απεριόριστος. Στο σύστημα αρχείων ext4, εντοπίζονται και μαρκάρονται τα ακαθόριστα γκρουπ από μπλοκ μνήμης. Έτσι το σύστημα fsck, που είναι υπεύθυνο για τον έλεγχο των αρχείων του συστήματος, τα προσπερνάει οπότε μειώνεται και ο χρόνος ελέγχου.
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Η έκδοση Android 4.4, είναι η ένατη στη σειρά αναβάθμιση του λειτουργικού συστήματος Android. Η έκδοση ανακοινώθηκε στις 3 Σεπτεμβρίου 2013 και κυκλοφόρησε για πρώτη φορά στο Nexus 5 της LG στις 31 Οκτωβρίου του ίδιου έτους. LG Nexus 5
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Ο κύριος στόχος της Google με την έκδοση 4.4 είναι όλες οι συσκευές να έχουν την τελευταία αναβάθμιση του λειτουργικού. Κάθε χρόνο, οι νέες συσκευές της αγοράς χρησιμοποιούσαν την νεότερη έκδοση Android. Αυτό καθιστούσε τις φθηνότερες συσκευές λιγότερο ελκυστικές και βοηθούσε στο κατακερματισμό της αγοράς σε τόσες πολλές εκδόσεις Android. Η Google κατάφερε να πετύχει τον στόχο της, "σπάζοντας" το φράγμα των περιορισμών μνήμης που υπήρχε έως τώρα στο Android και εμπόδιζε low-end μοντέλα να επωφεληθούν από αναβαθμίσεις. Πλέον, το Kit Kat μπορεί να "τρέξει" σε συσκευές με RAM μόλις από 512MB. Διαμοιρασμός Android εκδόσεων
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Διαχείριση Μνήμης Το Android χρησιμοποιεί διάφορα partition στον χώρο της μνήμης, για να οργανώσει τα αρχεία και τους φακέλους του λειτουργικού συστήματος. Υπάρχουν έξι κύρια partitions, στην μνήμη Rom, κάθε ένα από τα οποία έχει την δική του ξεχωριστή λειτουργία. Τα partitions αυτά είναι /boot, /system, /recovery, /data, /cache, /misc. Ένα διαφορετικό σύστημα partitions υπάρχει για τις εξωτερικές μονάδες δίσκου του Android, όπως είναι οι SDcards, /sdard, /sd-ext. Τα partitions της μνήμης
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Διαχείριση Μνήμης /boot partition: Είναι το partition που εκτελείται η διαδικασία εκκίνησης της συσκευής. Περιέχει τον πυρήνα του Android και την μνήμη Ram. Η συσκευή μας δεν μπορεί να εκκινήσει εάν δεν υπάρχει το συγκεκριμένο partition. /system partition: Το συγκεκριμένο partition περιέχει τα αρχεία συστήματος του λειτουργικού. Περιλαμβάνει επίσης το UI του Android και όλες τις προ εγκατεστημένες εφαρμογές του συστήματος. /recovery partition: Το partition αυτό, έχει σχεδιαστεί για backup του λειτουργικού. Για τον λόγο αυτό μπορεί να θεωρηθεί και ως ένα δεύτερο boot partition. / data partition: Όπως καταλαβαίνουμε και από τον τίτλο, είναι ο χώρος της μνήμης που περιέχει όλα τα δεδομένα του χρήστη, επαφές, sms και όλες τις εφαρμογές του. /cache partition: Στο partition αυτό, το λειτουργικό αποθηκεύει προσωρινά τα δεδομένα του χρήστη καθώς και αρχεία εφαρμογών, ώστε να μπορεί να τα ανακτήσει ταχύτερα. /misc partition: Σε αυτό το partition περιέχονται διάφορες ρυθμίσεις του συστήματος της μορφής on/off. Είναι ένα πολύ σημαντικό partition της Rom και εάν σβηστεί ή καταστραφεί, αρκετές από τις λειτουργίες της συσκευής δεν θα εκτελούνται σωστά. /sdcard partition: Είναι ένα partition που αφορά την εξωτερική μνήμη της συσκευής. Είναι στην ουσία ένας εξωτερικός δίσκος στον οποίο, μπορούμε να αποθηκεύσουμε προσωπικά μας αρχεία.
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Διαχείριση Διεργασιών Οι περισσότερες συσκευές Android είναι φορητές με αποτέλεσμα να τροφοδοτούνται από μπαταρία. Έτσι το λειτουργικό σχεδιάστηκε ώστε να μπορεί να διαχειρίζεται κατάλληλα την μνήμη RAM και να κρατά την κατανάλωση ενέργειας στο ελάχιστο. Όταν λοιπόν μια εφαρμογή δεν είναι πλέον σε χρήση το σύστημα αυτόματα την τοποθετεί στην μνήμη. Έτσι η εφαρμογή παραμένει τυπικά ανοιχτή χωρίς όμως να καταναλώνει ενέργεια παραμένοντας στο παρασκήνιο μέχρι να χρησιμοποιηθεί ξανά. Η διαχείριση της μνήμης στο λειτουργικό σύστημα Android υλοποιείται στο επίπεδο του Runtime. Κάθε εφαρμογή είναι και μία διαφορετική διεργασία και εμπεριέχεται στο δικό της ξεχωριστό στιγμιότυπο της εικονικής μνήμης Dalvik. Το Runtime είναι υπεύθυνο να κλείσει ή να παύσει μια διεργασία ώστε να εξοικονομήσει πόρους της μνήμης. Η σειρά με την οποία κλείνουν οι διεργασίες αποφασίζεται με βάση το επίπεδο προτεραιότητας των εφαρμογών. Αν δεν προσέξουμε σε αυτό τότε είναι πολύ πιθανό μια εφαρμογή που βρίσκεται στο μέσον κάποια διεργασίας να κλείσει ξαφνικά.
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Διαχείριση Διεργασιών Υπάρχουν πέντε καταστάσεις στις οποίες μπορεί να βρεθεί μια διεργασία : Ενεργές Διεργασίες (Active Process) Είναι οι διεργασίες που βρίσκονται στο προσκήνιο και αλληλοεπιδρούν με τον χρήστη. Αυτές το σύστημα προσπαθεί να τις κρατήσει ενεργές αξιοποιώντας πόρους της μνήμης. Ορατές Διεργασίες (Visible Process) Είναι οι διεργασίες που δεν είναι στο προσκήνιο, είναι ορατές όμως δεν αλληλοεπιδρούν με το περιβάλλον του χρήστη. Μπορεί να είναι λειτουργίες που ναι μεν είναι ενεργές, δεν απεικονίζονται όμως σε πλήρη οθόνη. Διεργασίες Εκκίνησης Υπηρεσιών (Started Service Process) Είναι διεργασίες που εκκινούν υπηρεσίες και θα συνεχίσουν χωρίς να είναι ορατές στον χρήστη. Αυτός είναι και ο λόγος που έχουν χαμηλότερη προτεραιότητα από τις ορατές. Διεργασίες Παρασκηνίου (Background Process) Διεργασίες που φιλοξενούν λειτουργίες οι οποίες δεν είναι ορατές στον χρήστη και δεν έχουν εκκινήσει κάποια υπηρεσία. Άδειες Διεργασίες (Empty Process) Αρκετές φορές, για να βελτιωθεί η συνολική απόδοση του συστήματος, το Android επαναφέρει στην μνήμη εφαρμογές που είχαν εκτελεστεί και είχαν κλείσει. Αυτές ονομάζονται άδειες διεργασίες και το σύστημα τις κλείνει περιοδικά.
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Διαχείριση Διεργασιών Καταστάσεις και προτεραιότητα διεργασιών
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Διαδικασία Εκκίνησης H διαδικασία της εκκίνησης στο λειτουργικό Android γίνεται σε έξι βήματα Διάγραμμα διαδικασίας εκκίνησης
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Διαδικασία Εκκίνησης Βήμα 1: Ενεργοποίηση και Εκκίνηση Συστήματος Όταν πατάμε το πλήκτρο ενεργοποίησης της συσκευής (ON/OFF) η συσκευή βρίσκεται σε μια κατάσταση στην οποία δεν έχει γίνει καμία προετοιμασία. Ξεκινά ο κώδικας Boot ROM, ένα μικρό κομμάτι κώδικα, που βρίσκεται σε μια προκαθορισμένη θέση του hardware και είναι κωδικοποιημένος σε ROM. Ο Boot ROM θα εντοπίσει τα μέσα εκκίνησης. Αυτό γίνεται για να προσδιοριστεί που πρέπει να βρει το πρώτο στάδιο του Boot Loader. Φορτώνεται ο Boot loader στην RAM και αρχίζει να εκτελείται. Βήμα 2: Boot loader Ο Boot loader εκτελείται σε δύο φάσεις. Στην πρώτη φάση εντοπίζεται και προετοιμάζεται η εξωτερική μνήμη RAM. Μόλις η RAM είναι διαθέσιμη και το σύστημα έτοιμο να εκτελέσει κάτι ποιο συγκεκριμένο φορτώνεται σε αυτήν ο Boot loader. H δεύτερη φάση του Boot loader είναι το πρώτο κύριο πρόγραμμα που εκτελείται. Αυτό περιέχει κώδικα για προετοιμασία των αρχείων συστήματος, παραμέτρους δικτύου κλπ. Όταν ολοκληρωθεί η εκτέλεση του Boot loader πραγματοποιείται ένα άλμα στον πυρήνα του Linux, συνήθως κάποια ρουτίνα αποσυμπίεσης, και αναλαμβάνει την ευθύνη του συστήματος ο πυρήνας.
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Διαδικασία Εκκίνησης Βήμα 3: ο πυρήνας (kernel) Ο πυρήνας του Android εκκινεί με παρόμοιο τρόπο με αυτόν του Linux. Προετοιμάζει όλα αυτά που χρειάζεται το σύστημα για να λειτουργήσει. Μόλις οι μονάδες διαχείρισης της μνήμης ετοιμαστούν το σύστημα θα είναι σε θέση να χρησιμοποιήσει εικονική μνήμη και να εκτελέσει διαδικασίες του χρήστη. Ο πυρήνας θα ψάξει στο σύστημα αρχείων για την διεργασία init και θα την εκτελέσει ως αρχική διεργασία του χρήστη. Βήμα 4: Η διαδικασία Init (init process) H init διαδικασία είναι η πρωταρχική διαδικασία και θα μπορούσαμε να πούμε πως είναι η μητέρα όλων των διεργασιών. Έχει δύο αρμοδιότητες, φορτώνει εικονικά αρχεία /sys, /dex, /proc και εκτελεί το αρχείο init.rc. Αυτό είναι ένα αρχείο που περιγράφει τις υπηρεσίες του συστήματος, το σύστημα αρχείων και άλλες παραμέτρους που πρέπει να εγκατασταθούν. Σε αυτό το στάδιο της εκκίνησης βλέπουμε στην οθόνη μας το λογότυπο του Android.
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Διαδικασία Εκκίνησης Βήμα 5:Εικονική Μηχανή Dalvik / Zygote Στην περίπτωση του Android όμως η εικονική μηχανή πρέπει να εκτελέσει μια εφαρμογή όσο το δυνατόν γρηγορότερα. Όταν όμως πολλές εφαρμογές εκτελούνται παράλληλα τότε πολλά στιγμιότυπα της εικονικής μνήμης φορτώνονται στην μνήμη με αποτέλεσμα να καταναλώνεται ένα τεράστιο ποσοστό μνήμης. Για να αντιμετωπιστεί αυτό το πρόβλημα στο λειτουργικό σύστημα Android έχει δημιουργηθεί ένα σύστημα το Zygote. Με το σύστημα αυτό επιτρέπεται η κοινή χρήση κώδικα σε όλη την Dalvik απαιτώντας μικρότερο αποτύπωμα μνήμης και ελάχιστο χρόνο εκτέλεσης. Αρμοδιότητά της είναι να προ φορτώνει και να προετοιμάζει τις κλάσεις των βιβλιοθηκών του πυρήνα. Σε αυτό το στάδιο βλέπουμε το animation της εκκίνησης στην οθόνη. Βήμα 6 : Υπηρεσίες Συστήματος Όταν ολοκληρωθούν όλα τα παραπάνω βήματα, το σύστημα Zygote εκκινεί τις υπηρεσίες συστήματος. Ο διακομιστής συστήματος είναι το πρώτο στοιχείο Java που θα τρέξει το σύστημα και θα εκκινήσει όλες τις υπηρεσίες του Android. Υπηρεσίες Πυρήνα (Core Services):Εκκίνηση Διαχειριστή Ενέργειας, Δημιουργία Διαχειριστή Εργασιών, Εκκίνηση Μητρώου Τηλεφώνου. Άλλες Υπηρεσίες (Other Services)Εκκίνηση Υπηρεσιών Hardware, Εκκίνηση Υπηρεσιών Συνδεσιμότητας, Εκκίνηση Διαχειριστή Ειδοποιήσεων.
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat ART Μια από τις σημαντικότερες προσθήκες στην έκδοση 4.4 και μια από αυτές που πέρασαν σχεδόν απαρατήρητες, βρίσκεται στο επίπεδο του Android Runtime. Ο λόγος για την πειραματική προσθήκη του ART ενός νέου compiler. Tο λειτουργικό Android χρησιμοποιεί μια εικονική μηχανή για την εκτέλεση κώδικα. Αυτός είναι και ο λόγος που οι συσκευές Android χρειάζονται περισσότερους πόρους ώστε να έχουν καλύτερη και ομαλότερη λειτουργία. έχουν καλύτερη και ομαλότερη λειτουργία απ’ ότι για παράδειγμα οι συσκευές Windows phone. Η εικονική μηχανή Dalvik δεν είναι τίποτα περισσότερο από ένα λογισμικό που τρέχει τις εφαρμογές στο Android και χρησιμοποιεί τον JIT (Just-In-Time) compiler. Ουσιαστικά ο τρόπος που λειτουργεί είναι ότι όταν γίνεται εγκατάσταση μιας εφαρμογής ο κώδικας της, μετατρέπεται μερικώς σε μια γλώσσα που μπορεί να μετατραπεί ξανά, πιο εύκολα, σε γλώσσα μηχανής σε σχέση με την αρχική γλώσσα. Κάθε φορά που ανοίγετε μια εφαρμογή εκείνη την στιγμή μετατρέπει πλήρως τον κώδικα σε γλώσσα μηχανής. Αυτός ο τρόπος δίνει το πλεονέκτημα στις εφαρμογές να χρησιμοποιούν λιγότερο χώρο αποθήκευσης κι έτσι οι Android εφαρμογές είναι πιο ελαφριές από αυτές του iOS.
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat ART Το ART είναι επίσης μια εικονική μηχανή, η οποία όμως αντί να χρησιμοποιεί τον JIT compiler χρησιμοποιεί τον AOT (Ahead-Of-Time) compiler. Η βασική διαφορά εδώ είναι ότι αντί ο κώδικας να μετατρέπεται σε γλώσσα μηχανής κάθε φορά που ανοίγουμε την εφαρμογή θα γίνετε compile μόνο μια φορά, όταν εγκαθίσταται η εφαρμογή. Τα θετικά είναι ότι επειδή απαιτούνται λιγότερες ενέργειες από τον επεξεργαστή προκειμένου να τρέξει μια εφαρμογή, οι εφαρμογές ανοίγουν πιο γρήγορα (ειδικά σε συσκευές με πιο αδύναμους επεξεργαστές). Η διαδικασία εκκίνησης της συσκευής γίνεται γρηγορότερα, καθώς υπάρχει καλύτερη διαχείριση των πόρων της συσκευής και τέλος μειώνοντας την εργασία της CPU από την εκτέλεση των εφαρμογών, μειώνεται η κατανάλωση ενέργειας και αυξάνεται η διάρκεια της μπαταρίας της συσκευής. Το βασικό αρνητικό είναι ότι αυξάνεται ο χώρος που χρειάζεται για να γίνει η εγκατάσταση της κάθε εφαρμογής και οι εφαρμογές πλέον θα έχουν περίπου το ίδιο βάρος με αυτό που έχουν στο iOS.
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Εφαρμογές Android v 4.4 KitKat Η επικοινωνία κοντινού πεδίου (near field communication, NFC) αποτελεί μια πρότυπη τεχνολογία συνδεσιμότητας. Είναι μια μικρής εμβέλειας ασύρματη τεχνολογία, η οποία λειτουργεί στη συχνότητα των 13,56 MHz και μεταφέρει δεδομένα με ρυθμό έως και 424 kbps. Η νέα πλατφόρμα Host Card Emulation, προστέθηκε στην έκδοση 4.4 για ασφαλέστερες συναλλαγές βασισμένες σε NFC όπως πληρωμές, κάρτες πρόσβασης και άλλα πελατειακά προγράμματα. Το Host Card Emulation (HCE) εγγυάται ασφαλές συναλλαγές σε κάθε συσκευή Android. Ακόμη οι εφαρμογές μπορούν να χρησιμοποιούν το Reader Mode και να διαβάσουν το HCE και άλλες συναλλαγές βασισμένες σε άλλα συστήματα τεχνολογίας NFC. Οι εφαρμογές Android μπορούν πλέον να εκτυπώνουν δια μέσου WiFi ή υπηρεσιών cloud-hosted, όπως η Google Cloud Print. Το Android 4.4 δημιουργεί μια νέα πλατφόρμα η οποία υποστηρίζει την εκτύπωση, μαζί με νέα APIs τα οποία διαχειρίζονται την εκτύπωση και προσθέτουν υποστήριξη νέων τύπων εκτυπωτών. Η πλατφόρμα εισάγει έναν διαχειριστή εκτύπωσης, ο οποίος μεσολαβεί ανάμεσα στην εφαρμογή που αιτείται εκτύπωσης και της εγκατεστημένης υπηρεσίας του εκτυπωτή. Για καλύτερη συμβατότητα, το Android χρησιμοποιεί αρχεία τύπου PDF ως πρωτεύων επιλογή. Οι περισσότερες συσκευές με Android 4.4 εμπεριέχουν το Google Cloud Print προ εγκαταστημένο.
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Εφαρμογές Android v 4.4 KitKat Ένα νέο πλαίσιο αποθήκευσης, κάνει ευκολότερη για τους χρήστες την περιήγηση και το άνοιγμα εγγράφων, εικόνων και όλων των αρχείων που υπάρχουν, ανάμεσα στις διαθέσιμες υπηρεσίες αποθήκευσης. Το Cloud ή άλλες τοπικές υπηρεσίες αποθήκευσης, μπορούν να συμμετέχουν σε αυτό το πλαίσιο προσθέτοντας μια νέα κλάση εγγράφων, που περιέχει τις υπηρεσίες τους. Ένας προμηθευτής εγγράφων, μπορεί να δώσει πρόσβαση στους χρήστες σε οποιαδήποτε απομακρυσμένα η τοπικά δεδομένα, τα οποία μπορούν να αναπαρασταθούν ως αρχεία από κείμενο, φωτογραφία μέχρι βίντεο, ήχο κ.α. Αν θέλουμε να δημιουργήσουμε μια εφαρμογή που θα επεξεργάζεται και θα διαχειρίζεται αρχεία ή έγγραφα, μπορούμε να την συνδέσουμε με το πλαίσιο αποθήκευσης, χρησιμοποιώντας απλά τα νέα στιγμιότυπα CREATE_DOCUMENT OPEN_DOCUMENT, για να ανοίξουμε η να δημιουργήσουμε ένα αρχείο. Οι περισσότερες συσκευές της έκδοσης 4.4 περιλαμβάνουν το Google Drive και έναν τοπικό διαχειριστή αποθήκευσης, ως προμηθευτές εγγράφων και προ εγκατεστημένες εφαρμογές, που λειτουργούν με αρχεία που χρησιμοποιούν το νέο πλαίσιο αποθήκευσης.
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Εφαρμογές Android v 4.4 KitKat Στην έκδοση 4.4 Kit Kat προστέθηκε μια νέα πλατφόρμα για την υποστήριξη δυο νέων σύνθετων αισθητήρων, του ανιχνευτή βημάτων και του μετρητή βημάτων. Ο αισθητήρας βημάτων αναλύει την είσοδο ενός επιταχυντή, για να μπορέσει να αναγνωρίσει ποτέ ο χρήστης έκανε ένα βήμα και δημιουργεί ένα γεγονός (event) για κάθε βήμα. Ο μετρητής βημάτων, υπολογίζει τον συνολικό αριθμό βημάτων από την τελευταία επανεκκίνηση της συσκευής και δημιουργεί ένα γεγονός, για κάθε αλλαγή στον μετρητή βημάτων. Ο νέος φορέας μηνυμάτων sms του Android 4.4, παρουσιάζει μια νέα μεθοδολογία στον τρόπο που δεχόμαστε και επεξεργαζόμαστε μηνύματα. Όταν λαμβάνουμε ένα γραπτό μήνυμα (sms), το σύστημα το δρομολογεί άμεσα στην προεπιλεγμένη εφαρμογή μηνυμάτων του χρήστη, χρησιμοποιώντας έναν νέο SMS_DELIVER. Οι υπόλοιπες εφαρμογές, μπορούν να δουν τα εισερχόμενα μηνύματα χρησιμοποιώντας τον SMS_DELIVER. Επίσης, το σύστημα επιτρέπει τώρα μόνο στην προεπιλεγμένη εφαρμογή να στέλνει δεδομένα μηνυμάτων στον φορέα, ενώ άλλες εφαρμογές μπορούν να τα διαβάζουν οποιαδήποτε στιγμή.
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Εφαρμογές Android v 4.4 KitKat Με την έκδοση 4.4 Kit Kat οι εφαρμογές μας, μπορούν να χρησιμοποιήσουν κάθε εικονοστοιχείο (pixel) στην οθόνη της συσκευής. Η έκδοση Kit Kat παρουσιάζει μια νέα οθόνη εικονικής πραγματικότητας, που σου επιτρέπει να δημιουργήσεις νέα interfaces, χρησιμοποιώντας όλο το εύρος και το πλάτος της οθόνης σε τηλέφωνα και tablet. Είναι ιδανικό για εφαρμογές όπως η περιήγηση φωτογραφιών, τα παιχνίδια, προβολή βίντεο, ανάγνωση βιβλίων κ.α. Στην έκδοση Kit Kat έχουμε την δυνατότητα να δημιουργήσουμε υψηλής ποιότητας βίντεο της εφαρμογής μας, κατευθείαν από την Android συσκευή μας. Στην συγκεκριμένη έκδοση έχει προστεθεί υποστήριξη για εγγραφή οθόνης (screen recording). Με την εφαρμογή εγγραφής οθόνης, μπορούμε να επεξεργαστούμε ένα βίντεο που προβάλουμε στην οθόνη της συσκευής μας και να το αποθηκεύσουμε σε μορφή αρχείου MP4 στην μνήμη της συσκευής μας. Για υψηλής απόδοσης και χαμηλής κατανάλωσης αναπαραγωγή ήχου, στην έκδοση 4.4, προστέθηκε μια πλατφόρμα υποστήριξης ήχου, σε έναν επεξεργαστή ψηφιακού σήματος στο chipset της συσκευής. Με την πλατφόρμα ήχου, η αποκωδικοποίηση του ήχου φορτώνεται στο DSP, χρησιμοποιώντας λιγότερο τον επεξεργαστή της εφαρμογής και καταναλώνοντας λιγότερη ισχύ της μπαταρίας.
ΚΕΦΑΛΑΙΟ 3 Ανάλυση και Περιγραφή του Android 4.4 KitKat Εφαρμογές Android v 4.4 KitKat Η έκδοση 4.4 Kit Kat, υποστηρίζει δύο νέα προφίλ για την σύνδεση μέσω Bluetooth. Το προφίλ Bluetooth HID (HOGP), δίνει στις εφαρμογές μια σύνδεση χαμηλής καθυστέρησης με περιφερειακές συσκευές χαμηλής ενέργειας, όπως ποντίκια, χειριστήρια και πληκτρολόγια. Το Bluetooth MAPS, δίνει την δυνατότητα στις εφαρμογές να ανταλλάσσουν μηνύματα με κοντινές συσκευές, όπως για παράδειγμα ένα τερματικό αυτοκινήτου να κάνει χρήση handsfree ή μιας άλλης συσκευής. Ένα νέο στοιχείο συνδεσιμότητας στην έκδοση Kit Kat, είναι η εισαγωγή της πλατφόρμας για την υποστήριξη συσκευών με IR Blaster. Χρησιμοποιώντας το νέο API, μπορούμε να δημιουργήσουμε εφαρμογές, που επιτρέπουν στους χρήστες να ελέγχουν από απόσταση κοντινή τηλεοράσεις, δέκτες, διακόπτες, και άλλες ηλεκτρονικές συσκευές. Το API επιτρέπει να ελέγξουμε την εφαρμογή μας αν το τηλέφωνο ή το tablet διαθέτει πομπό υπέρυθρων.
ΚΕΦΑΛΑΙΟ 4 Σύνοψη Στην παρούσα πτυχιακή εργασία είδαμε το λειτουργικό σύστημα Android που χρησιμοποιείται στα κινητά τηλέφωνα (smartphones) και στα tablets. Κάναμε μία αναφορά στις εκδόσεις του λειτουργικού, ξεκινώντας από την έκδοση 1.5 Cupcake, που παρουσιάστηκε το 2009, μέχρι και την τελευταία έκδοση του συστήματος την 5.0 Lollipop τον Ιούνιο του Είδαμε την αρχιτεκτονική του λειτουργικού, είδαμε το επίπεδο του πυρήνα, Το επίπεδο των βιβλιοθηκών και την αλληλεπίδραση με τον χρήστη. Το επίπεδο του χρόνου εκτέλεσης διεργασιών (Android Runtime) καθώς και το επίπεδο των εφαρμογών που χρησιμοποιεί ο χρήστης. Αναλύσαμε την διαχείριση μνήμης και την διαδικασία εκκίνησης στο λειτουργικό σύστημα Android. Την διαχείριση των διεργασιών και την διαχείριση του αποθηκευτικού χώρου στην εσωτερική μνήμη. Είδαμε τέλος κάποιες από τις καινούργιες εφαρμογές της έκδοσης 4.4 KitKat. Mπορούμε να πούμε, ότι η έκδοση του λειτουργικού συστήματος Android 4.4 Kit Kat, αποτέλεσε την σημαντικότερη αναβάθμιση του συστήματος. Κυρίως γιατί έχει γίνει ο οδηγός για τις μετέπειτα εκδόσεις. Οι χρήστες μπορούν πλέον, να απολαμβάνουν τα πλεονεκτήματα του λειτουργικού σε μεγαλύτερο εύρος συσκευών, καθώς και ένα μεγαλύτερο εύρος εφαρμογών χωρίς πρόβλημα στην λειτουργία τους.
ΒΙΒΛΙΟΓΡΑΦΙΑ commercial_release_versions_ E android.html#.U9O14-OSwpo
ΒΙΒΛΙΟΓΡΑΦΙΑ / F%89%CE%BD%CE%AF%CE%B