Π Σ Τ Υ Ι Α Κ Η /ΓΙ Π Λ Χ Μ ΑΣ Ι Κ Η Δ Ρ ΓΑ Ι Α

Σχετικά έγγραφα
ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

Κεθάλαιο 1. Ενόηηηα 2 Πλάνο Μάρκεηινγκ. Εξγαιεία Μάξθεηηλγθ. Dr. Andrea Grimm Dr. Astin Malschinger

Α Ο Κ Η Α Μ Α Ζ Η Η Ρ Η ( S E A R C H )

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

Ενδεικτικά Θέματα Στατιστικής ΙΙ

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD

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

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

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

Οργάνωση και Δομή Παρουσιάσεων

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

Μορθές Κακόβοσλοσ Κώδικα (Malicious Code)

ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

ΑΞΙΟΘΕΑΣΑ ΣΟΤ ΥΩΡΙΟΤ ΜΑ

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

Πνηα λνκίδεηο όηη ζα είλαη ε ζπλνιηθή αληίζηαζε κηαο ζπλδεζκνινγίαο δύν αληηζηαηώλ ζπλδεδεκέλεο ζε ζεηξά; Γηαηί;...

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots)

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

Η αξρή ζύλδεζεο Client-Server

Constructors and Destructors in C++

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

Άσκηση 1 - Μοπυοποίηση Κειμένου

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα.

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX

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

Οη πην γλσζηέο κνξθέο Pervasive παηρληδηώλ είλαη ηα Location Based Games, Augmented Reality Games θαη Mixed Reality Games.


B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

CT_back office. Internet Business Hellas

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη

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

6 η Εργαζηηριακή Άζκηζη Επαλήθεσζη Λειηοσργίας Βαζικών Φλιπ-Φλοπ

ΣΡΑΠΕΖΑ ΘΕΜΑΣΩΝ Α ΛΤΚΕΙΟΤ

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο

ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΥΡΙΣΟΤΓΔΝΝΙΑΣΙΚΔ ΚΑΣΑΚΔΤΔ

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

Σν ιεηηνπξγηθό ζύζηεκα Android θαη ε πινπνίεζε εθαξκνγήο κε ην Google SDK

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Έκδοζη /10/2014. Νέα λειηοσργικόηηηα - Βεληιώζεις

Γηπισκαηηθή Δξγαζία ΤΓΚΡΙΣΙΚΗ ΜΔΛΔΣΗ ΣΩΝ ΣΔΥΝΟΛΟΓΙΩΝ ΚΑΣΑΚΔΤΗ ΜΙΚΡΟΔΦΑΡΜΟΓΩΝ(APPS) ΓΙΑ ΚΙΝΗΣΑ- MIT APP INVENTOR ΚΑΙ ΔΓΓΔΝΩΝ

Τηλζφωνο: Ε-mail: Ώρες διδασκαλίας: 16:00 19:15 μμ

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

ΔΡΓΑΙΑ 1. Γιαδικησακά πληροθοριακά σζηήμαηα. Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές. ηέθανος Κονηοβάς ΑΔΜ :283. Πάζτος Βαζίλειος ΑΔΜ :288

Ηλεκηπονικά Απσεία και Διεπαθέρ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε. Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο

ΠΣΤΧΙΑΚΗ ΕΡΓΑΙΑ. Εφαρμογή Android για διαχείριςη ηλεκτρονικοφ καταςτήματοσ. Αρ. Μητρώου: 09/3499

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΣΙΑ ΝΟΜΟ ΙΨΑΝΝΙΝΨΝ ΔΗΜΟ ΙΨΑΝΝΙΣΨΝ

Δπαστηπιότητα 1 - ανάπτςξη, μεταγλώττιση, αποσυαλμάτωση και. εκτέλεση ππογπάμματορ

Διαδικαζία μεηαθοράς δεδομένων Εκκαθαριζηικής για ηο Eιδικό ζημείωμα περαίωζης Φ.Π.Α

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

ΙΣΤΟΡΙΑ ΤΟΥ ΑΡΧΑΙΟΥ ΚΟΣΜΟΥ

1 η Εργαζηηριακή Άζκηζη Ειζαγωγή

α) ηε κεηαηόπηζε x όηαλ ην ζώκα έρεη κέγηζην ξπζκό κεηαβνιήο ζέζεο δ) ην κέγηζην ξπζκό κεηαβνιήο ηεο ηαρύηεηαο

ΜΕΛΕΣΗ E.O.K. ΜΕ ΑΙΘΗΣΗΡΑ ΘΕΗ

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

γηα ηνλ Άξε Κσλζηαληηλίδε

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou

Σήκαηα Β Α Γ Γ Δ Λ Η Σ Ο Ι Κ Ο Ν Ο Μ Ο Υ Γ Ι Α Λ Δ Ξ Η - ( 2 ) ΕΙΣΑΓΨΓΗ ΣΤΙΣ ΤΗΛΕΠΙΚΟΙΝΨΝΙΕΣ

A. Αιιάδνληαο ηε θνξά ηνπ ξεύκαηνο πνπ δηαξξέεη ηνλ αγωγό.

ΣΡΑΠΕΖΑ ΘΕΜΑΣΩΝ Α ΛΤΚΕΙΟΤ

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ

ΑΓΩΜΘΡΘΙΞΘ ΤΩΠΞΘ ΡΘΡ ΛΘΙΠΕΡ ΗΚΘΙΘΕΡ ΛΘΤΑΗΚΘΔΗΡ Τ.

Δξγαιεία Καηαζθεπέο 1 Σάμε Δ Δ.Κ.Φ.Δ. ΥΑΝΗΩΝ ΠΡΩΣΟΒΑΘΜΗΑ ΔΚΠΑΗΓΔΤΖ. ΔΝΟΣΖΣΑ 2 ε : ΤΛΗΚΑ ΩΜΑΣΑ ΔΡΓΑΛΔΗΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Ογθνκεηξηθό δνρείν

Πως να δημιουργήσετε ένα Cross-Over καλώδιο

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

ΤΑΞΙΝΟΜΗΣΗ ΤΩΝ ΤΔΡΗΓΟΝΙΚΩΝ ΒΛΑΒΩΝ ΚΑΤΑ ΤΑ ICDAS II ΚΡΙΤΗΡΙΑ ΜΔ ΒΑΣΗ ΤΗ ΚΛΙΝΙΚΗ ΔΞΔΤΑΣΗ

Αντισταθμιστική ανάλυση

Transcript:

Α Ρ Ι Σ Ο Σ Δ Λ Δ Ι Ο Π Α Ν Δ Π Ι Σ Η Μ Ι Ο Θ Δ Α Λ Ο Ν Ι Κ Η ΥΟΛΗ ΘΔΣΙΚΧΝ ΔΠΙΣΗΜΧΝ ΣΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗ Π Σ Τ Υ Ι Α Κ Η /ΓΙ Π Λ Χ Μ ΑΣ Ι Κ Η Δ Ρ ΓΑ Ι Α «ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID ΓΗΑ ΣΟ ΔΡΓΑΣΖΡΗΟ ΑΡΥΗΣΔΚΣΟΝΗΚΖ ΚΑΗ ΓΗΚΣΤΧΝ ΤΠΟΛΟΓΗΣΧΝ» Android Application development for Computer Architecture and Communications Lab «ΜΑΣΙΑ ΣΑΣΙΑΝΑ» ΔΠΙΒΛΔΠΧΝ ΚΑΘΗΓΗΣΗ: Παπαδεκεηξίνπ Γεώξγηνο, Καζεγεηήο ΘΔΑΛΟΝΙΚΗ ΦΔΒΡΟΤΑΡΙΟ 2015

ΠΔΡΗΛΖΦΖ Π Δ Ρ Η Λ Ζ Φ Ζ Αληηθείκελν ηεο παξνχζαο εξγαζίαο είλαη ε αλάπηπμε ηεο εθαξκνγήο Android γηα ην Δξγαζηήξην Αξρηηεθηνληθήο θαη Γηθηχσλ Τπνινγηζηψλ ε νπνία λα πεξηέρεη ηελ ιεηηνπξγηθφηεηα πνπ παξέρεη ήδε ε ηζηνζειίδα ηνπ Δξγαζηεξίνπ. ηφρνο ηεο εξγαζίαο είλαη λα θαηαζθεπζηεί κηα εθαξκνγή ρξήζηκε πνπ παξνπζηάδεη ην εξεπλεηηθφ έξγν ηνπ εξγαζηεξίνπ νινθιεξσκέλα θαη βνεζάεη θνηηεηέο θαη ελδηαθεξφκελνπο λα έρνπλ πην άκεζε επηθνηλσλία κε ην εξγαζηήξην θαη ηηο εμειίμεηο ζε απηφ. Ζ πιαηθφξκα Android επηιέρζεθε ιφγσ ηεο δηάδνζεο ηεο θαη ηεο ηάζεο ησλ ρξεζηψλ ηνπ Γηαδηθηχνπ λα πξνηηκνχλ ηηο θνξεηέο ζπζθεπέο έλαληη ησλ ζηαζεξψλ θαη θνξεηψλ ππνινγηζηψλ. Ζ εθαξκνγή δνκείηαη κε ηξφπν θαηαλνεηφ ζηηο ελφηεηεο πνπ αληηζηνηρίδνληαη ζην κελνχ επηινγψλ ηεο ηζηνζειίδαο θαη ε επηινγή ησλ ρξσκάησλ είλαη φζν ην δπλαηφλ πην θνληά αηζζεηηθά. ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB VII

ABSTRACT A B S T R A C T This Thesis subject is about development Android app for Computer Architecture and Communications Lab which has the same functionality as its website. The initial intent of this project is to build an app useful that fully presents lab s researching jobs and helps students and interested people to have more immediate communication with lab and its evolution. Android platform was chosen due to spread usage and trend of Internet users to be more on mobile devices rather than desktops or laptops. The app is constructed with comprehensible manner on sections which are remained the same as the ones from website s menu and color choices have done having in mind the a gorgeous result. ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB IX

ΔΤΥΑΡΗΣΗΔ Δ Τ Υ Α Ρ Η Σ Η Δ Πξηλ ηελ παξνπζίαζε ησλ πεξηερνκέλσλ ηεο εξγαζίαο ζα ήζεια λα επραξηζηήζσ ηνλ θχξην Καζεγεηή Παπαδεκεηξίνπ Γεψξγην γηα ηελ πνιχηηκε βνήζεηα ηνπ ζηελ εθπφλεζε απηήο. <20/2/2013> Σαηηάλα Μαηίαο ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB XI

ΠΔΡΗΔΥΟΜΔΝΑ Π Δ Ρ Η Δ Υ Ο Μ Δ Ν Α ΠΔΡΙΛΗΦΗ... VII ABSTRACT... IX ΔΤΥΑΡΙΣΙΔ... XI ΠΔΡΙΔΥΟΜΔΝΑ... XIII ΛΙΣΑ ΔΙΚΟΝΧΝ... XV ΛΙΣΑ ΠΙΝΑΚΧΝ... XVII ΛΙΣΑ ΓΙΑΓΡΑΜΜΑΣΧΝ... XVII ΚΔΦΑΛΑΙΟ 1: ΔΙΑΓΧΓΗ... 19 ΚΔΦΑΛΑΙΟ 2: ΔΙΑΓΧΓΗ ΣΟ ANDROID... 23 2.1 ΙΣΟΡΙΚΑ ΣΟΙΥΔΙΑ... 25 2.2 OPEN HANDSET ALLIANCE... 26 2.3 ΔΚΓΟΔΙ ΣΟΤ ANDROID... 27 2.3.1 CUPCAKE (1.5)... 27 2.3.2 DONUT (1.6)... 28 2.3.3 ÉCLAIR (2.0 / 2.1)... 28 2.3.4 FROYO (2.2)... 29 2.3.5 GINGERBREAD (2.3)... 30 2.3.6 HONEYCOMB (3.0-3.2)... 31 2.3.7 ICE CREAM SANDWICH (4.0)... 31 2.3.8 JELLY BEAN(4.1)... 32 2.3.9 JELLY BEAN (4.2)... 33 2.3.10 JELLY BEAN (4.3)... 34 2.3.11 KITKAT (4.4)... 35 2.3.12 LOLLIPOP (5.0)... 35 2.4 OPEN AUTOMOTIVE ALLIANCE... 37 2.5 ΣΑΣΙΣΙΚΑ ΣΟΙΥΔΙΑ... 38 ΚΔΦΑΛΑΙΟ 3: ΔΡΓΑΛΔΙΑ ΓΙΑ ΑΝΑΠΣΤΞΗ ΔΦΑΡΜΟΓΧΝ ΣΟ ANDROID... 39 3.1 Η ΑΡΥΙΣΔΚΣΟΝΙΚΗ ΣΟΤ ANDROID... 40 3.1.1 ΓΡΑΣΖΡΗΟΣΖΣΔ (ACTIVITIES)... 40 3.1.2 ΤΠΖΡΔΗΔ (SERVICES)... 41 3.1.3 ΓΔΚΣΔ ΔΚΠΟΜΠΖ (BROADCAST RECEIVERS)... 41 3.1.4 ΠΑΡΟΥΔΗ ΠΔΡΗΔΥΟΜΔΝΟΤ (CONTENT PROVIDERS)... 41 3.2 ANDROID STUDIO... 42 3.3 ADT PLUGIN... 43 3.4 ECLIPSE IDE... 44 ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB XIII

ΤΓΓΡΑΦΔΑ;TATIANA MATIAS 3.4.1 ΗΣΟΡΗΚΑ ΣΟΗΥΔΗΑ... 44 3.4.2 Ζ ΑΓΔΗΑ ΥΡΖΖ ECLIPSE... 44 3.4.3 Ζ ΑΡΥΗΣΔΚΣΟΝΗΚΖ ΣΟΤ ECLIPSE... 44 3.5 GRADLE... 46 3.6 ΒΙΒΛΙΟΘΗΚΗ VOLLEY... 46 3.7 ΦΟΡΜΔ HTML... 47 3.8 JSON... 47 ΚΔΦΑΛΑΙΟ 4: Η ΔΦΑΡΜΟΓΗ CACLAB ΓΙΑ ANDROID... 50 4.1 ΓΙΑΓΡΑΜΜΑΣΑ... 51 4.2 ACTIVITY_HOME... 52 4.3 ACTIVITY_PUBLICATIONS... 53 4.4 ACTIVITY_PRESENTATION... 55 4.5 ACTIVITY_COURSES & ACTIVITY_PEOPLE... 55 4.6 ACTIVITY_LOCATION... 57 4.7 ACTIVITY_LINKS... 57 4.8 ACTIVITY_ANNOUNCEMENTS... 58 4.9 BACK END... 59 ΚΔΦΑΛΑΙΟ 5: ΔΓΥΔΙΡΙΓΙΟ ΥΡΗΣΗ... 60 ΚΔΦΑΛΑΙΟ 6: ΤΝΟΦΗ... 66 ΠΑΡΑΡΣΗΜΑ I: ΑΝΑΦΟΡΔ... 68 ΠΑΡΑΡΣΗΜΑ II: ΑΚΡΧΝΤΜΑ... 71 ΠΑΡΑΡΣΗΜΑ III: ΓΛΧΑΡΙΟ... 75 ΠΑΡΑΡΣΗΜΑ IV: ΔΤΡΔΣΗΡΙΟ... 79 XIV ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB

ΛΗΣΑ ΔΗΚΟΝΧΝ Λ Η Σ Α Δ Η Κ Ο Ν Χ Ν ΔΗΚΟΝΑ 1: Ζ ΔΚΓΟΖ 1.5... 27 ΔΗΚΟΝΑ 2: ΈΚΓΟΖ 1.6... 28 ΔΗΚΟΝΑ 3: Ζ ΟΘΟΝΖ ΚΛΔΗΓΧΜΑΣΟ ΣΗ ΔΚΓΟΔΗ 1.6, 2.0 ΚΑΗ 2.1... 29 ΔΗΚΟΝΑ 4: Ζ ΔΚΓΟΖ 2.2... 30 ΔΗΚΟΝΑ 5 (ΑΡΗΣΔΡΑ): Ζ ΔΚΓΟΖ 2.3... 30 ΔΗΚΟΝΑ 6 (ΓΔΞΗΑ): ΣΟ ΠΛΖΚΣΡΟΛΟΓΗΟ ΣΖ ΔΚΓΟΖ... 31 ΔΗΚΟΝΑ 7: Ζ ΔΚΓΟΖ 3.0 Δ ΣΑΜΠΛΔΣΑ... 31 ΔΗΚΟΝΑ 8: Ζ ΔΚΓΟΖ 4.0 Δ ΣΖΛΔΦΧΝΟ... 32 ΔΗΚΟΝΑ 9: Ζ ΔΚΓΟΖ 4.1... 33 ΔΗΚΟΝΑ 10: Ζ ΔΚΓΟΖ 4.2 Δ ΣΑΜΠΛΔΣΑ... 33 ΔΗΚΟΝΑ 11 (ΓΔΞΗΑ): Ζ ΥΑΡΑΚΣΖΡΗΣΗΚΖ ΔΜΦΑΝΗΖ ΣΟΤ ΡΟΛΟΓΗΟΤ ΣΟ ANDROID 4.2... 34 ΔΗΚΟΝΑ 12 (ΑΡΗΣΔΡΑ): ΟΗ ΔΗΓΟΠΟΗΖΔΗ ΣΟ ANDROID 4.2... 34 ΔΗΚΟΝΑ 13: ΣΟ ΠΛΖΚΣΡΟΛΟΓΗΟ ΚΛΖΖ ΣΖΝ ΔΚΓΟΖ 4.3... 34 ΔΗΚΟΝΑ 14: ΣΗΓΜΗΟΣΤΠΑ ΑΠΟ ΣΖΝ ΔΚΓΟΖ 4.4... 35 ΔΗΚΟΝΑ 15: ΣΟ ΔΞΤΠΝΟ ΡΟΛΟΗ MOTO 360... 36 ΔΗΚΟΝΑ 16: ΣΟ ANDROID AUTO... 36 ΔΗΚΟΝΑ 17: ΣΟ ANDROID STUDIO... 43 ΔΗΚΟΝΑ 18: ΣΟ ΠΔΡΗΒΑΛΛΟΝ ΑΝΑΠΣΤΞΖ ECLIPSE... 45 ΔΗΚΟΝΑ 19: ΣΟ ΛΟΓΟΣΤΠΟΤ ΣΟΤ GRADLE... 46 ΔΗΚΟΝΑ 20 (ΑΡΗΣΔΡΑ): ΗΣΟΔΛΗΓΑ ΔΡΓΑΣΖΡΗΟΤ... 61 ΔΗΚΟΝΑ 21 (ΓΔΞΗΑ): ΑΡΥΗΚΖ ΔΛΗΓΑ ΔΦΑΡΜΟΓΖ CACLAB... 62 ΔΗΚΟΝΑ 22 (ΓΔΞΗΑ): Ζ ΠΔΡΗΛΖΦΖ ΣΖ ΓΖΜΟΗΔΤΖ ΔΜΦΑΝΗΕΟΜΔΝΖ Δ ΝΔΟ ΠΑΡΑΘΤΡΟ... 62 ΔΗΚΟΝΑ 23 (ΑΡΗΣΔΡΑ): ΟΘΟΝΖ «ΓΖΜΟΗΔΤΔΗ»... 62 ΔΗΚΟΝΑ 24: ΟΘΟΝΖ ΠΑΡΟΤΗΑΖ ΣΟΤ ΔΡΓΑΣΖΡΗΟΤ... 63 ΔΗΚΟΝΑ 25 (ΓΔΞΗΑ): ΔΚΠΑΗΓΔΤΣΗΚΖ ΓΡΑΣΖΡΗΟΣΖΣΑ... 63 ΔΗΚΟΝΑ 26 (ΑΡΗΣΔΡΑ): ΑΝΘΡΧΠΗΝΟ ΓΤΝΑΜΗΚΟ... 63 ΔΗΚΟΝΑ 27 (ΓΔΞΗΑ): ΥΡΖΗΜΟΗ ΤΝΓΔΜΟΗ... 64 ΔΗΚΟΝΑ 28 (ΑΡΗΣΔΡΑ): ΔΡΔΤΝΖΣΗΚΖ ΓΡΑΣΖΡΗΟΣΖΣΑ... 64 ΔΗΚΟΝΑ 29: ΓΗΔΤΘΤΝΖ ΣΟΤ ΔΡΓΑΣΖΡΗΟΤ... 65 ΔΗΚΟΝΑ 30 (ΓΔΞΗΑ): ΦΟΡΜΑ ΔΗΑΓΧΓΖ ΝΔΑ ΑΝΑΚΟΗΝΧΖ... 65 ΔΗΚΟΝΑ 31 (ΑΡΗΣΔΡΑ): ΑΝΑΚΟΗΝΧΔΗ... 65 ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB XV

ΛΗΣΑ ΠΗΝΑΚΧΝ Λ Η Σ Α Π Η Ν Α Κ Χ Ν ΠΗΝΑΚΑ 1: ΤΚΔΤΔ ΠΟΤ ΚΑΣΑΚΔΤΑΣΖΚΑΝ Δ ΤΝΔΡΓΑΗΑ ΜΔ ΣΖ GOOGLE. ОШИБКА! ЗАКЛАДКА НЕ ОПРЕДЕЛЕНА. ΠΗΝΑΚΑ 2: ΜΔΛΖ ΣΟΤ ΟPEN AUTOMOTIVE ALLIANCE ΣΗ 25/6/14.... ОШИБКА! ЗАКЛАДКА НЕ ОПРЕДЕЛЕНА. Λ Η Σ Α Γ Η Α Γ ΡΑ Μ Μ ΑΣ Χ Ν ΓΗΑΓΡΑΜΜΑ 1: ΥΡΖΖ ΣΧΝ ΚΛΑΔΧΝ ADAPTER ΑΠΟ ΣΗ ΚΛΑΔΗ ΓΡΑΣΖΡΗΟΣΖΣΧΝ... 51 ΓΗΑΓΡΑΜΜΑ 2: ΓΗΑΓΡΑΜΜΑ ΚΛΑΔΧΝ ΓΔΓΟΜΔΝΧΝ... 52 ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB XVII

Κ Δ Φ Α Λ Α Η Ο 1 : Δ Η Α Γ Χ Γ Ζ

ΚΔΦΑΛΑΗΟ 1: ΔΗΑΓΧΓΖ ΔΙΑΓΧΓΗ Ζ εξγαζία απηή είρε ζθνπφ ηελ αλάπηπμε εθαξκνγήο Android γηα ην εξγαζηήξην Αξρηηεθηνληθήο θαη Γηθηχσλ Τπνινγηζηψλ. Σα θεθαιαηα ηεο εξγαζίαο: Κεθάιαην 2: Γεληθά θαη ηζηνξηθά ζηνηρεία γηα ηελ πιαηθφξκα Android θαη ηελ εμέιημε ηεο κέρξη ζήκεξα. Κεθάιαην 3: Αλαιχνληαη φια ηα εξγαιεία πνπ ρξεζηκνπνηήζεθαλ γηα ηελ νινθιήξσζε ηεο εθαξκνγήο. Κεθάιαην 4: Σα πην ζεκαληηθά θνκκάηηα ηνπ πεγαίνπ θψδηθα ηεο εξγαζίαο θαη ε ηεθκεξίσζε ηνπο. Κεθάιαην 5: Ζ ζχλνςε ηνπ έξγνπ. ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 21

Κ Δ Φ Α Λ Α Η Ο 2 : Δ Η Α Γ Χ Γ Ζ Σ Ο A N D R O I D

ΚΔΦΑΛΑΗΟ 2: ΔΗΑΓΧΓΖ ΣΟ ANDROID ΔΙΑΓΧΓΗ ΣΟ ANDROID Σν Android είλαη έλα ιεηηνπξγηθφ ζχζηεκα (Operating System) πνπ αλαπηχζζεηαη απφ ηελ Google, θαη βαζίδεηαη εμ νινθιήξνπ ζην ιεηηνπξγηθφ αλνηρηνχ θψδηθα Linux θαη πξνζθέξεηαη δσξεάλ ζηελ θνηλφηεηα. Πξφθεηηαη γηα ην πην επξέσο ρξεζηκνπνηνχκελν ιεηηνπξγηθφ ζχζηεκα γηα θηλεηά, κε ηηο πςειφηεξεο πσιήζεηο ζε παγθφζκηα θιίκαθα. 2.1 ΙΣΟΡΙΚΑ ΣΟΙΥΔΙΑ Ζ εηαηξεία Android Inc. ηδξχζεθε ηνλ Οθηψβξην ηνπ 2003 απφ ηνπο Andy Rubin, Rich Miner, Nick Sears θαη Chris White, κε ζθνπφ λα δεκηνπξγεζεί κηα θνξεηή ζπζθεπή πνπ λα βαζίδεηαη ζηε ηνπνζεζία θαη ηηο πξνηηκήζεηο ηνπ ρξήζηε. Ο αξρηθφο ζθνπφο ηνπο ήηαλ λα ζρεδηάζνπλ έλα ιεηηνπξγηθφ γηα ςεθηαθέο θσηνγξαθηθέο κεραλέο. Μεηέπεηηα φκσο θαηάιαβαλ φηη ην κεξίδην αγνξάο ήηαλ πνιχ πεξηνξηζκέλν, θαη γη απηφ ηνλ ιφγν επηθεληξψζεθαλ ζηελ παξαγσγή ελφο ιεηηνπξγηθνχ γηα έμππλα θηλεηά φπσο ην Symbian θαη ην Windows mobile πνπ πξνυπήξραλ. Σνλ Αχγνπζην ηνπ 2005, ε Google εμαγφξαζε ηελ Android Inc. κε ηνπο Rubin Miner θαη White λα παξακέλνπλ ζηηο ζέζεηο ηνπο κεηά ηελ εμαγνξά. Δθείλε ηελ πεξίνδν ε θίλεζε απηή ηεο Google ζεσξήζεθε ζαλ έλα αθφκα βήκα γηα ηελ πξαγκαηνπνίεζε αλαδήηεζεο κέζσ κηαο ηνπηθήο δηεπαθήο. Άιιεο ελέξγεηεο ηελ ίδηα ρξνληθή ζηηγκή ήηαλ λα βγάιεη πξνο ηα έμσ ηελ ππεξεζία Google Short Message Service ε νπνία είρε ζθνπφ λα ζηέιλεη κελχκαηα ζχληνκνπ θεηκέλνπ ζηνπο ρξήζηεο παξνπζηάδνληαο απνηειέζκαηα αλαδεηήζεσλ, νδεγίεο θαηεχζπλζεο, πξνγλσζηηθά θαηξηθψλ ζπλζεθψλ θ.α. ηηο αξρέο ηνπ 2007, ε Google έρνληαο θάπνηα πξφηππα παξαδείγκαηα ηειεθψλσλ κε ην θαηλνχξγην ηεο ιεηηνπξγηθφ θαη κεηά απφ κηα ζεηξά πξνσζεηηθψλ ελεξγεηψλ, βγήθε ζηηο αγνξέο ησλ παξφρσλ θηλεηήο ηειεθσλίαο θαη ησλ θαηαζθεπαζηψλ δηαθεκίδνληαο ηελ πιαηθφξκα γηα θηλεηέο ζπζθεπέο πνπ ζα έρνπλ ηελ δπλαηφηεηα ιήςεο θσηνγξαθηψλ θαη βίληεν, ζα εθκεηαιιεχνληαη ηφζν ην αζχξκαην δίθηπν (wifi) φπνπ είλαη απηφ δηαζέζηκν, φζν θαη ηελ πξφζβαζε ζην Γηαδίθηπν κέζσ 3G δηθηχνπ θαη επηπιένλ ζα εθκεηαιιεχεηαη ην Παγθφζκην χζηεκα ηηγκαηνζέηεζεο (Global Positioning System - GPS). Με απηή ηελ θίλεζε, ζηφρεπε ζηελ ζπλεξγαζία ησλ παξφρσλ θαη ησλ θαηαζθεπαζηψλ ψζηε λα πξνζθέξεη ηηο ζπζθεπέο ηεο κέζσ απηψλ (ην 2007 ην iphone ηεο Apple ήηαλ δηαζέζηκν κφλν απφ ηελ AT&T, εηαηξεία θηλεηήο ηειεθσλίαο ησλ Ζ.Π.Α.). Απηή ε πξψηε έθδνζε νλνκάζηεθε Sooner θαη έκνηαδε πεξηζζφηεξν κε ηα θηλεηά ηεο εηαηξείαο BlackBerry δηφηη δηέζεηε πιήξεο πιεθηξνιφγην, αξγφηεξα φκσο ην Android ζα μαλαζρεδηαδφηαλ γηα λα ππνζηεξίδεη θπξίσο νζφλεο αθήο πνπ είηε έρνπλ θπζηθφ πιεθηξνιφγην είηε φρη. Μέρξη ηνλ επηέκβξην ηνπ 2007 ε Google είρε θαηαζέζεη αξθεηέο αηηήζεηο γηα θαηνρχξσζε επξεζηηερλίαο ζην ηνκέο ηεο θηλεηήο ηειεθσλίαο. Σν ιεηηνπξγηθφ ζχζηεκα Andrνηd, ζηελ αξρηθή ηνπ έθδνζε είρε ζρεδηαζηεί γηα θηλεηά ηειέθσλα κε πιεθηξνιφγην, φπσο δηέζεηαλ νη πεξηζζφηεξεο ζπζθεπέο ην 2008. Ζ πξψηε ηνπ έθδνζε κε θσδηθή νλνκαζία 1.0, πνπ θπθινθφξεζε ηνλ Οθηψβξην ηνπ 2008, ήηαλ εγθαηεζηεκέλε ζην T-Mobile G1. ηε ζπλέρεηα φκσο βειηηζηνπνηήζεθε γηα ρξήζε ζε ζπζθεπέο κε νζφλεο αθήο. ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 25

ΤΓΓΡΑΦΔΑ;TATIANA MATIAS 2.2 OPEN HANDSET ALLIANCE ηηο 6 Ννεκβξίνπ ηνπ 2007, ζπγθξνηήζεθε κηα νκάδα απφ 84 εηαηξείεο κε ζθνπφ λα αλαπηχμνπλ αλνηρηά πξφηππα γηα ηα θηλεηά ηειέθσλα. Ζ νκάδα πεξηειάβαλε εηαηξείεο απφ ηα πεδία ηεο θαηαζθεπήο θπθισκάησλ, ηειεθψλσλ θαη εθαξκνγψλ θαζψο θαη παξφρνπο θηλεηψλ ππεξεζηψλ. Σελ ίδηα εκέξα παξνπζηάζηεθε ην Android βαζηζκέλν ζην ιεηηνπξγηθφ Linux έθδνζεο 2.6.25. Μέζσ απηήο ηεο ζηξαηεγηθήο ζπκκαρίαο κπνξνχλ νη θαηαζθεπαζηέο λα παξάγνπλ ζπζθεπέο κε κηθξφηεξν θφζηνο πιηθψλ, κεγαιχηεξε επειημία θαη πην γξήγνξα. Δπηπιένλ νη λέεο ηερλνινγίεο πιηθνχ, γίλνληαη πην εχθνια εθκεηαιιεχζηκεο απφ ηνπο πξνγξακκαηηζηέο εθαξκνγψλ, πξνζθέξνληαη πην άκεζα ην ηειηθφ πξντφλ ζην ρξήζηε. Έλα ηέηνην παξάδεηγκα είλαη ε αξρηηεθηνληθή δχν δηαθνξεηηθψλ επεμεξγαζηψλ φπνπ ν έλαο πξννξίδεηαη γηα ηελ επεμεξγαζία εληνιψλ ηνπ ιεηηνπξγηθνχ θαη ν άιινο αλαιακβάλεη ηνλ ρεηξηζκφ φισλ ησλ εμσηεξηθψλ αηζζεηήξσλ. ε απηή ηελ πεξίπησζε είλαη πην γξήγνξε ε πξνζθνξά ελφο ηειηθνχ πξντφληνο πνπ εθκεηαιιεχεηαη απηή ηελ αξρηηεθηνληθή, απφ φηη ζα γηλφηαλ παιαηφηεξα. Σν 2010, ε Google αληαπνθξηλφκελε ζηνλ αληαγσληζκφ θάλεη ηελ πξψηε ηεο πξνζπάζεηα ιεηηνπξγίαο ηνπ Android ζε ζπζθεπέο πνπ δελ έρνπλ θαζφινπ πξνζσπνπνηεκέλν ιεηηνπξγηθφ θαη εθαξκνγέο απφ ηνπο θαηαζθεπαζηέο, πξνζθέξνληαο ηελ ζπζθεπή κε ηελ εκπνξηθή νλνκαζία Nexus. Πξφθεηηαη γηα κία ζεηξά απφ θηλεηά θαη ηακπιέηεο πνπ θαηαζθεπάδνληαη απφ δηαθνξεηηθέο εηαηξείεο ζε ζπλεξγαζία κε ηε Google. Σα κνληέια πνπ έρνπλ θπθινθνξήζεη κέρξη απηή ηε ζηηγκή είλαη: Σειέθσλα Nexus One Nexus S Galaxy Nexus Nexus 4 Nexus 5 Nexus 6 Καηαζθεπάζηξηα Δηαηξεία HTC Samsung Samsung LG LG Motorola Σακπιέηεο Nexus 7 Nexus 7 (2013) Nexus 10 Nexus 9 ASUS ASUS Samsung HTC Πίλαθαο 1: πζθεπέο πνπ θαηαζθεπάζηεθαλ ζε ζπλεξγαζία κε ηε Google 26 ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB

ΚΔΦΑΛΑΗΟ 2: ΔΗΑΓΧΓΖ ΣΟ ANDROID Απφ ην 2010 έσο ην 2013, ν Hugo Barra ήηαλ ν θχξηνο παξνπζηαζηήο ησλ πξντφλησλ ηεο νκάδαο ηνπ Android, ν νπνίνο εθπξνζψπεζε ην Android ζηα ζπλέδξηα θαη ζην εηήζην ζπλέδξην γηα ηνπο πξνγξακκαηηζηέο, ην Google I/O. Ζ ζπκκεηνρή ηνπ, επηθεληξψζεθε ζε νιφθιεξν ην πεξηβάιινλ ηνπ Android ηφζν ζε επίπεδν πιηθνχ φζν θαη ινγηζκηθνχ. Μεξηθά απφ απηά είλαη νη εθδφζεηο Honeycomb, Ice Cream Sandwich, Jelly Bean θαη KitKat, ηα ηειέθσλα Nexus 4 θαη 5 θαη νη ηακπιέηεο nexus 7 θαη 10, θαζψο θαη άιια πξντφληα φπσο ην Google Now θαη ε θσλεηηθή αλαδήηεζε, αληαγσληζηηθφ πξντφλ ηνπ Siri ηεο Apple. O Barra εγθαηέιεηςε ηελ νκάδα γηα λα εηζρσξήζεη ζηνλ θηλέδηθν θαηαζθεπαζηή έμππλσλ ηειεθψλσλ Xiaomi. 2.3 ΔΚΓΟΔΙ ΣΟΤ ANDROID 2.3.1 Cupcake (1.5) Ζ έθδνζε απηή θπθινθφξεζε ζαλ αλαβάζκηζε ζην κνληέιν G1. Ζ κεγαιχηεξε ιεηηνπξγία πνπ εηζήγαγε ην Android ζε απηή ηελ έθδνζε ήηαλ ην πιεθηξνιφγην αθήο. Όζν θη αλ αθνχγεηαη πεξίεξγν γηα έλα ιεηηνπξγηθφ ζρεδηαζκέλν γηα θηλεηέο ζπζθεπέο, ζηελ πξψηε έθδνζε ηνπ δελ ππήξρε πιεθηξνιφγην. Δπίζεο, ην πιεθηξνιφγην πξνζθέξζεθε κε ηε δπλαηφηεηα λα αληηθαηαζηαζεί απφ εθαξκνγέοπιεθηξνιφγηα αλαπηπγκέλα απφ ηξίηνπο. Απηή είλαη κηα δπλαηφηεηα πνπ νη πιαηθφξκα ios ηελ ππνζηήξημε γηα πξψηε θνξά ηνλ επηέκβξην 2014. ε απηή ηελ έθδνζε δφζεθε επίζεο ε δπλαηφηεηα ζηνπο πξνγξακκαηηζηέο λα αλαπηχμνπλ δηθά ηνπο widgets (εθαξκνγέο εξγαιεία ηεο αξρηθήο νζφλεο). Μεηέπεηηα έγηλαλ πνιιέο βειηηψζεηο θαη δφζεθε γηα πξψηε θνξά κηα πιήξεο ππνζηήξημε ζηελ αληηγξαθή θαη επηθφιιεζε πξνο θαη απφ ην πξφρεηξν, φπσο αθξηβψο ιεηηνπξγεί ζηνπο πξνζσπηθνχο ππνινγηζηέο. Ζ δπλαηφηεηα αλαπαξαγσγήο θαη θαηαγξαθήο video ήηαλ ε ηειεπηαία απφ ηηο ζεκαληηθφηεξεο αιιαγέο ζε απηή ηελ έθδνζε, θάηη πνπ επίζεο είρε παξαιεθζεί ζηελ πξψηε έθδνζε ηνπ ιεηηνπξγηθνχ. Δηθόλα 1: Η έθδνζε 1.5 ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 27

ΤΓΓΡΑΦΔΑ;TATIANA MATIAS 2.3.2 Donut (1.6) Απηή ε έθδνζε δελ πεξηείρε ηφζν κεγάιεο αιιαγέο φζν ε 1.5. Ζ πην ζπνπδαία αιιαγή έγηλε ζηε ιεηηνπξγία ζρεδίαζεο ηεο νζφλεο (rendering). Δθεί εηζάρζεθε ε έλλνηα ηνπ εηθνλνζηνηρείνπ αλεμάξηεην απφ ηελ ππθλφηεηα ησλ εηθνλνζηνηρείσλ ηεο νζφλεο (density pixels- dp) θαη επνκέλσο αλεμάξηεην ηνπ θπζηθνχ κεγέζνπο ηνπ εηθνζηνηρείνπ. Σν πξψην ηειέθσλν θπθινθφξεζε κε αλάιπζε νζφλεο 320x480 ε νπνία θαη ζεσξήζεθε ε βαζηθή αλάιπζε ηνπ ιεηηνπξγηθνχ. Σα dp-pixels έξρνληαη λα ιχζνπλ ην πξφβιεκα ησλ πξψησλ ηειεθψλσλ πνπ ζα θπθινθνξνχζαλ κε νζφλε 480x800 ζην ίδην θπζηθφ κέγεζνο. Αλ θακία αιιαγή δελ είρε πξαγκαηνπνηεζεί ηφηε ε νζφλε ζα έδεηρλε ηα εηθνλίδηα θαη ηα κεγέζε γεληθφηεξα πην κηθξά θάλνληαο ηα ζρεδφλ αδχλαην λα παηεζνχλ απφ ην αλζξψπηλν δάθηπιν. Έηζη ινηπφλ δεκηνπξγήζεθε κία ζχκβαζε πνπ έβαιε ζε θιάζεηο ηηο ππθλφηεηεο ησλ νζνλψλ θαη γηλφηαλ ε αληηζηνίρηζε εηθνληθψλ dp pixels κε πξαγκαηηθά εηθνλνζηνηρεία ζηελ νζφλε. Όζν κεγαιχηεξε είλαη ε ππθλφηεηα ηφζν πεξηζζφηεξα πξαγκαηηθά εηθνλνζηνηρεία ρξεηάδνληαη γηα λα θαλεί ζηελ νζφλε έλα αληηθείκελν κε ίδην κέγεζνο κε ηελ νζφλε βαζηθήο αλάιπζεο. Σν πιήθηξν αλαδήηεζεο ηεο ζπζθεπήο, ζηακαηά λα νδεγεί ηνλ ρξήζηε ζηελ αλαδήηεζε ζηνλ ηζηφ κέζσ ηνπ google.com θαη εηζάγεη ηελ νινθιεξσκέλε αλαδήηεζε (universal search) φπνπ ν ρξήζηεο κπνξεί λα θάλεη αλαδήηεζε ζε ηνπηθνχο πφξνπο φπσο εθαξκνγέο, επαθέο, αξρεία θ.α. θαη λα δεη ηα απνηειέζκαηα ζε έλα ζεκείν παξάιιεια κε ηα απνηειέζκαηα ηνπ Ηζηνχ. Οη ππφινηπεο αιιαγέο ηεο έθδνζεο έρνπλ λα θάλνπλ κε ηνλ αλαζρεδηαζκφ ηνπ θαηαζηήκαηνο εθαξκνγψλ Android Market. Δηθόλα 2: Έθδνζε 1.6 2.3.3 Éclair (2.0 / 2.1) Μεηά ηελ πιήξε εμαγνξά ηεο Android απφ ηελ Google θαη κεηά απφ γχξνπο ρξεκαηνδνηήζεσλ έξρεηαη ζηελ αγνξά ε δεχηεξε έθδνζε ηνπ ιεηηνπξγηθνχ. ε απηή ηελ έθδνζε γηα πξψηε θνξά ν ρξήζηεο κπνξεί λα έρεη ζπλδεδεκέλνπο παξαπάλσ απφ έλαλ ινγαξηαζκνχο Google. Απηφ δίλεη ηελ δπλαηφηεηα λα έρνπλ νη ρξήζηεο γηα παξάδεηγκα ηνλ επαγγεικαηηθφ ηνπο ινγαξηαζκφ παξάιιεια κε ηνλ πξνζσπηθφ ηνπο ζε έλα ηειέθσλν θαη λα ειέγρνπλ ηα ειεθηξνληθά κελχκαηα ηνπο μερσξηζηά. Δπίζεο, 28 ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB

ΚΔΦΑΛΑΗΟ 2: ΔΗΑΓΧΓΖ ΣΟ ANDROID νη ράξηεο ηεο Google, αλαπφζπαζην θνκκάηη πηα θάζε λέαο ζπζθεπήο θαζψο έξρνληαη πξνεγθαηεζηεκέλνη ζηελ εξγνζηαζηαθή έθδνζε ηνπ ιεηηνπξγηθνχ, εηζάγνπλ ηελ ιεηηνπξγία ηεο πινήγεζεο. Δπηπξφζζεηα, καδί κε ηελ θπθινθνξία θάπνησλ ζπζθεπψλ πνπ δελ έρνπλ πηα θπζηθφ πιεθηξνιφγην, βειηηψλεηαη ην εηθνληθφ πιεθηξνιφγην θαη καδί κε άιιεο βειηηψζεηο ππνζηεξίδεη ηελ αλαγλψξηζε ηαπηφρξνλσλ ρηππεκάησλ ψζηε λα κπνξεί ν ρξήζηεο λα πιεθηξνινγεί πην γξήγνξα ρσξίο θαζπζηεξήζεηο. εκαληηθή αλαβάζκηζε δέρηεθε θαη ν πξνθαζνξηζκέλνο πεξηεγεηήο, θαζψο ε νζφλε είρε πηα κεγαιχηεξε αλάιπζε θαη έηζη ππνζηεξίδεηαη γηα πξψηε θνξά ε γιψζζα HTML 5, αθνινπζψληαο ην ήδε δεκνθηιέο πξφγξακκα πεξηήγεζεο ζε ππνινγηζηέο, ην Google chrome. Μία αθφκα αιιαγή είλαη φηη γηα πξψηε θνξά ην Android απνθηά ηε ιεηηνπξγεία κεηαηξνπήο νκηιίαο ζε θείκελν. Δπηπιένλ, πινπνηείηαη κεραλή κεηαηξνπήο TTS (Text-To-Speech Engine) ζηελ πιαηθφξκα θαη ζην πιεθηξνιφγην πξνζηίζεηαη ην θνπκπί ηεο θσλεηηθήο πιεθηξνιφγεζεο. Δηθόλα 3: Η νζόλε θιεηδώκαηνο ζηηο εθδόζεηο 1.6, 2.0 θαη 2.1 2.3.4 Froyo (2.2) Απηή ε έθδνζε δελ είρε λα πξνζζέζεη παξαπάλσ ιεηηνπξγίεο απφ απηέο πνπ άιιεο εηαηξείεο είραλ ήδε παξνπζηάζεη ζηηο πξνζαξκνζκέλεο ηνπο εθδφζεηο. Απηέο νη αιιαγέο είραλ λα θάλνπλ κε ηελ αξρηθή νζφλε θαη ηελ νζφλε θιεηδψκαηνο. Οη ππφινηπεο αιιαγέο είραλ λα θάλνπλ κε ηα δεηήκαηα αζθάιεηαο. Μία εληππσζηαθή θαηλνχξγηα επηινγή ήηαλ φηη ν ρξήζηεο είρε ηελ δπλαηφηεηα λα δηαγξάςεη φια ηα δεδνκέλα ηεο ζπζθεπήο απνκαθξπζκέλα, θάηη ηδηαίηεξα ρξήζηκν ζε ελδερφκελν θινπήο. ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 29

ΤΓΓΡΑΦΔΑ;TATIANA MATIAS Δηθόλα 4: Η έθδνζε 2.2 2.3.5 GingerBread (2.3) Δδψ ην Android εμειίζζεηαη βειηηψλνληαο ππάξρνπζεο ιεηηνπξγίεο πνπ ήδε είλαη πινπνηεκέλεο απφ άιιεο πιαηθφξκεο κε πην εχρξεζην ηξφπν. Μία απφ απηέο είλαη ε αληηγξαθή θαη ε επηθφιιεζε θεηκέλνπ πνπ παιηφηεξα γηλφηαλ κε θέξζνξεο πνπ καξθάξνπλ πεξηνρή θεηκέλνπ ραξαθηήξα πξνο ραξαθηήξα θαη ηψξα ν ρξήζηεο κπνξεί κε ην δάθηπιν ηνπ λα επηιέγεη νιφθιεξεο ιέμεηο. Σν Android κέρξη ηφηε, επέηξεπε ζηνλ ρξήζηε λα αθήλεη ηηο εθαξκνγέο λα ηξέρνπλ ζην παξαζθήλην βάδνληαο έηζη ζε θίλδπλν ηελ δσή ηεο κπαηαξίαο. Έηζη, ζε απηή ηελ έθδνζε εηζάγεη θάπνηα εξγαιεία φπνπ ν ρξήζηεο κπνξεί λα αλαγλσξίδεη πνηεο εθαξκνγέο ηξέρνπλ ζην παξαζθήλην θαη λα ηηο ηεξκαηίδεη θαζψο θαη λα παξαθνινπζεί ηελ θαηαλάισζε ελέξγεηαο ηεο θαζεκηάο μερσξηζηά. Μεγάιε πξφνδνο έγηλε θαη ζε φηη αθνξά ηνπο πξνγξακκαηηζηέο, κε ηελ ππνζηήξημε πνιιψλ λέσλ ηερλνινγηψλ φπσο ε απηή ησλ πνιιαπιψλ θακεξψλ, θάηη πνπ επέηξεπε ζηηο ζπζθεπέο λα έρνπλ κπξνζηηλέο νζφλεο, θαη απηή ησλ πνκπνδεθηψλ NFC, πνπ ζηφρεπαλ ζηελ αλάπηπμε ηελ ηερλνινγηψλ αλέπαθσλ πιεξσκψλ. Σέινο, κε ηηο λέεο δηεπαθέο πξνγξακκαηηζκνχ (Android API) δίλεηαη ε απεπζείαο πξφζβαζε ζε πφξνπο φπσο ην ζχζηεκα γξαθηθψλ, ήρνπ θαη ζρεδίαζεο, αλνίγνληαο ηνλ δξφκν πξνο ηελ θαηάθηεζε κεξηδίνπ αγνξάο ζηνλ ηνκέα ησλ εθαξκνγψλ-παηρληδηψλ. Δηθόλα 5 (αξηζηεξά): Η έθδνζε 2.3 30 ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB

ΚΔΦΑΛΑΗΟ 2: ΔΗΑΓΧΓΖ ΣΟ ANDROID Δηθόλα 6 (δεμηά): Σν πιεθηξνιόγην ηεο έθδνζεο 2.3.6 HoneyComb (3.0-3.2) Ζ Google αλαγλσξίδνληαο ηελ επεξρφκελε ηάζε ηεο αγνξάο πξνο ηηο ηακπιέηεο, ζε ζπλεξγαζία κε ηελ Motorola θαηαζθεπάδνπλ ην Motorola Xoom πνπ ηξέρεη ηελ λέα απηή έθδνζε. Πνιιέο νπηηθέο θαη δνκηθέο αιιαγέο εηζήρζεζαλ καδί κε απηή ηελ αλαθνίλσζε. Καηαξρήλ, ην θπξίαξρν ρξψκα ηνπ ιεηηνπξγηθνχ παχεη λα είλαη ην πξάζηλν θαη θηλείηαη ζε πην κνληέξλεο απνρξψζεηο, απηέο ηνπ αλνηρηνχ γαιάδηνπ. Γεχηεξε κεγάιε αιιαγή είλαη φηη ην ιεηηνπξγηθφ παξέρεη ηειείσο δηαθνξεηηθή ινγηθή ζηα πιηθά θνπκπηά πεξηήγεζεο πνπ κέρξη ηψξα βξηζθφηαλ ζαλ πξαγκαηηθά θνπκπηά θάησ απφ ηηο νζφλεο ησλ ζπζθεπψλ. Σν θνπκπί ηνπ κελνχ θαη ηεο αλαδήηεζεο αληηθαζίζηαηαη κε ην θνπκπί ησλ ελεξγψλ εθαξκνγψλ. Δπηπιένλ θνπκπηά είλαη απηφ ηεο αξρηθήο νζφλεο θαη ην θνπκπί επηζηξνθήο πνπ φια καδί θαηαιακβάλνπλ ην θάησ κέξνο ηεο νζφλεο. Σέινο, γίλεηαη επίζεκν πξφηππν ζρεδίαζεο εθαξκνγψλ ε κπάξα ελεξγεηψλ (Action Bar) κηα γξακκή κε κέγεζνο νξηδφκελν απφ ην ιεηηνπξγηθφ, αλάινγα κε ηελ νζφλε ηεο ζπζθεπήο θαη ηνλ πξνζαλαηνιηζκφ ηεο. ηελ παξνχζα έθδνζε, νη κεγάιεο απηέο αιιαγέο είλαη δηαζέζηκεο κφλν γηα ηακπιέηεο θαη φρη γηα ηειέθσλα. Σα ηειέθσλα πνπ θπθινθνξνχλ αθφκα έρνπλ ηελ έθδνζε 2.3. Δηθόλα 7: Η έθδνζε 3.0 ζε ηακπιέηα 2.3.7 Ice Cream Sandwich (4.0) ε απηήλ ηελ έθδνζε, νη αιιαγέο πνπ έγηλαλ ζην honeycomb, πξαγκαηνπνηνχληαη θαη γηα ηα ηειέθσλα. Πέξα φκσο απφ απηέο ηηο αιιαγέο, ε θαηλνχξγηα έθδνζε πξνζθέξεη εθηφο άιισλ θαη αιιαγέο ζηελ αξρηθή νζφλε. ην θάησ κέξνο απηήο, ν ρξήζηεο κπνξεί λα πξνζζέζεη ηηο εθαξκνγέο πνπ εκθαλίδνληαη εθεί θαη έηζη ε παιηά κπάξα πνπ είρε κφλν ηελ εθαξκνγή γηα ηηο θιήζεηο θαη ηνλ πεξηεγεηή ηζηνχ ηψξα κεηαηξέπεηαη ζε κπάξα αγαπεκέλσλ εθαξκνγψλ. Δπηπιένλ λέεο ιεηηνπξγίεο ζηελ πιαηθφξκα είλαη ην Android Beam φπνπ ε Google, εθκεηαιιεπφκελε ηελ ηερλνινγία NFC πξνζθέξεη ηελ κεηαθνξά δεδνκέλσλ απφ θνληηλή απφζηαζε. Μηα αθφκε ελδηαθέξνπζα ιεηηνπξγία ήηαλ ν ηξφπνο ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 31

ΤΓΓΡΑΦΔΑ;TATIANA MATIAS μεθιεηδψκαηνο κε αλαγλψξηζε πξνζψπνπ πνπ πξνζέδσζε έλα αθφκα επίπεδν αζθαιείαο ζε απηφ ηνλ ηνκέα. Σέινο, βιέπνπκε γηα πξψηε θνξά έλα εξγαιείν θαηακέηξεζεο ησλ δεδνκέλσλ πνπ θαηαλαιψλεη ε θάζε εθαξκνγή απφ ην δηαδίθηπν θαη ν ρξήζηεο κπνξεί λα νξίζεη έλα φξην ζε απηά ζηελ πεξίπησζε πνπ ρξεζηκνπνηεί ηελ ππεξεζία παξνρήο δεδνκέλσλ απφ ηνλ πάξνρν ηειεθσλίαο. Δηθόλα 8: Η έθδνζε 4.0 ζε ηειέθσλν 2.3.8 Jelly Bean(4.1) ε απηήλ ηελ έθδνζε, νη αιιαγέο πνπ έγηλαλ ζην honeycomb, πξαγκαηνπνηνχληαη θαη γηα ηα ηειέθσλα. Πέξα φκσο απφ απηέο ηηο αιιαγέο, ε θαηλνχξγηα έθδνζε πξνζθέξεη εθηφο άιισλ θαη αιιαγέο ζηελ αξρηθή νζφλε. ην θάησ κέξνο απηήο, ν ρξήζηεο κπνξεί λα πξνζζέζεη ηηο εθαξκνγέο πνπ εκθαλίδνληαη εθεί θαη έηζη ε παιηά κπάξα πνπ είρε κφλν ηελ εθαξκνγή γηα ηηο θιήζεηο θαη ηνλ πεξηεγεηή ηζηνχ ηψξα κεηαηξέπεηαη ζε κπάξα αγαπεκέλσλ εθαξκνγψλ. Δπηπιένλ λέεο ιεηηνπξγίεο ζηελ πιαηθφξκα είλαη ην Android Beam φπνπ ε Google, εθκεηαιιεπφκελε ηελ ηερλνινγία NFC πξνζθέξεη ηελ κεηαθνξά δεδνκέλσλ απφ θνληηλή απφζηαζε. Μηα αθφκε ελδηαθέξνπζα ιεηηνπξγία ήηαλ ν ηξφπνο μεθιεηδψκαηνο κε αλαγλψξηζε πξνζψπνπ πνπ πξνζέδσζε έλα αθφκα επίπεδν αζθαιείαο ζε απηφ ηνλ ηνκέα. Σέινο, βιέπνπκε γηα πξψηε θνξά έλα εξγαιείν θαηακέηξεζεο ησλ δεδνκέλσλ πνπ θαηαλαιψλεη ε θάζε εθαξκνγή απφ ην δηαδίθηπν θαη ν ρξήζηεο κπνξεί λα νξίζεη έλα φξην ζε απηά ζηελ πεξίπησζε πνπ ρξεζηκνπνηεί ηελ ππεξεζία παξνρήο δεδνκέλσλ απφ ηνλ πάξνρν ηειεθσλίαο. 32 ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB

ΚΔΦΑΛΑΗΟ 2: ΔΗΑΓΧΓΖ ΣΟ ANDROID Δηθόλα 9: Η έθδνζε 4.1 2.3.9 Jelly Bean (4.2) Ζ έθδνζε απηή δελ πεξηέρεη αιιαγέο πνπ επεξεάδνπλ θαζνξηζηηθά ην ζχζηεκα, θαη γη απηφ ην ιφγν έρεη θαη ην ίδην φλνκα. ε απηή ηελ έθδνζε εηζάγεηαη ην Miracast έλα ζχζηεκα γηα πξνβνιή ηεο νζφλεο ηνπ θηλεηνχ ζε εμσηεξηθέο ζπζθεπέο θάηη φκσο πνπ δελ έγηλε ηδηαίηεξα δεκνθηιέο ζε αληίζεζε κε ην Chromecast κεηά απφ ιίγν θαηξφ. Έλα λέν εξγαιείν πνπ εηζήρζε γηα πξψηε θνξά είλαη ε δπλαηφηεηα λα δεκηνπξγνχληαη ζηελ ζπζθεπή πεξηζζφηεξνη απφ έλαλ ινγαξηαζκνί ρξεζηψλ. Σέινο, νη ρξήζηεο κπνξνχλ λα ηξαβήμνπλ κία ηξηαθνζίσλ εμήληα κνηξψλ παλνξακηθή θσηνγξαθία πεξηγξάθνληαο ην ηνπίν γχξσ ηνπο ζαλ λα βξίζθνληαη ζε κηα ζθαίξα. Δηθόλα 10: Η έθδνζε 4.2 ζε ηακπιέηα ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 33

ΤΓΓΡΑΦΔΑ;TATIANA MATIAS Δηθόλα 11 (δεμηά): Η ραξαθηεξηζηηθή εκθάληζε ηνπ ξνινγηνύ ζην Android 4.2 Δηθόλα 12 (αξηζηεξά): Οη εηδνπνηήζεηο ζην Android 4.2 2.3.10 Jelly Bean (4.3) ηελ ηειεπηαία έθδνζε κε ηελ ίδηα θσδηθή νλνκαζία πξνζηέζεθε ε ππνζηήξημε γηα ηε βηβιηνζήθε γξαθηθψλ OpenGL 3.0 πνπ αλνίγεη δξφκνπο γηα ηελ αλάπηπμε πην εμειηγκέλσλ παηρληδηψλ. ην θεθάιαην ηνπ πιηθνχ κέξνπο, ην Android ππνζηεξίδεη πεξηζζφηεξεο έμππλεο ζπζθεπέο πνπ ζπλδένληαη κέζσ ηεο ηερλνινγίαο Bluetooth. Δπίζεο, βειηηψλνληαη νη ππεξεζίεο ηνπνζεζίαο γηα ηνπνζεζία παξερφκελε απφ ην αζχξκαην δίθηπν θαη δίλεηαη ππνζηήξημε ζηηο δεμηφγξαθεο γιψζζεο πξνζαξκφδνληαο ηελ ζρεδίαζε γηα ηελ απφ δεμηά πξνο ηα αξηζηεξά ζρεδίαζε ησλ θεηκέλσλ θαη ηνλ αληηθαηνπηξηζκφ ηεο ζέζε ησλ ππφινηπσλ θνπκπηψλ ζηελ νζφλε. Δηθόλα 13: Σν πιεθηξνιόγην θιήζεο ζηελ έθδνζε 4.3 34 ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB

ΚΔΦΑΛΑΗΟ 2: ΔΗΑΓΧΓΖ ΣΟ ANDROID 2.3.11 KitKat (4.4) Μπαίλνληαο δπλακηθά ζην θνκκάηη ηεο πξνψζεζεο, ε Google ζε ζπλεξγαζία κε ηελ Nestle, νξγαλψλεη κία ηεξάζηηα δηαθεκηζηηθή θακπάληα, βαζηζκέλε ζηελ θσδηθή νλνκαζία ηεο έθδνζεο, θάηη πνπ έκεηλε θξπθφ κέρξη ηελ εκέξα ηεο αλαθνίλσζεο. Ξεθηλψληαο ηεο αιιαγέο ηεο έθδνζεο, ε θχξηα αιιαγή είλαη ζηηο απαηηήζεηο πιηθνχ πνπ ρξεηάδεηαη ην ιεηηνπξγηθφ γηα λα ηξέμεη θαη εδψ δίλεηαη ε ππνζηήξημε λα εγθαηαζηαζεί ε θαηλνχξγηα έθδνζε ηνπ ιεηηνπξγηθνχ ζε ηειέθσλα κε κηθξή κλήκε RAM (* 512MB). Γηα πξψηε θνξά εηζάγεηαη ε ιεηηνπξγία εθηχπσζεο κέζσ θηλεηήο ζπζθεπήο θαη ππνζηεξίδνληαη νη θαηλνχξγηνη αηζζεηήξεο απηνί ηεο αλαγλψξηζεο θαη κέηξεζεο βεκάησλ. ην αηζζεηηθφ ηνκέα, νη αιιαγέο θαίλνληαη απφ ηελ αξρηθή νζφλε κηαο θαη νη κπάξεο πινήγεζεο πνπ παξαδνζηαθά ήηαλ καχξν ρξψκα ηψξα γίλνληαη ζθηψδεο θαη ηαπηφρξνλα κπνξνχλ λα εμαθαληζηνχλ ηειείσο κε κηα ξχζκηζε ησλ εθαξκνγψλ πνπ ηηο επηηξέπεη λα εθκεηαιιεπηνχλ φιε ηελ νζφλε. Δηθόλα 14: ηηγκηόηππα από ηελ έθδνζε 4.4 2.3.12 Lollipop (5.0) Καηά ηελ δηάξθεηα ζπγγξαθήο απηήο ηεο έξεπλαο, αλακέλεηαη ε θπθινθνξία ηεο λέαο έθδνζεο, πνπ απηή ηε θνξά απμάλεη θαηά έλα ηνλ πξψην αξηζκφ ηεο έθδνζεο, θάηη πνπ ζεκαίλεη φηη αιιάδεη θαη θαηαξγεί βαζηθά θνκκάηηα ηνπ ζπζηήκαηνο. Ζ πξψηε κεγάιε αιιαγή είλαη ε δηεξγαζία εθηέιεζεο ησλ εθαξκνγψλ πνπ αληηθαζηζηά ην Dalvik θαη ιέγεηαη Android Runtime. ε αληίζεζε κε πξηλ, ν θψδηθαο εθηέιεζεο ηεο εθαξκνγήο δελ εθηειείηαη θάζε θνξά πνπ ν ρξήζηεο πξνζπαζεί λα αλνίμεη ηελ εθαξκνγή αιιά κία θνξά φηαλ εγθαζίζηαηαη. Έηζη ε εθηέιεζε ησλ εθαξκνγψλ γίλεηαη πνιχ πην γξήγνξα θαη ε δηαθνξά θαίλεηαη ζηηο εθαξκνγέο πνπ έρνπλ πνιιέο δπλαηφηεηεο κηαο θαη απηέο ρξεηάδνληαη ζηηο ζεκεξηλέο εθδφζεηο αξθεηά δεπηεξφιεπηα αθφκα θαη ζε ηαρχηαηεο ζπζθεπέο. Δπίζεο ην Android ζχκθσλα κε ηε δηαθεκηζηηθή εθζηξαηεία έξρεηαη ζε κηα νζφλε δίπια ζνπ, ππνλνεί ηηο λέεο ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 35

ΤΓΓΡΑΦΔΑ;TATIANA MATIAS ζπζθεπέο πνπ ππνζηεξίδεη ην ιεηηνπξγηθφ νη νπνίεο είλαη ηα έμππλα ξνιφγηα, νη έμππλεο ηειενξάζεηο θαη νη έμππλεο ζπζθεπέο ζην απηνθίλεην. Όζνλ αθνξά ηηο αιιαγέο ζηελ δηεπαθή, ε λέα έθδνζε αιιάδεη κεηά απφ έξεπλα θαη ζπλεξγαζία κε θαηαζθεπαζηέο εθαξκνγψλ ηα πξφηππα ζρεδίαζεο ηεο δηεπαθήο εθαξκνγψλ. Δηζάγεη ην Material Design ην νπνίν είλαη έλαο ηξφπνο πξνβνιήο ησλ ζηνηρείσλ ηεο νζφλεο ζαλ απηή λα έρεη κία ηξίηε δηάζηαζε θαη ηα ζηνηρεία πνπ είλαη πην ζεκαληηθά θαίλεηαη λα μεπεδνχλ απφ ηελ νζφλε. Απηή ηε πνιηηηθή ζρεδηαζκνχ εθάξκνζε ηφζν ζην ίδην ην ιεηηνπξγηθφ φζν θαη ζηηο εθαξκνγέο ηεο Google. Δηθόλα 15: Σν έμππλν ξνιόη moto 360 Δηθόλα 16: Σν Android Auto 36 ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB

ΚΔΦΑΛΑΗΟ 2: ΔΗΑΓΧΓΖ ΣΟ ANDROID 2.4 OPEN AUTOMOTIVE ALLIANCE To Open Automotive Alliance είλαη κία παγθφζκηα ζπκκαρία απνηεινχκελε απφ θαηαζθεπάζηξηεο εηαηξείεο θαη ηερλνινγηθέο εηαηξίεο ε νπνία έρεη ζαλ ζηφρν λα θέξεη ηελ πιαηθφξκα Android ζηα απηνθίλεηα κέζα. Ζ αλαθνίλσζε απηήο έγηλε ζηελ παγθφζκηα έθζεζε ειεθηξνληθψλ πξντφλησλ πνπ απεπζχλεηαη ζε θαηαλαισηέο CES 2014, ζηηο 6 Ηαλνπαξίνπ. Τπάξρνπλ πάλσ απφ έλα ηξηζεθαηνκκχξην απηνθίλεηα ζηνπο ζεκεξηλνχο δξφκνπο. Καη νη αλζξψπηλεο δσέο εμαξηψληαη ζε πνιινχο ηνκείο απφ ηα άκάμηα. Απηή ηε ζηηγκή φκσο ε ζχλδεζε ησλ απηνθηλήησλ κε άιιεο θηλεηέο ηερλνινγίεο δελ είλαη απξφζθνπηε. Ζ ζπκκαρία Open Automotive Alliance έρεη ζαλ φξακα λα γίλεη ε ρξήζε ηεο ηερλνινγίαο κέζα ζην απηνθίλεην πην αζθαιήο, απξφζθνπηε θαη θπζηθή γηα ηνλ θαζέλα. Έρνπλ δεζκεπηεί λα πξνάγνπλ ηελ θαηλνηνκία ζηα απηνθίλεηα κε ηξφπν πνπ είλαη αλνηρηφο πξνο φινπο, εχθνια δηακνξθνπνηήζηκνο θαη κπνξεί εχθνια λα θιηκαθσζεί. Απηφ ην κνληέιν ηεο αλνηρηήο εμέιημεο θαη ηηο θνηλήο πιαηθφξκαο ζα επηηξέςεη ζηνπο θαηαζθεπαζηέο απηνθίλεησλ πην εχθνια λα παξέρνπλ ηελ ηειεπηαία ιέμε ηεο ηερλνινγίαο ζηνπο νδεγνχο θαη λα δεκηνπξγήζνπλ λέεο επθαηξίεο ζε πξνγξακκαηηζηέο λα παξαδψζνπλ εκπεηξίεο κε πνιιέο δπλαηφηεηεο ζηνπο νδεγνχο θαη ηνπο επηβάηεο κε αζθαιέο ηξφπν. Σα πξψηα κέιε απηήο ηεο ζπκκαρίαο ήηαλ ε Audi, ε General Motors, ε Honda, ε Hyundai θαη ε NVIDIA. ηηο 25 Ηνπλίνπ 2014 ζην San Francisco πξνζρψξεζαλ νη παξαθάησ βηνκεραλίεο: Δηαηξίεο ηερλνινγηθώλ πξντόλησλ Alpine Clarion CloudCar Delphi FreeScale FUJITSU TEN HARMAN Infinity JVC KENWOOD LG NVIDIA Panasonic Parrot Pioneer Renesas Symphony Teleca Καηαζθεπαζηέο απηνθηλήησλ Audi Bentley Fiat Chrysler Ford General Motors Honda Hyundai Maserati Mazda Mitsubishi Nissan Renault SEAT Skoda Subaru Suzuki Volkswagen Volvo Πίλαθαο 2: Μέιε ηνπ Οpen Automotive Alliance ζηηο 25/6/14. ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 37

