Διάλ ε ξη 10 Android και Threads AsyncTasks Handlers SQLite Android και Web Services Android Design Patterns Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Ταχύτητα, Απλότητα & Αξιοπιστία. Αρχιτεκτονική Μηχανισμοί Αυτοελέγχου Συνδεσιμότητα Περιβάλλον Εργασίας Πληροφορίες Σχήματος Report Builder Import Manager.
Advertisements

ΔΙΑΓΡΑΜΜΑΤΑ ΥΛΟΠΟΙΗΣΗΣ Διαγράμματα Συστατικών Λογισμικού (Component Diagrams) Διαγράμματα Ανάπτυξης (Deployment Diagrams)
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
ΣXΕΔΙΑΣΜΟΣ ΣΥΣΤΗΜΑΤΟΣ ΚΛΕΙΩ Ι.Ν.Β.Ι.Σ. Ιανουάριος 2004.
Jetspeed Open Source Εργαλείο για την Δημιουργία Information Portals Πανεπιστήμιο Αιγαίου Βιορρές Νίκος.
Πανεπιστήμιο Αιγαίου Σχολή Επιστημών της Διοίκησης Τμήμα Μηχανικών Οικονομίας & Διοίκησης Computer applications in the modern enterprise Γ. Κούζας, PhD.
Νήματα στη Java Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία
Copyright ©: SAMSUNG & Samsung Hope for Youth. Με επιφύλαξη κάθε νόμιμου δικαιώματος Εκπαιδευτικό υλικό Λογισμικό: Δημιουργία εφαρμογών Επίπεδο.
Κεφάλαιο 1ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΚΕΝΤΡΟ ΠΟΛΙΤΙΣΜΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΝΣΤΙΤΟΥΤΟ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΤΕ 21,23/2/2005Πληροφοριακή σχεδίαση για πολιτισμική τεκμηρίωση και διαλειτουργικότητα1 Τεκμηρίωση.
ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ – ΜΗΧΑΝΗΣ Εαρινό Εξάμηνο 2007 Παρουσίαση Εργαλείου Ανάπτυξης JBuilder Τσουρού Σταυρούλα, ΑΜ 708 Μαδεμλής Ιωάννης, ΑΜ 669.
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
Message Passing Interface (MPI)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Android Game Κωνταντίνου Ανδρέας Μπέης Πασχάλης Χαραλάμπους Πάμπος Περιεχόμενο Παρουσίασης Android OS SmartLab Marble Game.
 Αυδίκου Χριστίνα  Γιουμούκης Παναγιώτης  Κιντσάκης Θάνος  Πάπιστας Γιάννης.
