Παράρτημα
Παράρτημα
Ιστορικά στοιχεία
Η εταιρεία Android Inc δημιουργήθηκε το 2003 στην California[1]. Στην αρχή η εταιρεία είχε σκοπό να κατασκευάσει ένα λειτουργικό σύστημα για ψηφιακές κάμερες. Ωστόσο πολύ σύντομα η εταιρεία άλλαξε στόχο και άρχισε να παρουσιάζει το Android ως λειτουργικό σύστημα για συσκευές χειρός το οποίο θα «ανταγωνιζόταν» το Symbian και το Microsoft Windows Mobile. Τον Ιούλιο του 2005 η εταιρεία εξαγοράστηκε από την Google. Το Νοέμβριο του 2007, δημιουργήθηκε η κοινοπραξία Open Handset Alliance, με εταιρείες τεχνολογίας όπως η Google, εταιρείες κατασκευής τηλεφώνων όπως οι εταιρείες HTC, Motorola Samsung, εταιρείες τηλεπικοινωνιών όπως η Sprint και η T-Mobile και κατασκευαστών chipset όπως η Qualcomm και η Texas Instrument. Το πρώτο κινητό Android που κυκλοφόρησε στην αγορά ήταν το HTC Dream γνωστό και ως T-Mobile G1 το οποίο παρουσιάστηκε στις 23 Σεπτεμβρίου του 2008. Για το λειτουργικό σύστημα Android έχουν πλέον δημιουργηθεί πολλές διαφορετικές εκδόσεις και για συσκευές που δεν είναι αφής, όπως Android TV για τηλεοράσεις, Wear OS[2] για ρολόγια, ενώ υπάρχουν και εκδόσεις του Android για κονσόλες παιχνιδιών (game consoles), ψηφιακές κάμερες (digital cameras), φορητές συσκευές αναπαραγωγής πολυμέσων (portable media players).
Βασικές βιβλιοθήκες
- OpenGL ES: Πρόκειται για τη βιβλιοθήκη με την οποία κάνουμε render 2D και 3D γραφικά[3] με χρήση κάποιας κάρτας γραφικών (GPU).
- OpenMAX AL (Open Media Acceleration): Είναι μια βιβλιοθήκη που προσφέρει μια σχετική επιτάχυνση εκτέλεσης σε ρουτίνες που είναι ειδικά πολύ χρήσιμες στην επεξεργασία βίντεο, ήχου και εικόνας.
- Android Webkit: Είναι μια μηχανή φυλλομέτρησης (browser engine) που χρησιμοποιείται για το rendering ιστοσελίδων.
- Media Framework: Είναι ουσιαστικά εφαρμογές που έχουν σχεδιαστεί για να παρέχεται μια αξιόπιστη διεπαφή για την υπηρεσία Java. Είναι ένα σύστημα που περιλαμβάνει εφαρμογές πολυμέσων για συσκευές εισόδου / εξόδου ήχου και εικόνας.
- Library C: Πρόκειται για τυπικές βιβλιοθήκες της γλώσσας C.
- Δυνατότητα εγκατάστασης άλλων βιβλιοθηκών.
Βασικά στοιχεία επιπέδου υλικού (Hardware Abstraction Layer)
Σε όλες τις συσκευές που «τρέχουν» Android έκδοσης 8.0 ή μεταγενέστερη, τα χαμηλότερα επίπεδα χρησιμοποιούν μια σχετικά πιο αρθρωτή αρχιτεκτονική. Αυτές οι εκδόσεις αξιοποιούν το υλικό με τη βοήθεια της λεγόμενης HAL Interface (Definition) ή Description Languages[4] μιας γλώσσας περιγραφής, (καθορισμού δηλαδή), της διεπαφής μεταξύ χρηστών και υλικού. Μεταγενέστερες εκδόσεις (Android 11, …), υποστηρίζουν επίσης HAL γραμμένα όμως σε γλώσσα AIDL. Πρόκειται ουσιαστικά για μία γλώσσα ορισμού διεπαφής Android, (Android Interface Definition Languages) DL) που είναι παρόμοια με άλλες γλώσσες IDL αλλά παρέχει τη δυνατότητα προγραμματισμού διεπαφής με τη χρήση επικοινωνίας διαδικασιών (IPC)[5]. Όλα τα AIDL HAL διαλειτουργούν.
Επίπεδο Java API Framework
To Java API Framework είναι η προτεινόμενη “εργαλειοθήκη” που απευθύνεται στους προγραμματιστές εφαρμογών Android. Αποτελείται από επιμέρους δομικά στοιχεία που επιτρέπουν τη δημιουργία αρθρωτών συστημάτων, components και υπηρεσιών. Χαρακτηριστικά παραδείγματα τέτοιων εργαλείων είναι:
- View System: Ένα εργαλείο για τη δημιουργία του περιβάλλοντος χρήστη μιας εφαρμογής.
- Activity Manager: Πρόκειται για μια χρήσιμη εφαρμογή (κλάση στην πραγματικότητα)[6] που παρέχει πληροφορίες και αλληλεπιδρά με τις εκτελούμενες δραστηριότητες, τις παρεχόμενες υπηρεσίες και τις σχετικές διεργασίες.
- Notification Manager: Επιτρέπει στις εφαρμογές να εμφανίζουν ειδοποιήσεις στη στη γραμμή κατάστασης (status bar).
[1] Ως ιδρυτές αναφέρονται οι Andy Rubin, Rich Miner, Nick Sears και Chris White
[2] Εφαρμογές συγχρονισμού συσκευών με έξυπνα ρολόγια.
[3] Πρόκειται για εργαλεία δημιουργίας γραφικών 2D ή 3D με φωτορεαλιστική απεικόνιση και που χωρίς αυτή τη βιβλιοθήκη, θα απαιτούσαν πάρα πολλούς υπολογιστικούς πόρους.
[4] Γενικότερα οι γλώσσες “περιγραφής υλικού” είναι προγραμματιστικά εργαλεία πολύ χαμηλού επιπέδου (όχι όμως και το περιβάλλον ανάπτυξής τους) με τη βοήθεια των οποίων μπορούμε να περιγράψουμε και προσομοιώσουμε τη λειτουργία ψηφιακών διατάξεων (πχ. η VHDL) αλλά και να προγραμματίσουμε «συστοιχίες λογικών πυλών» για να έχουν μια επιθυμητή λογική λειτουργία. Οι γλώσσες αυτού του επιπέδου ανήκουν στον κλάδο του υλικού (hardware) και συγκεκριμένα στο πεδίο της λογικής σχεδίασης (digital design).
[5] Επικοινωνία Διεργασιών ή Διαδιεργασιακή Επικοινωνία (Interprocess Communication, IPC) είναι ένα σύνολο μηχανισμών που παρέχονται από τα Λ.Σ. ώστε να διευκολύνεται η ανταλλαγή δεδομένων και ο συγχρονισμός μεταξύ διεργασιών που εκτελούνται ταυτόχρονα.
[6] Κατά τις αρχές του αντικειμενοστραφούς προγραμματισμού.