Download pdf - Android

Transcript
Page 1: Android

ANDROID Προγραμματισμός Εφαρμογών

Παναγιώτης Κρητιώτης ΑΜ 1607

Page 2: Android

2

Περιεχόμενα●Εισαγωγή

– Βασικά Στοιχεία

– Χαρακτηριστικά

– Αρχιτεκτονική

●Εργαλεία Προγραμματισμού

– Eclipse IDE– Android SDK - ADT Plugin

– Προσομοιωτής - Χαρακτηριστικά

●Δομή Android Project

– Βασικά Δομικά Στοιχεία

●Δημιουργία Απλής Εφαρμογής

– Γραφική Διεπαφή – XML - Layouts

– Activities – Intends

Page 3: Android

3

Εισαγωγή Χαρακτηριστικά-Δυνατότητες-Αρχιτεκτονική

Page 4: Android

4

Εισαγωγή

●Το Android είναι λειτουργικό σύστημα για συσκευές

κινητής τηλεφωνίας

●1η Παρουσίαση: 5 Νοεμβρίου 2007

●Νοέμβριος 2011 : 200,000,000 ενεργοποιήσεις

●Google - Open Handset Alliance

●Τρέχει στον πυρήνα του Linux

●Ελέυθερο – Ανοικτό Λογισμικό

Page 5: Android

5

Προγραμματισμός στο Android

●Android SDK : Απαραίτητα εργαλεία και APIS για την δημιουργία εφαρμογών

●Γλώσσα προγραμματισμού Java και χρήση έτοιμων βιβλιοθηκών από την Google

●Γραφική Διεπαφή - Γλώσσα XML

●Εύκολη επαναχρησιμοποίηση κώδικα – πακέτων

●Υποστήριξη μεγάλου μέρος κλάσεων της Java

– Όχι όλων!●Έργαλεία Δημιουργίας Εφαρμογών

– Eclipse IDE + Android SDK +ADT Plugin for Eclipse

Page 6: Android

6

●Χαρακτηριστικά - Δυνατότητες

●Ενσωματωμένος WebBrowser

●Βιβλιοθήκες 2D Γραφικών- 3D Γραφικά σε OpenGL 1.0

●SQLite για αποθήκευση δεδομένων

●Υποστήριξη όλων των σύγχρονων μορφών Ήχου Εικόνας Video

●Τηλεφωνία GSM

●Bluetooth, EDGE, 3G, and WiFi

●Camera, GPS

Page 7: Android

7

Αρχιτεκτονική Android

Page 8: Android

8

Απαιτούμενα ΕργαλείαEclipse- Android SDK- ADT

Page 9: Android

9

Eclipse●Ολοκληρωμένο Περιβάλλον Προγραμματισμού σε Java

●Ελεύθερο Λογισμικό

●Προτεινόμενο Περιβάλλον Εργασίας από Google Developers

●Απαιτεί το Java JDK

●Πολύ απλή εγκατάσταση σε Linux και Windows

– eclipse.org/downloads●Google ADT Android Plugin

Page 10: Android

10

Android SDK

●Κύριο Πακέτο για την Έναρξη Δημιουργιας Εφαρμογών

●Αποτελείται από APIS

– Υποστήριξη διαφορετικών εκδόσεων του Android

– Παροχή σε Επιπλέον Υπηρεσίες (Google Apis : maps, websearch...)

– Για ειδικές συσκευές /εταιρείες(EDK Sony Ericksson,Galaxy Tab)

●Απλή εγκατάσταση σε Windows και Linux

●Σύνδεση στο Eclipse

Page 11: Android

11

Android Development Tools (ADT)

●Plugin από την Google για το Eclipse IDE

●Πολύ Ισχυρό Εργαλείο Προγραμματισμού για το Android – απαραίτητο για μεγάλης κλίμακας λογισμικό

●Γρήγορη εγκατάσταση Android Project για άμεση έναρξη προγραμματισμού

●Ευκολία χρήσης επιμέρους δυνατοτήτων και υπηρεσιών

●Παρέχει απλό αυτοματοποιημένο εργαλείο κατασκευής γραφικής διεπαφής σε XML

Page 12: Android

12

Προσομοιωτής

●Παρέχεται από το ADT plugin στο Eclipse

●Προσομοίωση κινητού Android σε όποια έκδοση θέλει ο προγραμματιστής

●Μερικές λειτουργίες(SMS-GPS-WIFI) δεν μπορούν να ελεγχθούν

Page 13: Android

13

Android ProjectΔομή Project - Λειτουργίες