ΤΓΓΡΑΦΔΑ;TATIANA MATIAS 2.5 ΣΑΣΙΣΙΚΑ ΣΟΙΥΔΙΑ Σν Android πξνζθέξεηαη ζε παξαπάλσ απφ 190 ρψξεο ζηνλ θφζκν. Κάζε κήλα νη ρξήζηεο ηνπ θαηεβάδνπλ ζε ζχλνιν παξαπάλσ απφ ελάκηζε δηζεθαηνκκχξην εθαξκνγέο θαη παηρλίδηα, φπσο επίζεο θαη ειεθηξνληθά βηβιία, κνπζηθή θαη ηαηλίεο. Κάζε κέξα θαηά κέζν φξν ελεξγνπνηνχληαη γηα πξψηε θνξά παξαπάλσ απφ έλα εθαηνκκχξην ζπζθεπέο αλά ηνλ θφζκν. 38 ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB

Κ Δ Φ Α Λ Α Η Ο 3 : Δ Ρ ΓΑ Λ Δ Η Α Γ Η Α Α Ν Α Π Σ Τ Ξ Ζ Δ Φ Α Ρ Μ Ο Γ Χ Ν Σ Ο A N D R O I D

ΔΡΓΑΛΔΙΑ ΓΙΑ ΑΝΑΠΣΤΞΗ ΔΦΑΡΜΟΓΧΝ Δ ANDROID 3.1 Η ΑΡΥΙΣΔΚΣΟΝΙΚΗ ΣΟΤ ANDROID Σν Android είλαη θαηαζθεπαζκέλν πάλσ απφ ηελ έθδνζε 2.6 ηνπ ιεηηνπξγηθνχ Linux. Με ην Linux κνηξάδνληαη ην ίδην ζχζηεκα ππξήλα ηνπ ιεηηνπξγηθνχ, πνπ ζην Android έρεη παξακεηξνπνηεζεί θαηάιιεια ψζηε λα εμππεξεηεί ηηο αλάγθεο ησλ θνξεηψλ ζπζθεπψλ φπσο είλαη ε εμνηθνλφκεζε ελέξγεηαο, ε θαιή δεηρείξεζε κλήκεο θαη ην πεξηβάιινλ πνπ ηξέρνπλ νη εθαξκνγέο. Δπεηδή νη ζπζθεπέο ηδαίηεξα ζηηο πξψηεο εθδφζεηο ηνπ ιεηηνπξγηθνχ δηέζεηαλ ρακειή πξνζσξηλή κλήκε θαη κηθξή επεμεξγαζηηθή ηζρχ, νη βηβιηνζήθεο πνπ είλαη ππεχζπλεο γηα ηηο απαηηεηηθέο ιεηηνπξγίεο ηνπ επεμεξγαζηή θαη ηηο θάξηαο γξαθηθψλ έρνπλ γξαθηεί ζε εγγελή θψδηθα πνπ είλαη βειηηζηνπνηεκέλνο γηα ηελ πιαηθφξκα. Δπίζεο, νη βηβιηνζήθεο libc θαη libm μαλαγξάθηεθαλ κε επίθεληξν ηελ ρακειή θαηαλάισζε κλήκεο, θάηη πνπ ήηαλ αλαγθαίν ιφγσ αζπκβαηφηεηαο αδεηνδφηεζεο ηεο πιαηθφξκαο. ην ίδην επίπεδν παθέησλ ππάξρεη ν δηαρεηξηζηήο ηεο επηθάλεηαο ν νπνίνο αλαιακβάλεη ηελ πξφζβαζε ζηελ νζφλε γηα ηνλ δηαρεηξηζηή παξαζχξσλ. ην ίδην επίπεδν βξίζθνληαη νη βηβιηνζήθεο θσδηθνπνηήζεο θαη απνθσδηθνπνίεζεο ήρνπ θαη video, θάηη πνπ απνηειεί θαηλνηνκία ηνπ Android πξνθεηκέλνπ λα βξίζθνληαη «θνληά ζηνλ επεμεξγαζηή» θαη λα κπνξνχλ λα βειηηζηνπνηεζνχλ ζεκαληηθά. Σν ζχζηεκα εθηέιεζεο απνηειείηαη απφ ηελ εηθνληθή κεραλή Dalvik θαη ηηο βηιηνζήθεο ηνπ ππξήλα ηεο Java. Ζ εηθνληθή κεραλή Dalvik είλαη έλα κεηαγισηηηζηήο απφ δπαδηθφ θψδηθα πνπ έρεη παξαρζεί κέζσ ηνπ δπαδηθνχ θψδηθα ηεο Java ζε δπαδηθφ θψδηθα Dalvik. Σν επίπεδν ηνπ πιαηζίνπ ησλ εθαξκνγψλ είλαη γξακκέλν ζε Java θαη παξέρεη κηα αθαηξεηηθή αλαπαξάζηαζε ησλ πεγαίσλ βηβιηνζεθψλ πνπ βξίζθνληαη ζε θαηψηεξν επίπεδν θαη ησλ δπλαηνηήησλ ηνπ Dalvik πξνο ηηο εθαξκνγέο. Κάζε εθαξκνγή ζην Android εθηειείηαη ζε κία ηδηνηεηή εηθνληθή κεραλή Dalvik θαη απνηειείηαη απφ ηα δνκηθά ζηνηρεία πνπ αλαιχνληαη παξαθάησ. Σα κέξε κίαο εθαξκνγήο είλαη ηα δνκηθά ζηνηρεία άλαπηπμεο ηεο. Κάζε δνκηθφ ζηνηρείν είλαη έλα δηαθνξεηηθφ ζεκείν απφ ην νπνίν κπνξεί ην ζχζηεκα λα αλνίμεη ηελ εθαξκνγή. Γελ είλαη φια ηα δνκηθά ζηνηρεία πξνζβάζηκα απφ ηνλ ρξήζηε θαη κεξηθά αιιεινεξηψληαη, αιιά ην θαζέλα είλαη αλεμάξηεην θαη έρεη έλαλ απζηεξά θαζνξηζκέλν ξφιν βνεζψληαο ζην ζχλνιν ηνπο λα νινθιεξσζεί ε ζπκπεξηθνξά κηαο εθαξκνγήο. Τπάξρνπλ ηέζζεξηο δηαθνξεηηθνί ηχπνη ηένησλ ζηνηρείσλ. Σν θαζέλα έρεη έλαλ δηαθξηηφ θχθιν δσήο πνπ νξίδεη πφηε δεκηνπξγείηαη θαη πφηε θαηαζηξέθεηαη. 3.1.1 Δραζηηριόηηηες (Activities) Μηα δξαζηεξηφηεα αληηπξνζσπεχεη κηα θαη κφλν νζφλε πνπ πεξηέρεη δηεπαθή κε ην ρξήζηε. Γηα παξάδεηγκα, κία εθαξκνγή ζπληαγψλ καγεηξηθήο έρεη κηα δξαζηεξηφηεα πνπ παξνπζηάδεη κηα ιίζηα απφ ζπληαγέο θαη κηα άιιε δξαζηεξηφηεηα πνπ

παξνπζηάδεη ιεηνπκέξεηο εθηέιεζεο κηαο θαη κφλν ζπληαγήο. Παξφιν πνπ νη δξαζηεξηφηεηεο πξέπεη λα επηθνηλσλνχλ κεηαμχ ηνπο, ε θάζε κηα είλαη μερσξηζηή απφ ηελ άιιε θαη καδί παξέρνπλ κηα νινθιεξσκέλε εκπεξία πινήγεζεο ζηνλ ρξήζηε. Χο εθ ηνχηνπ, κηα εθαξκνγή κπνξεί λα αλνίμεη απεπζείαο ζε έλα ζεκείν ηεο π.ρ. ζηελ ζειίδα εθηέιεζεο κηαο ζπλαηγήο ρσξίο λα πεξάζεη απφ ηελ νζφλε κε ηε ιίζηα ζπληαγψλ πξψηα. 3.1.2 Υπηρεζίες (Services) Ζ ππεξεζία είλαη έλα ζηνηρείν πνπ εθηειείηαη ζην παξαζθήλην πξνθεηκέλνπ λα πξαγκαηνπνηήζεη ρξνλνβφξεο ελεέξγεηεο ή λα εθεηειέζεη ελέξγεηεο γηα απνκαθξπζκέλεο δηεξγαζίεο. Μηα ππεξεζία δελ πξνζθέξεη γξαθηθή δηεπαθή. Γηα παξάδεηγκα, κία ππεξεζία κπνξεί λα αλαπαξάγεη κνπζηθή ελψ ν ρξήζηεο αιιειεπηδξά κε κία άιιε εθαξκνγή ή λα θαηεβάδεη δεδνκέλα απφ κηα Γηαδηθηπαθή πεγή ρσξίο λα ζηακαηά ηελ δηεπαθή κε ηελ δξαζηεξηφηεηα. Άιια δνκηθά ζηνηρεία φπσο ε δξαζηεξηφηεηα κπνξεί λα μεθηλήζεη κία ππεξεζία θαη λα ηελ αθήζεη λα εθηειείηαη ή λα ηελ ζπλδέζεη πξνθεηκέλνπ ν ρξήζηεο λα αιιειεπηδξάζεη καδί ηεο. 3.1.3 Δέκηες Εκπομπής (Broadcast receivers) Οη δέθηεο εθπνκπήο είλαη ζηνηρεία πνπ αληαπνθξίλνληαη ζε αλαθνηλψζεοη πνπ εθπέκπνληαη ζε φιν ην νηθνζχζηεκα εθαξκνγψλ κηαο ζπζθεπήο. Πνιινί δέθηεο εθπνκπήο πξνέξρνληαη απφ ην ίδην ην ζχζηεκα- γηα παξάδεηγκα κία αλαθνίλσζε εθπέκπεηαη φηαλ πάςεη ε ζπζθεπή λα είλαη ζπλδεδεκέλε ζε θάπνην ηνπηθφ δίθηπν ή φηαλ ελεξγνπνηεζεί θαη απελνξγνπνηεζεί θάπνηα ζπζθεπή φπσο ε πνκπνδέθηεο ζεκάησλ BlueTooth. Οχηε απηφ ην ζηνηρείν παξέρεη θάπνηαο κνξθήο δηεπαθή κε ηνλ ρξήζηε, κπνξεί φκσο λα ζπλζέζεη κηα εηδνπνίεζε γηα λα ελεκεξψζεη ηνλ ρξήζηε γηα ηελ ελεξγή θαηάζηαζε. 3.1.4 Παροτείς περιετομένοσ (Content Providers) Έλαο πάξνρνο πεξηερνκέλνπ δηαρεηξίδεηαη έλα δηακνηξαδφκελν ζχλνιν απφ δεδνκέλα ηεο εθαξκνγήο. Απνζήθεπζε δεδνκέλσλ κπνξεί λα γίλεη ζην Android ζην ζχζηεκα αξρείσλ, ζε κηα βάζε δεδνκέλσλ, ζην Γηαδίθηπν ή ζε θάπνηα άιιε ηνπνζεζία κ πληκεο απναζήθεπζεο πνπ ε εθαξκνγή κπνξεί λα έρεη πξφζβαζε. Γηακέζνπ ηνπ παξφρνπ πεξηερνκέλνπ νη εθαξκνγέο κπνξνχλ λα αλαδεηήζνπλ ή λα επεμεξγαζηνχλ δεδνκέλα. Γηα παξάδεηγκα, θάπνηα εθαξκνγή κπνξεί λα αηηεζεί πξφζβαζε ζηε βάζε δεδνκέλσλ γξαπηψλ κελπκάησλ SMS γηα λα εηζάγεη ε λα αλαδεηήζεη θάπνην κήλπκα. Έλα ραξαθηεξηζηηθφ ηνπ ζρεδηαζκνχ ηνπ Android έηλαη φηη θάζε εθαξκνγή κπνξεί λα μεθηλήζεη έλα δνθηθφ ζηνηρείν κηαο άιιεο εθαξκνγήο. Γηα παξάδεηγκα, αλ ζέιεη ν πξνγξακκαηηζηήο λα δψζεη ηελ επηινγή ζηνλ ρξήζηε λα ζηείιεη έλα κήλπκα ειεθηξνληθνχ ηηαρπδξνκείνπ, κπνξεί λα δψζεη ηελ επηινγή ζηνλ ρξήζηε εθφζνλ έρεη ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 41

εγθαηαζηήζεη πεξηζζφηεξεο απφ κηα εθαξκνγέο δηαρείξηζεο ηνπ ειεθηξνληθνχ ηνπ ηαρπδξνκείνπ λα επηιέμεη πνηα ζέιεη λα ρξεζηκνπνηήζεη γηα λα ην ζηείιεη ρσξίο λα είλαη αλαγθαζκέλνο λα γξάςεη μαλά ηνλ θψδηθα γηα ηελ ελέξγεηα απηή. Γελ είλαη θαλ αλαγθαία ε ζχλδεζε απηψλ ησλ δχν εθαξκνγψλ. Με απηφ ηνλ ηξφπν νη πξνγξακκαηηζηέο κπνξνχλ λα πξνζθέξνπλ κηα πην πινχζηα θαη αδεηάιιεηπηε εκπεηξία ρξήζεο ρσξίο ηδηαίηεξν θφπν. Όηαλ εθθεηλέηηαη έλα δνκηθφ ζηνηρείν κηαο εθαξκνγήο, εθθηλείηαη κηα δηεξγαζάη γηα απηή ηελ εθαξκνγή αλ δελ ππάξρεη ήδε ζηε ζηνίβα εθηέιεζεο εθαξκνγψλ ηνπ ζπζηήκαηνο θαη αξρηθνπνηεί ηηο απαηηνχκελεο θιάζεηο γηα ηελ ελέξγεηα πνπ ζα εθηειεζηεί. Γηα παξάδεηγκα, κφιηο επηιέμεη ν ρξήζηεο ηελ επηζπκεηή εθαξκνγή ειεθηξνληθνχ ηαρπδξνκείνπ ε θαηλνχξγηα δξαζηεξηφηεηα αλήθεη ζηελ δηεξγαζία ηεο άιιεο εθαξκνγήο. Απηφ έρεη σο απνηέιεζκα νη εθαξκνγέο ζην Android λα κελ έρνπλ έλα θαη κφλν ζεκείν έλαξμεο εθηέιεζεο φπσο ζπκβαίλεη ζε άιιεο γιψζζεο φπσο ε C. Δπεηδή ην ζχζηεκα εθηειεί θάζε εθαξκνγή ζε δηθή ηεο δηεξγαζίαο κε δηθαηψκαηα πνπ πεξηνξίδνπλ ηελ πξφζβαζε ζηνπο επαίζζεηνπο πφξνπο ηνπ ζπζηήκαηνο, κηα εθαξκνγή δελ κπνξεί λα ελεξγνπνηήζεη ζηνηρείν απφ θάπνηα άιιε εθαξκνγή. Απηφ κπνξεί λα πξαγκαηνπνηεζεί κφλν δηακέζνπ ηνπ ιεηηνπξγηθν. Έηζη, ε ινγηθή δηαδηθαζία πνπ αθνινπζείηαη φηαλ αλνίγεη έλα ζηνηρείν είλαη ε εθαξκνγή πνπ δεηάεη ην ζηνηρείν ζηέιλεη έλα δηακνξθσκέλν κήλπκα ζην ιεηηνπξγηθφ θαη ην ζχζηεκα νξίδεη ηελ εθθίλεζε ηνπ ζπγθεθξηκέλνπ ζηνηρείνπ, ζηελ ζπλέρεη ην εθθηλεί ρσξίο ηελ εκπινθή ηεο πξψηεο εθαξκνγήο. 3.2 ANDROID STUDIO Δίλαη ην πξψην νινθιεξσκέλν πεξηβάιινλ αλάπηπμεο γηα πξνγξακκαηηζκφ ζηελ πιαηθφξκα Android. Αλαθνηλψζεθε γηα πξψηε θνξά ηνλ Μάην ηνπ 2013 ζην ζπλέδξην γηα πξνγξακκαηηζηέο Google I/O. ηε ζπλέρεηα, θπθινθφξεζε σο πξνεπηζθφπεζε παξάιιεια κε ηνλ πξνγξακκαηηζκφ ηνπ κέρξη ηνλ Ηνχλην ηνπ 2014 φπνπ θπθινθφξεζε ζε beta έθδνζε θαη ηνλ ίδην Γεθέκβξην βγήθε ε πξψηε έθδνζε 1.0. Με ηελ αιιαγή ζηνλ αξηζκφ ηεο έθδνζεο δειψλεηαη πιένλ ε ζηαζεξφηεηα ηνπ πξνγξάκκαηνο θαη ε Google παξνηξχλεη αθφκα πεξηζζφηεξν ηνπο πξνγξακκαηηζηέο λα θάλνπλ ρξήζηε απηνχ. Σν εξγαιείν είλαη βαζηζκέλν ζην ήδε ππάξρνλ πεξηβάιινλ ηνπ IntelliJ IDEA απφ ηελ εηαηξεία JetBrains. Ζ εγθαηάζηαζε ηνπ εξγαιείνπ είλαη ζπκβαηή κε Windows, Mac OS X θαη Linux. Μεξηθά απφ ηα εξγαιεία πνπ βνεζνχλ ζηελ αλάπηπμε ηνπ είλαη: Ο ζπγρξνληζκέλνο ζρεδηαζκφο κε ηελ ζπγγξαθή ησλ XML αξρείσλ πνπ δείρλεη ην απνηέιεζκα πνπ ζα θαίλεηαη ζε κία πξαγκαηηθή ζπζθεπή. Πην εχθνιε παξαθνινχζεζε ηεο θαηαλάισζεο κλήκεο ηεο εθαξκνγήο ζηε ζπλδεδεκέλε ζπζθεπή. Τπνζηήξημε ζπγγξαθήο θψδηθα Gradle. Νέα παξάζπξα δηαιφγνπ πνπ βνεζνχλ ηνλ ρξήζηε λα εηζάγεη γξήγνξα θψδηθα βαζηζκέλν ζε πξφηππα πξνγξακκαηηζκνχ. Παξ φια απηά, ην Android studio κέρξη ηελ 1.0 δελ ππνζηεξίδεη ηελ ζπγγξαθή θψδηθα ζε NDK (θψδηθα γξακκέλνο ζε C++ πνπ εθηειείηαη ζην Android).