Φροντηστήριο Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Eργαλεία.
24/11/2003Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
Web Services Υπηρεσίες διαδικτύου
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
Torque Game Engine - #02 Κώστας Καρπούζης (kkarpou)
ΕΡΓΑΛΕΙΟ ΠΑΡΑΓΩΓΗΣ ΠΕΡΙΕΧΟΜΕΝΟΥ ΣΕ WEB SITE (CONTENT MANAGEMENT TOOL)
Λειτουργικά συστήματα ΙΙ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
Entity-Relationship Παραδείγματα Πληροφοριακά Συστήματα και Βάσεις Δεδομένων Φροντιστήριο 1 Δαμιανός Χατζηαντωνίου.
Κεφάλαιο 11.2 Sockets.
Πρώτο Παραδοτέο Επισκόπηση Network Monitoring Network Tools Επισκόπηση 1 ου Παραδοτέου References 1 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού.
Message Passing Interface (MPI) Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων Αθήνα, Δεκέμβριος 2002.
Ποιότητα Λογισμικού Ενότητα 9: Έλεγχος λειτουργιών με το Apache JMeter. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής,
Εισαγωγή σε Android Δομή αρχείων σε Android Projects
PHP/MYSQL ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΟΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ ΤΥΡΟΛΟΓΟΥ ΓΛΥΚΕΡΙΑ ΑΜ 875 ΡΙΖΟΥ ΔΕΣΠΟΙΝΑ ΑΜ 816.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
Network Inference Μπαλάφα Κασιανή - Αδριανή Πλασταρά Κατερίνα.
ΟΡΙΣΜΟΣ ΣΥΜΠΕΡΙΦΟΡΑΣ ΔΙΑΓΡΑΜΜΑTA ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Tomcat Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
Κεφάλαιο 4 Εξαιρέσεις. Όταν σε ένα πρόγραμμα συμβεί κάποιο λάθος, ο κώδικας εγείρει (throw) μία εξαίρεση. Στη Java oι εξαιρέσεις εκπροσωπούνται από αντικείμενα.
FEDORA ARCHITECTURE1 Αρχιτεκτονικές Ψηφιακών Βιβλιοθηκών FEDORA.
Διεργασίες.
Κεφάλαιο 3 Τύποι Δεδομένων - Τελεστές. Πρωτογενείς τύποι δεδομένων: int, float, double, chars ΤύποςΌνομαΜέγεθος byte 8-bit signed, short 16-bit.
ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τμήμα Μηχανικών Πληροφορικής ΤΕ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Κατασκευή Ιστοσελίδας Χρηματοοικονομικού.
Μπόλαρη Αγγελικη(1451) Επιβλέπων Βολογιαννίδης Σταύρος ΑΤΕΙ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ Σέρρες 2013.
Διάλεξη 1 Εισαγωγή Επισκόπηση άσκησης Διάλεξη 1 1 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο
ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ ΝΊΚΟΣ ΠΑΠΑΔΆΚΗΣ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ.
Παρουσίαση Θερινού Σχολείου Αριστεία ΕΛ/ΛΑΚ ΤΕΙ Αθήνας.
2 Μικρές Επιχειρήσεις Μεσαίες Επιχειρήσεις Μεγάλες Επιχειρήσεις Καταναλωτές Κατηγορία Πελατών Ολοκληρωμένες Λύσεις Servers Γενικής Χρήσης Αριθμός Χρηστών.
Δεύτερο Παραδοτέο Επισκόπηση Αθροιστής Web Services Εσωτερική Λειτουργικότητα 1 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο.
ΖΑΚΑΛΚΑ ΖΩΗ ΑΕΜ: 3128 Επιβλέποντες Καθηγητές: Δρ. Σπυρίδων Α. Καζαρλής, Δρ. Κωνσταντίνος Σ. Χειλάς.
Σημαντικές Κλάσεις του Android Fragments ViewPager TabHost
Βάσεις Δεδομένων Ι 4η διάλεξη
ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανδρέου Βασίλης.
Κατανεμημένα Συστήματα
Java DataBase Connectivity
Κεφάλαιο 10: Υπηρεσίες και εφαρμογές Διαδικτύου
Εισαγωγή Επισκόπηση άσκησης
Εισαγωγή σε Android Δομή αρχείων σε Android Projects
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ)
ΥΠΗΡΕΣΙΕΣ ΚΑΙ ΕΦΑΡΜΟΓΕΣ ΔΙΑΔΙΚΤΥΟΥ 10.1 Υπηρεσίες Διαδικτύου
Γιώργος Θάνος Παρασκευή 5 Δεκεμβρίου 2008
Ομοιόμορφη Αποδοτική Διαχείριση του Ταυτοχρονισμού των Εξυπηρετητών
Λύσεις Ασφάλειας στο Επίπεδο Διασύνδεσης
Activity Diagrams.
Διπλωματική Εργασία για το Μεταπτυχιακό Δίπλωμα Ειδίκευσης
Web Services στη C# Εργαστήριο 3
Κεφάλαιο 10 Streams.
Υπηρεσίες και εφαρμογές Διαδικτύου
Συγγραφέας: Ζαγκότας Στεφανος Επιβλέπων Καθηγητής: Ούτσιος Ευάγγελος
Μεταγράφημα παρουσίασης:

Διάλ ε ξη 10 Android και Threads AsyncTasks Handlers SQLite Android και Web Services Android Design Patterns Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο Διάλεξη 10 1

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο  Android και Threads  AsyncTasks  Handlers  SQLite  Android και Web Services  Android Design Patterns 2

