Η ιστορία του Android: Android 0.5 M3, ή αλλιώς πώς ξεκίνησαν όλα

Android 0.5 First Android Version

Το Android αποτελεί το ταχύτερα αναπτυσσόμενο προϊόν στην ιστορία της τεχνολογίας, ενώ παράλληλα κατέχει το 85% του μεριδίου αγοράς στα Smartphones. Πώς όμως έφτασε ως εδώ;

Σε αυτή την σειρά άρθρων θα αναφερθούμε με χρονολογική σειρά σε όλες τις γνωστές -αλλά και τις λιγότερο γνωστές- εκδόσεις του Android του αγαπημένου μας mobile λειτουργικού, αρχίζοντας από το Android 0.5!

Μία σύντομη (?) εισαγωγή

Η Android Inc ιδρύθηκε το 2003 με σκοπό να φτιάξει ένα λειτουργικό με πολλές δυνατότητες για ψηφιακές φωτογραφικές μηχανές. Σύντομα -αφού διαπίστωσαν ότι η συγκεκριμένη αγορά ήταν ιδιαίτερα περιορισμένη- αποφάσισαν να αλλάξουν στρατηγική και να αναπτύξουν ένα λειτουργικό για κινητά τηλέφωνα -που θα μπορούσε να ανταγωνιστεί τους τότε μεγάλους παίχτες, Symbian και Windows Mobile-. Η ανάπτυξη του mobile λειτουργικού της εταιρείας έγινε χωρίς να δίνονται στην δημοσιότητα πληροφορίες για αυτό. Η Android Inc σύντομα βρέθηκε να αντιμετωπίζει οικονομικές δυσκολίες -όπως φυσικά συμβαίνει στις περισσότερες startups-. Το 2005 η εταιρεία εξαγοράσθηκε από την Google, με σκοπό φυσικά η δεύτερη να μπει στον χώρο της κινητής τηλεφωνίας.

Τον Νοέμβριο του 2007 ανακοινώθηκε ο συνεταιρισμός Open Handset Alliance, με πολλές εταιρείες στον χώρο της τεχνολογίας να συμμετέχουν σε αυτόν (Google, HTC, Sony, Samsung, Qualcomm, Texas Instruments, T-Mobile κτλ). Επίσης, μαζί με τον OHA, παρουσιάστηκε και το νέο Mobile λειτουργικό "Android" βασισμένο στον πυρήνα του Linux.

Στις 11 Νοεμβρίου παρουσιάστηκαν σε σύντομο Demo κάποιες από τις δυνατότητες του Android:

Η ημερομηνία που δώθηκε το πρώτο SDK του Android -δείχνοντάς μας αναλυτικότερα πώς "θα είναι" το "νέο αυτό mobile λειτουργικό"- ήταν η 12η Νοεμβρίου 2007, ενώ μέσα στο archive το Documentation έχει την ημερομηνία της προηγούμενης μέρας, 11 Nov 2007 12:47. Το build.prop στο system (περισσότερες πληροφορίες για αυτό αργότερα) έχει ro.build.date=Sun Nov 11 12:54:00 PST 2007.

Πάμε όμως να τρέξουμε -και να δούμε αναλυτικά- την 1η (δημοσιευμένη) έκδοση του Android, m3-rc20a, ή αλλιώς Android 0.5 Milestone 3. Όσοι θέλετε να μας ακολουθήσετε κατεβάστε και εσείς το SDK από το archive της Google.

 

Android 0.5, M3-RC20 και HTC EXCA 300

Τρέχοντας τον Emulator από το SDK με τις default παραμέτρους θα μας υποδεχθεί ένα skin που θυμίζει BlackBerry συσκευές της τότε εποχής -με πλήρες hardware QWERTY πληκτρολόγιο-, πλήκτρα μετακίνησης στην μέση, αλλά και πλήκτρα "home", "menu" και "back" που τελικά είναι τα μόνα που θα αντέξουν τον χρόνο.

Android 0.5 EmulatorAndroid 0.5 Emulator

Αν και ο emulator υποστηρίζει "Touch Inputs", ένα "όμοιο" prototype που είχε υλοποιηθεί ~6 μήνες νωρίτερα (15 Μαϊου 2007) από την HTC (με Codename Sooner, ή αλλιώς HTC EXCA 300) για τις ανάγκες ανάπτυξης του λειτουργικού, αρχικά δεν είχε οθόνη αφής.

Το HTC Sooner είχε στο εσωτερικό του SoC της Texas Instruments, τον OMAP850, με 64MB μνήμης RAM, οθόνη 320x240 και κάμερα 1,3MP.

Γυρίζοντας όμως στο κομμάτι του λογισμικού, εξερευνώντας λίγο παραπάνω το SDK διαπίστωσα ότι στον φάκελο tools\lib\images\skins υπάρχουν 4 skins για τον emulator: QVGA-P, QVGA-L, HVGA-P, HVGA-L. Το "-P" και το "-L" δείχνουν το orientation, Portrait ή Landscape.

Android 0.5 Emulator skin parameters

Εκκινώντας τον emulator με κάποια διαφορετική από την default παράμετρο για skin, το αποτέλεσμα σταματάει να θυμίζει "κλώνο της BlackBerry".

Android 0.5 Emulator skin HVGA-L

Για την ακρίβεια ένα από τα skins θυμίζει (?) λίγο (?) την 1η Android συσκευή που κυκλοφόρησε (αργότερα) το 2008, το HTC G1.

Android 0.5 Emulator skin QVGA-P

