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

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

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

Όταν το μάθημα της πληροφορικής γίνεται ανθρωποκεντρικό μπορεί να αφορά και την εφηβεία.

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

03-00: Βιομάζα για παραγωγή ενέργειας Γενικά ζητήματα εφοδιαστικών αλυσίδων

ΔΕΛΤΙΟ ΤΥΠΟΥ. Ακολουθεί ολόκληρη η τοποθέτηση - παρέμβαση του Υπουργού Δ.Μ.&Η.Δ.

Σοφία Γιουρούκου, Ψυχολόγος Συνθετική Ψυχοθεραπεύτρια

ΠΡΟΣΩ ΟΛΟΤΑΧΩΣ! ΑΝΑΓΕΝΝΗΣΗ ΤΗΣ ΕΛΛΑΔΑΣ

Η ΔΙΔΑΚΤΙΚΗ ΑΞΙΟΠΟΙΗΣΗ ΚΙΝΗΤΩΝ ΕΡΓΑΣΤΗΡΙΩΝ ΦΟΡΗΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. στο μάθημα της Γλώσσας της ΣΤ ΔΗΜΟΤΙΚΟΥ

ΣΥΜΒΑΣΗ ΔΠΑ/ΕΠ-6489/2012

Ομάδα έργου. Με την 446/15 απόφαση Δ.Σ.,συγκροτήθηκε ομάδα έργου αποτελούμενη από τους:

Ο τίτλος της εργασία μας για αυτό το τετράμηνο ήταν «Πολίτες της πόλης μου, πολίτες της οικουμένης». Κλιθήκαμε λοιπόν να γνωρίσουμε καλύτερα την πόλη

Η συμβολή του Πλάτωνα στα Μαθηματικά

ΔΙΑΔΟΣΗ ΘΕΡΜΟΤΗΤΑΣ Φυσική Β' Γυμνασίου. Επιμέλεια: Ιωάννης Γιαμνιαδάκης

ΕΚΤΕΛΕΣΤΙΚΗ ΕΠΙΤΡΟΠΗ ΦΙΛΕΛΛΗΝΩΝ & ΨΥΛΛΑ ΑΘΗΝΑ Τηλ Fax adedy@adedy.gr, adedy1@adedy.gr

Φλωρεντία, 10 Δεκεμβρίου 1513 Προς τον: ΦΡΑΓΚΙΣΚΟ ΒΕΤΤΟΡΙ, Πρέσβη της Φλωρεντίας στην Αγία Παπική Έδρα, Ρώμη. Εξοχώτατε Πρέσβη,

Τίτλος Ειδικού Θεματικού Προγράμματος: «Διοίκηση, Οργάνωση και Πληροφορική για Μικρο-μεσαίες Επιχειρήσεις»

ΠΡΟΒΛΗΜΑΤΑ ΤΗΣ ΔΗΜΟΣΙΑΣ ΖΩΗΣ, ΜΙΑ ΨΥΧΑΝΑΛΥΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ

1. Εισαγωγή. 2. Καταπολέμηση της φοροδιαφυγής

Προδημοσιεύτηκαν τα τέσσερις πρώτα προγράμματα του νέου ΕΣΠΑ που αφορούν

Από το ξεκίνημά του ο ΤΙΤΑΝ εκφράζει

ΑΚΡΟΒΑΤΗΣ-ΧΑΪΝΗΔΕΣ Οι Χαΐνηδες Ο Δημήτρης Αποστολάκης

Η ΕΞΕΤΑΣΗ ΜΑΡΤΥΡΩΝ ΚΑΙ Η ΠΑΡΟΥΣΙΑΣΗ ΥΠΟΘΕΣΕΩΝ ΕΝΩΠΙΩΝ ΔΙΚΑΣΤΗΡΙΟΥ

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΑΡΙΘΜΟΣ ΜΕΛΕΤΗΣ: 58/ 2014 ΝΟΜΟΣ ΘΕΣΠΡΩΤΙΑΣ ΔΗΜΟΣ ΗΓΟΥΜΕΝΙΤΣΑΣ Δ/ΝΣΗ ΤΕΧΝΙΚΩΝ ΥΠΗΡΕΣΙΩΝ ΜΕΛΕΤΗ

Υποψήφιοι Σχολικοί Σύμβουλοι

Απώλεια και μετασχηματισμοί της τραυματικής εμπειρίας. Παντελής Παπαδόπουλος

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

Συνωμοσία Πυρήνων της Φωτιάς - Πυρήνας Αντάρτικου Πόλης

«Συλλογή, μεταφορά και διαχείριση επικίνδυνων στερεών αποβλήτων της Γ.Μ.Μ.Α.Ε. ΛΑΡΚΟ»

Α. ΟΡΓΑΝΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΕΦΑΡΜΟΓΗΣ

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

Μια «γριά» νέα. Εύα Παπώτη

ΓΕΝΙΚΟΙ ΟΡΟΙ ΠΑΡΟΧΗΣ της YΠΗΡΕΣΙΑΣ «Mobile Device Management» από την COSMOTE

Ξαναδίνουμε ζωή στο δικό μας ΗΡΑΚΛΕΙΟ Δ.Α.Σ.Η. ΓΙΩΡΓΟΣ ΜΑΣΤΟΡΑΚΟΣ. Δημοτική Ανεξάρτητη Συνεργασία Ηρακλείου

Βουλευτικές Εκλογές 2011

Τοποθέτηση Δημάρχου Γ. Πατούλη. για τεχνικό πρόγραμμα 2010

& ../../ , :.. : FAX :... & :...

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

ΑΣΦΑΛΙΣΗ ΑΥΤΟΚΙΝΗΤΟΥ

Α. Πολιτιστικοί φορείς Πλήθος φορέων Έδρα Γεωγραφική κατανομή φορέων Νομική μορφή Έτος ίδρυσης...

Σεμινάριο με θέμα : Εθελοντισμός & Δικαιώματα Παιδιού

Ομιλία του Υφυπουργού Ανάπτυξης κου Θανάση Σκορδά στο CapitalVision 2012

ΕΦΑΡΜΟΣΜΕΝΗ ΗΘΙΚΗ. Ενότητα 10: Φιλοσοφική Συμβουλευτική. Παρούσης Μιχαήλ. Τμήμα Φιλοσοφίας

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

Κανόνες λειτουργίας της Επιτροπής Ηθικής και Δεοντολογίας

Ασυντήρητες και επικίνδυνες οικοδομές

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

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ Σχ ολή Διοίκησή και Οικονομίας Τμήμα Λογιστική

ΑΣΩΠΟΣ: ΘΑΝΑΣΙΜΗ ΑΠΕΙΛΗ

Σκοτεινές Ομάδες, Σέκτες, Τάγματα & Αδελφότητες. Συντάχθηκε απο τον/την Νεφέλη