Android και Threads  Εκκίνηση εφαρμογής  εκκίνηση νήματος γνωστό ως main ή UI thread  Κανόνες που διέπουν το Android single thread model 1.To U Ι thread δεν πρέπει να μπλοκάρεται 2.Αποφυγή πρόσβασης στο Android UI toolkit από άλλα thread εκτός του UI thread  UI thread Υπεύθυνο για την αποστολή γεγονότων συμπεριλαμβανομένων και των drawing events Παράδειγμα:  Click ένα κουμπί  το UI thread αποστέλλει το γεγονός αυτό στο αντίστοιχο widget  το οποίο θέτει τη press state του συγκεκριμένου κουμπιού σε true και προσθέτει στην ουρά γεγονότων μία αίτηση  Τo UI thread αφαιρεί αυτή την αίτηση και ενημερώνει το widget να κάνει redraw  το widget έκτελεί το redraw και η αλλαγή φαίνεται στο χρήστη. Αποφυγή εκτέλεσης χρονοβόρων διαδικασιών σε αυτό το thread  Θα μπλοκάρει όλη η διεπαφή,  Ο χρήστης νομίζει ότι η εφαρμογή κολλάει ή έχει κρεμάσει  Αν το νήμα μπλοκάρει για μεγάλο χρονικό διάστημα, ο χρήστης ενημερώνεται από το λειτουργικό σύστημα ότι η εφαρμογή δεν ανταποκρίνεται. Πχ: Μη ανταπόκριση σε ένα input event (π.χ. πάτημα ενός κουμπιού) εντός 5 δευτερολέπτων Μη ολοκλήρωση των λειτουργιών ενός BroadcastReceiver εντός 10 δευτερολέπτων Διάλεξη 10 3

Android και Threads  Μέθοδοι αποφυγής των προβλημάτων αυτών Χρήση πολλαπλών Threads  Παραβίαση του single thread model το οποίο ορίζει ότι το Android UI toolkit το χειρίζεται μόνο το UI thread  Μπορούν να χρησιμοποιηθούν για άλλες ενέργειες που δεν αλληλεπιδρούν με το UI (worker threads) Τρόποι πρόσβασης στο UI από άλλα threads  Περίπλοκες διαδικασίες που κάνουν περίπλοκο τον κώδικα  Παραδείγματα Activity.runOnUiThread(Runnable r) View.post(Runnable) View.postDelayed(Runnable) Handler Χρήση των AsyncTasks  Αναλαμβάνει να διαχειριστεί τα threads για τον χρήστη Διάλεξη 10 4

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο  Android και Threads  AsyncTasks  Handlers  SQLite  Android και Web Services  Android Design Patterns 5 Διάλεξη 10

AsyncTask  Δημιουργία κλάσης που κάνει extend την AsyncTask κλάση  Το instance του αντικειμένου πρέπει να δημιουργηθεί στο Ui thread  Το ΑsyncTask εκτελείται μία φορά ΜΟΝΟ  Χρήσιμες μέθοδοι για override doInBackground()  εκτελείται αυτόματα σε νέο thread onPreExecute(), onPostExecute() and onProgressUpdate() γίνονται invoke από το Ui thread, επιτρέποντας έτστι τη πρόσβαση στο Android UI Toolkit Αυτό που επιστρέφει η doInBackground() αποστέλλεται στην onPostExecute() Καλώντας την publishProgress() οποιαδήποτε στιγμή στην doInBackground() εκτελείται η onProgressUpdate() στο UI thread Το κάθε task μπορεί να ακυρωθεί οποιαδήποτε στιγμή από οποιοδήποτε Thread  Παράδειγμα: Διάλεξη 10 6

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο  Android και Threads  AsyncTasks  Handlers  SQLite  Android και Web Services  Android Design Patterns 7 Διάλεξη 10

Handler class  Επιτρέπουν την αποστολή και διαχείριση Μessage και Runnable αντικειμένων που σχετίζονται με την ουρά μηνυμάτων ενός νήματος  Κάθε Handler instance συσχετίζεται με ένα νήμα (και την αντίστοιχη ουρά μηνυμάτων).  Η συσχέτιση αυτή γίνεται κατά τη δημιουργία του Handler instance, οπότε αυτό είναι πλέον «συνδεδεμένο» με το νήμα που το δημιούργησε  Σε αυτό το νήμα θα αποστέλλει Message και Runnable αντικείμενα.  Τα μηνύματα τοποθετούνται στην ουρά μηνυμάτων και εκτελούνται όταν βγουν από αυτή. Διάλεξη 10 8

Handler class  Τα Handlers είναι χρήσιμα όταν πρέπει: Να χρονοπρογραμματίσουμε την εκτέλεση Messages ή Runnables κάποια στιγμή στο μέλλον Να προσθέσουμε μία ενέργεια που θα εκτελεστεί σε άλλο thread  Βασικές μέθοδοι για scheduling Messages ή Runnables post(Runnable), postAtTime(Runnable, long), postDelayed(Runnable, long), sendEmptyMessage(int), sendMessage(Message), sendMessageAtTime(Message, long), sendMessageDelayed(Message, long) handleMessage(Message)  Ένας Handler μπορεί να αναλάβει την επικοινωνία ανάμεσα στο mainThread που είναι υπεύθυνο για τη διαχείριση των top-level αντικειμένων (activities, broadcast receivers κλπ.) με τα υπόλοιπα threads Διάλεξη 10 9 Τοποθετούν Runnable objects ώστε να κληθούν από την ουρά μηνυμάτων όταν ληφθούν Τοποθετούν Message objects που περιέχουν δεδομένα προς επεξεργασία Υλοποιείται από τις υποκλάσεις του Handler και καλείται για να επεξεργαστεί τα δεδομένα που στέλνουν οι sendMessage

