[Powered by Google Translate] [Σεμινάριο] [Android Apps (Τώρα με Jelly Beans!)]
[Jordan Jozwiak] [Πανεπιστήμιο του Χάρβαρντ]
[Αυτό είναι CS50.] [CS50.TV]
>> Γεια σε όλους και καλώς ήρθατε στο Android Apps (Τώρα με Jelly Beans!) Σεμινάριο.
Λέγεται Τώρα με Jelly Beans, φυσικά, επειδή
η τελευταία έκδοση του λειτουργικού συστήματος που ονομάζεται Jelly φασολιών.
Όταν μίλησα για το Android πέρυσι και έκανε αυτό ουσιαστικά ίδιο σεμινάριο
Ήμουν παρουσιάζουν τα σχεδιαστικά πρότυπα και στυλιστικές επιλογές για Gingerbread,
ακόμη και αν Ice Cream Sandwich είχε βγει εκείνη την εποχή,
και αυτό είναι κάτι για το οποίο θα μιλήσουμε για να πάμε μπροστά λίγο.
Android, βέβαια, έχει κάποια θέματα με τον κατακερματισμό,
έτσι ώστε το τελευταίο λειτουργικό σύστημα της Google είναι συνήθως
δεν είναι πραγματικά πρόκειται να γίνει κοινή μεταξύ των χρηστών για δυνητικά μέχρι και ένα χρόνο, δυστυχώς.
>> Αλλά ανεξάρτητα από αυτό, θα μιλήσουμε για την αφθονία των λόγων για τους οποίους
Android είναι πολύ καλύτερη από ό, τι iOS.
Εντάξει, θα μιλήσουμε για το Android έναντι του iOS,
ορισμένες παραδείγματα σχεδιασμού, πώς θα πάρετε συσταθεί μέσα σε μόλις μία διαφάνεια,
και η μεγάλη διαφορά ανάμεσα σε αυτό και το τελευταίο έτος είναι Απλά θέλω να
ζουμ μέσα από κάποια εννοιολογική πράγματα που εργάζονται με
το λειτουργικό σύστημα και στη συνέχεια να πάμε σε ένα πολύ βασικό παράδειγμα.
Στην πραγματικότητα, μόνο το παράδειγμα ότι η Google περιγράφει για την οικοδόμηση πρώτη app σας,
και θα πάμε μέσα από αυτό μαζί και απλά περιγράφουν.
>> Ξέρω ότι πολλοί από εσάς έχετε μόνο γραμμένος σε C, έτσι ώστε Java είναι ήδη πρόκειται να είναι
μια διαφορετική προοπτική, και με αυτόν τον τρόπο θα πάρετε τα πόδια σας υγρά
και να αισθάνονται λίγο πιο άνετα με αυτό ελπίζουμε.
Μια γρήγορη περίληψη, το Android έναντι του iOS.
Στο Android υπάρχει αυτό το εφάπαξ τέλος για την ανάπτυξη των $ 25,
κανένας από αυτό το πράγμα $ 100 ανά έτος.
Δεν υπάρχουν περιορισμοί, πράγμα που σημαίνει ότι αν θέλω να υποβάλω μια εφαρμογή,
Υποβάλλω αυτό ακριβώς, και δεν υπάρχει διαδικασία έγκρισης, όπως υπάρχει για iOS.
Μπορείτε να πάρετε για την ανάπτυξη με τη χρήση Java Eclipse,
η οποία είναι cross platform, οπότε δεν έχει σημασία αν έχετε ένα Mac,
Τα Windows, Linux ή κάποιο μηχάνημα.
Φυσικά, με το iOS θα πρέπει να χρησιμοποιήσετε το Xcode σε Mac,
και Android χρησιμοποιείται από πολλούς περισσότερους ανθρώπους,
Έτσι, εάν θέλετε η εφαρμογή σας να έχουν κάποιο είδος της ορατότητας ή ίσως
να κάνει λίγα χρήματα από τις διαφημίσεις
είστε μάλλον πιο πιθανό να επωφεληθούν από το Android.
>> Και ένα πράγμα που είναι πάντα γνωστή για το Android
είναι η ακραία ποσό της προσαρμογής, ενώ το iOS είναι πολύ καθορίζεται με τον τρόπο τους
ώστε να μπορούν να διατηρήσουν την ασφάλεια και τον έλεγχο πάνω σε κάθε μικρή πτυχή
του σχεδιασμού στο λειτουργικό σύστημα και τις επιμέρους εφαρμογές.
Το Android είναι πολύ ελεύθερη μορφή, και δεν υπάρχουν τόσες πολλές περισσότερες δυνατότητες.
Εντάξει, κάποια παραδείγματα σχεδιασμού.
Προσέξτε εδώ ακριβώς όπως το iOS έχει δισκία και iPhones και iPod Touch,
έχουν να συντηρήσουν, ας πούμε, σαν μια ντουζίνα συσκευές, αν θέλετε να υποστηρίξετε
ιστορικά πράγματα, όπως καλά.
Με το Android θα πρέπει να στηρίξει τις εκατοντάδες των συσκευών,
έτσι υπάρχουν μερικά πράγματα που η Google έχει προσπαθήσει να εφαρμόσει
να κάνει ο χρήστης την εμπειρία λίγο πιο συνεπής,
αλλά θα μιλήσουμε επίσης για το πώς αυτό σημαίνει ότι υπάρχουν ζητήματα κατακερματισμού
ότι θα πρέπει συνεχώς να γνωρίζουν υποστήριξη.
Ο κατακερματισμός σημαίνει ότι υπάρχουν πολλά διαφορετικά λειτουργικά συστήματα,
πολλά διαφορετικά τηλέφωνα με διαφορετικό υλικό τρέχει Android όλα την ίδια στιγμή,
έτσι ώστε αυτή η γραφική παράσταση πηγαίνει εδώ πίσω για περίπου 6 μήνες.
Ναι, 6 μήνες και μπορείτε να δείτε πώς το πιο σκουρόχρωμη ζώνη
στο κάτω μέρος του Jelly Bean, που βγήκε το καλοκαίρι,
και μπορείτε να δείτε τώρα κατά πάσα πιθανότητα περίπου 2% από τα τηλέφωνα που έχουν.
>> Ice Cream Sandwich βγήκε πριν από ένα χρόνο,
και το ένα τέταρτο από τα τηλέφωνα που έχουν.
Υπάρχουν ακόμα πολλά τηλέφωνα που χρησιμοποιούν λειτουργικό σύστημα έκδοση από χρόνια πριν.
Ένα πράγμα που η Google έχει προσπαθήσει να κάνει για να κάνουν την εμπειρία του χρήστη
πολύ πιο συνεπής σε εφαρμογές ξεκινά με Honeycomb,
οποίου είναι η έκδοση tablet, τότε Παγωτό σάντουιτς και Jelly Bean,
από όπου και αν πραγματικά προσπαθούν να δώσουν έμφαση στη χρήση της εν λόγω γραμμή ενεργειών,
το οποίο είναι ό, τι μπορείτε να δείτε στην κορυφή εδώ,
τα πάντα εδώ, όπως αυτό το μικρό κουμπί Ρυθμίσεις.
Είναι η επιλογή του σχεδιασμού.
Τώρα, κάθε φορά που βλέπετε τα 3 τελείες σημαίνει κλικ σε αυτό,
και θα υπάρξει μια drop-down μενού, το οποίο έχει κάποιου είδους ρυθμίσεις.
Αυτό εμφανίζεται μόνο γιατί χτύπησα σε αυτό το κουμπί.
Αυτό είναι κάτι που προσπαθούν να χρησιμοποιήσουν για να κάνουν τις εφαρμογές λίγο πιο συνεπή
σε όλους τους τομείς και έτσι ο χρήστης έχει μια καλύτερη αίσθηση της ενιαία εμπειρία.
>> Εντάξει, έτσι ώστε σε περίπτωση που δεν το έχετε κάνει ήδη αυτό ή αν είστε βλέποντας στο σπίτι
τότε μπορείτε να ακολουθήσετε τα παρακάτω βήματα για να ρυθμίσετε κωδικοποίησης περιβάλλον σας.
Θα συνεπάγεται τη μετάβαση στην ιστοσελίδα εδώ.
Μπορείτε να εγκαταστήσετε το Google Android SDK
και να ακολουθήσετε κάποιες περιγραφές εκεί.
Θα σας πω τα πάντα.
Έχουν την εγκατάσταση του SDK, Eclipse Classic λήψη έκδοση,
έστω και αν, φυσικά, είμαστε κωδικοποίησης σε Java.
Θα συνιστούσα αυτό το ένα, και στη συνέχεια αυτό το ADT, τα εργαλεία ανάπτυξης Android,
είναι ένα plugin που έχετε εγκαταστήσει στο Eclipse το οποίο σας επιτρέπει να
έχουν μια πολύ πιο σύγχρονη εμπειρία με Android στο Eclipse.
Θα σας δώσω μερικά γραφικά περιβάλλοντα χρήστη
για το σχεδιασμό των απόψεων, και αυτό θα σας δώσει πολύ μεγαλύτερη στήριξη
και τη δυνατότητα να ξεκινήσει με τον εξομοιωτή και όλα αυτού του είδους τα πράγματα.
Πλαίσιο εφαρμογής.
>> Θέλω να μιλήσω για το πώς είναι δομημένα τα έργα στο Android,
και στη συνέχεια θα πάμε σε ένα γρήγορο παράδειγμα, και ελπίζουμε
μπορείτε να κάνετε ερωτήσεις σε οποιοδήποτε σημείο και να αισθάνονται άνετα με το τέλος της.
Έχουμε κάποια ορολογία πρώτα.
Μια δραστηριότητα είναι σαν την οθόνη που βλέπετε όταν ξεκινήσει μια app.
Η όλη εμπειρία είναι η δραστηριότητα αυτή καθαυτή,
ώστε να μπορείτε να σκεφτείτε από το ως μια οθόνη ή μια άποψη,
αλλά στην πραγματικότητα είναι η πλευρά του πηγαίου κώδικα του.
Καλούμε ακόμα το πραγματικό μέρος του interface από αυτό μια άποψη.
Είναι περίπου όπως το πώς σε PSET 7 είχαμε τον ελεγκτή και στη συνέχεια την προβολή.
Η δραστηριότητα είναι περισσότερο ή λιγότερο τον ελεγκτή,
και η θέα είναι αυτό που κάνουμε από την άποψη της XML
που είναι συνδεδεμένες με την εν λόγω δραστηριότητα.
Τα θραύσματα είναι κάτι που εφαρμόζεται σε Ice Cream Sandwich να πάμε μπροστά.
Είναι απλά μια ιδέα από τη λήψη τμημάτων της άποψης ή της δραστηριότητας
και διαιρώντας τους σε ξεχωριστές περιοχές, έτσι ώστε να μπορούμε
να κάνει τον κώδικά μας πιο εύχρηστο για αυτές τις πολλές διαφορετικές συσκευές
ότι πρέπει να υποστηρίξει, και είναι απλά ένας τρόπος που προσπαθούν να
Επίσης, παράγοντας περισσότερες κωδικό.
Οι υπηρεσίες είναι πράγματα φόντο σαν να παίζουν μουσική ή οδηγίες πλοήγησης δυνητικά.
Οι πάροχοι περιεχομένου, αυτά είναι τα APIs στο λειτουργικό σύστημα
που σας επιτρέπουν να έχετε πρόσβαση σε κοινόχρηστα δεδομένα, όπως στοιχεία επικοινωνίας,
και στη συνέχεια η πρόθεση είναι κάτι που θα χρησιμοποιήσουμε όταν θέλουμε να ξεκινήσει
μια νέα δραστηριότητα από την τρέχουσα δραστηριότητά μας.
>> Γεια σας Android, αυτό πρόκειται να είναι ένα έργο το οποίο θα μιλήσουμε για.
Θα το κάνω πραγματικά για σας, και στη συνέχεια θα κάνουμε ένα πράγμα, όπου πατάμε ένα κουμπί
με κάποιο κείμενο και να ξεκινήσει μια νέα δραστηριότητα.
Πολύ απλό, αλλά θέλω να περάσουν
Τι θα πάει σε ένα έργο όπως αυτό.
Όταν κάνετε το νέο σχέδιο που θα δείτε στο Eclipse
υπάρχει αυτό το σχέδιο ονομάζεται Hello Android.
Έπειτα, υπάρχουν ένα σωρό φακέλους εδώ.
Οι αυτοί είστε πραγματικά ασχολούνται με είναι το φάκελο προέλευσης,
ο φάκελος των πόρων, οι ανανεώσιμες πηγές ενέργειας, και σε κάποιο βαθμό το φάκελο libs για τις βιβλιοθήκες.
Και για να είμαστε στην ίδια σελίδα με αυτή
αν ήταν να δημιουργήσετε ένα νέο έργο,
μπορείτε να το κάνετε αυτό το δικαίωμα εδώ, οπότε αν θέλω να το ονομάσουμε HelloAndroid,
και στη συνέχεια να κάνει αυτόματα ένα σωρό πληροφορίες για εμάς.
Το όνομα του πακέτου είναι υποτίθεται ότι είναι ένα μοναδικό αναγνωριστικό
που θα έπρεπε κανονικά να σχετίζεται με την ιστοσελίδα, αν είχατε ένα.
>> Για παράδειγμα, εγώ θα καλέσει αυτό το net.cs50.helloandroid.
Και έχω ήδη κάνει αυτό το έργο μια φορά.
Εντάξει, συγγνώμη. Ας το ονομάσουμε HelloCS50.
Και τότε θα ζητήσει από τα πράγματα, όπως τι είδους εικόνα θέλουμε να κάνει.
Αυτό είναι όλα λόγω του Android Developer Tools interface,
το plugin που έχουμε προσθέσει στο Eclipse, οπότε μπορούμε να επιλέξουμε τα πράγματα όπως
τι εικόνα που θέλουμε, και ότι θα πήγαινε σε αυτό το βάθος, αν θέλουμε.
Αλλά στο τέλος, κάνουν ακριβώς το έργο,
και όλα δείχνουν μέχρι εδώ.
Όπως προέκυψε από την άλλη οθόνη,
έχουμε το φάκελο προέλευσης, και θα μιλήσουμε για το τι σημαίνουν όλα αυτά σύντομα,
αλλά μπορείτε να δείτε ότι αμέσως θα μας μεταφέρει στην οθόνη HelloCS50.
Υπάρχουν μερικά κουμπιά εδώ για την προσθήκη κειμένου και το κείμενο σχεδιαγράμματα τομέα.
Είναι περίπου όπως το Xcode, αλλά, δυστυχώς, δεν είναι τόσο βελτιωμένο.
Αλλά τα κλιπ θα είναι φίλος και ADT σας, ιδίως για να γίνει αυτό.
>> Εντάξει, ο φάκελος προέλευσης είναι όπου
τα αρχεία Java που κατέχει, και αυτό είναι πραγματικά η έναρξη του προγράμματός σας.
Είναι ουσιαστικά σαν τους ελεγκτές.
Ο φάκελος των πόρων ή το ΑΠΕ όπου θα κρατήσει διατάξεις οθόνης,
εικόνες, ήχους, κείμενο, κινούμενα σχέδια και οτιδήποτε άλλο, libs, προφανώς, βιβλιοθήκες.
Και το Manifest, είναι ο τρόπος που το σύστημα Android ξέρει
πώς να αλληλεπιδρούν με την εφαρμογή σας.
Είναι λέει σχετικά με τα δικαιώματα και ποιες δραστηριότητες θα είναι πραγματικά να τρέξει.
Είναι όλες τις απαραίτητες πληροφορίες που χρειάζεται για να τρέξει app σας.
Ο φάκελος πηγή είναι-αν την επέκταση, όπως μπορείτε να δείτε εδώ.
Και ένα παράδειγμα ότι ένας κώδικας θα δούμε-αυτό είναι το προεπιλεγμένο κωδικό.
Όπως έχουμε αυτό που ονομάζεται, MainActivity.
Από προεπιλογή, έχουμε onCreate, η οποία είναι μια λειτουργία που λέγεται όταν η δραστηριότητα αυτή τα φορτία,
έτσι θέλετε να καλέσετε onCreate (savedInstanceState).
Αυτό θα αποκαταστήσει τυχόν κομμάτια των πληροφοριών
σε περίπτωση που η εφαρμογή έγινε παύση.
>> Υπάρχει μια ολόκληρη ζωή δραστηριότητας διάγραμμα του κύκλου που μπορείτε να δείτε
όταν μπορείτε να πάρετε μια λίγο περισσότερο σε βάθος σε αυτό,
αλλά το πιο σημαντικό γραμμή κώδικα δεν υπάρχει αυτή η λειτουργία setContentView
το οποίο θα φορτώσει το αρχείο πόρων για τη διάταξη.
Τότε τι onCreate εδώ είναι βασικά κάνει είναι λέει
όταν δημιουργώ αυτή τη δραστηριότητα που θέλετε να φορτώσετε αυτό το σχεδιάγραμμα.
Και θα μιλήσουμε για ό, τι η χωροταξία είναι σε ένα δευτερόλεπτο.
Αν ήταν να ξεκινήσει ότι εδώ μοιάζει ακριβώς με αυτό,
και από προεπιλογή, επειδή έχουμε Eclipse κάνει αυτό και ADT το κάνουμε για εμάς
Αυτό είναι όλος ο κώδικας στερεότυπο που δημιουργείται για εμάς,
και μπορούμε να προχωρήσουμε και να αλλάξουμε τα πράγματα όπως μας αρέσει.
Ο φάκελος των πόρων, όπως είπα, αυτό είναι που κρατάμε όλα τα σχεδιαγράμματα,
drawables όσον αφορά οποιοδήποτε είδος των εικόνων-
όπου και αν ονομάζεται drawables και στη συνέχεια, τα αρχεία ήχου, τα μενού.
Είναι ένας τρόπος για ένα σωρό XML σε μια ταξινομημένη ωραίο τρόπο.
Όπως μπορείτε να δείτε, υπάρχουν. Hdpi, ldpi, mdpi και xhdpi φακέλους για τις drawables.
Αυτές είναι διαφορετικές πυκνότητες οθόνη, τόσο υψηλή πυκνότητα pixel ανά ίντσα,
χαμηλής πυκνότητας, μέσης πυκνότητας, εξαιρετικά υψηλής πυκνότητας.
>> Αυτό είναι, και πάλι, έτσι ώστε να μπορεί να υποστηρίξει όλες αυτές τις διαφορετικές συσκευές,
και στην ιδανική περίπτωση, θα έχετε διαφορετικές εικόνες για κάθε διαφορετική ανάλυση.
Σχεδιαγράμματα είναι όπου περιλαμβάνει όλες τις διαφορετικές διατάξεις που θα χρησιμοποιηθούν σε διάφορες δραστηριότητες.
Μπορούν επίσης να περιλαμβάνουν διατάξεις για θραύσματα,
πράγμα που σημαίνει μερική δραστηριότητες βασικά.
Αν θέλετε να κάνετε κάτι δροσερό σαν κάθε φορά που περιστρέφετε το τηλέφωνο
θέλετε να έχετε μια διαφορετική διάταξη που μπορείτε να κάνετε διάταξη-τοπίο ως ένα διαφορετικό φάκελο,
και το Android έχει αυτόματα ένα σωρό των κανόνων αυτών μέσα στο φάκελο των πόρων,
έτσι θα ξέρουν να εξετάσουμε διαφορετικούς φακέλους με βάση την τρέχουσα ρύθμιση του τηλεφώνου,
Τι είδους του υλικού που χρησιμοποιείτε.
Ομοίως, αυτό αξίες-v11 εδώ και αξίες-v14
και οι τιμές προεπιλεγμένο φάκελο αυτό είναι για-
επίσης, τις αξίες από μόνη της, αυτό θα είναι οι προεπιλεγμένες τιμές σε όλες τις εκδόσεις του λειτουργικού συστήματος.
Από την άλλη πλευρά, V11 και V14 αντιστοιχούν με κηρήθρα
και Παγωτό σάντουιτς, αντίστοιχα.
Και πάλι, αυτά είναι τρόποι που-μέσα σε αυτούς τους φακέλους είναι διαφορετικές χορδές
και στυλ, ώστε να μπορείτε να προσαρμόσετε την εμφάνιση της εφαρμογής σας
ή ενδεχομένως ακόμα και τη λειτουργικότητά του, αν και αυτό θα ήταν πιθανώς μια κακή ιδέα,
με βάση την έκδοση του λειτουργικού συστήματος.
>> Και μίλησα για όλα αυτά εδώ.
Και πάλι, όλκιμη, πρώτες, τη διάταξη, τις αξίες.
Οι προεπιλογές, αν πάμε σε Hello Android ή το Hello CS50 τώρα
θα μοιάζει ακριβώς όπως αυτό.
Θα πω γεια στον κόσμο.
Όπως μπορείτε να δείτε εδώ με το κείμενο Android
Το κείμενο για την άποψη αυτή το κείμενο, το οποίο είναι ουσιαστικά μόνο μια ετικέτα,
είναι αυτό που θα την αποκαλούμε στο iOS.
Έχει αυτό το αστείο συμβολισμό @ string / hello_world.
Αυτό είναι έτσι ώστε να μπορούμε, προσπαθούμε να εξαγάγετε όλες τις χορδές,
όλα τα hard-coded χορδές σε Android σε ένα ξεχωριστό φάκελο,
η οποία συμβαίνει να είναι σε values.strings.
Αν κοιτάξουμε εδώ, μπορούμε να δούμε ότι έχουμε ένα σκληρό κωδικοποιημένο κορδόνι αποθηκεύονται εδώ
για Γεια σας κόσμο, και λέγεται hello world, και αυτό είναι ένα είδος
κοινή απόφαση του σχεδιασμού σε πολλές πλατφόρμες που θέλετε να-
χορδές είναι το είδος των πραγμάτων που θέλουμε να δυνητικά να είναι σε θέση να αλλάξει.
Δεν θέλουν να ελέγχουν F στο αρχείο του πηγαίου κώδικα μας σε XML μας.
Θέλουμε να είμαστε σε θέση να αλλάξουμε αυτό κάθε φορά που θα έχουμε την ευκαιρία.
>> Αυτό το αρχείο XML, strings.xml, είναι ένας τρόπος για την εξαγωγή
hard-coded χορδές που διαφορετικά θα ήταν σε πόρους διάταξης μας
ή στον πηγαίο κώδικα μας.
Η Manifest είναι όπου κρατάμε αυτές τις βασικές πληροφορίες σχετικά με την εφαρμογή.
Περιλαμβάνει το όνομα του πακέτου. Αυτό πρέπει να είναι ένα μοναδικό αναγνωριστικό.
Σε αντίθεση με το App Store για iOS τα ονόματα των εφαρμογών
Δεν χρειάζεται να είναι μοναδική, και μπορεί στην πραγματικότητα να αλλάξει το όνομα της εφαρμογής σας
μετά την υποβολή, έτσι ώστε, αν ξεκινήσετε με το Angry Birds,
και στη συνέχεια να κάνω μια ενημέρωση, και δεν θέλω να κυκλοφορήσει μια νέα έκδοση
Υποθέτω ότι θα μπορούσαμε να ονομάσουμε το Angry Birds 2, ενώ είμαι στον ίδιο κύκλο κυκλοφορίας.
Θα ήταν απλώς να παρουσιάσει ως μια ενημέρωση.
Το μόνο πράγμα που πρέπει να είναι μοναδικό είναι το όνομα του πακέτου,
που πολλοί άνθρωποι δεν θα δουν.
Λοιπόν, θα ήθελα μόνο να δούμε αν ήταν κοιτάζοντας τον πηγαίο κώδικα ή αν υπάρχει κάποιο είδος του λάθους.
Τα στοιχεία περιλαμβάνουν δραστηριότητες, έτσι θα πρέπει να δηλώσουν
οποιοδήποτε είδος της δραστηριότητας που χρησιμοποιούμε.
Αυτό είναι ένα είδος άδεια του πράγματος.
>> Επειδή το Android δεν έχει αυτήν την αυστηρή διαδικασία υποβολής αιτήσεων
για την υποβολή εφαρμογές αντί να κάνει ό, τι ακριβώς βασίζονται στα ανοικτά των αδειών
και δηλώνοντας τα πράγματα στο δηλωτικό.
Η έκδοση SDK είναι επίσης σημαντική.
Μπορούμε να ρυθμίσουμε τη χρήση ως κάτι ελάχιστο SDK έκδοση.
Προφανώς, θέλετε να δημιουργήσετε κώδικα
και το σχεδιασμό για τα νεότερα λειτουργικά συστήματα.
Ίσως δεν είναι το νεότερο, ίσως όχι Jelly φασολιών.
Ίσως θέλετε να σχεδιάσετε κυρίως για Παγωτό σάντουιτς,
αν και είναι λίγο πολύ η ίδια, όσον αφορά τις αποφάσεις σχεδιασμού
και οι πραγματικές βιβλιοθήκες και APIs.
Αλλά αντί να έχουν οι άνθρωποι
της αρχικής έκδοσης του Android, όπως το δρόμο της επιστροφής, όταν Donut-
που εξακολουθούν να συμβαίνουν να χρησιμοποιεί που προσπαθούν να κατεβάσετε την εφαρμογή σας και στη συνέχεια να πω
δεν λειτουργεί στο τηλέφωνό μου, μπορείτε να ρυθμίσετε την ελάχιστη έκδοση
και έχουν να Gingerbread ή Ice Cream Sandwich
ή ό, τι αισθάνεστε άνετα την υποβολή.
Και αυτό είναι ένα παράδειγμα της Manifest. Μπορούμε να δούμε την πραγματική ένα σε λίγο.
>> Εντάξει, θα πήγαινε προς τα εμπρός με το demo τώρα.
Αυτό είναι το demo αν το Google Android κατασκευή του πρώτου app σας ή κάτι τέτοιο.
Θα περάσουν από ό, τι συμβαίνει εκεί μέσα,
και συγγνώμη, μόνο για αναφορά που ξέρει εδώ Java σε οποιοδήποτε βαθμό;
Εντάξει, έτσι Java είναι νέα γλώσσα κωδικοποίησης για τους περισσότερους ανθρώπους που έρχονται από CS50.
Εν συντομία, για να πάει ξανά αυτό που λέει εδώ,
Τι θέλουμε να κάνουμε είναι αντί να προσαρμόσει αυτό το γεια αίτησης για την παγκόσμια
ότι το μόνο που κάνει είναι να ξεκινά και λέει hello world
και λέει γεια CS50 στην κορυφή, διότι αυτό είναι το όνομα της δραστηριότητας
θα πάμε να προσπαθήσει να κάνει ένα πεδίο κειμένου και ένα κουμπί
έτσι ώστε όταν πατάμε αυτό το κουμπί, θα λάβει το κείμενο
από το πεδίο κειμένου και να ξεκινήσει μια νέα δραστηριότητα, και θα πω
ό, τι αυτό το κείμενο, δήλωσε στη δραστηριότητα, και αυτό είναι σχετικά απλή.
Δεν είναι πολύ ενδιαφέρουσα. Δεν θα θέλατε να απελευθερώσει κάθε app όπως αυτό.
Αλλά δείχνει κάποια σημαντικά πράγματα σχεδιασμό.
>> Θα πρέπει να αλληλεπιδρούν με το Manifest, με τα αρχεία διάταξης,
με τον πηγαίο κώδικα, και μπορείτε να δείτε πώς να ξεκινήσει μια δραστηριότητα από την άλλη.
Θα ξεκινήσουμε με τη διάταξη για την πρώτη μας δραστηριότητα,
τα οποία ξέρω ότι είναι το είδος των μικρών,
αλλά όπως μπορείτε να δείτε τώρα, όλα είναι είναι ότι έχει το λογότυπό μας που δημιουργήσαμε,
το όνομα της δραστηριότητας, και λέει hello world στο κέντρο.
Αντ 'αυτού, είμαι πρώτα πρόκειται να κάνει αυτό σε μια γραμμική διάταξη,
μια σχετική διάταξη, και όλα αυτά είναι πράγματα
θα μπορούσατε να αναζητήσετε και αξίζει να πηγαίνει πάνω σε κάποιο σημείο σε σχέση με τις διατάξεις.
Είναι πολύ σαν HTML.
Είπαμε ότι δεν είναι πραγματικά αξίζει να γνωρίζει την άποψη ενός προγραμματικού έννοια,
αλλά υπάρχουν τόσες πολλές διαφορετικές διατάξεις που μπορείτε να ελέγξετε,
και είναι ακριβώς όπως το CSS άποψη του στυλ.
>> Υπάρχει μια παρτίδα σε εξέλιξη μόνο από την άποψη της αισθητικής εδώ,
και ναι, αξίζει να μάθηση, αλλά είναι το είδος των πράγμα που πρέπει να αναζητήσετε
as you go και να νιώθετε σαν να χρειάζεται κάτι νέο.
Θα μπορούν να επωφεληθούν από μερικές από τις ADT εργαλεία εδώ τουλάχιστον για να ξεκινήσετε με.
Θα κάνω ένα πεδίο κειμένου, και θα κάνω ένα κουμπί.
Βάλτε τους το ένα δίπλα στο άλλο.
Ήδη το μέγεθος κατάλληλα.
Δυστυχώς, και πάλι, επιστρέφει με τη διαφορά μεταξύ γραμμική διάταξη και σχετική διάταξη,
μια γραμμική διάταξη δίνει λίγο περισσότερη λειτουργικότητα
όσον αφορά την κάλυψη χώρου και να διασφαλίσουμε
εμείς τα πράγματα θέση οριζόντια ή κάθετα.
Η μεγάλη διαφορά ανάμεσα σε μια γραμμική διάταξη και σχετική διάταξη
είναι η σχετική διάταξη πάντα θέσεις σε σχέση με άλλες απόψεις,
και το καλό πράγμα για αυτό είναι ότι παίρνει λιγότερο χρόνο για να συντάξει
επειδή το λειτουργικό σύστημα φαίνεται καθόλου τον κώδικα και να λέει ότι αυτό πηγαίνει
σε σχέση με αυτό εδώ, εδώ.
Αυτό σημαίνει ότι κάνει λιγότερες μετρήσεις από ένα σωρό ένθετα γραμμικές διατάξεις,
που θα πρέπει να κάνουμε αν ήθελα τα πράγματα να πάνε κάθετα εδώ.
>> Έχω ήδη κάποια πράγματα που συμβαίνουν σε οριζόντια θέση, γι 'αυτό θα χρειαστεί μια διαφορετική γραμμική διάταξη
να φωλιάζουν τα κάθετα, αλλά αν ήταν να κάνει μια σχετική διάταξη θα μπορούσα να πω
κρατήσει αυτό προς τα αριστερά, αυτό το προς τα δεξιά και κάτω από αυτά τα πράγματα.
Αλλά επειδή θέλω να συμπληρώσετε τώρα είμαι πρόκειται να χρησιμοποιήσετε μια γραμμική διάταξη,
και μπορείτε να δείτε ότι κάνει ήδη πολλά από αυτά τα πράγματα για εμάς.
Όλες οι απόψεις πρέπει να έχουν ένα ακίνητο του πλάτους και του ύψους,
και αυτό συμβαίνει να έχουν ένα βάρος 1, και αυτό έχει ένα βάρος από 1
έτσι ώστε να γεμίζει ολόκληρο το χώρο.
Όμως, το πλάτος και το ύψος είναι πιο σημαντικό.
Αυτό το πεδίο ID εδώ δεν είναι σημαντική στα πλαίσια της πραγματικής διάταξης
εκτός αν είμαστε χρησιμοποιώντας μια σχετική διάταξη και λέει ότι μπορεί να αναφέρεται σε
μία όψη σε θέση αναφοράς σε άλλη.
Αν είχαμε μια σχετική διάταξη θα μπορούσαμε να πούμε αυτή τη θέση κάτω από αυτήν
ή πάνω από αυτό το αναγνωριστικό, αλλά αυτό το αναγνωριστικό θα είναι σημαντικό
όταν το χρησιμοποιείτε στον κώδικά μας, διότι μπορούμε αναφοράς
αυτές οι μεμονωμένες απόψεις με τον τρόπο αυτό.
>> Και τότε μπορείτε να δείτε το requestFocus tag, το οποίο είναι κάτι που μάλλον είδε το chipset 7.
Υπήρχε μια ετικέτα αυτόματη εστίαση ή κάτι προς αυτή την κατεύθυνση για ένα από τα πεδία.
Και ένα πράγμα, βέβαια, μπορούμε να κάνουμε ακριβώς όπως το HTML,
και την ανακοίνωση ένα από τα ωραία πράγματα για ADT είναι ότι Συμπληρώνει αυτόματα εδώ.
Ίσως δεν είναι τόσο ωραία, όπως έπραξε το Xcode, αλλά το κάνει παρ 'όλα αυτά,
και θα μπορούσαμε να πούμε υπόδειξη και στη συνέχεια να δώσει κάποιο είδος της σειράς
Γράψε ένα μήνυμα,
και αν μου δώσει μια στιγμή, επίσης να παρατηρήσετε ότι έχω ένα μικρό λάθος εδώ
λέγοντας ότι θα πρέπει να χρησιμοποιήσουμε έναν πόρο σειρά γι 'αυτό,
Έτσι, αν άφησα να κάνετε κάποια από τη σκληρή δουλειά για μένα
Μπορώ να επιλέξετε αυτή τη σειρά, κάνει διοπτρικό Android και το εκχύλισμα Android string.
Μπορώ να του δώσω το όνομα, να γράψει ένα μήνυμα,
και τι δεν είναι τώρα αυτό αντικατέστησε την hard-coded εγχόρδων
με αναφορά του string. xml αρχείο της στοιχειοσειράς,
πράγμα που σημαίνει τώρα αυτό είναι εδώ.
>> Και ξέρω ότι φαίνεται λίγο τετριμμένη και σαν επιπλέον εργασία σε αυτό το σημείο,
αλλά όταν έχεις ένα σωρό πράγματα, ένα σωρό χορδές,
αυτό είναι πολύ σημαντικό, και ιδιαίτερα για τον εντοπισμό
διότι, όπως ανέφερα προηγουμένως, το Android είναι μια πολύ παγκοσμίως χρησιμοποιείται λειτουργικό σύστημα
που μπορείτε να κάνετε απλά τις τιμές-en ή αξίες-sp
ή κάτι για τα αγγλικά ή ισπανικά ή άλλες γλώσσες.
Και τότε μάλλον δεν είχαν αυτή την εμπειρία ακόμα
από τη στιγμή που δεν κάνουμε πολλά JavaScript όσον αφορά τον προγραμματισμό web,
αλλά μπορούμε επίσης να κάνουμε αυτό το πεδίο που ονομάζεται onClick για το κουμπί,
και αυτός είναι ένας τρόπος αναφορά στο layout μας
ότι θέλουμε μια συγκεκριμένη λειτουργία που θα ονομάζεται στον πηγαίο κώδικα μας.
Πάω να καλέσετε αυτό το SendMessage,
και προκειμένου να γίνει αυτό το έργο που μέσα στην κύρια δραστηριότητα εδώ
Θα πρέπει να δημιουργηθεί μια λειτουργία που είναι δημόσιο
έτσι ώστε να μπορεί να προσεγγιστεί από τη διάταξη.
Είναι άκυρη, διότι απλά δεν θέλει να επιστρέψει τίποτα.
Θα ονομάσουμε SendMessage, και παίρνει μια άποψη,
το οποίο είναι ένα είδος του πλαισίου που μπορούμε να εδραιωθεί αυτή τη μέθοδο
στην εν λόγω μεμονωμένη προβολή, όταν είμαστε το τρέξιμο.
>> Και δεν ξέρω αν έχετε παρατηρήσει, επίσης, δεν θα έχετε παρατηρήσει,
αλλά σε αυτό το σημείο ακριβώς εδώ
Αυτή η άποψη είναι ένα είδος που δεν έχει ακόμη συμπεριληφθεί,
και φυσικά, όλοι ξέρετε από CS50 για να μην συμπεριλαμβανομένων των τύπων.
Το θετικό σχετικά με όπως Eclipse IDE είναι ότι
αν ξεχάσετε να συμπεριλάβετε ένα είδος θα υπογραμμίσει με λίγο κόκκινο squiggly
και στη συνέχεια να σας δώσει τη δυνατότητα να εισαγάγετε τη θέα.
Ένας γρήγορος τρόπος για να γίνει αυτό είναι ο έλεγχος μετατόπισης O, και θα εισάγει
όλα τα αρχεία που πρέπει να.
Τώρα που έχουμε αυτή SendMessage τη λειτουργία,
η οποία πρόκειται να στείλει μήνυμα από το MainActivity σε μια νέα δραστηριότητα,
θα πάμε να πρέπει να χρησιμοποιήσετε μια πρόθεση να ξεκινήσει η νέα δραστηριότητα από αυτό,
έτσι θα θελήσετε πιθανώς να δημιουργήσει μια παγκόσμια σταθερά ή επίσης ιδιαίτερα μια σταθερή δημόσια
που θα μας βοηθήσει να ξέρουμε πώς θα πάμε για να αναφερθείτε στην συμβολοσειρά
γιατί, όταν δημιουργούμε μια πρόθεση δεν είμαστε καλώντας απλά μια νέα δραστηριότητα,
αλλά μπορούμε επίσης να δώσει μια δέσμη πληροφοριών.
Μια δέσμη είναι στην πραγματικότητα ο όρος που χρησιμοποιεί το Android,
και είναι ένας τρόπος να πούμε δώσει επιπλέον στοιχεία, τα οποία δεν μπορεί να είναι ένα πολύ εξελιγμένο τύπο δεδομένων,
αλλά μπορούμε να συμπεριλάβουμε σίγουρα booleans ή χορδές ή ints.
Αυτό το είδος του πράγματος.
>> Μη διστάσετε να ρωτήσετε για οποιοδήποτε από αυτά τα προκριματικά εδώ,
κοινό, τελικά, στατική.
Δημόσια είναι το σημαντικό.
Αυτό σημαίνει ότι μπορούμε να έχουμε πρόσβαση αυτήν τη μεταβλητή από άλλα αρχεία πηγαίου κώδικα
όπως όταν δημιουργούμε μια νέα δραστηριότητα.
Μπορούμε να αναφερθείτε στην συμβολοσειρά μέσα σε αυτό το αρχείο.
Αν είναι ιδιωτική, αυτό σημαίνει ότι είναι περιορισμένη σε αυτό το μεμονωμένο αρχείο εδώ.
Αλλά θα ονομάσουμε αυτό κάτι σαν επιπλέον μήνυμα.
Τώρα έχουμε κάνει αυτή τη λειτουργία, και αν κάνουμε κλικ στο κουμπί, η λειτουργία αυτή θα ονομάζεται.
Αλλά δεν έχουμε κάνει τίποτα, προφανώς, με τη λειτουργία.
Αυτό που θέλουμε να κάνουμε τώρα είναι να δημιουργήσουμε μια νέα δραστηριότητα,
η δραστηριότητα που πράγματι θα ξεκινήσει.
Στο Eclipse μπορούμε να πούμε ότι το νέο, Android δραστηριότητα, κενό δραστηριότητα.
Μπορούμε να δώσουμε ένα όνομα.
Ας το ονομάσουμε δραστηριότητα μας αποτέλεσμα.
Και τότε αυτό το ιεραρχικό πεδίο γονέας είναι ένας τρόπος προσδιορισμού
πώς οι δραστηριότητες που σχετίζονται με το άλλο.
Διότι αυτό θα ξεκινήσει από την άλλη δραστηριότητα
θα πρέπει να διευκρινισθεί ότι έχει την κύρια δραστηριότητα της μητρικής.
>> Και θα μπορούσα να έχω κάνει κλικ στο επόμενο πεδίο εκεί, η οποία θα μας πει
μερικά προαιρετικά πεδία που ήταν επίσης συμπεριλαμβανομένων,
αλλά το ωραίο πράγμα για ADT, και πάλι, είναι ότι αν μετακινηθείτε προς τα κάτω εδώ
στο δηλωτικό θυμάστε ότι όλα αυτά ήταν πραγματικά περιλαμβάνεται από προεπιλογή
όταν δημιουργήθηκε αρχικά το έργο,
και τώρα επειδή χρησιμοποιήσαμε αυτό δημιουργεί μια νέα δραστηριότητα και όχι μόνο
προσθέτοντας το δικό του αρχείο τάξη μας, γιατί περάσαμε GUI τους για να γίνει αυτό
είναι ήδη προσθέσει όλα αυτά στο Manifest για εμάς,
πράγμα που σημαίνει απλά ότι τώρα το λειτουργικό σύστημα δεν θα παραπονεθεί
όταν προσπαθούμε να ξεκινήσει αυτή η δραστηριότητα.
Και, βεβαίως, έδωσε μια ετικέτα, η οποία επίσης εμφανίζεται σε χορδές.
Κάνει πολλά πράγματα στο πίσω άκρο για εμάς.
Τέλος πάντων, τώρα που έχουμε αυτή τη δραστηριότητα αποτέλεσμα, καθώς,
το πραγματικό αρχείο του πηγαίου κώδικα στο φάκελο προέλευσης,
και μπορείτε να δείτε, να θίξω εν συντομία σε αυτό-
επειδή μας είπε σχετικά με αυτό το ιεραρχική γονέα
έδωσε αυτή android.r.ide.home τομέα σε αυτό το onOption επιλεγμένη πράγμα.
>> Τι αυτό είναι σαν να λέει είναι ότι υπάρχει ένα κουμπί μενού τώρα
ότι στην πάνω αριστερή γωνία της οθόνης
Αν πάω πίσω στο PowerPoint όπου για πρώτη φορά μίλησε για το bar δράσης
λόγω της ιεραρχικής μητρικής τώρα υπάρχει ένα μικρό βέλος πίσω εδώ
και αυτό είναι clickable, έτσι θα πρέπει να είμαστε σε θέση να-αφού τρέξουμε στην πραγματικότητα αυτό το app-
πάει πίσω, και αυτό είναι ένας τρόπος για να μας σώσουν ένα μικρό κομμάτι του κώδικα εκεί.
Τώρα, σε αυτό-αλλά, φαίνεται να διαμαρτύρονται για αυτό για μια στιγμή.
Ας σχολιάσω ότι έξω.
Τώρα, προκειμένου να πραγματικά να αλληλεπιδρούν με αυτά τα 2 δραστηριότητες,
πρέπει να δημιουργήσουμε μια πρόθεση η οποία περιλαμβάνει όλα αυτά τα δεδομένα.
Στο SendMessage τώρα Πάω να κρουαζιέρα με μερικά κομμάτια του κώδικα
και να εξηγήσει ότι πάω.
Η πρόθεση, όπως είπα, είναι ένας τρόπος για να ξεκινήσει μια δραστηριότητα από την άλλη.
Πρόθεση είναι ο τύπος. Είμαστε δημιουργώντας μια μεταβλητή myIntent.
>> Και αυτό είναι πραγματικά ένα αντικείμενο, το οποίο είναι ο λόγος που έχουμε να καλέσει νέα.
Είναι κοινή χρήση Java εκεί, η οποία μπορεί να πάρει λίγο να συνηθίσει.
Αυτό σημαίνει ότι χρησιμοποιείτε τη δραστηριότητα ή την MainActivity τάξη,
και την πρόθεση με αυτόν τον τρόπο παίρνει τη δραστηριότητα πρόκειται από
και η δραστηριότητα πρόκειται να, την οποία ονομάζουμε ResultActivity,
και αυτό είναι μια δική της κατηγορία.
Συμπεριλάβετε αυτό.
Και τότε, όπως ανέφερα και πριν, το δώσαμε ως αναγνωριστικό στο πεδίο Επεξεργασία κειμένου
και η θέα κειμένου, έτσι ώστε να συλλάβει προγραμματισμού
Το κείμενο που υπάρχει στην EditText
χρησιμοποιούμε αυτή τη λειτουργία που ονομάζεται findViewByID,
το οποίο είναι παρόμοιο με κάτι που θα χρησιμοποιήσετε όταν προσπαθείτε να πάρετε τα πεδία από το Μοντέλο DOM.
Ίσως συνομιλίες David γι 'αυτό στη διάλεξη.
Αλλά είναι μόνο ένας τρόπος για να πάρει αυτά-γι 'αυτό και εμείς ετικέτα αυτά τα πράγματα με αυτούς τους τομείς.
Id.editText1.
Είναι ήδη autocompleting για μένα.
>> Και τότε θα περιλαμβάνουν επίσης-this EditText τώρα που έχουμε το πεδίο
στο πλαίσιο του προγράμματός μας, το μόνο που έκανε ήταν findViewByID βασικά
θα μπορούσατε να σκεφτείτε το σαν να μας δώσει μια αναφορά στο EditText.
Τώρα θέλουμε να πάρει το string ή το μήνυμα
εντός της EditText που μπορούμε να κάνουμε με τη χρήση του-
θα μπορούσατε να σκεφτείτε EditText ως struct-
λέμε ένα αντικείμενο σε Java-με ένα σωρό διαφορετικές μεθόδους
ή σε άλλους τομείς και τα χαρακτηριστικά που συνδέονται με αυτό.
Όταν λέω EditText. μου δίνει την ευκαιρία να έχουν πρόσβαση
Μία μέθοδος όπως Gettext, η οποία θα πάρει το σημερινό κείμενο
σε αυτό το EditText και στη συνέχεια να μετατρέψετε ότι ρητά
σε μια σειρά, και έχουμε αποθηκεύσει το μήνυμα.
Τώρα θέλουμε πραγματικά να κάνουμε κάτι με αυτό το σκοπό δημιουργήσαμε μόλις στιγμές πριν.
Θα βάλω επιπλέον όπως λέγεται στην πρόθεση,
η οποία, και πάλι, όπως είπα και πριν, αυτό είναι ένας τρόπος για τη δημιουργία της δέσμης
με ένα σωρό δεδομένων.
Extra μήνυμα είναι ετικέτα μας να ξέρουμε τι σώζουμε αυτό το πλαίσιο,
και τότε είμαι όπως το μήνυμα.
>> Και then we can start actually την activity by giving it τη myIntent parameter.
Και αυτό θα ξεκινήσει πραγματικά η δραστηριότητα, οπότε τώρα από την αναβάθμιση σε Windows 8
ίσως υπάρξει κάποια σφάλματα που εμφανίζονται συντομία αλλά να τους αγνοούν.
Και αυτό είναι το Android emulator.
Ας ελπίσουμε ότι ο κώδικας θα είναι πράγματι pop up σε μια στιγμή.
Και πάλι, αγνοώντας όλα εκείνα τα μικρά πράγματα.
Αλλά το Android emulator μπορείτε να μιμηθεί οποιαδήποτε έκδοση του λειτουργικού συστήματος
από τα πρώτα αυτά, Donut, Gingerbread.
Αυτό είναι Jelly φασολιών 4.1.
Αλλά, όπως μπορείτε να δείτε αυτή τη στιγμή, αυτό είναι κάτι που κάναμε.
Αυτό έχει το MainActivity, η EditText, το κουμπί.
Μπορώ να πληκτρολογήσετε κάτι εδώ, αλλά αυτό που μας λείπει σε αυτό το σημείο;
Κάναμε το πεδίο στο MainActivity που πρόκειται να στείλετε το μήνυμα
την άλλη δραστηριότητα, αλλά σε αυτό το σημείο
δεν έχουμε κάνει τίποτα η άλλη δραστηριότητα, γι 'αυτό δεν πρόκειται να λάβουν τίποτα.
Ας τελειώσουμε αυτό το μέρος πριν προχωρήσουμε.
>> Αυτή η δραστηριότητα αποτέλεσμα, αυτό που θα πρέπει να κάνουμε είναι ότι θα πρέπει να κάνουμε είναι ότι θα πρέπει να-
μπορούμε επίσης να ανατρέξετε την πρόθεση μέσα σε αυτή τη δραστηριότητα,
έτσι πρέπει να συλλάβει την πρόθεση, η οποία είναι πραγματικά απλή.
Είναι μια λειτουργία που περιλαμβάνονται στην κατηγορία δραστηριότητας,
ώστε να μπορούμε να πούμε "Πάρτε το μήνυμα από την πρόθεση."
"MyIntent προθέσεων = getIntent."
Και αυτό θα μας δώσει-τώρα myIntent είναι ένα αντικείμενο,
η οποία είναι μια αναφορά στην πρόθεση που μας οδήγησαν σε αυτή τη δραστηριότητα.
MainActivity κλήσεις και δίνει επιπλέον πληροφορίες για να οδηγήσει δραστηριότητας.
Δραστηριότητας αποτέλεσμα φαίνεται τώρα την πρόθεση που το οδήγησαν εδώ,
και μπορούμε να έχουμε πρόσβαση το μήνυμα που δημιουργήσαμε στην άλλη,
getStringExtra, και αυτό θα autocomplete για μένα.
Και τότε να θυμάστε, τον τρόπο με τον οποίο ετικέτα εκείνο το κομμάτι των δεδομένων
Ήταν δίνοντας με αυτό τον τομέα εδώ, αυτή τη δημόσια string,
η οποία είναι η ετικέτα για το string που πραγματικά συμπεριλαμβάνεται.
>> Αν λέω MainActivity.Extra_Message
είναι εκεί, και αυτό είναι περίπου όπως το όνομα της παραμέτρου
όταν περάσαμε τον κωδικό από τον υπεύθυνο για το πρότυπο,
όταν έλεγα ότι κάτι τίτλο βέλος.
Είναι το ίδιο είδος της ιδέας εκεί.
Τώρα, να θυμάστε αυτό.
Έχουμε, επίσης, είχε αυτό το auto δημιουργήθηκαν ή δημιουργούνται κωδικό auto
για δραστικότητα αποτέλεσμα, το οποίο περιλαμβάνει την προβολή κειμένου στη μέση
που λέει hello world.
Θα μπορούσε ενδεχομένως να κάνει ότι τα μεγαλύτερα.
Ας το κάνουμε αυτό πρώτα.
Θα μπορούσε να είναι 40 πυκνοανεξάρτητη pixels.
Ας δούμε, που είναι εξαιρετικά μεγάλη. Αυτό θα είναι εντάξει.
Και στη συνέχεια, για την αναφορά αυτή ατομική προβολή κειμένου στον κωδικό μας
θα πρέπει να δώσει ένα αναγνωριστικό,
και για να το κάνουμε αυτό λέμε @ + id, το οποίο σημαίνει ότι εκχωρήσετε ID.
Αν έχουμε μόλις είπε @ id θα αναλάβει είμαστε αναφορά ένα αναγνωριστικό που ήδη υπάρχει,
και ας το ονομάσουμε αυτό resultTextView μας.
Και παρατηρήσετε ότι στην XML δεν υπάρχει καμία ανάγκη για ερωτηματικά ή οτιδήποτε.
Τα πάντα είναι σε αυτές τις ετικέτες.
Είναι πολύ παρόμοια με HTML σε πολλές από τις αισθήσεις.
>> Χρειάζεται λίγο να συνηθίσει, αλλά τελικά θα αισθάνονται αρκετά άνετα με αυτό.
Ας επικαιροποίηση του κειμένου για την προβολή κειμένου μας αποτέλεσμα,
και όπως κάναμε όταν ήμασταν πάρει αυτό το πεδίο Επεξεργασία κειμένου σε άλλη δραστηριότητα μας
σε MainActivity εδώ θα είμαστε, επίσης, ομοίως-
θα βρούμε τη θέα από το ID.
Και R, σε περίπτωση που δεν το αναφέρω αυτό πριν, είναι η αναφορά στους πόρους φάκελο μας,
και στη συνέχεια ID είναι μια αναφορά σε ό, τι στο φάκελο των πόρων, όλα τα αναγνωριστικά,
και resultTextView.
Και ακριβώς όπως και πριν, resultTextView είναι ένα αντικείμενο,
το οποίο σημαίνει ότι έχει όλες αυτές τις ιδιότητες που σχετίζονται με αυτό.
Όταν χρησιμοποιούμε Gettext για την Επεξεργασία κειμένου για αυτό το πεδίο κειμένου ή την προβολή κειμένου
μπορούμε να χρησιμοποιήσουμε στην πραγματικότητα setText,
και στη συνέχεια βρήκαμε ήδη το μήνυμα από την πρόθεση,
έτσι μπορώ να πω το μήνυμα, και αυτό θα δημιουργήσει στην πραγματικότητα το μήνυμα.
>> Θα πάρει λίγο χρόνο για να ξεκινήσει, και στη συνέχεια μπορούμε να δούμε εάν ή όχι συντρίβει,
αλλά τυχόν ερωτήσεις σχετικά με αυτή τη διαδικασία εκεί, αυτό το είδος της αλληλεπίδρασης;
Με πολλούς τρόπους είναι απλή.
Ο λόγος που περνάω κάτι σχετικά απλό
είναι, και πάλι, γιατί θα έχετε να δείτε την αλληλεπίδραση μεταξύ της διάταξης,
ο πηγαίος κώδικας, πώς τα πράγματα αναφοράς
και να πάρει ίσως και μια μικρή έκθεση για το πώς Java εργάζεται εκεί.
Αν τύπου Ι πραγματικά κάτι εδώ, όπως ohai, και στη συνέχεια κάντε κλικ στο κουμπί,
ξεκινά μια νέα δραστηριότητα, και ότι η άποψη κείμενο αναφέρει ohai.
Αυτό είναι πολύ απλό, αλλά ελπίζουμε ότι μετά από αυτό το παράδειγμα
καταλαβαίνεις περίπου πώς λειτουργεί αυτή η αλληλεπίδραση, και τώρα που το χάος των αρχείων
στην αριστερή πλευρά για όλους αυτούς τους φακέλους του έργου, ελπίζουμε ότι ξέρετε πού να κοιτάξετε τώρα.
Αυτή είναι η πηγή της περιοχής σας κωδικό.
>> Διάταξη είναι πραγματικά το μόνο πράγμα που θα ασχοληθεί με το μέχρι να περιλαμβάνει εικόνες
και οι drawables ή οτιδήποτε άλλο, και τις αξίες, που θα περιλαμβάνει έγχορδα,
όπως είπαμε, και στη συνέχεια στυλ είναι κάτι που είναι περίπου όπως CSS.
Διεύθυνση όταν θέλετε, αλλά μέχρι να νιώσετε άνετα με την προσθήκη επιπλέον αίσθηση
στην αίτησή σας δεν υπάρχει λόγος να ανησυχείτε γι 'αυτό πάρα πολύ.
Ακριβώς για να ολοκληρωθεί ένα άλλο πράγμα που σίγουρα θα θέλετε να συμπεριλάβετε-
υποθέτοντας ότι θέλετε να ενσωματώσουν δροσερά χαρακτηριστικά γνωρίσματα και να σώσει τον εαυτό σας κάποια επιπλέον κωδικοποίηση-
θα ήταν να συμπεριληφθεί 3ο βιβλιοθήκες κόμμα.
Εδώ είναι ο μικρός τύπος Android με το Sherlock Holmes καπέλο.
Πρόκειται για μια δράση bar Sherlock βιβλιοθήκη,
το οποίο ουσιαστικά σημαίνει ότι bar δράσης είδατε νωρίτερα,
η οποία είναι πλέον σε Παγωτό σάντουιτς και Jelly Bean,
αν θέλετε να φέρετε αυτό το είδος της εμπειρίας του χρήστη για τους χρήστες σε παλαιότερες εκδόσεις
και τον εαυτό σας σώσει από την ανησυχία για το πώς ο χρήστης πρόκειται να περιηγηθείτε
σε παλαιότερες εκδόσεις, όταν αυτό το πράγμα δεν είναι εκεί μπορείτε να συμπεριλάβετε αυτή τη βιβλιοθήκη
και στη συνέχεια, απλά πρέπει να αναφορά-και όχι η προεπιλογή Android
βιβλιοθήκες για τη γραμμή δράσης, θα αναφέρουμε αυτή τη βιβλιοθήκη υποστήριξης.
>> Τα πράγματα όπως Scoreloop, είναι μεγάλη, αν είστε πρόκειται να συμπεριλάβει ένα παιχνίδι.
Αυτό σας επιτρέπει να προσθέσετε πίνακες ηγέτης και τα επιτεύγματα σε παιχνίδια.
AdMob είναι ένας τρόπος βάζοντας διαφημίσεις στις εφαρμογές σας
σε περίπτωση που θέλετε να κάνετε ένα μικρό κομμάτι των χρημάτων μακριά από αυτό.
Φυσικά, υπάρχει το Facebook και το Twitter για την ενσωμάτωση εκεί
Αν θέλετε να μοιραστείτε τα πράγματα εύκολα, κ.λπ..
Dropbox, επίσης, και το Google Analytics είναι ότι το διάγραμμα που αναζητούν εκεί.
Αυτό θα είναι πολύ σημαντικό, αν θέλετε πραγματικά να δείτε ποιος αλληλεπιδρά
με το app σας ή ποιος είναι, πώς αλληλεπιδρούν μεταξύ τους, κ.λπ..
Google, από προεπιλογή, σας λέει πολλά στατιστικά στοιχεία σχετικά με το ποιος έχει εγκαταστήσει app σας
και ποια τηλέφωνα έχουν, τι εκδόσεις του λειτουργικού συστήματος που έχουν.
Αλλά αν θέλετε να δείτε ποιος το χρησιμοποιεί σε καθημερινή βάση και πώς να το χρησιμοποιήσετε
τότε θα θέλετε να συμπεριλάβετε κάποιο είδος του συστήματος εντοπισμού όπως αυτό.
>> Όταν είστε έτοιμοι για τη διανομή app σας
Δεν χρειάζεται να υπεισέλθω σε αυτό το πάρα πολύ βάθος.
Κάντε κλικ στο σύνδεσμο εδώ, Google Play.
Θα χρησιμοποιηθεί για να είναι η αγορά Android.
Θα ξανασημαδεμένος πάντα με το Google Play,
έτσι και τώρα θα υποβάλει σε αυτό.
Είναι πολύ απλό.
Θα πρέπει να περιλαμβάνει μια περιγραφή, μερικά στιγμιότυπα.
Όπως είπα, δεν υπάρχει διαδικασία έγκρισης όπως το iOS.
Και πού να πάμε από εδώ;
Μου έδειξε μια πραγματικά απλό παράδειγμα.
Ας ελπίσουμε ότι αν φαίνεται τρομερά απλό
τότε αυτό είναι πιθανώς ένα καλό σημάδι.
Αν σε όλα αισθάνθηκε λίγο συγκεχυμένες ή αβέβαιοι για το τι ακριβώς ήμουν πληκτρολογώντας
αυτό είναι επίσης ωραία, αλλά από εδώ και πηγαίνετε στο Google Οδηγοί.
Αυτό είναι ένα εξαιρετικό μέρος για να ξεκινήσετε.
Θα σας μιλήσω μέσα από αυτό που περιμένουμε από την άποψη του σχεδιασμού εφαρμογής,
πώς οι χρήστες συνήθως αλληλεπιδρούν με αυτό.
Είναι πολύ πιο ελεύθερη μορφή από το iOS, θα έλεγα,
που φαίνεται σαν θέα πίνακα-Δεν ξέρω, αυτό είναι το ψωμί και το βούτυρο τους.
Τα πάντα είναι μια προβολή πίνακα συρόμενη πάνω και κάτω.
Με το Android σίγουρα ενθαρρύνουν τους ανθρώπους να το δει κανείς από
ένα σωρό διαφορετικές οπτικές γωνίες.
>> Όταν έχετε συμπεριλάβει το κιτ ανάπτυξης λογισμικού σε αυτό το ADT
από προεπιλογή, έχετε ένα σωρό έργα του δείγματος στο Android.
Ακριβώς εδώ, το Android, το Android Δείγμα έργου.
Αν κάνω κλικ σε αυτό, τότε μπορώ να επιλέξω μια έκδοση για την οποία του δείγματος έργων ισχύουν.
Υπάρχει ένα σωρό διαφορετικά πράγματα εδώ.
Θα ξεκινά με τη συμβατότητα γραμμή δράσης,
play επιταχυνσιόμετρο, δημιουργία αντιγράφων ασφαλείας και επαναφορά, Bluetooth, οικοδόμος χειρονομία.
JetBoy είναι ένα παιχνιδιών δειγμάτων που σας δίνουν, όπως είναι LunarLander.
Υπάρχουν ένα σωρό δείγματα εφαρμογών εδώ,
και είναι όλα απευθύνονται σε διαφορετικές πτυχές του API του Android,
και η ιδέα είναι ότι, όπως κάνετε την αίτησή σας
δεν χρειάζεται να μάθετε τα πάντα για το Android να κάνει μια εφαρμογή για το Android.
Το μόνο που έχετε να μάθετε για τα μέρη που είστε πραγματικά πρόκειται να χρησιμοποιήσετε.
Κοιτάξτε αυτές τις βιβλιοθήκες του δείγματος.
Μη διστάσετε να αντιγράψετε και να επικολλήσετε τον κώδικα και εφαρμόστε ξανά.
Είναι ένα μεγάλο πράγμα για να εξετάσει πιο δύσκολη κώδικα
και να προσπαθήσουμε να το κατανοήσουμε, το οποίο είναι, φυσικά, γιατί το CS50
συχνά να σας δώσει μεγάλες ποσότητες του πηγαίου κώδικα.
Κοιτάξτε μερικές από αυτές, αν θα πάμε να χρησιμοποιούν παρόμοιες βιβλιοθήκες
και να εφαρμοστεί στη συνέχεια στο δικό σας κώδικα.
Και φυσικά, υπάρχουν και tutorials.
Αναζήτηση για tutorials.
Βρήκα πολλές καλές σε απευθείας σύνδεση που μπορεί να σας φέρει μέχρι την ταχύτητα
με ό, τι θραύσματα πραγματικά είναι και πώς μπορείτε να τα χρησιμοποιήσετε.
>> Μερικά από αυτά τα νέα πράγματα σχεδιασμό, όπως θραύσματα,
που πραγματικά δεν χρειάζεται να ανησυχούν για το αν θέλετε να κάνετε ένα
αρκετά μεγάλο στο έργο εμβέλεια.
Είναι πράγματα που η Google προσπαθεί να καταργήσει μέσα
Stackoverflow είναι φυσικά ο φίλος σας.
Ας ελπίσουμε ότι πούλησε ένα κομμάτι για το Android,
συνειδητοποιούν ότι είναι πολύ πιο εύκολο να προσεγγίζουν από την άποψη του μόνο την κωδικοποίηση γλώσσας.
Η Java είναι θα έλεγα πολύ πιο εύκολο να καταλάβουμε από το Objective-C.
Android αυξάνεται πιστεύω πολύ περισσότερο από ό, τι iOS.
Θέλω να πω, τα δεδομένα είναι εκεί, εκτός από ό, τι νομίζω.
Είναι πρόκειται να είναι γύρω για μια στιγμή,
και είναι σε λίγα χρόνια πίσω όσον αφορά τους κύκλους σχεδιασμού τους,
έτσι είναι είδος κατανοητό ότι δουλεύουμε ακόμα μερικά από αυτά
ερωτήσεις συνέπειας, όπως αυτό το μπαρ δράσης είναι ένα νέο πράγμα για αυτούς ακόμα,
είδος της δημιουργίας παρόμοιων εμπειρία του χρήστη σε όλες τις εφαρμογές τους.
Ας ελπίσουμε ότι μπορείτε να πάτε μπροστά τώρα και να ανοίξει Eclipse
και κάνουν τις δικές σας εφαρμογές Android.
>> Υπάρχει κάποιος που έχει οποιεσδήποτε ερωτήσεις πρίν έχουμε ολοκληρώσει για τίποτα;
Μπορώ να σας πω την απάντηση είναι 42.
Λοιπόν, ευτυχισμένος κωδικοποίησης σε όλους, και καλή τύχη.
[CS50.TV]