Page 14: Android

14

Δημιουργία Project●Αφού έχουμε εγκαταστήσει όλα τα απαραίτητα προγράμματα μπορούμε να δημιουργήσουμε το Project για τη δημιουργία της εφαρμογής.

●Επιλέγοντας File->new-> Android Project και αφού επιλέξουμε το όνομα εμφανίζεται αυτό:

---Επιλογή Έκδοσης Λογισμικού που περιέχει τις λειτουργίες που θα χρησιμοποιήσουμε

---Επιλογή Ονόματος κύριας κλάσης και ονόματος πακέτου και επιλογή ελάχιστης επιθυμητής έκδοσης λειτουργήσει η συσκευή

Page 15: Android

15

Δομή Project (1/3)●Αφού δημιουργηθεί το Project στα αριστερά εμφανίζεται η δομή αρχείων που βλέπετε

●Src: Σε αυτό το φάκελο βρίσκονται όλα τα αρχεία στα οποία εκτελούμε κώδικα σε Java. Αυτά μπορεί να είναι απλές δηλωμένες κλάσεις ή ολόκληρες λειτουργίες

●Gen: Αυτό περιέχει το αρχείο R.* το οποίο καταγράφεται αυτοματοποιημένα και περιέχει τα αντικείμενα XML που χρησιμοποιούνται και τα activities

Page 16: Android

16

Δομή Project (2/3)●Res:Σ'αυτό το φάκελο περιέχονται όλα τα αρχεία που αφορούν εικόνα και ήχο και ότι έχει να κάνει με τη γραφική διεπαφή

– Drawables: Εικόνες Ανάλογα με την ποιότητα/μέγεθός τους

– Layout: Οι γραφικές διεπαφές που έχουμε φτιάξει για κάθε περίπτωση που θέλουμε

– Values: Μεταβλητές που χρησιμοποιούνται στα αρχεία xml.

Page 17: Android

17

Δομή Project (3/3)

●AndroidManifest.xml: Από τα πιο σημαντικά αρχεία όλου του Project. Είναι το αρχείο το οποίο ζητά από τη συσκευή κάποιες άδειες(permissions) για ορισμένες βασικές λειτουργίες της εφαρμογής και τις ενέργειες (activities) της εφαρμογής μας. Όταν δημιουργούμε μια νέα ενέργεια ή εκτελούμε κάποια λειτουργία πρέπει να την καθορίζουμε σ'αυτό το αρχείο.πχ άδεια χρήσης διαδικτύου,άδεια χρήσης GPS.

●Άλλα: Ο χρήστης μπορεί να εισάγει και άλλες εξωτερικές βιβλιοθήκες οι οποίες προστίθενται στη συγκεκριμένη δομή.

πχ.sftpOnly

Page 18: Android

18

ΠαράδειγμαAνταλλαγή μηνυμάτων με επεξεργασία απομακρυσμένου αρχείου σε ftp server

Page 19: Android

19

Σκοπός●Θα υλοποιήσουμε μία πολύ απλή εφαρμογή η οποία θα περιέχει 3 πλήκτρα “ΑΠΟΣΤΟΛΗ”,”ΛΗΨΗ”,”ΕΞΟΔΟΣ” και θα αποστέλνει μηνύματα και θα λαμβάνει το μήνυμα που έστειλε ανάλογα με την επιλογή του.

●Η υλοποίηση θα γίνει ως εξής:

– Γραφική Διεπαφή

• Δήλωση Μεταβλητών

• Κατασκευή Γραφικής διεπαφής

– Υλοποίηση Εφαρμογής

• Σύνδεση Διεπαφής με κώδικα

• Υλοποίηση Λειτουργιών

Page 20: Android

20

Γραφική Διεπαφή

Page 21: Android

21

Γραφική ΔιεπαφήΔήλωση Μεταβλητών●Για την γραφική διεπαφή θα χρειαστούμε κάποιες μεταβλητές οι οποίες θα περιέχουν τις συμβολοσειρές για τα ονόματα στα πλήκτρα, τα χρώματα και ότι άλλο χρεαστούμε.

●Η δήλωσή τους γίνεται στο αρχείο res->values->strings.xml. Η δήλωση γίνεται όπως φαίνεται πιο κάτω.

●Τύποι: string,color,drawble,dimension,integer,array

Page 22: Android

22

Γραφική ΔιεπαφήΔημιουργία αντικειμένων

●Για τη δημιουργία γραφικής διεπαφής υπάρχουν 2 τρόποι