Service vs Thread vs IntentService vs AsyncTask ServiceThreadIntentServiceAsyncTask When to use ? Task with no UI, but shouldn't be too long. Use threads within service for long tasks. - Long task in general. - For tasks in parallel use Multiple threads (traditional mechanisms) -Long task usually with no communication to main thread. - If communication is required, can use main thread handler or broadcast intents - When callbacks are needed (Intent triggered tasks). - Small task having to communicate with main thread. - For tasks in parallel use multiple instances OR Executor TriggerCall to method onStartService()Thread start() methodIntentCall to method execute() Triggered From (thread)Any threadAny Thread Main Thread (Intent is received on main thread and then worker thread is spawed) Main Thread Runs On (thread)Main ThreadIts own threadSeparate worker thread Worker thread. However, Main thread methods may be invoked in between to publish progress. Limitations / Drawbacks May block main thread- Manual thread management - Code may become difficult to read - Cannot run tasks in parallel. - Multiple intents are queued on the same worker thread. - one instance can only be executed once (hence cannot run in a loop) - Must be created and executed from the Main thread Διάλεξη 7 10

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο  Android και Threads  AsyncTasks  Handlers  SQLite  Android και Web Services  Android Design Patterns 11 Διάλεξη 10

SQLite Database  Open Source Database ενσωματωμένη στην πλατφόρμα Android  Υποστηρίζει λειτουργικότητα σχεσιακών βάσεων δεδομένων Συντακτικό SQL Transactions Prepared Statements  Απαιτεί ελάχιστη μνήμη (~250 Kbytes)  Υποστηρίζει του τύπους TEXT (ανάλογο του String της Java) INTEGER (ανάλογο του long της Java) REAL (ανάλογο του double στη Java) Όλοι οι άλλοι τύποι πρέπει να μετατραπούν σε κάποιον από τους παραπάνω για να αποθηκευθούν στην ΒΔ  Κάθε εφαρμογή μπορεί να χρησιμοποιεί τη δική της Βάση Δεδομένων Path: /DATA/data/APP_NAME/databases/FILENAME  Με χρήση της Java μπορούμε να δημιουργήσουμε, να ανοίξουμε μια βάση, να δημιουργήσουμε πίνακες στη βάση, να εισάγουμε και να εξάγουμε δεδομένα προς και από τους πίνακες. 12 Διάλεξη 10

SQLite - Κλάση SQLiteDatabase  Η κλάση SQLiteDatabase αποτελεί τη βασική κλάση για την αλληλεπίδραση με τη βάση SQLite.  Παρέχει μεθόδους για άνοιγμα και κλείσιμο της βάσης  Παρέχει μεθόδους για εισαγωγή, διαγραφή και ενημέρωση δεδομένων στη βάση Μέθοδοι insert(), update() και delete()  Παρέχει τη μέθοδο execSQL() για την εκτέλεση SQL statements  Το αντικείμενο ContentValues επιτρέπει τον καθορισμό ζευγαριών (κλειδί, τιμή) και επιτρέπει την εισαγωγή και ανανέωση δεδομένων στη βάση. Το κλειδί (key) αντιπροσωπεύει το όνομα της στήλης του πίνακα, ενώ η τιμή (value) το περιεχόμενο του πίνακα στη συγκεκριμένη στήλη για την τρέχουσα εγγραφή  Επερωτήσεις μπορούν να δημιουργηθούν με χρήση των μεθόδων rawQuery() και query() ή με χρήση της κλάσης SQLiteQueryBuilder. 13 Διάλεξη 10

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο  Android και Threads  AsyncTasks  Handlers  SQLite  Android και Web Services  Android Design Patterns 14 Διάλεξη 10