Κατά την εκκίνηση, μετά από ένα σύντομο bootanimation, μας υποδέχεται το Android 0.5! Παρ' όλα αυτά η Google δεν φαίνεται να ήταν ιδιαίτερα πρόθυμη να το ονομάσει εμφανώς "Android 0.5" μιας συνεχώς η συγκεκριμένη έκδοση αναφέρεται -μόνο- ως m3-rc20a. Ίσως να σκεφτήκατε να πάτε στο Settings -> About να δείτε τι έκδοση λέει εκεί. Αμ δε! Δεν υπάρχει εφαρμογή Ρυθμίσεων! Φυσικά, κάνοντας extract το img του system άνοιξα το build.prop, το οποίο το μόνο που αναφέρει σχετικό με έκδοση είναι το ro.build.id=m3-rc20. Ίσως σε DDMS ή logcat να έχω περισσότερη τύχη? Αμ δε! Ο Browser είναι τελικά η εφαρμογή που "προδίδει" ως Version Number το "Android 0.5".

Την έκδοση του πυρήνα του Linux που τρέχει η συγκεκριμένη έκδοση του Android (2.6.23) την βρήκα κάνοντας Dump το State του Emulator.

Android 0.5 Emulator Dump Device State

Την έκδοση της Dalvik-VM (0.20) την βρήκα από το DDMS. Καμία από αυτές τις "τεχνικές λεπτομέρειες" δεν δίνεται στο Documentation του SDK.

Android 0.5 Emulator Dalvik-VM

Στο κάτω μέρος της αρχικής οθόνης βρίσκουμε 5 εικονίδια -το αριστερό εκ των οποίων ανοίγει τον App Drawer για να δούμε όλες τις εγκατεστημένες εφαρμογές-. Υπάρχει εφαρμογή για επαφές/dialer, Browser, Maps (τα οποία λόγω server side αλλαγών δεν λειτουργούν) αλλά και κάποια εργαλεία για Developers.

Android 0.5 EmulatorAndroid 0.5 EmulatorAndroid 0.5 EmulatorAndroid 0.5 Emulator

Android 0.5 EmulatorAndroid 0.5 EmulatorAndroid 0.5 EmulatorAndroid 0.5 Emulator

Κατά βάθος -πέρα από κάποια βασικά συμπεράσματα- οι προεγκατεστημένες εφαρμογές στον emulator δεν έχουν και τόσο ενδιαφέρον. Περισσότερο ενδιαφέρον έχει να δούμε τις δυνατότητες της πλατφόρμας μέσω των APIs που ήταν τότε διαθέσιμα στους developers ώστε να κρίνουμε πλήρως το εύρος των δυνατοτήτων της.

Εξάλλου το SDK -που περιέχει τον emulator- για τον λόγο αυτό δόθηκε, ώστε developers να αρχίσουν να αναπτύσσουν εφαρμογές για την πλατφόρμα. Κάποια σημεία που αξίζουν αναφοράς:

Τα πεδία EditText μπορούσαν από τότε να "σώσουν" το περιεχόμενό τους ώστε να παραμείνει διαθέσιμο ακόμα και όταν ο χρήστης "βγει" από την εφαρμογή. Από τότε επίσης υπήρχε η notification bar στο πάνω μέρος που εμφάνιζε ειδοποιήσεις. Ναι μεν δεν ήταν actionable, αλλά δείχνει πώς η Google -σταδιακά- θα την αξιοποιεί όλο και περισσότερο.

Android 0.5 apisAndroid 0.5 apisAndroid 0.5 apisAndroid 0.5 apis

Αν και είναι περισσότερο από εμφανές ότι το UI ήταν.. σε δεύτερη μοίρα (ας μην μιλήσουμε καν για UX) κάποια ενδιαφέροντα στοιχεία -και κάποια animations- είχαν κάνει την εμφάνισή τους. Παρ' όλα αυτά κατά κανόνα τα περισσότερα γραφικά στοιχεία ήταν -επιεικώς- άσχημα.

Android UIAndroid UIAndroid UIAndroid UI

Μπορεί να μην υπάρχει ξεχωριστή εφαρμογή για εμφάνιση φωτογραφιών, ή ημερολόγιο, χάρη όμως στα αντίστοιχα στοιχεία του SDK (που θα μπορούσαν να χρησιμοποιήσουν οι developers σε εφαρμογές) παίρνουμε μία ιδέα του πώς θα ήταν τέτοιες εφαρμογές.

Android UIAndroid UIAndroid UIAndroid UI

Το SDK της 3ης Milestone έκδοσης του Android 0.5 δέχτηκε αναβάθμιση μόλις 4 μέρες από την αρχική του κυκλοφορία (M3-RC22a) με λίγες αλλαγές (κυρίως bug fixes), ενώ ένα μήνα αργότερα έγινε μία ακόμα minor αναβάθμιση (m3-rc37a). Η τελευταία έκανε default skin στον emulator το HVGA-P -οπότε και η default ρύθμισή του έπαψε να μοιάζει με αντιγραφή των BlackBerry-.

Και έτσι κλείνει ο κύκλος της 1ης διαθέσιμης σε developers/στο κοινό έκδοσης του Android. Το Android 0.5 Μ3 το διαδέχτηκε το Android 0.5 M5, το οποίο θα δούμε σε επόμενο άρθρο. Είναι φανερό ότι απέχουμε αρκετά από ένα "τελειωμένο" προϊόν, το οποίο έγινε τον Σεπτέμβρη του 2008 και το Android 1.0.

Για όσους δεν αρκούνται στα screenshots, ορίστε και ένα σύντομο screencast της "υπέροχης" πρώτης διαθέσιμης έκδοσης του Android.

Σχετικό (πολύ ενδιαφέρον) Link

aByte