Δηθόλα 17: Σν Android Studio 3.3 ADT PLUGIN Σν ADT (Android Developer Tools) είλαη έλα plugin πνπ ρξεζηκνπνηείηαη γηα ην Eclipse θαη παξέρεη κηα ζεηξά απφ εξγαιεία πνπ ελζσκαηψλνληαη κε ην Eclipse IDE. Πξνζθέξεη πξφζβαζε ζε πνιιέο ιεηηνπξγίεο πνπ βνεζνχλ ηνπο πξνγξακκαηηζηέο λα αλαπηχμνπλ εθαξκνγέο Android. Σν ADT παξέρεη πξφζβαζε ζην GUI ζε πνιιά απφ ηα εξγαιεία ηεο γξακκήο εληνιψλ SDK, θαζψο θαη έλα εξγαιείν ζρεδηαζκνχ UI γηα ηαρεία πξνηππνπνίεζε, ζρεδηαζκφ, θαη νηθνδφκεζε ηεο δηεπαθήο ρξήζηε ηεο εθαξκνγήο. Οπζηαζηηθά έρεη ζρεδηαζηεί γηα λα πξνζθέξεη έλα ηζρπξφ, νινθιεξσκέλν πεξηβάιινλ ζην νπνίν λα δεκηνπξγνχληαη εθαξκνγέο Android. Σν ADT επεθηείλεη ηηο δπλαηφηεηεο ηνπ Eclipse γηα ηελ γξήγνξε ξχζκηζε λέσλ έξγσλ Android, ηελ δεκηνπξγία UI εθαξκνγψλ, ηελ πξφζζεζε παθέησλ κε βάζε ην API ηνπ Android-πιαηζίνπ, ηελ δηφξζσζε εθαξκνγψλ ρξεζηκνπνηψληαο ηα εξγαιεία ηνπ Android SDK, θαη αθφκε θαη ηελ εμαγσγή ππνγεγξακκέλσλ (ή αλππφγξαθσλ).apk αξρείσλ (εθηειέζηκα αξρεία θψδηθα) πξνθεηκέλνπ λα δηαλέκεηαη ε εθαξκνγή. Ζ αλάπηπμε ζε Eclipse κε ADT ζπληζηάηαη αλεπηθχιαθηα θαη είλαη ν γξεγνξφηεξνο ηξφπνο αλάπηπμεο Android εθαξκνγψλ. Με ηνλ νδεγφ ξχζκηζεο, ηα εξγαιεία νινθιήξσζεο, ηελ πξνζαξκνζκέλε XML, θαη ην παξάζπξν εμφδνπ γηα ηνλ εληνπηζκφ ζθαικάησλ, ην ADT βνεζάεη ζηελ ηαρχηεηα αλάπηπμεο εθαξκνγψλ Android. ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 43

3.4 ECLIPSE IDE 3.4.1 Ιζηορικά ζηοιτεία Οη εγεηηθέο εηαηξείεο Borland, IBM, MERANT, QNX Software Systems, Rational Software, Red Hat, SuSe, TogetherSoft θαη Webgain δεκηνχξγεζαλ ην πξψην ζπκβνχιην αληηπξνζψπσλ ηνπ νξγαληζκνχ Eclipse ηνλ Ννέκβξην ηνπ 2001. Μέρξη ην ηέινο ηνπ 2003, ν ζπλεηαηξηζκφο απηφο είρε θηάζεη λα απαξηζκεί πάλσ απφ 80 κέιε. Σνλ Φεβξνπάξην ηνπ 2004, ην ζπκβνχιην αλαθνίλσζε ηελ κεηαηξνπή ηνπ Eclipse ζε κε θεξδνζθνπηθνχ ραξαθηήξα εηαηξεία. Αξρηθά, ην ζπκβνχιην πνπ ζρεκαηίζηεθε φηαλ ε IBM εμέδσζε αλνηρηά ηνλ θψδηθα ηεο πιαηθφξκα Eclipse έγηλε αλεμάξηεην κε ζθνπφ λα νδεγήζεη ηελ πιαηθφξκα ζε αλάπηπμε πνπ ζα σθεινχζε ηνπο παξφρνπο πξνγξακκαηηζηηθψλ εξγαιείσλ θαη ηνπο ηειηθνχο ρξήζηεο. Όιε ε ηερλνινγία θαη ν πεγαίνο θψδηθαο πνπ παξέρεηαη θαη εμειίζζεηαη απφ ηελ ζπλερψο εμειηζζφκελε θνηλφηεηα είλαη δηαζέζηκνο απαιιαγκέλνο απφ θάζε δηθαίσκα πλεπκαηηθήο ηδηνθηεζίαο κέζσ ηεο άδεηαο δηαλνκήο ινγηζκηθνχ Eclipse Public License. Οη αξρηθνί ζηξαηεγηθνί πξνγξακκαηηζηέο θαη ζηξαηεγηθνί θαηαλαισηέο ήηαλ νη Ericsson, HP, IBM, Intel, MontaVista Software, QNX, SAP θαη Serena Software. 3.4.2 Η άδεια τρήζης Eclipse Ζ Eclipse Public License είλαη ε ζεκειηψδεο άδεηα ππφ ηελ νπνία εθδίδνληαη φια ηα έξγα ζρεηηθά κε ην Eclipse. Μεξηθά έξγα πνπ απαηηνχλ δηπιή αδεηνδφηεζε, θάλνπλ ρξήζε ηεο Eclipse Distribution License, ηεο άδεηαο γηα δηακνηξαζκφ, ε νπνία φκσο πξέπεη λα εθαξκφδεηαη θαη λα ειέγρεηαη αλά πεξίπησζε. ηελ πξαγκαηηθφηεηα, ην Eclipse αξρηθά δηαηέζεθε ππφ ηελ αδεηνδφηεζε ηεο Common Public License θαη αξγφηεξα αδεηνδνηήζεθε μαλά ππφ ηελ άδεηα Eclipse Public License. Ο νξγαληζκφο ειεχζεξνπ ινγηζκηθνχ (Free Software Foundation) αλαθνίλσζε φηη θαη νη δχν άδεηεο είλαη άδεηεο ειεχζεξνπ ινγηζκηθνχ, αιιά είλαη αζχκβαηεο κε ηελ άδεηα GNU, ηελ γεληθή ειεχζεξε άδεηα. Ο Mike Milinkovich κέινο ηνπ νξγαληζκνχ eclipse απάληεζε φηη ζα εμεηαζηεί ε κεηαθνξά ζηελ γεληθή ειεχζεξε άδεηα (GPL) φηαλ απηή αλαζεσξεζεί ζηελ ηξίηε ηεο έθδνζε. 3.4.3 Η αρτιηεκηονική ηοσ Eclipse To Eclipse ρξεζηκνπνηεί plug-in γηα θάζε ιεηηνπξγία επηπξφζζεηε αιιά θαη ζηνλ ππξήλα ηνπ ζπζηήκαηνο εθηέιεζεο. Σν ζχζηεκα εθηέιεζεο ηνπ είλαη βαζηζκέλνο ζην Equinox, κία πινπνίεζε ηνπ ππξήλα OSGi. Δπηπξφζζεηα, γηα λα κπνξεί ε πιαηθφξκα Eclipse λα ρξεζηκνπνηεζεί ζε άιιεο γιψζζεο φπσο ε C θαη ε Python, ε δηεπαθή ηεο πιαηθφξκαο σο plugin επηηξέπεη λα ιεηηνπξγεί κε γιψζζεο νξηζκνχ λέσλ ηχπσλ φπσο ε LaTeX θαη εθαξκνγέο δηθηχσζεο φπσο ην telnet θαη ηα πζηήκαηα Γηαρείξηζεο Βάζεσλ Γεδνκέλσλ. Απηή ε αξρηηεθηνληθή βαζηζκέλε ζε plugin επηηξέπεη ηελ ζπγγξαθή ηεο φπνηαο επηζπκεηήο επέθηαζεο ηνπ πεξηβάιινληνο, φπσο είλαη ε

δηαρείξηζε ησλ πξνζσπηθψλ ξπζκίζεσλ. Μέζα ζην βαζηθφ Eclipse SDK, ππάξρεη ππνζηήξημε γηα Java θαη CVS (Control Version System) θαη κε ηε δπλαηφηεηα λα ππάξρεη ελαιιαθηηθή ππνζηήξημε γηα ζπζηήκαηα δηαρείξηζεο εθδφζεσλ ηνπ πεγαίνπ θψδηθα κέζσ ηξίησλ plugin. Με εμαίξεζε έλα κηθξφ θνκκάηη ηνπ ππξήλα εθηέιεζεο, φια ζην Eclipse είλαη έλα plugin. Απηφ ζεκαίλεη φηη θάζε plugin πνπ έρεη πξνγξακκαηηζηεί, ελζσκαηψλεηαη ζην Eclipse κε ηνλ ίδην αθξηβψο ηξφπν φπσο άιια plugins. To Eclipse παξέρεη έλα επξχ θάζκα απφ ιεηηνπξγίεο, θάπνηεο απφ ηηο νπνίεο παξέρνληαη απφ ηξίηνπο θαη είλαη αδεηνδνηεκέλα ηφζν απφ ειεχζεξεο φζν θαη θιεηζηέο άδεηεο. Κάπνηα παξάδεηγκα είλαη ε UML, ηα UML δηαγξάκκαηα, ε πεξηήγεζε ζε Βάζεηο Γεδνκέλσλ θαη πνιιά άιια. Σν Eclipse SDK πεξηέρεη ηα εξγαιεία αλάπηπμεο ηεο Java γηα ην Eclipse (JDT), πξνζθέξνληαο έλα πεξηβάιινλ αλάπηπμεο κε ελζσκαησκέλν κεηαγισηηηζηή ηεο Java θαη έλα πιήξεο κνληέιν ησλ αξρείσλ πεγαίνπ θψδηθα ηεο Java. Απηφ επηηξέπεη ηελ πξνεγκέλε αλαθαηαζθεπή (refactoring) θαη ηελ αλάιπζε ηνπ θψδηθα. Σν πεξηβάιινλ αλάπηπμεο επίζεο, ρξεζηκνπνηεί έλα ρψξν εξγαζίαο, πνπ ζε απηή ηελ πεξίπησζε είλαη έλα ζχλνιν κεηαδεδνκέλσλ πάλσ απφ έλα απιφ ζχζηεκα αξρείσλ πνπ επηηξέπεη ηελ εμσηεξηθή επεμεξγαζία κε ηελ πξνυπφζεζε φηη ε αληίζηνηρε νληφηεηα ηνπ ρψξνπ εξγαζία ζα αλαλεσζεί κεηέπεηηα. Σν Eclipse έρεη πινπνηήζεη θαη ρξεζηκνπνηεί ηα γξαθηθά ζηνηρεία ειέγρνπ ηεο εξγαιεηνζήθεο ηεο Java πνπ νλνκάδνληαη SWT, ελψ νη πεξηζζφηεξεο Java εθαξκνγέο ρξεζηκνπνηνχλ ην Abstract Window Toolkit (AWT) ή ην Swing. Ζ γξαθηθή δηεπαθή ηνπ Eclipse, επίζεο, ρξεζηκνπνηεί έλα επίπεδν ελδηάκεζεο γξαθηθήο δηεπαθήο πνπ νλνκάδεηαη JFace, ην νπνίν βξίζθεηαη εθεί γηα λα απινπνηεί ηελ θαηαζθεπή εθαξκνγψλ πνπ βαζίδνληαη ζην SWT. Σέινο ην Eclipse παξέρεη παθέηα γισζζψλ αλαπηπγκέλα απφ ην έξγν BABEL ην νπνίν παξέρεη κεηαθξάζεηο ζε πάλσ απφ 12 νκηινχκελεο γιψζζεο. Δηθόλα 18: Σν πεξηβάιινλ αλάπηπμεο Eclipse ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 45