Android and Web Services  Μοντέλο Επικοινωνίας Αίτηση για WS με τις αντίστοιχες παραμέτρους της μεθόδου, Λήψη απάντησης από τον εξυπηρετητή, Ανάκτηση δεδομένων από την απάντηση.  Συνήθεις τύποι Web Services SOAP  Το Android δεν περιλαμβάνει SOAP Client. Δύο λύσεις: Χρήση Third Party Libraries  KSOAP2 project  Ελαφριά και αποδοτική βιβλιοθήκη για SOAP client σε Android συσκευές  Στηρίζεται σε Java 1.3  Δουλεύει και σε άλλες πλατφόρμες που στηρίζονται σε Java Κλήση SOAP Web Service με native Αndroid APIs. Δημιουργία της SOAP αίτησης εξολοκλήρου από τον χρήστη και διαχείριση της απάντησης. Απαραίτητη η χρήση  HttpClient κλάσης  XML parser REST  Πιο απλή διαδικασία Αίτηση υπηρεσίας καλώντας το URL με τις παραμέτρους Ασφαλής σύνδεση με Web Service πάνω από ένα Secure Sockets Layer πρωτόκολλο  Η HttpClient δεν υποστηρίζει SSL συνδέσεις  Σύνδεση μέσω την javax.net.ssl.HttpsURLConnection για ασφαλή σύνδεση  Στα πλαίσια της εργασίας θα χρησιμοποιηθεί η KSOAP2 βιβλιοθήκη για επικοινωνία με Web Services από Android συσκευές 15 Διάλεξη 10

Παράδειγμα χρήση ksoap2  Βήματα υλοποίησης Δημιουργία Web Service Έλεγχος δημιουργίας wsdl αρχείου Δημιουργία Android Web Service Client Τροποποίηση των permissions στο AndroidManifest.xml 16 AndroidManifest.xml Διάλεξη 10

Παράδειγμα χρήσης ksoap2 17 Web Service Web Service Client WSDL file Διάλεξη 10

Παράδειγμα χρήσης ksoap2  Από την έκδοση Android 3.0 και πάνω δεν επιτρέπεται η σύνδεση στο διαδίκτυο από το κυρίως νήμα  εκκίνηση νέου νήματος 18 Δημιουργία αίτησης SOAP με βάση το namespace και το method_name Δημιουργία και αποστολή SOAP envelope Λήψη SOAP απάντησης Προβολή απάντησης στην οθόνη Διάλεξη 10

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο  Android και Threads  AsyncTasks  Handlers  SQLite  Android και Web Services  Android Design Patterns 19 Διάλεξη 10

ViewHolder  Το View Holder επιτρέπει τη πρόσβαση σε κάθε list item ενός List Activity χωρίς την χρήση της findViewById() στην getView() του ArrayAdapter η οποία καλείται κατά το scrolling  Πως δουλεύει: Διάλεξη 7 20 To layout γίνεται inflate τη 1 η φορά μόνο Σε ΚΑΘΕ κλήση (πχ όταν γίνεται scrolldown) για ΌΛΑ τα list items ψάχνει να βρει το id, καταναλώνοντας πόρους από τη μνήμη

Half Synchronous- Half Asynchronous  Καθορίζει τη δομή των νημάτων σε μία πολυνηματική εφαρμογή  Η διαχείριση των νημάτων διασπάται σε 2 διαχειριστικά κομμάτια Το ασύγχρονο κομμάτι είναι η επικοινωνία του main thread με ένα άλλο thread (worker thread) To σύγχρονο κομμάτι είναι η ανάθεση tasks σε άλλα νήματα (τα οποία λαμβάνονται από κάποιο pool) από το worker thread Ουσιαστικά τα AsyncTasks υλοποιούν αυτό το design pattern Διάλεξη 7 21  API versioning  Αρχικά τα AsyncTasks εκτελούνταν σειριακά σε ένα μόνο background thread.  DONUT SDK: Αντί για ένα background thread υπάρχει pool από νήματα επιτρέποντας σε πολλαπλά tasks να εκτελούνται παράλληλα  HONEYCOMB SDK: άλλαξε πάλι σε ένα thread για αποφυγή λαθών σε εφαρμογές λόγω παράλληλης εκτέλεσης tasks.  Η λύση για παράλληλη εκτέλεση των tasks είναι η χρήση του executeOnExecutor(Executor, Params...) με το flag THREAD_POOL_EXECUTOR  Συνίσταται να αποφεύγεται και αν κάτι τέτοιο δεν είναι εφικτό, θα πρέπει να γίνεται με μεγάλη προσοχή.

Αναφορές  Threads threads.html threads.html  AsyncTasks  Handlers  Other Service vs Thread vs IntentService vs AsyncTask  android.html android.html Common Tasks in Android  Keeping the App responsive  Διάλεξη 10