Εισηγητής: Στέλλα Μαρινάκη, Αριθμός μητρώου: 229. Επιβλέπουσα: Άννα Μποτωνάκη

Ο Υφυπουργός κατά την επίσκεψή του στο νέο κτίριο, ανακοίνωσε τα

ΧΙΙΙ Επιτροπή Εκπαιδευτικής Υπηρεσίας

ΤΟΜΟΣ Α ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΙΚΑΙΟ

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

Συνοπτική Παρουσίαση. Ελλάδα

Δρ.ΠΟΛΥΚΑΡΠΟΣ ΕΥΡΙΠΙΔΟΥ

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

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

ΤΜΗΜΑ ΗΜΟΣΙΩΝ ΣΧΕΣΕΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΣ

ΟΣΤΑ & ΣΚΕΛΕΤΙΚΟ ΣΥΣΤΗΜΑ

Τίτλος: Εξελίξεις στο Ευρωπαϊκό Νομοθετικό Πλαίσιο των φυτοπροστατευτικών προϊόντων Όνομα: Φραντζέσκα Υδραίου Εταιρεία: Ε.ΣΥ.Φ.

Η αξιολόγηση των εκπαιδευτικών το Π.Δ 152/2013, του Γιώργου Καλημερίδη

ΠΟΛΙΤΙΚΉ ΠΑΙΔΕΙΑ. Α Γενικού Λυκείου και ΕΠΑ.Λ. Καζάκου Γεωργία, ΠΕ09 Οικονομολόγος

Ηλεκτρονική διακυβέρνηση με ανθρώπινη διάσταση. Καθηγητής B. Ασημακόπουλος

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

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

Συνεταιριστική Οικονομία

Αξιολόγηση του Εκπαιδευτικού Έργου. Διαδικασία Αυτοαξιολόγησης στη Σχολική Μονάδα

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

ΔΗΜΟΣΙΑ ΕΠΙΧΕΙΡΗΣΗ ΦΥΣΙΚΟΥ ΑΕΡΙΟΥ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΑΡΙΘΜ. ΠΡΩΤ. : ΝΟΜΟΣ ΦΛΩΡΙΝΑΣ ΑΜΥΝΤΑΙΟ 11/09/2015 ΔΗΜΟΣ ΑΜΥΝΤΑΙΟΥ

Σχολή Αναρρίχησης Βράχου Μέσου Επιπέδου Άνοιξη 2014

Έλλειψη εσωτερικής ελευθερίας

Εσωτερικοί Κανονισμοί Τοπικής Αυτοδιοίκησης

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

ΚΕΦΑΛΑΙΟ 8 ΣΥΜΠΕΡΑΣΜΑΤΑ

ΟΡΓΑΝΩΣΗ ΕΝΟΤΗΤΩΝ Α ΤΑΞΗΣ ΕΝΟΤΗΤΑ 3

ΕΚ ΟΣΗ 2.0 Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΠΑΡΑΓΩΓΗ - ΚΕΝΤΡΙΚΗ ΙΑΘΕΣΗ

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

ΚΟΛΥΜΒΗΤΙΚΟΣ ΟΜΙΛΟΣ ΑΡΚΑΔΙΑΣ «ΤΡΙΠΟΛΗ»