3.5 GRADLE Σν Gradle είλαη έλα εξγαιείν απηνκαηνπνίεζεο ησλ δηαδηθαζηψλ ελφο πξνγξακκαηηζηηθνχ έξγνπ ην νπνίν ρηίζηεθε κε ηηο δνκηθέο αξρέο ησλ Apache Ant θαη ηνπ Apache Maven θαη εηζάγεη κηα γιψζζα βαζηζκέλε ζε Groovy ζε αληηθαηάζηαζε ηεο παξαδνζηαθήο XML θφξκαο πνπ πεξηείρε ηελ πξνζαξκνγή ηνπ έξγνπ. Αληίζεηα κε ην Apache Maven, ην νπνίν νξίδεη θχθινπο δσήο, θαη ην Apache Ant, ηνπ νπνίνπ νη ζηφρνη ελεξγνπνηνχληαη βαζηζκέλνη ζε κηα ηκεκαηηθή ηαμηλφκεζε, ην Gradle ρξεζηκνπνηεί έλα θαηεπζπληηθφ άθπθιν γξάθν κε ηνλ νπνίν νξίδνληαη νη εξγαζίεο πνπ πξέπεη λα εθηειέζηνχλ. Σo Gradle ζρεδηάζηεθε γηα παξαγσγέο πνιιψλ έξγσλ πνπ κπνξεί λα γίλνπλ αξθεηά κεγάια θαη ππνζηεξίδεη ηηο επαπμαλφκελεο παξαγσγέο (incremental builds) φπνπ νξίδνληαη κε έμππλν ηξφπν πνηα θνκκάηηα πνπ δέληξνπ έρνπλ αιιάμεη, ψζηε φπνηα εξγαζία είλαη βαζηζκέλα ζε απηά λα ρξεηαζηεί λα μαλαεθηειεζηεί αθήλνληαο ηηο εξγαζίαο πνπ είλαη βαζηζκέλεο ζε ήδε ελεκεξσκέλα θνκκάηηα ηνπ δέληξνπ ρσξίο επαλεθηέιεζε κεηψλνληαο έηζη δξαζηηθά ηα ρξνληθά επίπεδα εθηέιεζεο παξαγσγήο. Σν Gradle είλαη ζε αξρηθφ ζηάδην, ηα πξψηα plugin πνπ έρνπλ δεκηνπξγεζεί έρνπλ λα θάλνπλ κε ηελ Java, ηελ Groovy θαη ηελ Scala φζν αθνξά ηνλ πξνγξακκαηηζκφ θαη ηελ δηάζεζε εθδφζεσλ. Πεξηζζφηεξεο γιψζζεο θαη ηξφπνη αλάπηπμεο ελφο έξγνπ βξίζθνληαη ζε ζεηξά πξνηεξαηφηεηαο γηα ηελ πινπνίεζε ηνπο. Δηθόλα 19: Σν ινγόηππνπ ηνπ Gradle 3.6 ΒΙΒΛΙΟΘΗΚΗ VOLLEY Ζ βηβιηνζήθε Volley είλαη ρξήζηκε γηαηί κπνξεί δηεπθνιχλεη ηελ επηθνλσλία κέζσ Γηαδηθηπνπ ζηηο εθαξκνγέο θαη ζπλάκα βνεζάεη πνιχ ζηελ ηαρχηεηα εθηέιεζεο ηνπ θάζε αηηήκαηνο. Παξνπζηάζηεθε ζην εηήζην ζπλέδξην ηεο Google γηα πξνγξακκαηηζηέο Google I/O ην 2013 θαη έπεηηα απφ ηελ επξεία ρξήζε ηεο ην Android πξνηείλεη ηελ ρξήζε ηεο ζηνπο νδεγνχο πξνγξακκαηηζκνχ ηεο πιαηθφξκαο. Απηή ε βηβιηνζήθε δηαρεηξίδεηαη ηελ εθηέιεζε αιιά θαη ηελ πξνζσξηλή απνζήθεπζε αηηεκάησλ ζην δίθηπν θαη απαιιάζεη ηνπο πξνγξακκαηηζηέο απφ ηελ επαλαιακβαλφκελε ζπγγξαθή παλνκνηφηππνπ θψδηθα. Απηφ βνεζάεη ηνπο πξνγξακκαηηζηέο λα απνθεχγνπλ ηα ιάζε κεηψλνληαο ην κέγεζνο ηνπ θψδηθα ηνπο. Πξηλ απφ απηή ηε βηβιηνζήθε ππήξρε ε θιάζε ζπζηήκαηνο Async Task ε νπνία εθηεινχζε κία δηαδηθαζία ζην παξαζθήλην θαη κία ζην πξνζθήλην γηα λα κπνξεί λα ελεκεξσζεί ε δηεπαθή κεηά ηελ νινθιήξσζε ηνπ αηηήκαηνο. Όκσο απηή ε θιάζε δελ δεκηνπξγήζεθε κε ζθνπφ ηελ πξφζβαζε ζην δίθηπν, έηζη νη πξνγξακκαηηζηέο έπξεπε λα γξάθνπλ ηνλ ίδην θψδηθα γηα ηνλ έιεγρν ιαζψλ θαη χπαξμεο ζπλδεζηκφηεηαο θαη

λα δηαρεηξηζηνχλ ιάζε ηα νπνία έηζη θη αιιηψο δελ ελδηαθέξνπλ ηνλ ηειηθφ ρξήζηε. Σα πιενλεθηήκαηα ηεο βηβιηνζήθεο ζπλνπηηθά: Απηφκαηα πξνγξακκαηίζηεη ηελ εθηέιεζε φισλ ησλ αηηεκάησλ. Πξνζθέξεη κηα αθαηξεηηθή αλαπαξάζηαζε ηεο πξνζσξηλήο απνζήθεπζεο ζηε κλήκε θαη ζηελ κφληκε εζσηεξηθή κλήκε. Πξνζθέξεη κηα ηζρπξή δηεπαθή ζπλαξηήζεσλ γηα αθχξσζε ησλ αηηεκάησλ. Απηφ ζεκαίλεη φηη έλα αίηεκα κπνξεί λα δηαθνπεί ή λα νξηζηνχλ νκάδεο αηηεκάησλ πνπ κπνξνχλ λα αθπξσζνχλ ηαπηφρξνλα. Δίλαη ηδηαίηεξα παξακεηξνπνηήζηκν. Τπνζηεξίδεη ηελ απνζθαικάησζε. ηελ εθαξκνγή CacLab ρξεζηκνπνηήζεθε ε βηβιηνζήθε γηα ηελ πξφζβαζε ζε απνκαθξπζκέλεο πεγέο. 3.7 ΦΟΡΜΔ HTML Ζ Γιψζζα ήκαλζεο Τπεξθεηκέλνπ HTML είλαη ε θχξηα γιψζζα ζήκαλζεο γηα ηελ θαηαζθεπή ηζηνζειίδσλ θαη ηα ζηνηρεία ηεο είλαη ηα δνκηθά ζηνηρεία. Ζ HTML απνηειείηαη απφ ζηνηρεία html ηα νπνία εκθαλίδνληαη σο εηηθέηεο πεξηβαιιφκελεο απφ ηα καζεκαηηθά ζχκβνια κεγαιχηεξν θαη κηθξφηεξν πρ. <tag>. Οη εηηθέηεο HTML ζπλήζσο ιεηηνπξγνχλ αλά δεχγε (γηα παξάδεηγκα <h1> θαη </h1>), κε ηελ πξψηε λα νλνκάδεηαη εηηθέηα έλαξμεο θαη ηε δεχηεξε εηηθέηα ιήμεο. Αλάκεζα ζηηο εηηθέηεο, νη ζρεδηαζηέο ηζηνζειίδσλ κπνξνχλ λα ηνπνζεηήζνπλ θείκελν, πίλαθεο, εηθφλεο θιπ. Ο θχξηα ιεηηνπξγία ελφο πξνγξάκκαηνο πεξηήγεζεο ηζηνχ είλαη λα δηαβάδεη ηα έγγξαθα HTML θαη ηα ζπλζέηεη ζε ζειίδεο πνπ κπνξεί θαλείο λα δεη θαη λα επηθνηλσλήζεη καδί ηνπο. Ο browser δελ εκθαλίδεη ην θείκελν κε ηηο εηηθέηεο HTML, αιιά ηηο ρξεζηκνπνηεί γηα λα δεκηνπξγήζεη ην πεξηερφκελν ηεο ζειίδαο. Ζ HTML ρξεζηκνπνηείηαη ζε φινπο ηνπο ηζνηφπνπο. Ζ HTML επηηξέπεη ηελ ελζσκάησζε εηθφλσλ θαη άιισλ αληηθεηκέλσλ κέζα ζηε ζειίδα, θαη κπνξεί λα ρξεζηκνπνηεζεί γηα λα εκθαλίζεη δηαδξαζηηθέο θφξκεο. Παξέρεη ηηο κεζφδνπο δεκηνπξγίαο δνκεκέλσλ εγγξάθσλ θαζνξίδνληαο δνκηθά ζεκαληηθά ζηνηρεία γηα ην θείκελν, φπσο επηθεθαιίδεο, παξαγξάθνπο, ιίζηεο, ζπλδέζκνπ θ.α. Μπνξνχλ επίζεο λα ελζσκαηψλνπλ κηθξά θνκκάηηα θψδηθα ζε γιψζζεο φπσο ε JavaScript, ηα νπνία επεξεάδνπλ ηε ζπκπεξηθνξά ησλ ηζηνζειίδσλ HTML. Οη πεξηεγεηέο ηζηνχ κπνξνχλ επίζεο λα πεξηέρνπλ νιφθιεξα έγγξαθα ή απιέο πιεξνθνξίεο ζρεηηθά κε ζηπι κνξθνπνίεζεο CSS γηα λα νξίδνπλ ηελ εκθάληζε θαη ηε δηάηαμε ηνπ θεηκέλνπ θαη ηνπ ππφινηπνπ πιηθνχ. Ο νξγαληζκφο W3C, ν νπνίνο δεκηνπξγεί θαη ζπληεξεί ηα πξφηππα γηα ηελ HTML θαη ηα CSS, πξνηείλεη ηε ρξήζε ησλ CSS αληί δηαθφξσλ ζηνηρείσλ ηεο HTML γηα ζθνπνχο παξνπζίαζεο ηνπ πεξηερνκέλνπ. 3.8 JSON To JSON (JavaScript Object Notation) είλαη έλα πξφηππν δηακεηαθνξάο δεδνκέλσλ πνπ έρεη ζρεδηαζηεί γηα λα κελ θαηαλαιψλεη ππνινγηζηηθνχο πφξνπο. Δίλαη εχθνιν ζηελ αλάγλσζε θαη ηελ επεμεξγαζία κε ην αλζξψπηλν ρέξη. Δίλαη επίζεο απνδνηηθφ ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 47

ζηελ αλάγλσζε αιιά θαη ηελ παξαγσγή ηνπ απφ κεραλήκαηα. Έρεη βαζηζηεί ζε έλα ππνζχλνιν εληνιψλ ηεο JavaScript. Σν JSON είλαη έλα θείκελν θαη είλαη ηειείσο αλαεμάξηεην απφ γιψζζεο πξνγξακκαηηζκνχ, ε ζχληαμε ηνπ φκσο ρξεζηκνπνηεί παξαδνρέο εκπλεπζκέλεο θαη ρξεζηκνπνηνχκελεο απφ γιψζζεο πξνγξακκαηηζκνχ φπσο C, C++,Java θ.α Ζ δνκή ηνπ JSON έρεη δχν κνξθέο. Ζ πξψηε είλαη ην αληηθείκελν (JSON Object) ην νπνίν είλαη έλα ζχλνιν απφ δεχγε νλφκαηνο θαη ηηκήο πνπ δελ έρεη ππνζηεί θάπνηνπ είδνπο ηαμηλφκεζε ή νξγάλσζε. Σν αληηθείκελν μεθηλάεη κε κία αξηζηεξή αγθίιε «{» θαη θιείλεη κε κία δεμηά «}». Κάζε δεχγνο δηαρσξίδεηαη ζε φλνκα θαη ηηκή κε ην ζχκβνιν ηεο άλσ θάησ ηειείαο «:» ε νπνία βξίζθεηαη κεηά ην ηέινο ηνπ νλφκαηνο. Κάζε δεχγνο δηαρσξίδεηαη απφ ην άιιν κε θφκκα «,». Ζ δεχηεξε κνξθή είλαη ν πίλαθαο (JSON Array). Ο πηλαθαο αλνίγεη θαη θιείλεη κε ηεηξάγσλε αγθίιε αληίζηνηρα «[» θαη «]». Όια ηα ζηνηρεία ηνπ πίλαθα είλαη ηνπ ίδηνπ πξσηαξρηθνχ ηχπνπ θαη δηαρσξίδνληαη κε θφκκα «,». Έλαο πίλαθαο κπνξεί λα έρεη θαη απηφο φλνκα φπσο αθξηβψο έλα δεχγνο νλφκαηνο ηηκήο. Οη πξσηαξρηθνί ηχπνη πνπ ππνζηεξίδνληαη είλαη αξηζκφο(number), αιθαξηζκεηηθφ(string) θαη δπαδηθή ηηκή (Boolean). Οη νθηαδηθνί αξηζκνί θαη νη δεθαεμαδηθνί αξηζκνί έρνπλ απνθεπρζεί γηα ιφγνπο δηαηήξεζεο ηεο ζπκβαηφηεηαο κε φιεο ηηο γιψζζεο πξνγξακκαηηζκνχ.

Κ Δ Φ Α Λ Α Η Ο 4 : Ζ Δ Φ Α Ρ Μ Ο Γ Ζ C A C L A B Γ Η Α A N D R O I D

Η ΔΦΑΡΜΟΓΗ CACLAB ΓΙΑ ANDROID Ζ πινπνίεζε ηεο εθαξκνγήο έγηλε αξρηθά κε ην πεξηβάιινλ αλάπηπμεο Eclipse, φκσο ζην κέζν ηεο εξγαζίαο ε Google εμέδσζε ηελ έθδνζε 1.0 ηνπ Android Studio ζε δνθηκαζηηθφ ζηάδην Β(beta) θαη παξφηξπλε φινπο ηνπο πξνγξακκαηηζηέο λα θάλνπλ ηελ κεηάβαζε. Έηζη ε εθαξκνγή CacLab ζπλέρηζε λα θαηαζθεπάδεηαη ζην Android Studio. Παξαθάησ παξνπζηάδεηαη ζε δηάγξακκα ε ρξήζε ησλ θιάζεσλ πνπ είλαη ππεχζπλεο γηα ηελ εκθάληζε ησλ δεδνκέλσλ ζε ιίζηεο απφ ηηο δξαζηεξηφηεηεο ηεο εθαξκνγήο πνπ αληηζηνηρνχλ ζηηο ηειηθέο νζφλεο πνπ βιέπεη ν ρξήζηεο. 4.1 ΓΙΑΓΡΑΜΜΑΣΑ Γηάγξακκα 1: Υξήζεο ησλ θιάζεσλ adapter από ηηο θιάζεηο δξαζηεξηνηήησλ ην επφκελν δηάγξακκα θαίλνληαη νη θιάζεηο δεδνκέλσλ πνπ ρξεζηκνπνηήζεθαλ γηα ηελ πην εχθνιε δηαρείξηζε ησλ δεδνκέλσλ πνπ αλαθηήζεθαλ απφ ην Γηαδίθηπν αιιά θαη ηνπηθψλ δεδνκέλσλ.

Γηάγξακκα 2: Γηάγξακκα θιάζεσλ δεδνκέλσλ 4.2 ACTIVITY_HOME Ζ εθηέιεζε ηεο εθαξκνγήο μεθηλάεη απφ ηελ θιάζε δξαζηεξηφηεηαο Activity_Home. ηελ κέζνδν oncreate() θνξηψλεηαη ην αξρείν δηάηαμεο xml, αλαγλσξίδεηαη θαη αξρηθνπνηείηαη ε ιίζηα ζε κνξθή πιέγκαηνο θαη νξηδεηαη ν δηαρεηξηζηήο ηεο (adapter) θαη ε ζπλάξηεζε πνπ εθηειείηαη φηαλ ν ρξήζηεο θάλεη κία επηινγή.

4.3 ACTIVITY_PUBLICATIONS ε απηή ηελ δξαζηεξηφηεηα θαινχληαη νη πφξνη απφ ην δίθηπν θαη απφ ηα απνηειέζκαηα δεκηνπξγείηαη κηα ιίζηα κε αληηθείκελα Γεκνζηεχζεσλ θαη κία κε αληηθείκελα πλεδξίσλ. ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 53

ηελ θιάζε ηνπ αληάπηνξα ρσξίδνληαη νη εμήο πεξηπηψζεηο: νη ηίηινη ησλ δχν ιηζηψλ, ηα θειηά πνπ ζα παξνπζηάζνπλ δεκηνζηεχζεηο ζε πλέδξηα, θαη δεκνζηεχζεηο ζε πεξηνδηθά. ηηο δπν πξψηεο πεξηπηψζεηο ρξεζηκνπνηείηαη ην ίδην αξρείν δηάηαμεο ηεο δηεπαθήο θαη αιιάδεη αληίζηνηρα ην θείκελν ηνπ ηίηινπ. ηελ ζπλέρεηα πινπνηείηαη ην ζχζηεκα απφδνζεο ηεο ιίζηαο ην νπνίν δελ μαλαθαιεί ην αξρείν δηάηαμεο θάζε θνξά πνπ πξέπεη λα εκθαληζηεί έλα θειί ηεο ιίζηαο. Αληίζεηα, ρξεζηκνπνηεί ην θειί πνπ δίλεηαη απφ ην ζχζηεκα θαη αιιάδεη ην πεξηερφκελν πνπ ζα απεηθνληζηεί.

Όηαλ ν ρξήζηεο παηήζεη επάλσ ζηε πεξηνρή «Abstract» ηφηε εκθαλίδεηαη έλα παξάζπξν δηαιφγνπ πνπ δεκηνπξγείηαη απφ έλα αξρείν δηάηαμεο. Ζ δηάηαμε έρεη δηακνξθσζεί γηα λα ηαηξηάδεη κε ηνπο ρξσκαηηθνχο ζπλδπαζκνχο ηεο ππφινηπεο εθαξκνγήο. 4.4 ACTIVITY_PRESENTATION ε απηή ηελ νζφλε ππάξρεη ζηαηηθφ θείκελν θαη απηφ πινπνηήζεθε κέζα ζην αξρείν δηάηαμεο. Παξαθάησ θαίλεηαη ε νξγάλσζε ηεο δηάηαμεο. 4.5 ACTIVITY_COURSES & ACTIVITY_PEOPLE Δδψ ηα καζήκαηα αξρηθά πξνζηίζνληαη ζε κηα ιίζηα αληηθεηκέλσλ ηχπνπ Link θαη People αληίζηνηρα γηα ηελ θάζε δξαζηεξηφηεηα θαη ζηε ζπλέρεηα αξρηθνπνηείηαη θαη ζπλδέεηαη κε ην γξαθηθφ ζηνηρείν ιίζηαο έλα αληηθείκελν ηνπ αληάπηνξα πνπ πεξηέρεη ηελ θάζε ιίζηα. Αθνινπζεί ν θαηαζθεπαζηήο ηεο θιάζεο ηνπ αληάπηνξα θαη νη βνεζεηηθέο ζπλαξηήζεηο πνπ απαηηεί ε ρξήζε ηεο θιάζεο πξνθεηκέλνπ λα ελεξγνπνηεζεί ζσζηά ε δηαδηθαζία αλαθχθισζεο ησλ γξαθηθψλ ζηελ ζπλάξηεζε getview() πνπ αλαιακβάλεη ηελ πξνβνιή ησλ ζηνηρείσλ ησλ θειηψλ. ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 55

