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

Προγραμματισμός σε
Android
Τσανταρλιώτης Παρασκευάς
Δεκέμβριος 2013
Τι θα δούμε





Τι είναι το Android
Γιατί μας τραβά την προσοχή
Διαθέσιμα Εργαλεία
Δομή μιας εφαρμογής
Συμβουλές
Android
• Λειτουργικό Σύστημα για κινητές συσκευές
• Βασισμένο στον πυρήνα του Linux
• Αναπτύχθηκε από την Google και αργότερα από την
Open Handset Alliance
• Πρώτη παρουσίαση 5/11/2007
• Open Source(!!!)
 power to the developer
Εκδόσεις του Android
Version
Codename
API
Distribution
2.2
Froyo
8
1.6%
2.3.3 –
2.3.7
GingerBread
10
24.1%
3.2
HoneyComb
13
0.1%
4.0.3 –
4.0.4
Ice Cream
Sandwich
15
18.6%
4.1.x
Jelly Bean
16
37.4%
4.2.x
17
12.9%
4.3
18
4.2%
19
1.1%
4.4
KitKat
Data collected during a 7-day period ending on December 2, 2013.
Any versions with less than 0.1% distribution are not shown.
Android Architecture
Γιατί Android; (1)
• Δυνατή και καλά σχεδιασμένη πλατφόρμα
• Εύκολη και γρήγορη ανάπτυξη εφαρμογών
 ποικιλία διαθέσιμων εργαλείων
 υποστήριξη από αρκετές κοινότητες
• Γρήγορα αναπτυσόμενη αγορά
 1.000.000+ νέες συσκευές κάθε μέρα
 1,5 δισ. λήψεις εφαρμογών κάθε μήνα
Γιατί Android; (2)
• Διανομή μέσω του Google Play
 δυνατότητα πώλησης σε 134 χώρες
 διάφοροι τρόποι πληρωμής
 προοπτική ανάδειξης των εφαρμογών
• Διάφοροι τρόποι πώλησης της εφαρμογής
 δωρεάν
 δωρεάν, με δυνατότητα in-app billing
 επι πληρωμή
Γλώσσες Προγραμματισμού
• Java, μέσω του Android SDK
 “επίσημη” γλώσσα προγραμματισμού
• C & C++, μέσω του Android NDK
 συνίσταται για υλοποίηση μέρους των εφαρμογών
 πιθανή βελτίωση απόδοσης
 πάντα αύξηση της περιπλοκότητας
• Javascript, HTML5 & CSS3, μέσω του PhoneGap
 crossplatform
 εφαρμογές υβρίδια
Διαθέσιμα IDE
ADT Bundle ή Eclipse & ADT plugin
Android Studio (IntelliJ IDEA)
Netbeans & Android plugin
Eclipse IDE & ADT plugin
• Υποστηρίζεται επίσημα από την Google
 το ADT δεν είναι opensource 
• Απαιτείται το JDK και το Android SDK
 κατα προτίμηση την τελευταία εκδοση του SDK
• Παρέχει διάφορα εργαλεία, όπως
 Emulator, για την δοκιμή εφαρμογών
 logcat, χρήσιμο εργαλείο για debugging
 Lint, ελέγχει για πιθανά bugs
 και αρκετά άλλα...
Δομή Εφαρμογής
•
AndroidManifest.xml
 υπάρχει σε κάθε εφαρμογή
 περιέχει σημαντικές πληροφορίες
• Resources (/res)
 περιέχει εξωτερικά στοιχεία όπως εικόνες, strings, κ.α.
 είναι οργανωμένα σε αρχεία .xml
 η κλάση R (/gen) περιέχει IDs για τα resources
•
Source (/src)
 περιέχει τα αρχεία .java με τον κώδικα
Eclipse
IDE
&
ADT
plugin
Διάφορα διαθέσιμα
Νέο..
εργαλεία.
Editor
Βλέπουμε τα
project που έχουμε
δημιουργήσει.
Eclipse IDE & ADT plugin
Android Emulator
LogCat
Application Components (1)
• Activities







αντιπροσωπεύει την εικόνα που βλέπουμε στην οθόνη
αλληλεπιδρά με τον χρήστη
η υλοποίηση της διεπαφής γίνεται με XML αρχεία
μία εφαρμογή περιέχει αρκετά activities
είναι μεταξύ τους ανεξάρτητα
κάθε activity δηλώνεται στο AndroidManifest.xml
έχει τον δικό της κύκλο ζωής
Activity Lifecycle
Application Components (2)
•
Services
 τρέχει στο παρασκήνιο (π.χ. long-running operations)
 δεν προσφέρει γραφική διεπαφή
• Broadcast Receivers
 διαχειρίση επικοινωνίας μεταξύ συστήματος και εφαρμογών
 ανταποκρίνονται σε broadcast messages
• Content Providers
 διαχειρίζονται θέματα δεδομένων
Συμβουλές
• Ξεκινάμε με απλές εφαρμογές
• Πρώτα σχεδιάζουμε την διεπαφή και μετά γράφουμε
κώδικα
• Επιλέγουμε κατάλληλες βιβλιοθήκες
• Χρησιμοποιούμε τα εργαλεία που σας δίνονται
• Χρησιμοποιούμε shortcut keys του IDE
Χρήσιμα Links
• Android Developers
http://developer.android.com
• XDA Developers
http://forum.xda-developers.com/android
• Stack Overflow
http://stackoverflow.com
• και πολλά άλλα...
Ευχαριστώ για την προσοχή σας.
Ερωτήσεις