– Gui Builder .Δεν είναι αρκετά αναπτυγμένος ακόμη ώστε να προσφέρει WYGIWYW αλλά είναι πολύ χρήσιμο εργαλείο.

– Προγραμματισμός σε XML●Για την υλοποίηση λοιπόν της αρχικής μας οθόνης θα πρέπει να επεξεργαστούμε το αρχείο res->layouts->main.xml το οποίο όπως θα δούμε αργότερα καλείται κατά την δημιουργία της κύριας κλάσης μας.

Page 23: Android

23

Γραφική ΔιεπαφήΑρχική Οθόνη

Page 24: Android

24

Γραφική ΔιεπαφήΑρχική Οθόνη

Page 25: Android

25

Receive.xml

Page 26: Android

26

Send.xml

Page 27: Android

27

Προσομοίωση

Page 28: Android

28

ΥλοποίησηΔημιουργία activities,intents,λειτουργιών

Page 29: Android

29

Κύρια Κλάση

● Αυτή είναι η κύρια κλάση μας όπως έχει δημιουργηθεί αυτόματα και οποία περιέχει τη συνάρτηση onCreate().Η συνάρτηση αυτή όπως φαίνεται καλείται με την δημιουργία της κλάσης και αφού αυτή αποτελεί την αρχική μας κλάση καλείται στην αρχή του προγράμματος. Όπως βλέπετε καλεί τη setContentView() για να εμφανίσει τη διεπαφή που σχεδιάσαμε στο main.xml

●Γενικά στο Android ο προγραμματιστής δεν έχει έλεγχο της κατάστασης του συστήματος και του activity που εκτελείται. Η κατάσταση ελέγχεται από το σύστημα. Γιαυτό το λόγο όταν γίνεται αλλαγή κατάστασης καλούνται κάποιες συναρτήσεις οι οποίες πρέπει να υπερφορτωθούν αν θέλουμε να εκτελεστεί κάτι διαφορετικό.

Page 30: Android

30

Κύκλος Ζωής Activity

Κάθε ενέργεια αποτελεί μια οθόνη στον χρήστη. Οι εφαρμογές μπορούν να ελέγξουν τις διαφορετικές φάσεις που βρίσκονται στο πρόγραμμα

Page 31: Android

31

Κύρια κλάσηViews– Click Listeners

●Για το χειρισμό

κάθε πλήκτρου

θα χρειαστούμε

αντικείμενα της

κλάσης View στα οποία μπορεί να κληθεί η

συνάρτηση setOnClickListener() η οποία ανάλογα

με το id του αντικειμένου περνάει ως παράμετρο

στην onClick() το id για την αναγνώρισή του.

Page 32: Android

32

Κύρια κλάσηonClick()- Intents

● Τώρα λοιπόν λαμβάνουμε τα κλικς των αντικειμένων και μένει να τα υλοποιήσουμε.

● Υλοποιούμε την onClick() η οποία καλείται όταν πατήσει κλικ ο χρήστης.

● Για κάθε κλικ παίρνουμε το

View του με βάση το id και

ανάλογα με αυτό εκτελούμε τι

θέλουμε να κάνουμε

Page 33: Android

33

Κύρια κλάσηIntents

● Για κάθε ένα πλήκτρο που έχει επιλεγεί δημιουργούμε ένα αντικείμενο τύπου Intent που το αρχικοποιούμε στην κλάση που θέλουμε να το προωθήσουμε και ξεκινάμε τη νέα ενέργεια που θέλουμε με την startActivity();

●Intents:

Είναι μηχανισμοί που περιγράφουν συγκεκριμένη ενέργεια. Γενικά

στο προγραμματισμό με Android

χρησιμοποιούνται πολύ συχνά. Όποτε

χρειάζεται μια νέα λειτουργία

χρησιμοποιύμε intent και μπορούμε

να υπερφορτώσουμε κάποια ήδη υπάρχοντα όπως και στα activities

Page 34: Android

34

Κύρια κλάση

Page 35: Android

35

Κλάση Receive

Page 36: Android

36

Υλοποίηση κλάσης ReceiveΣυνάρτηση FileUploadDownload.getData()

Page 37: Android

37

Κλάση Send

Page 38: Android

38

Κλάση SendYλοποίηση simpleUploadtoFTP.up()

Page 39: Android

39

AndroidManifest.xml

Page 40: Android

40

Προσομοίωση Send

Page 41: Android

41

Προσομοίωση Send

Page 42: Android

42

Προσομοίωση Receive

Page 43: Android

43

ΤΕΛΟΣ


Recommended