4.6 ACTIVITY_LOCATION ε απηή ηε δξαζηεξηφηεηα αξρηθνπνηνχληαη νη δχν ηίηινη, νη δχν εηηθέηεο θεηκέλνπ θαη ηα δχν θνπκπηά. Σν πξψην θνπκπί πξαγκαηνπνηεί ηελ απνζηνιή ελφο ειεθηξνληθνχ κελχκαηνο ρξεζηκνπνηψληαο ηελ πξφζεζε (Intent) ηνπ ζπζηήκαηνο γηα ηελ απνζηνιή. Σν δεχηεξν ρξεζηκνπνηεί ηελ πξφζεζε πξνβνιήο ηνπ ζπζηήκαηνο δίλνληαο ζαλ παξάκεηξν ηηο γεσγξαθηθέο ζπληεηαγκέλεο ηνπ ζεκείνπ πξφζβαζεο ζην εξγαζηήξην. Καη ηα δχν θνπκπηά κε ην πάηεκα απφ ην ρξήζηε ζα πξνβάινπλ έλα παξάζπξν δηαιφγνπ πνπ ξσηάεη ην ρξήζηε πνηα εθαξκνγή ζέιεη λα ρξεζηκνπνηήζεη γηα λα εθηειέζεη ηελ ελέξγεηα απηή ζε πεξίπησζε πνπ έρεη παξαπάλσ απφ κηα εθαξκνγέο εγθαηεζηεκέλεο πνπ κπνξνχλ λα νινθιεξψζνπλ απηή ηε πξφζεζε. 4.7 ACTIVITY_LINKS Παξαθάησ θαίλεηαη ε θιήζε ηεο ζπλάξηεζεο φηαλ ν ρξήζηεο παηήζεη πάλσ ζε θάπνην απφ ηνπο ρξήζηκνπο ζπλδέζκνπο. ε θάζε πεξίηπσζε ειέγρεηαη ε χπαξμε θάπνηαο εθαξκνγήο πνπ κπνξεί λα ρεηξηζηεί ηελ πξφζεζε πξνβνιήο. ηε ζπγθεθξηκέλε ρξεηάδεηαη κία εθαξκνγή πνπ κπνξεί λα αλνίμεη ζειίδεο Γηαδηθηχνπ. Αλ δελ βξεζεί θακία ηφηε ην θνπκπί δελ εθηειεί ηελ ελέξγεηα απνθεχγνληαο ηελ απφηνκε δηαθνπή ηεο εθαξκνγήο CacLab. ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 57

4.8 ACTIVITY_ANNOUNCEMENTS

4.9 BACK END Γηα ηελ ππνζηήξημε ηεο εθαξκνγήο ζηνλ πξνζσπηθφ ινγαξηαζκν δεκηνπξγήζεθε κηα βάζε δεδνκέλσλ ε νπνία έρεη απνζεθεπκέλα κε δνκεκέλν ηξφπν ηα ζηνηρεία απφ ηελ ηζηνζειίδα ηνπ εξγαζηεξίνπ. Ζ βάζε απνηειείηαη απφ ηξεηο πίλαθεο. Ο πξψηνο πίλαθαο πεξηέρεη ηα δεδνκέλα γηα ηηο δεκνζηεχζεηο ηνπ εξγαζηεξίνπ ζε πεξηνδηθά, ν δεχηεξνο πεξηέρεη δεδνκέλα γηα ηηο δεκνζηεχζεηο ζε ζπλέδξηα θαη ν ηξίηνο πεξηέρεη ηηο πεξηιήςεηο θαη απφ ηα δχν ζχλνια. Οη δχν πξψηνη πίλαθεο πεξηέρνπλ ην πξσηεχνλ θιεηδί γηα ηα δεδνκέλα ηνπ ηξίηνπ. Καηά ηελ δηάξθεηα εθηέιεζεο ηεο αλάθηεζεο ηεο ιίζηαο κεηά απφ αίηεκα ηεο εθαξκνγήο ζπλδένληαη ηα δεδνκέλα θαη ηειηθά επηζηξέθνληαη κε θσδηθνπνίεζε JSON. Γηα ηελ ππνζηήξημε ησλ αλαθνηλψζεσλ δεκηνπξγήζεθε έλα πίλαθαο κε ζηήιεο πνπ πεξηέρνπλ ην θείκελν θαη ηνλ ππεξζχλδεζκν ηεο αλαθνίλσζεο, δχν αξρείν PHP θαη κία θφξκα HTML. Ζ θφξκα HTML πξννξίδεηαη γηα ηελ εηζαγσγή ηεο λέαο αλαθνίλσζεο θαη ζπλεξγάδεηαη καδί κε έλα αξρείν PHP γηα ηελ απνζήθεπζεο ηεο ζηε βάζε δεδνκέλσλ. Σν δεχηεξν αξρείν PHP ρξεζηκνπνηείηαη γηα ηελ αλάθηεζε ηεο ιίζηαο ησλ αλαθνηλψζεσλ ζε κνξθή JSON. ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 59

Κ Δ Φ Α Λ Α Η Ο 5 : Δ Γ Υ Δ Η Ρ Η Γ Η Ο Υ Ρ Ζ Σ Ζ

ΔΓΥΔΙΡΙΓΙΟ ΥΡΗΣΗ Ζ εθαξκνγή ηνπ εξγαζηεξίνπ ζρεδηάζηεθε κε γλψκνλα ηελ ρξεζηηθφηεηα ηεο θαη ηελ επειημία κεηάδνζεο πιεξνθνξηψλ ζηνπο ελδηαθεξφκελνπο. Παξαθάησ παξνπζηάδεηαη ε ρξήζε ηεο εθαξκνγήο απηφλνκα αιιά θαη ζαλ θνκκάηη ηεο ζπλνιηθήο Γηαδηθηπαθήο χπαξμεο ηνπ εξγαζηεξίνπ. Ζ εθαξκνγή δελ παξέρεη είζνδν ζε ρξήζηεο δηφηη ν ζθνπφο ηεο είλαη ε πξνβνιή ηνπ εξγαζηεξίνπ θαη ε άκεζε ελεκέξσζε ησλ ρξεζηψλ. Έηζη ινηπφλ ε αξρηθή νζφλε δείρλεη ζηνλ ρξήζηε ηηο επηινγέο νη νπνίεο είλαη: Γεκνζηεχζεηο ζε ζπλέδξηα ή ζηελ πεξηνδηθή έθδνζε ηνπ νξγαληζκνχ ΗΔΔΔ ηηο νπνίεο ζπκκεηείραλ κέιε ηνπ εξγαζηεξίνπ. Σελ παξνπζίαζε ησλ ζηφρσλ ηνπ εξγαζηεξίνπ, ζπλνπηηθά. Σα κέιε ηνπ εξγαζηεξίνπ. Σελ εθπαηδεπηηθή δξαζηεξηφηεηα ηφζν ζε πξνπηπρηαθφ φζν θαη ζε κεηαπηπρηαθφ επίπεδν. Σνπο ηνκείο πνπ ην εξγαζηήξην εηδηθεχεηαη πάλσ ζηελ έξεπλα ηνπο. Σνπο ηξφπνπο πξφζβαζεο ζην εξγαζηήξην θαη ηελ επηθνηλσλία κε ηνλ Γηεπζπληή ηνπ Δξγαζηεξίνπ. Υξήζηκνπο ζπλδέζκνπο απφ εγρψξηα θαη μέλα παλεπηζηήκηα. Σηο αλαθνηλψζεηο ηνπ εξγαζηεξίνπ ζε πξαγκαηηθφ ρξφλν. Ζ πεξηήγεζε δηαηεξεί ηελ ινγηθή ζπλέρεηα πνπ έρεη θαη ε ηζηνζειίδα σζηέ λα ππάξρεη ζπλέπεηα κεηαμχ ησλ δχν πιαηθνξκψλ. Δηθόλα 20 (αξηζηεξά): Ιζηνζειίδα εξγαζηεξίνπ

Δηθόλα 21 (δεμηά): Αξρηθή ζειίδα εθαξκνγήο CacLab ηελ πξψηε επηινγή ηνπ κελνχ είλαη νη Γεκνζηεχζεηο ηνπ εξγαζηεξίνπ. Δδψ κε ηε κνξθή θειηψλ αλαθέξεηαη ν ηίηινο ηεο δεκνζίεπζεο, νη ζπγγξαθείο θαζψο θαη ιεπηνκέξεηο γηα ην φλνκα, ηνλ ηφπν θαη ηελ ρξνλνινγία ηνπ ζπλεδξίνπ θαη αληίζηνηρα γηα ηηο δεκνζηεχζεηο ζε πεξηνδηθά αλαγξάθεηαη ν ηίηινο ηνπ πεξηνδηθνχ, νη ζειίδεο πνπ θαηαιακβάλεη ε δεκνζίεπζε θαζψο θαη ε εκεξνκελία έθδνζεο. Παηψληαο ην εηθνλίδην ηνπ αξρείνπ pdf κπνξεί ν ρξήζηεο λα δεί θαη λα θαηαβάζεη ζηε ζπζθεπή ηνπ ην πιήξεο θείκελν ηεο δεκνζίεπζεο. Παηψληαο ζηελ πεξηνρή ABSTRACT εκθαλίδεηαη έλα λέν παξάζπξν κε ηελ πεξίιεςε ηεο δεκνζίεπζεο. Οη πξνζζήθεο πνπ γίλνληαη ζε απηή ηε ιίζηα ελεκεξψλνπλ ζε πξαγκαηηθφ ρξφλν ηελ εθαξκνγή ψζηε λα κέλεη πάληα ελεκεξσκέλε. Δηθόλα 22 (δεμηά): Η πεξίιεςε ηεο δεκνζίεπζεο εκθαληδόκελε ζε λέν παξάζπξν Δηθόλα 23 (αξηζηεξά): Οζόλε «Γεκνζηεύζεηο» Ζ επφκελε θαηά ζεηξά επηινγή είλαη ε παξνπζίαζε ηνπ εξγαζηεξίνπ φπνπ παξνπζηάδνληαη νη επηζηεκνληθνί ηνκείο κε ηνπο νπνίνπο θαηαπηάλεηαη ην εξγαζηήξην.

Δηθόλα 24: Οζόλε παξνπζίαζεο ηνπ εξγαζηεξίνπ Ζ επφκελε επηινγή πεξηέρεη ην λαζξψπηλν δπλακηθφ ηνπ εξγαζηεξίνπ πνπ απνηειείηαη απφ ηα κέιε ΓΔΠ ηνπο κεηαδηδαθηξνξηθνχο εξεπλεηέο θαζψο θαη ηνπο ππνςήθηνπο Γηδάθηνξεο. Γηα ηνλ θαζέλα ππάξρεη ην φλνκα, ε ζέζε ηνπ θαη έλα ζχλδεζκνο πξνο ηελ πξνζσπηθή ηνπ ζειίδα. Ζ κεηάβαζε ζε απηή γίλεηαη κε ην πάηεκα επάλσ ζην φλνκα ηνπ κέινπο. Παξαθάησ ζηελ ελφηεηα Δθπαηδεπηηθή Γξαζηεξηφηεηα ππάξρνπλ φια ηα πξνπηπρηαθά θαη κεηαπηπρηαθά καζήκαηα πνπ δηδάζθνληαη ππφ ηελ επίβιεςε ηνπ εξγαζηεξίνπ. Με ην πάηεκα επάλσ ζην κάζεκα κπνξεί ν ρξήζηεο λα δεί ηελ ζρεηηθή ζειίδα ζηνλ πεξηεγεηή ηεο ζπζθεπήο ηνπ. Δηθόλα 25 (δεμηά): Δθπαηδεπηηθή Γξαζηεξηόηεηα Δηθόλα 26 (αξηζηεξά): Αλζξώπηλν Γπλακηθό ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 63

Ζ επφκελε νζφλε παξνπζηάδεη ηνπο ηνκείο πνπ ην εξγαζηήξην εηδηθεπεηαη πάλσ ζε εξεπλεηηθέο δξαζηεξηφηεηεο, ελψ νη ρξήζηκνη ζχλδεζκνη ζε επφκελε νζφλε έρνπλ ηνπο ζπλδέζκνπο γηα ηηο ζειίδεο Διιεληθψλ θαη μέλσλ παλεπηζηεκίσλ. Δηθόλα 27 (δεμηά): Υξήζηκνη ύλδεζκνη Δηθόλα 28 (αξηζηεξά): Δξεπλεηηθή Γξαζηεξηόηεηα Όηαλ ν ρξήζηεο επηιέμεη ηελ ελφηεηα Γηεχζπλζε νδεγείηαη ζηελ νζφλε φπνπ ππάξρεη ην φλνκα θαη ν ηίηινο ηνπ Γηεπζπληή ηνπ εξγαζηεξίνπ θαη παηψληαο ην δηπιαλφ θνπκπί κπνξεί λα ζηείιεη e-mail ψζηε λα επηθνηλσλήζεη κε ηνλ θαζεγεηή. Με ηελ ελέξγεηα απηή ην ιεηηνπξγηθφ δεηάεη απφ ηνλ ρξήζηε λα επηιέμεη κηα απφ ηηο εθαξκνγέο πνπ ρξεζηκνπνηνχληαη γηα ηελ δηαρείξηζε ηνπ ειεθηξνληθνχ ηαρπδξνκείνπ ηνπ ρξήζηε. Αθξηβψο απφ θάησ ππάξρεη ε ηαρπδξνκηθή δηεχζπλζε ηνπ εξγαζηεξίνπ. Κάησ απφ ηε δηεχζπλζε κπνξεί ν ρξήζηεο λα παηήζεη ζην θνπκπί Υάξηεο θαη λα κεηαβεί ζε θάπνηα εθαξγκνγή ραξηψλ πνπ έρεη ήδε εγθαηαζηήζεη θαη λα πάξεη νδεγίεο γηα ηελ κεηάβαζε ηνπ.

Δηθόλα 29: Γηεύζπλζε ηνπ εξγαζηεξίνπ Ζ ηειεπηαία ελφηεηα είλαη νη αλαθνηλψζεηο φπνπ ζε πξαγκαηηθφ ρξφλν κπνξεί ν ρξήζηεο λα έρεη πξνζβαζε ζε απηέο. Πξνθεηκέλνπ, λα κπνξεί λα ρξεζηκνπνηεζεί απηή ε ιεηηνπξγία εχθνια θαη γξήγνξα έρεη δεκηνπξγεζεί κηα ζειίδα ζηε δηεχζπλζε http://tmatias.webpages.auth.gr/announcement.html φπνπ κπνξνχλ ηα κέιε ηνπ εξγαζηεξίνπ λα ρξεζηκνπνηνχλ γηα λα επηθνηλσλνχλ άκεζα κε ηνπο ρξήζηεο ηεο εθαξκνγήο. ηε ζειίδα ππάξρεη κία θφξκα html κε ηξία πεδία. Σν πξψην είλαη γηα ηελ εηζαγσγή ηνπ θσδηθνχ ψζηε λα κελ κπνξεί θάπνηνο λα αλεβάζεη κία δηθή ηνπ αλαθνίλσζε ζηελ εθαξκνγή ηνπ εξγαζηεξίνπ. Παξαθάησ ππάξρεη πξναηξεηηθά έλα πεδίν γηα ηνλ ζχλδεζκν πνπ κπνξεί λα νδεγείηαη ν ρξήζηεο θαη έλα πεδίν γηα ηελ εηζαγσγή ηνπ θπξίσο θεηκέλνπ ηεο αλαθνίλσζεο. Δηθόλα 30 (δεμηά): Φόξκα εηζαγσγήο λέαο αλαθνίλσζεο Δηθόλα 31 (αξηζηεξά): Αλαθνηλώζεηο ΑΝΑΠΣΤΞΖ ΔΦΑΡΜΟΓΖ ANDROID CACLAB 65