ΓΙΑ ΤΗΝ ΕΞΟΔΟ ΑΠΟ ΤΗΝ ΕΥΡΩΖΩΝΗ ΣΤΟ ΔΗΜΟΨΗΦΙΣΜΑ ΨΗΦΙΖΟΥΜΕ ΕΡΩΤΗΣΕΙΣ & ΑΠΑΝΤΗΣΕΙΣ ΟΧΙ ΜΕΧΡΙ ΤΕΛΟΥΣ. Αριστερή Αντικαπιταλιστική Συσπείρωση (ΑΡ.Α.Σ.

Παραμονή Παγκόσμιας Ημέρας Αντικαταναλωτισμού*, 28 Νοεμβρίου 2008

ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

ΓΕΝΙΚΗ ΕΦΟΡΕΙΑ. Αθήνα, 15 Απριλίου 2011 ΕΓΚΥΚΛΙΟΣ 7. - Αρχηγούς Συστημάτων και Τμημάτων - Περιφερειακούς και Τοπικούς Εφόρους - Εφόρους Περιοχής

ΑΝΑΚΥΚΛΩΣΗ ΤΗΓΑΝΕΛΑΙΟΥ ΓΙΑΤΙ - ΠΩΣ - ΠΟΤΕ

Αυτός που δεν μπορεί να δει τα μικρά πράγματα είναι τυφλός και για τα μεγαλύτερα. (Κομφούκιος, πχ)

ΚΩΔΙΚΑΣ ΔΕΟΝΤΟΛΟΓΙΑΣ

ΚΟΛΥΜΒΗΤΙΚΟΣ ΟΜΙΛΟΣ ΑΡΚΑΔΙΑΣ «ΤΡΙΠΟΛΗ»


Ας προσπαθήσουμε να δούμε ποιες είναι αυτές, μία προς μία, εξετάζοντας τις πιο εξόφθαλμες και αναντίρρητες από αυτές.

Οδηγίες Συμμετοχής για το πρόγραμμα της Κυπαρισσίας

Κος ΓΚΑΙΤΛΙΧ: Ευχαριστώ πολύ κυρία Πρόεδρε. Θα επιχειρήσω μέσα σε περίπου 10 με 15 λεπτά να συνοψίσω αυτά που συζητήθηκαν στο δικό μας workshop, το

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

ΣΥΖΗΤΗΣΗ ΝΟΜΟΣΧΕΔΙΟΥ ΥΠ.ΓΕΩΡΓΙΑΣ

ΑΔΑ: 4ΙΦΝΚ-ΔΘ. Αθήνα, 14 Δεκεμβρίου 2010 Αριθ. Πρωτ.: Ταχυδρομική. Σταδίου 27 Διεύθυνση: Ταχυδρομικός Κώδικας: ΑΘΗΝΑ

EΓΚΥΚΛΙΟΣ ΕΣΩΚΟΜΜΑΤΙΚΩΝ ΕΚΛΟΓΩΝ 2010

Το σχολείο πρέπει να ικανοποιεί με τα ωράριά του το πρόγραμμα των γονέων.

Transcript:

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

Περιεχόμενα ΠΕΡΙΕΧΟΜΕΝΑ... 2 ΕΝΟΤΗΤΑ 1 ΠΡΩΤΗ ΓΝΩΡΙΜΙΑ ΜΕ ΤΟ ANDROID... 4 1.1 ΕΙΣΑΓΩΓΗ... 4 1.2 ΠΗΓΕΣ ΓΝΩΣΗΣ... 4 1.3 ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ... 5 1.4 ANDROID VS IPHONE... 5 1.5 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ ANDROID... 7 1.6 ΕΓΚΑΤΑΣΤΑΣΗ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΥΛΟΠΟΙΗΣΗΣ... 8 1.7 ΠΡΩΤΗ ANDROID ΕΦΑΡΜΟΓΗ... 11 1.8 ΣΥΣΤΑΤΙΚΑ & ΚΥΚΛΟΣ ΖΩΗΣ ANDROID ΕΦΑΡΜΟΓΩΝ... 17 1.9 ΠΑΚΕΤΑΡΙΣΜΑ ΕΦΑΡΜΟΓΗΣ... 19 ΕΝΟΤΗΤΑ 2 ΣΧΕΔΙΑΣΗ & ΑΝΑΠΤΥΞΗ ΓΡΑΦΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ... 22 2.1 MEDIACALC... 22 2.2 ΚΕΝΤΡΙΚΟ ACTIVITY & MAIN.XML... 22 2.3 ECLIPSE XML EDITOR... 25 2.4 ECLIPSE GUI EDITOR... 26 2.5 ΔΗΜΙΟΥΡΓΙΑ ΜΕΝΟΥ... 38 2.6 ΧΕΙΡΙΣΜΟΣ ΣΥΜΒΑΝΤΩΝ... 44 2.7 ΔΙΣΔΙΑΣΤΑΤΑ ΓΡΑΦΙΚΑ... 48 2.8 ΠΑΡΑΛΕΙΠΟΜΕΝΑ... 54 ΕΝΟΤΗΤΑ 3 MULTIMEDIA & ΑΡΧΕΙΑ... 56 3.1 ΧΡΗΣΗ ΠΟΛΥΜΕΣΩΝ... 56 3.2 ΑΝΟΙΓΜΑ ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΩΝ... 57 3.3 ΑΝΑΠΑΡΑΓΩΓΗ HΧΟΥ... 60 3.4 ΑΝΑΠΑΡΑΓΩΓΗ VIDEO... 63 3.5 ΠΡΟΣΠΕΛΑΣΗ ΑΡΧΕΙΩΝ... 65 3.6 ΚΑΡΤΑ ΜΝΗΜΗΣ... 67 ΕΝΟΤΗΤΑ 4 ΔΙΚΤΥΩΣΗ... 70 4.1 ΤΗΛΕΦΩΝΙΑ... 70 4.2 ΑΠΟΣΤΟΛΗ/ΛΗΨΗ SMS... 74 4.3 WI-FI... 86 4.4 BLUETOOTH... 88 4.5 WEB... 92 4.6 EMAIL... 93 ΕΝΟΤΗΤΑ 5 GPS, HARDWARE & ΑΙΣΘΗΤΗΡΕΣ... 98 5.1 LOCATION-BASED SERVICES (LBS)... 98 5.2 GEOCODING... 103 5.3 ΑΝΤΙΣΤΡΟΦΟ GEOCODING... 104 5.4 ΧΡΗΣΗ GOOGLE MAPS... 105 5.5 ΦΩΤΟΓΡΑΦΙΚΗ ΜΗΧΑΝΗ... 112 Εισαγωγή στην Ανάπτυξη Android Εφαρμογών 2

5.6 ΑΙΣΘΗΤΗΡΕΣ... 113 5.7 ΜΗΧΑΝΙΣΜΟΣ ΔΟΝΗΣΗΣ... 117 ΕΝΟΤΗΤΑ 6 ΑΠΟΘΗΚΕΥΣΗ ΔΕΔΟΜΕΝΩΝ... 118 6.1 ΓΕΝΙΚΑ... 118 6.2 SHARED PREFERENCES... 119 6.3 ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ SQLITE... 127 6.4 CONTENT PROVIDERS... 140 ΕΝΟΤΗΤΑ 7 ΠΑΡΑΛΕΙΠΟΜΕΝΑ, DEBUGGING, ANDROID MARKET... 146 7.1 ΠΑΡΑΛΕΙΠΟΜΕΝΑ... 146 7.1.1 Threads... 146 7.1.2 Ασφάλεια... 147 7.1.3 Services... 148 7.1.4 Widgets... 150 7.1.5 Multitouch... 150 7.2 DEBUGGING... 151 7.3 ANDROID MARKET... 157 Εισαγωγή στην Ανάπτυξη Android Εφαρμογών 3

Εισαγωγή στην Ανάπτυξη Android Εφαρμογών Ενότητα 1 Πρώτη Γνωριμία με το Android 1.1 Εισαγωγή Σας καλωσορίζουμε στο σεμινάριο τηλεκπαίδευσης «Εισαγωγή στην Ανάπτυξη Android Εφαρμογών» του Εργαστηρίου Τεχνολογίας Πολυμέσων του Ε.Μ.Π. Σκοπός του σεμιναρίου αυτού είναι η ένταξη των συμμετεχόντων στην προγραμματιστική νοοτροπία και στυλ που απαιτούνται για την ανάπτυξη ολοκληρωμένων εφαρμογών για μικροσυσκευές με λειτουργικό Android, μέσα από μία σειρά 8 εκπαιδευτικών ενοτήτων. Σε αντίθεση με άλλα εισαγωγικά σεμινάρια που παρέχονται από το Εργαστήριο Πολυμέσων και λόγω των αυξημένων απαιτήσεων, το συγκεκριμένο προϋποθέτει προχωρημένες γνώσεις επάνω στις τεχνολογίες που εμπλέκονται ώστε να είναι σε θέση ο εκπαιδευόμενος να το παρακαλουθήσει επιτυχώς. Πιο συγκεκριμένα, απαιτείται η καλή γνώση της γλώσσας προγραμματισμού Java, η εξοικείωση με ένα περιβάλλον υλοποίησης (κατά προτίμηση του Eclipse), η γνώση των κανόνων σύνταξης αρχείων XML και τέλος, βασικές γνώσεις για την αλληλεπίδραση με μια σχεσιακή βάση δεδομένων (σύνταξη βασικών SQL statements). Ως εκ τούτου, στο σεμινάριο αυτό μπορούν να εγγραφούν μόνο όσοι έχουν παρακολουθήσει επιτυχώς το σεμινάριο «Εισαγωγή στη Γλώσσα Προγραμματισμού Java» που επίσης διατίθεται από το Εργαστήριο Πολυμέσων, ή εναλλακτικά όσοι μπορούν να πιστοποιήσουν την εξοικείωσή τους με τις προαναφερθείσες τεχνολογίες (π.χ. εργάζονται ως Java developers). 1.2 Πηγές Γνώσης 1. Βιβλιογραφία Το βιβλίο που έχετε ήδη προμηθευτεί είναι ένα πολύ καλό βιβλίο για την εισαγωγή στην ανάπτυξη Android εφαρμογών. Για όσους ενδιαφέρονται να εμβαθύνουν περισσότερο, θα ήταν χρήσιμο να προμηθευτούν και έναν δεύτερο τίτλο. Ακολουθεί μια λίστα από προτεινόμενα βιβλία, όλα γραμμένα στην Αγγλική γλώσσα. Pro Android 3, Hashimi-Komatineni-MacLean, APress, 2011 The Busy Coder's Guide To Android Development, Murphy, CommonsWare, 2009 Android In Action, Ableson-Sen-King-Ortiz, Manning Publications, 2011 2. Websites Στο διαδίκτυο μπορείτε να βρείτε πάρα πολλές πηγές γνώσης επάνω στο θέμα. Κάποια από τα πιο βασικά websites τα οποία μπορείτε να συμβουλευτείτε είναι τα εξής: http://source.android.com - Το site που μπορείτε να κατεβάσετε τον πηγαίο κώδικα του Android και να αναμιχθείτε ενεργά με το project Android http://developer.android.com - Απευθύνεται αποκλειστικά σε developers και εδώ μπορείτε να προμηθευτείτε το Android SDK αλλά και να βρείτε πηγές που θα σας βοηθήσουν στην ανάπτυξη των εφαρμογών σας Εισαγωγή στην Ανάπτυξη Android Εφαρμογών 4

http://www.talkandroid.com/android-forums - Φόρουμ με συζητήσεις σχετικά με την υλοποίηση Android εφαρμογών 1.3 Ιστορική Αναδρομή H Google, έχοντας εντοπίσει αυξημένη χρήση του internet και αναζητήσεων στον παγκόσμιο ιστό μέσω κινητών συσκευών (mobile devices) εξαγοράζει το 2005 την Android Inc με σκοπό την ανάπτυξη μιας πλατφόρμας για τέτοιου είδους συσκευές. Περίπου την ίδια περίοδο, η Apple παρουσιάζει το iphone (2007) το οποίο κάνει χρήση κάποιων επαναστατικών καινοτομιών όπως η υποστήριξη multitouch και η ανοιχτή παγκόσμια αγορά εφαρμογών. Το Android γρήγορα προσαρμόστηκε ώστε να υιοθετήσει και να παρέχει επίσης τις προαναφερθείσες δυνατότητες αν και κατά κοινή ομολογία οι πρώτες εκδόσεις του υπολείπονταν του iphone όσον αφορά τις υποστηριζόμενες λειτουργίες και τη συνολική εμπειρία που πρόσφερε στους χρήστες. Το 2007 λοιπόν, τη χρονιά λανσαρίσματος του iphone, δημιουργείται ένας οργανισμός που αποτελείται από μεγάλο αριθμό εταιρειών τηλεπικοινωνιακού εξοπλισμού καθώς και εταιρείες πληροφορικής όπως η Google, η Τ-Mobile, η Motorola, η Samsung, η Sony Ericsson, η Intel, η Vodafone, η Toshiba κ.α. με όνομα Open Handset Alliance (http://www.openhandsetalliance.com) και σκοπό την έρευνα και την ανάπτυξη τεχνολογιών για την παραγωγή συσκευών που θα διευκολύνουν τόσο τους παρόχους κινητής τηλεφωνίας όσο και τους κατασκευαστές κινητών τηλεφώνων αλλά και τους προγραμματιστές εφαρμογών. Τα μέλη της συμμαχίας δεσμεύτηκαν να παρέχουν τις τεχνολογίες αυτές βάσει του μοντέλου ανοιχτού πηγαίου κώδικα Apache. Η πρώτη 'early look' έκδοση του Android SDK δημοσιεύτηκε το Νοέμβριο του 2007, ενώ το πρώτο smartphone που έκανε χρήση λειτουργικού Android ήταν το G1 της T-Mobile. Οι συσκευές Android άρχισαν να διαδίδονται με γρήγορο ρυθμό κυρίως λόγω της δυνατότητας της πλατφόρμας να εκμεταλλεύεται το μοντέλο cloud computing αλλά και της έμφυτης υποστήριξης για συνεργασία με μία σχεσιακή βάση δεδομένων (SQLite). Ακολούθησαν αρκετές αναβαθμισμένες εκδόσεις του Android, κάθε μία προσθέτοντας νέα χαρακτηριστικά και λειτουργίες. Για κάποιον άγνωστο λόγο κάθε έκδοση του Android φέρει και μία κωδική ονομασία ενός γλυκού εδέσματος (1.5 - Cupcake, 1.6 - Donut, 2.0 Eclair κ.α.), ενώ από τις εκδόσεις αυτές εκείνη που εισήγαγε την υποστήριξη πιο ανεπτυγμένων λειτουργιών ήταν σίγουρα η 2.0 στην οποία ενσωματώθηκε η υποστήριξη multitouch, HTML 5, text-to-speech και η δυνατότητα πιο προχωρημένων αναζητήσεων. Κατά τη σύνταξη των σημειώσεων που έχετε στα χέρια σας, η πιο πρόσφατη έκδοση του λειτουργικού Android είναι η 3.1 (Honeycomb). 1.4 Android vs iphone Σήμερα, η μάχη για την επικράτηση στην αγορά των smartphones μαίνεται μεταξύ δύο κολοσσών, του iphone και του Android. Όπως αναφέρθηκε ήδη, το iphone δείχνει να έχει ακόμη το προβάδισμα και οι κάτοχοί του διατείνονται πως προσφέρει σαφώς ανώτερη εμπειρία στο χρήστη και μεγαλύτερη ποικιλία εφαρμογών. Ενδεχομένως κάτι τέτοιο να ισχύει, μιας και το iphone ήταν αυτό που κυκλοφόρησε πρώτο εισάγοντας παράλληλα καινοτόμες τεχνολογίες στην αγορά. Στην υποενότητα Εισαγωγή στην Ανάπτυξη Android Εφαρμογών 5

αυτή όμως δεν θα μας απασχολήσουν συγκρίσεις για το ποιο από τα δύο είναι καλύτερο ή πιο δημοφιλές. Μια τέτοια συζήτηση θα ήταν ανούσια, άλλωστε εμπεριέχει και το προσωπικό γούστο του καθενός. Αντίθετα, στο πλαίσιο που κινούμαστε είναι σαφώς πιο ουσιώδες το να εστιάσουμε στο ποια είναι τα θετικά και αρνητικά της κάθε πλατφόρμας, με γνώμονα την ανάπτυξη εφαρμογών. Ένα από τα πιο δυνατά σημεία του Android είναι πως η ανάπτυξη εφαρμογών γίνεται σχεδόν αποκλειστικά στη Java, ίσως την πιο δημοφιλή, πιο ολοκληρωμένη και καλύτερα δομημένη γλώσσα που υπάρχει σήμερα. Επιπλέον, η υλοποίηση Android εφαρμογών μπορεί να γίνει με μικρό κόστος από την πλευρά του προγραμματιστή. Ο υποψήφιος Android developer θα πρέπει να διαθέτει έναν προσωπικό υπολογιστή με οποιοδήποτε λειτουργικό σύστημα, ένα κινητό Android για το σωστό τεστάρισμα των εφαρμογών του και τέλος έναν λογαριασμό developer στο Android Market, για τον οποίο απαιτείται η εφ' άπαξ καταβολή ενός τιμήματος της τάξης των 25$ (ισχύον τίμημα κατά τη σύνταξη των σημειώσεων). Από την πλευρά του iphone, η ανάπτυξη γίνεται σε Objective C, μια γλώσσα που αποτελεί υπερσύνολο της C. Κινδυνεύοντας να κατηγορηθώ για εύνοια υπέρ της Java, νομίζω πως δε θα διαφωνήσει κανείς πως όσον αφορά τη σύνταξη κώδικα σε C και Java, δεν υπάρχει κανένα περιθώριο σύγκρισης! Αντίστοιχα, το κόστος για να είναι σε θέση κάποιος να υλοποιήσει εφαρμογές iphone και να τις διαθέσει στην αγορά είναι σαφώς μεγαλύτερο. Απαιτείται ένας υπολογιστής Mac, ένα iphone για το τεστάρισμα των εφαρμογών του και ένας λογαριασμός developer, για τον οποίο θα πρέπει να καταβάλλει το ποσό των 100$ κάθε χρόνο (ισχύουσα τιμή κατά τη σύνταξη των σημειώσεων). Συγκρίνοντας τώρα τις τιμές των συσκευών, μία νέα συσκευή iphone κοστίζει κατά μέσο όρο 450 (ανάλογα με την έκδοση) ενώ είναι δυνατόν να αποκτήσετε μια αξιοπρεπέστατη συσκευή Android με λιγότερα από 200. Συμψηφίζοντας όλα τα παραπάνω, είναι σαφές πως όσον αφορά τα κόστη αλλά και τις τεχνολογίες που εμπλέκονται για την υλοποίηση εφαρμογών, το Android έχει σαφές προβάδισμα. Από την άλλη πλευρά, υπάρχει η αίσθηση πως οι χρήστες iphone είναι περισσότερο διατεθιμένοι να πληρώσουν για να αγοράσουν μια εφαρμογή από ότι οι χρήστες Android. Αυτό οφείλεται στο γεγονός πως το iphone καλώς ή κακώς θεωρείται στις μέρες μας ως status symbol, ένα gadget δηλαδή που πολλοί από τους κατόχους του το έχουν με σκοπό τον εντυπωσιασμό. Τέτοιοι χρήστες δεν είναι επιφυλακτικοί στο να πληρώσουν και να κατεβάσουν μια ανούσια εφαρμογή απλά για να τη δείξουν στους φίλους τους και αυτή η συμπεριφορά λειτουργεί προς όφελος των developers. Αντίθετα, το Android βασίζεται όπως θα δούμε και στη συνέχεια στο Linux και έχει έναν αμιγώς open source χαρακτήρα. Πολλοί από τους χρήστες του Android ασπάζονται αυτή την open source φιλοσοφία και δεν είναι διατεθιμένοι να πληρώσουν για μία εφαρμογή, ή για να το θέσουμε σε πιο σωστή βάση, θα αγόραζαν μια εφαρμογή μόνο αν είναι εγγυημένα χρήσιμη και προσεγμένη. Ένα ακόμη πλεονέκτημα για τους developers iphone εφαρμογών αποτελεί το γεγονός πως το iphone είναι ένα. Διαθέτει μία οθόνη συγκεκριμένων διαστάσεων, ένα δεδομένο interface διάδρασης με τον χρήστη και συγκεκριμένο σετ από αισθητήρες, άρα οι developers της συγκεκριμένης πλατφόρμας δεν θα χρειαστεί ποτέ να "πονοκεφαλιάσουν" κατά την ανάπτυξη μιας εφαρμογής και να γράψουν τον κατάλληλο κώδικα για να μπορεί αυτή να τρέχει χωρίς προβλήματα σε συσκευές με διαφορετικά χαρακτηριστικά. Αντίθετα, όσον αφορά το Android υπάρχει πληθώρα συσκευών με διαφορετικά χαρακτηριστικά όπως οθόνες διαφορετικών διαστάσεων και αναλύσεων, διαφορετικά σετ αισθητήρων, διαφορετικά interfaces διάδρασης κ.α. τα οποία οι developers θα πρέπει να λαμβάνουν υπ' όψιν κατά την ανάπτυξη των εφαρμογών τους ώστε αυτές να τρέχουν απροβλημάτιστα και με ομοιόμορφο τρόπο σε όλες τις συσκευές. Αυτό προϋποθέτει έξτρα δουλειά και πρόνοια από την πλευρά του προγραμματιστή. Εισαγωγή στην Ανάπτυξη Android Εφαρμογών 6

1.5 Αρχιτεκτονική του Android Όπως μπορείτε να δείτε στο σχήμα 1.1, στον πυρήνα της πλατφόρμας Android βρίσκεται ένα Linux kernel το οποίο είναι υπεύθυνο για τη διαχείριση των device drivers, τον έλεγχο πρόσβασης στους πόρους του συστήματος, τη διαχείριση μνήμης και τις λοιπές υπηρεσίες που παρέχει ένα λειτουργικό σύστημα. Στους device drivers συγκαταλέγονται αυτοί της οθόνης, του WiFi, της κάμερας, του ήχου κ.α. Ένα επίπεδο επάνω βρίσκονται οι native βιβλιοθήκες του συστήματος που είναι γραμμένες σε C++ και περιλαμβάνουν το OpenGL, την SQLite, την Media library κ.α. Οι εφαρμογές που τρέχουν στο κινητό μπορούν να έχουν πρόσβαση στις βιβλιοθήκες αυτές μέσω της Dalvik JVM. Όπως έχει ήδη αναφερθεί, οι εφαρμογές Android είναι γραμμένες σε Java και άρα για να τρέξουν χρειάζονται το αντίστοιχο περιβάλλον. Όπως λοιπόν για να εκτελέσουμε μία εφαρμογή σε ένα PC είναι απαραίτητο να είναι εγκατεστημένο το κατάλληλο JRE (Java Runtime Environment), για τις εφαρμογές Android τον ρόλο του JRE παίζει η Dalvik VM. Σχήμα 1.1 Εισαγωγή στην Ανάπτυξη Android Εφαρμογών 7

Δεδομένης της σαφώς πιο περιορισμένης επεξεργαστικής ισχύος καθώς και της ποσότητας διαθέσιμης μνήμης που έχουν οι κινητές συσκευές σε σχέση με τους υπολογιστές, η συγκεκριμένη VM είναι βελτιστοποιημένη να χρησιμοποιεί μικρότερα σε μέγεθος αρχεία ενδιάμεσου κώδικα, τα οποία σε αντίθεση με αυτά της Java SE έχουν κατάληξη.dex αντί για.class. Επίσης, σύμφωνα με την Google, διαθέτει και πιο καλά γραμμένο garbage collector. Αν και υπάρχει έκδοση της Java για κινητά τηλέφωνα, η Java ME, η Google έκρινε σωστό να χρησιμοποιήσει τη δική της υλοποίηση και έτσι γεννήθηκε η Dalvik. Κάθε εφαρμογή λοιπόν που γράφετε και εκτελείτε στο Android κινητό σας, χρησιμοποιεί τη Dalvik και τρέχει σε ξεχωριστό instance του VM. Στο αμέσως επόμενο επίπεδο βρίσκεται το Android SDK που περιέχει όλες τις απαραίτητες βιβλιοθήκες για τη συγγραφή εφαρμογών. Ο κώδικας που θα γράφετε για την εκτέλεση κάποιας λειτουργίας, π.χ. για την πραγματοποίηση μιας κλήσης, την αποστολή ενός SMS, τον εντοπισμό της τρέχουσας θέσης κλπ. στην ουσία θα καλεί κάποια από τις μεθόδους που παρέχονται από το συγκεκριμένο SDK. Έτσι λοιπόν, οι εφαρμογές βρίσκονται στην κορυφή του application stack που στο σχήμα 1.1 ονομάζεται Application Layer. 1.6 Εγκατάσταση Περιβάλλοντος Υλοποίησης Για να γράψουμε και να τεστάρουμε τις εφαρμογές μας χρειαζόμαστε ένα περιβάλλον υλοποίησης. Στο συνοδευτικό CD θα βρείτε την τελευταία έκδοση του Eclipse για Java, το οποίο θα χρησιμοποιήσετε καθ' όλη τη διάρκεια του σεμιναρίου. Αρχικά, θα πρέπει να επιβεβαιώσετε πως έχετε εγκατεστημένο ένα πρόσφατο Java SDK στον υπολογιστή σας, διαφορετικά θα πρέπει να το εγκαταστήσετε. Στο συνοδευτικό CD θα βρείτε επίσης την πιο πρόσφατη έκδοση του Java SDK για 32μπιτα και για 64μπιτα Windows λειτουργικά. Αν διαθέτετε 64μπιτο λειτουργικό και επιθυμείτε να χρησιμοποιήσετε την 64μπιτη έκδοση του Eclipse, θα πρέπει να εγκαταστήσετε αντίστοιχα το 64μπιτο SDK. Έχοντας εγκαταστήσει το Java SDK, η εγκατάσταση του Eclipse γίνεται με μία απλή αποσυμπίεση του.zip αρχείου στο Program Files αν χρησιμοποιήσετε την 64μπιτη έκδοση ή στο Program Files (x86) αν χρησιμοποιήσετε την 32μπιτη. Το επόμενο βήμα που απαιτείται είναι η εγκατάσταση του Android SDK στον υπολογιστή σας. Το αρχείο εγκατάστασης βρίσκεται στο συνοδευτικό CD, εναλλακτικά μπορείτε να το κατεβάσετε από τη διεύθυνση http://developer.android.com/sdk/index.html. Κάνοντας double click στο εκτελέσιμο αρχείο ξεκινά η εγκατάσταση του SDK. H διαδικασία εγκατάστασης γίνεται μέσω wizard όπου στους περισσότερους διαλόγους αποδεχόμαστε τις προεπιλεγμένες τιμές. Αρχικά ο wizard ελέγχει αν έχετε εγκατεστημένο ένα Java SDK στον υπολογιστή σας. Σε περίπτωση που δεν βρει ένα τέτοιο θα προβληθεί το αντίστοιχο μήνυμα και η εγκατάσταση θα τερματίσει, διαφορετικά μπορείτε να συνεχίσετε πατώντας Next. Στον διάλογο που σας ζητείται να ορίσετε τη διαδρομή εγκατάστασης θα πρέπει να προσέξετε να δώσετε μία που δεν περιέχει κενά. Για τον λόγο αυτόν μετατρέψτε την προεπιλεγμένη τιμή σε C:\android-sdk. Στους διαλόγους που ακολουθούν αποδέχεστε τις προεπιλεγμένες τιμές και επιλέγετε Next, πλην του τελευταίου όπου θα πρέπει να ξετσεκάρετε το 'Start SDK Manager' πριν επιλέξετε Finish. Η συγκεκριμένη επιλογή απλά ξεκινάει τον download manager που κατεβάζει τα πακέτα που θα επιλέξετε, κάτι που θα κάνουμε αργότερα μέσα από το περιβάλλον του Eclipse. Αν επιλέξετε να τρέξετε τον downlad manager στο σημείο αυτό δεν είναι λάθος και η εγκατάσταση των πακέτων θα γίνει κανονικά, αλλά είναι προτιμότερο να γίνει μέσα από το Eclipse αφού πρώτα ολοκληρωθούν οι απαραίτητες ρυθμίσεις. Επιλέγοντας Finish ο installer του SDK τερματίζει. Στη συνέχεια θα πρέπει να εγκαταστήσετε το plug-in που διατίθεται από την Google Εισαγωγή στην Ανάπτυξη Android Εφαρμογών 8

και διευκολύνει την υλοποίηση Android εφαρμογών καθώς και το τεστάρισμά τους μέσω του emulator και του debugger που περιλαμβάνονται στο εν λόγω plugin. Ανοίξτε το Eclipse, πηγαίνετε στο μενού Help Install New Software... επιλέξτε Add... και στον διάλογο που θα εμφανιστεί, πληκτρολογήστε στο πεδίο Name την τιμή Android Development Tools και στο πεδίο Location τη διεύθυνση http://dl-ssl.google.com/android/eclipse όπως φαίνεται στο σχήμα 1.2. Σχήμα 1.2 Η εφαρμογή θα συνδεθεί με τον server της Google (απαιτείται σύνδεση στο internet) και μετά από μικρό χρονικό διάστημα θα εμφανιστεί η λίστα με τις επιλογές του σχήματος 1.3. Στον διάλογο αυτόν επιλέγετε όλα τα διαθέσιμα πακέτα τσεκάροντας το root της λίστας (Developer Tools) και επιλέγετε Next. Στον διάλογο που ακολουθεί δεν απαιτούνται αλλαγές και επιλέγοντας ξανά Next θα εμφανιστεί ο διάλογος με την αποδοχή της άδειας χρήσης. Επιλέγετε Accept και στη συνέχεια Next για να ξεκινήσει η εγκατάσταση. Με την ολοκλήρωσή της επιλέξτε να επανεκκινήσετε το περιβάλλον ώστε να συνεχίσετε με την εγκατάσταση των απαραίτητων πακέτων (images) του λειτουργικού Android καθώς και άλλα προαιρετικά πακέτα. Ενδεχομένως με την επανεκκίνηση να σας παρουσιαστεί ένας διάλογος σφάλματος πως δεν βρέθηκε εγκατεστημένο το Android SDK. Αυτό θα διορθωθεί ευθύς αμέσως, οπότε μπορείτε να αγνοήσετε και να κλείσετε τον συγκεκριμένο διάλογο. Επιλέξτε Windows Preferences και στον διάλογο που θα εμφανιστεί επιλέξτε από τη λίστα με τις επιλογές στα αριστερά το Android. Θα εμφανιστεί το πάνελ ρυθμίσεων του σχήματος 1.4 όπου επιλέγοντας Browse... δίνετε τη διαδρομή προς την εγκατάσταση του Android SDK. Εισαγωγή στην Ανάπτυξη Android Εφαρμογών 9

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

Πατώντας ΟΚ θα σας εμφανιστεί ένας διάλογος που θα σας ενημερώνει πως τα αρχεία των SDK Platform Tools δεν είναι εγκατεστημένα. Πατήστε ΟΚ για να τον κλείσετε και στη συνέχεια απομένει να εκτελέσουμε το τελευταίο βήμα, αυτό της εγκατάστασης των Android images και των λοιπών Platform Tools. Πηγαίνετε στο Window Android SDK Manager ή κάνετε κλικ στο εικονίδιο με το ανδρείκελο που βρίσκεται στην εργαλειοθήκη, ώστε να ανοίξει ο διάλογος του σχήματος 1.5. Και σ' αυτήν την περίπτωση απαιτείται σύνδεση στο internet. Σχήμα 1.5 Επιλέγετε από τη λίστα όλα τα πακέτα του Android Repository που θέλετε να εγκατασταθούν (τυπικά από την έκδοση 2.2 και άνω). Αυτά περιλαμβάνουν τα images των διαφόρων εκδόσεων του λειτουργικού, την τεκμηρίωση, χρήσιμα εργαλεία για την υλοποίηση και τέλος δείγματα εφαρμογών για κάθε έκδοση. Επιλέγετε Install xxx packages και στον διάλογο που ακολουθεί επιλέξτε Accept All και Install. H διαδικασία εγκατάστασης έχει ολοκληρωθεί και όλα τα απαραίτητα συστατικά για την ανάπτυξη Android εφαρμογών είναι στη θέση τους. Το μόνο που μένει είναι να δημιουργήσουμε μία Virtual Device που θα προσομοιώνει τις βασικές λειτουργίες μιας Android συσκευής για τον έλεγχο των εφαρμογών μας, αλλά αυτό θα το κάνουμε στην υποενότητα που ακολουθεί. 1.7 Πρώτη Android Εφαρμογή Στην υποενότητα αυτή θα γράψουμε την πρώτη μας Android εφαρμογή η οποία είναι το γνωστό 'Hello World!' και που αποτελεί την πρώτη εφαρμογή που γράφουμε όταν μαθαίνουμε μία νέα Εισαγωγή στην Ανάπτυξη Android Εφαρμογών 11

γλώσσα προγραμματισμού η μία νέα τεχνολογία. Παράλληλα, θα γίνει η πρώτη γνωριμία με το περιβάλλον υλοποίησης και της προγραμματιστικής φιλοσοφίας που ακολουθείται για την υλοποίηση του συγκεκριμένου είδους εφαρμογών. Ξεκινήστε ανοίγοντας το Eclipse και επιλέξτε File New Android Project. Θα εμφανιστεί ο διάλογος του σχήματος 1.6 Σχήμα 1.6 Στο πεδίο Project name δίνουμε ένα όνομα για το project μας. Το όνομα αυτό θα πρέπει να συνάδει με τους κανόνες σωστής πρακτικής, δηλαδή να αποφεύγετε τους Ελληνικούς χαρακτήρες, τους μη αλφαριθμητικούς χαρακτήρες, τα κενά κ.ο.κ. Για το συγκεκριμένο παράδειγμα, πληκτρολογήστε την τιμή Hello. Κάνοντας κλικ στο Next μεταβαίνουμε στον δεύτερο διάλογο δημιουργίας project, όπου καλούμαστε να επιλέξουμε την ελάχιστη απαιτούμενη έκδοση του Android στην οποία θα μπορεί να εκτελεστεί η εφαρμογή μας. Ο διάλογος αυτός φαίνεται στο σχήμα 1.7. Αν και οι επιλογές της λίστας που βρίσκεται στο πλαίσιο Build Target είναι τύπου check-box και κανονικά θα έπρεπε να μας επιτρέπουν να τσεκάρουμε περισσότερες της μιας επιλογές, τα συγκεκριμένα check-boxes λειτουργούν ορθά ως radio buttons επιτρέποντάς μας να επιλέξουμε μόνο μία. Για τα παραδείγματα του σεμιναρίου θα χρησιμοποιούμε την έκδοση 2.2. Επιλέγοντας Next μεταβαίνουμε στον τελευταίο από τους τρεις διαλόγους δημιουργίας νέου project, ο οποίος απεικονίζεται στο σχήμα 1.8 και όπου καλούμαστε να συμπληρώσουμε σημαντικές πληροφορίες σχετικά με την εφαρμογή μας. Πιο συγκεκριμένα, στο πεδίο Application name ορίζουμε τον τίτλο της εφαρμογής. Εδώ μπορείτε να χρησιμοποιήσετε κενά μιας και η τιμή αυτή αποθηκεύεται ως string στο κατάλληλο αρχείο. Απλά πληκτρολογήστε την τιμή Hello Medialab. Στο όνομα πακέτου (Package name) ορίζουμε το πακέτο στο οποίο θα τοποθετηθεί ο κώδικάς μας. Ισχύει ό,τι ισχύει και για την απλή Java με τη διαφορά πως είναι απαραίτητο να ορίζουμε πάντα πακέτα 2 επιπέδων, δηλαδή πακέτο μέσα σε πακέτο. Σε αντίθετη περίπτωση ο διάλογος δεν μας επιτρέπει να Εισαγωγή στην Ανάπτυξη Android Εφαρμογών 12

συνεχίσουμε με τη δημιουργία του project. Στο πεδίο αυτό πληκτρολογήστε την τιμή medialab.elearning. Σχήμα 1.7 Σχήμα 1.8 Εισαγωγή στην Ανάπτυξη Android Εφαρμογών 13

Στο αμέσως επόμενο πεδίο (Create Activity) αποδέχεστε την προεπιλεγμένη τιμή (HelloMedialabActivity) και επιβεβαιώνετε πως το check-box στα αριστερά είναι τσεκαρισμένο. Επιλέγοντας Finish το περιβάλλον θα δημιουργήσει για εμάς το project με την κατάλληλη αρχειακή δομή και παράλληλα θα παράξει αυτόματα κάποια κομμάτια κώδικα. Η αρχειακή δομή του Hello project όπως φαίνεται στον Package Explorer του Eclipse απεικονίζεται στο σχήμα 1.9 Σχήμα 1.9 Στο σημείο αυτό το Eclipse έχει παράξει από μόνο του τον κώδικα και τα αρχεία που χρειάζονται για τη δημιουργία μιας υποτυπώδους εφαρμογής, χρησιμοποιώντας βέβαια αρκετές από τις τιμές που ορίσατε κατά τη δημιουργία του project. Αυτό σημαίνει πως μπορείτε ακόμη και τώρα να την εκτελέσετε στον emulator και να δείτε το αποτέλεσμα. Για να γίνει αυτό θα πρέπει πρώτα να ορίσουμε μία εικονική συσκευή (virtual device). Η διαδικασία που περιγράφεται αναλυτικά ακολούθως γίνεται μία φορά και η ίδια συσκευή θα χρησιμοποιείται για τον έλεγχο όλων των εφαρμογών σας από τη στιγμή που θα τη δημιουργήσετε και στο εξής. Επιλέγοντας Window AVD Manager ή κάνοντας κλικ στο αντίστοιχο εικονίδιο της εργαλειοθήκης, εμφανίζεται ο διάλογος του σχήματος 1.10. Αυτή τη φορά επιλέγετε από αριστερά την τιμή Virtual devices και στο δεξί τμήμα του διαλόγου New... Θα προβληθεί ο διάλογος του σχήματος 1.10 όπου θα πρέπει να ορίσετε τα χαρακτηριστικά της συσκευής. Στο πεδίο Name ορίζουμε ένα όνομα για την εικονική συσκευή. Το όνομα αυτό δεν θα πρέπει να περιέχει μη αλφαριθμητικούς χαρακτήρες και κενά. Πληκτρολογήστε την τιμή Emulator. Ως Target έκδοση του λειτουργικού επιλέξτε από τη λίστα την τιμή Android 2.2 - API Level 8. Τέλος, ως μέγεθος της υποστηριζόμενης SD κάρτας (SD Card Size) πληκτρολογήστε την τιμή 64 και επιλέξτε Create AVD. Αυτό θα έχει ως αποτέλεσμα να ολοκληρωθεί η διαδικασία δημιουργίας της εικονικής συσκευής. Εισαγωγή στην Ανάπτυξη Android Εφαρμογών 14

Σχήμα 1.10 Μπορείτε τώρα να εκτελέσετε την εφαρμογή έχοντας ως target τη συγκεκριμένη συσκευή απλά επιλέγοντας το root του project σας στον Package Explorer (Hello), κάνοντας δεξί κλικ και επιλέγοντας Run As Android Application. Θα ξεκινήσει η διαδικασία αρχικοποίησης του emulator που μοιάζει αρκετά με αυτήν της εκκίνησης μιας πραγματικής και που παίρνει αρκετό χρονικό διάστημα για να ολοκληρωθεί (περίπου 40 δευτερόλεπτα με ένα λεπτό). Κατά τη διάρκεια της διαδικασίας αυτής εμφανίζονται για μικρό χρόνο και στη συνέχεια κλείνουν κάποια παράθυρα command. Αυτό είναι απόλυτα φυσιολογικό και δε χρειάζεται να ανησυχήσετε. Όταν η διαδικασία αρχικοποίησης της συσκευής ολοκληρωθεί, θα πρέπει να πάρετε την έξοδο του σχήματος 1.11. Αυτή είναι η οθόνη της εφαρμογής που μόλις γράψατε, όπως θα φαινόταν αν την εκτελούσατε σε μία πραγματική συσκευή Android. Όπως μπορείτε να δείτε από το σχήμα, το όνομα της εφαρμογής που δώσατε κατά τη δημιουργία του project εμφανίζεται στη γραμμή τίτλου με το σκούρο γκρι χρώμα, ενώ το λεκτικό "Hello World, HelloMedialabActivity!" παράγεται αυτόματα από το Eclipse και αποθηκεύεται στο project. Το HelloMedialabActivity είναι το όνομα του βασικού Activity του project μας (θυμηθείτε πως κι αυτό παράχθηκε αυτόματα στον διάλογο δημιουργίας νέου project), περισσότερα όμως για τα Activities και τα υπόλοιπα συστατικά που απαρτίζουν μία Android εφαρμογή θα πούμε στην υποενότητα που ακολουθεί. Εισαγωγή στην Ανάπτυξη Android Εφαρμογών 15

Εργαστήριο Τεχνολογίας Πολυμέσων ΕΜΠ Σχήμα 1.11 Στο σημείο αυτό είναι απαραίτητο να αναλύσουμε λίγο περισσότερο τη λειτουργία του emulator, μιας και θα τον χρησιμοποιείτε κατά κόρον κατά τη διάρκεια ανάπτυξης των εφαρμογών σας. Κατ' αρχήν θα πρέπει να γνωρίζετε πως η διαδικασία αρχικοποίησης του emulator που όπως είδαμε είναι χρονοβόρα γίνεται μία φορά και αν μετά την πρώτη εκτέλεση της εφαρμογής σας δεν τον κλείσετε, μπορείτε να κάνετε αλλαγές στο project σας και να τις βλέπετε στην πράξη απλά επιλέγοντας το project, κάνοντας δεξί κλικ και Run As Android Application. Καλό είναι λοιπόν να κρατάτε τον emulator ανοιχτό για όλο το χρονικό διάστημα που ασχολείστε με την ανάπτυξη ή τον έλεγχο μιας εφαρμογής, μέχρι να ολοκληρώσετε την εργασία που εκτελείτε και κλείσετε το Eclipse. Μία επίσης σημαντική παράμετρος που θα πρέπει να λαμβάνετε σοβαρά υπ' όψιν σας κυρίως όταν φτάσετε στο επίπεδο να υλοποιείτε πιο πολύπλοκες εφαρμογές είναι πως ο emulator αν και αρκετά χρήσιμος, παράλληλα έχει και κάποιους περιορισμούς. Δεν είναι δυνατόν δηλαδή να γίνει ολοκληρωμένος και εξονυχιστικός έλεγχος όλων των λειτουργιών μιας εφαρμογής, αποκλειστικά χρησιμοποιώντας τον emulator. Για παράδειγμα, δε μπορείτε να ελέγξετε λειτουργίες που έχουν σχέση με τη χρήση του Bluetooth, τον έλεγχο φόρτισης/αποφόρτισης μπαταρίας, τις συνδέσεις USB, τη χρήση της κάμερας για λήψη φωτογραφιών και βίντεο κ.α. Αρα λοιπόν, για το 90% των σοβαρών και ολοκληρωμένων εφαρμογών που θα υλοποιήσετε θα χρειαστεί να διαθέτετε οποσδήποτε και μια πραγματική συσκευή Android ώστε να είστε σε θέση να ελέγξετε όλες της τις λειτουργίες. Εισαγωγή στην Ανάπτυξη Android Εφαρμογών 16