[Powered by Google Translate] [Seminari] [Aplicacions Android (Ara amb Jelly Beans!)]
[Jordània Jozwiak] [Universitat de Harvard]
[Aquest és CS50.] [CS50.TV]
>> Hola a tots, i benvinguts a Apps Android (Ara amb Jelly Beans!) Seminari.
Es diu Ara amb Jelly Beans, per descomptat, perquè
l'última versió del sistema operatiu es diu Jelly Bean.
Quan vaig parlar d'Android l'any passat i ho vaig fer bàsicament mateix seminari
Jo estava presentant els patrons de disseny i opcions d'estil de pa de gingebre,
tot i que Ice Cream Sandwich havia sortit en aquest moment,
i això és una cosa del que parlarem en el futur una mica.
Android, per descomptat, té alguns problemes amb la fragmentació,
pel que l'últim sistema operatiu de Google és en general
en realitat no serà comú entre els usuaris potencials de fins a un any, per desgràcia.
>> Però sense tenir en compte que, anem a parlar d'un munt de raons per les quals
Android és molt millor que iOS.
Bé, anem a parlar d'Android enfront de iOS,
alguns paradigmes de disseny, com va a posar-se en marxa en una sola diapositiva,
i la gran diferència entre aquest i l'any passat és només vull
zoom a través d'algunes coses conceptuals que treballen amb
el sistema operatiu i, a continuació entra en un exemple molt bàsic.
De fet, només l'exemple que Google descriu per a la construcció de la seva primera aplicació,
i anirem a través d'ell junts i simplement descrivim.
>> Sé que molts de vostès només han codificat en C, de manera que Java ja serà
una perspectiva diferent, i d'aquesta manera podràs aconseguir els seus peus mullats
i sentir-se una mica més còmode amb ell esperem.
Un resum ràpid, Android enfront de iOS.
En Android hi ha aquesta tarifa desenvolupador d'una sola vegada de $ 25,
res d'això $ 100 per any.
No hi ha restriccions, el que significa que si vull presentar una aplicació,
Em presento, i no hi ha procés d'aprovació com n'hi ha per iOS.
Tens l'oportunitat de desenvolupar en Java usant Eclipsi,
que és multiplataforma, de manera que no importa si vostè té un Mac,
Windows o una màquina Linux.
Per descomptat, amb iOS ha d'utilitzar XCode en un Mac,
i Android és utilitzat per moltes més persones,
així que si vostè vol que la seva aplicació s'executi algun tipus de visibilitat o potser
fer una mica de diners dels anuncis
vostè està probablement més probabilitats de beneficiar d'Android.
>> I una cosa que sempre s'ha conegut sobre Android
és la quantitat de personalització extrema, mentre que iOS és molt fixa en les seves formes
de manera que puguin mantenir la seguretat i el control sobre cada petit aspecte
del disseny dins del seu sistema operatiu i les aplicacions individuals.
Android és la forma molt lliure, i hi ha tantes més possibilitats.
Bé, alguns paradigmes de disseny.
Noteu aquí igual que iOS té tauletes i telèfons iPhone i iPod Touch
que han de suportar, per exemple, com una dotzena de dispositius si vols donar suport
coses històriques també.
Amb Android que ha de suportar centenars de dispositius,
així que hi ha algunes coses que Google ha estat tractant de posar en pràctica
perquè l'usuari experimenti una mica més consistent,
però també parlarem de com això vol dir que hi ha problemes de fragmentació
que constantment han de ser conscients de suport.
La fragmentació significa que hi ha molts sistemes operatius diferents,
molts telèfons diferents amb diferent maquinari amb Android, tot al mateix temps,
pel que aquest gràfic aquí es remunta a prop de 6 mesos.
Sí, de 6 mesos, i es pot veure com la banda més fosca
en el fons és Jelly Bean, que va sortir a l'estiu,
i es pot veure en aquests moments probablement al voltant de 2% dels telèfons que ho tinguem.
>> Ice Cream Sandwich sortir fa més d'un any,
i una quarta part dels telèfons que ho tinguem.
Encara hi ha un munt de telèfons que fan servir la versió del sistema operatiu des de fa anys.
Una cosa que Google ha tractat de fer perquè l'experiència de l'usuari
molt més consistent a través d'aplicacions s'inicia amb Honeycomb,
que és la versió tablet, a continuació, Ice Cream Sandwich i Jelly Bean,
que realment estan tractant de posar l'accent en l'ús d'aquesta barra d'accions,
que és el que es pot veure a la part superior aquí,
tot bé aquí, incloent aquest petit botó de configuració.
És l'opció de disseny.
Ara, cada vegada que vegi els 3 punts que significa fer clic a aquest,
i hi haurà un menú desplegable, que té algun tipus de configuració.
Això només apareix perquè vaig fer clic en aquest botó.
Això és una cosa que ells estan tractant d'utilitzar per fer que les aplicacions una mica més consistent
en tots els àmbits i perquè l'usuari tingui una millor idea de l'experiència uniforme.
>> Bé, pel que en cas que no s'hagi fet ja, o si vostè està veient a casa
llavors vostè pot seguir aquests passos per configurar l'entorn de codificació.
Això implicarà anar a la pàgina web aquí.
Vostè pot buscar a Google instal · lar SDK Android
i segueixi les descripcions allà.
Et diuen tot.
Han d'instal · lar la, descàrrega Eclipsi SDK versió Classic,
encara que, per descomptat, estem codificació en Java.
Recomanen aquest, i llavors aquest ADT, les eines de desenvolupament d'Android,
és un plugin que s'instal · la en Eclipse que permet
tenir una experiència molt més àgil amb Android a Eclipse.
Li donarà algunes interfícies gràfiques d'usuari
per al disseny dels punts de vista, i que li donarà molt més suport
i la capacitat per posar en marxa amb l'emulador i tot aquest tipus de coses.
Marc d'aplicació.
>> Vull parlar sobre com s'estructuren els projectes dins d'Android,
i després entrarem en un exemple ràpid, i és d'esperar
vostè pot fer preguntes en qualsevol moment i sentir-se còmode al final de la mateixa.
Tenim primer l'argot.
Una activitat és com la pantalla que apareix en iniciar una aplicació.
Tota l'experiència és la mateixa activitat,
pel que podria pensar en ell com una pantalla o una vista,
però en realitat és la part del codi font de la mateixa.
Encara anomenem la part real de la mateixa interfície d'una vista.
És una cosa així com la forma en PSET juliol vam tenir el controlador i la vista.
L'activitat és més o menys el controlador,
i la vista és el que estem fent en termes de XML
que s'associa amb aquesta activitat.
Els fragments són una cosa que està implementat en Ice Cream Sandwich en el futur.
És només una idea de prendre part de la vista o de l'activitat
i dividir-los en àrees separades perquè puguem
fer el nostre codi més útil per a aquests diferents dispositius
que hem de donar suport, i és només una manera de tractar de
També factoritzar més codi.
Els serveis són de fons coses com reproduir música o adreces de navegació potencialment.
Els proveïdors de contingut, aquestes són les API dins del sistema operatiu
que li permeten accedir a les dades compartides, com ara informació de contacte,
i la intenció és quelcom que utilitzarem quan es vol posar en marxa
una nova activitat de la nostra activitat actual.
>> Hola Android, això serà un projecte que parlarem.
Jo en realitat ho faci per tu, i després faré una cosa en què feu clic a un botó
amb una mica de text i posar en marxa una nova activitat.
Molt senzill, però vull passar per
el que vaig a entrar en un projecte com aquest.
En realitzar el nou projecte veurà dins d'Eclipse
hi ha aquest projecte anomenat Hola Android.
Després hi ha un munt de carpetes aquí.
Els que vostè està realment preocupat amb són la carpeta d'origen,
la carpeta de recursos, l'animal, i en certa mesura la carpeta libs per a les biblioteques.
I perquè quedi a la mateixa pàgina amb la
si fos a crear un nou projecte,
vostè pot fer això aquí, així que si jo vull cridar HelloAndroid,
i després ho fa automàticament un munt d'informació per a nosaltres.
El nom del paquet se suposa que és un identificador únic
que normalment s'associa amb el lloc web, si vostè tingués un.
>> Per exemple, vaig a trucar a aquest net.cs50.helloandroid.
I ja he fet aquest projecte una vegada.
Val, ho sento. Diguem-HelloCS50.
I llavors se us demanarà coses com quin tipus d'icona de què volem fer.
Tot això és degut a la interfície Eines Desenvolupadors d'Android,
el connector que hem afegit a Eclipse, pel que pot triar coses com
el que la icona que volem, i que anàvem a aquesta profunditat si volem.
Però al final, acaba de fer el projecte,
i tot el que es presenta aquí.
Com vaig mostrar en l'altra pantalla,
tenim la carpeta d'origen, i vaig a parlar del que tot això significa poc,
però es pot veure que immediatament ens porta a la pantalla HelloCS50.
Hi ha alguns botons d'aquí per afegir text i dissenys de camp de text.
És com XCode, però per desgràcia no és tan eficient.
No obstant això, els clips seran el seu amic i ADT, en particular, per fer això.
>> Bé, la carpeta d'origen és on
els arxius Java es duen a terme, i això és en realitat el llançament del seu programa.
És bàsicament com els controladors.
La carpeta de recursos o de la res és on anem a mantenir dissenys de pantalla,
imatges, sons, text, animació i tota la resta, libs, òbviament, biblioteques.
I el Manifest, és la forma en què el sistema Android sap
com interactuar amb l'aplicació.
Es diu que sobre els permisos i les activitats que en realitat es pot executar.
És tota la informació essencial que cal per executar l'aplicació.
La carpeta d'origen és-si ampliem com es pot veure aquí.
I un exemple que un codi seria-aquest és el codi predeterminat.
Com ho diem, MainActivity.
Per defecte, s'obté onCreate, que és una funció que es crida quan es carrega aquesta activitat,
pel qual voleu trucar onCreate (savedInstanceState).
Això restaurarà els bits d'informació
en cas que es va aturar l'aplicació.
>> Hi ha una activitat gràfica cicle de vida que es pot veure a
quan vostè aconsegueix una mica més en profunditat en ella,
però la més important línia de codi hi ha aquesta funció setContentView
que es carregui el fitxer de recursos per al disseny.
Llavors, què onCreate aquí està fent bàsicament és que està dient
quan crec aquesta activitat vull carregar aquesta disposició.
I parlarem del que el disseny és d'un segon.
Si ens posarem en marxa que aquí es veu exactament com aquesta,
i per defecte perquè hem Eclipsi fent això i ADT fent per nosaltres
Aquest és tot el codi repetitiu que es crea per a nosaltres,
i podem seguir endavant i canviar les coses que ens agrada.
La carpeta de recursos, com he dit, aquí és on tenim tots els dissenys,
dibuixables en termes de qualsevol tipus d'imatges-
se'ls anomena dibuixables-i després els arxius de so, menús.
És una forma d'un munt de XML en una bona manera ordenada.
Com pots veure, hi ha. IPAP, LDPI, MDPI i carpetes xhdpi per als dibuixables.
Aquestes són les diferents densitats de pantalla, els píxels tan alta densitat per polzada,
baixa densitat, mitja densitat, alta densitat addicional.
>> Això és, de nou, pel que pot suportar tots aquests diferents dispositius,
i idealment, tindrà diferents imatges per a cada resolució diferent.
Els dissenys són on incloem tots els diferents dissenys que s'utilitzaran en les diferents activitats.
També podrien incloure disposicions per fragments,
el que significa bàsicament activitats parcials.
Si vols fer alguna cosa fresc com quan gira el telèfon
vostè desitja que tingui un disseny diferent que vostè pot fer disseny-paisatge com una carpeta diferent,
Android i automàticament té un munt d'aquestes normes dins de la carpeta de recursos,
pel que saber cercar en diferents carpetes en funció de la configuració actual del telèfon,
quin tipus de maquinari que utilitzeu.
De la mateixa manera, aquest valor-v11 aquí i valors-v14
i els valors per defecte carpeta d'això és per-
així, els valors per si mateix, això seran els valors per defecte a través de totes les versions del sistema operatiu.
D'altra banda, v11 i v14 corresponen amb Honeycomb
i Ice Cream Sandwich, respectivament.
Una vegada més, es tracta de formes que-dins d'aquestes carpetes són diferents cadenes
i estils, perquè pugui personalitzar l'aspecte de la seva aplicació
o possiblement fins i tot la seva funcionalitat, tot i que probablement seria una mala idea,
sobre la base de la versió del sistema operatiu.
>> I vaig parlar de tot això aquí.
Un cop més, poden dibuixar, primeres, el disseny, els valors.
Els valors per defecte, si entrem a Hola Hola Android o CS50 ara
serà un aspecte com aquest.
Es dirà hola món.
Com es pot veure aquí amb el text Android
el text d'aquest punt de vista el text, que és bàsicament només una etiqueta,
és el que diríem en iOS.
Té aquesta notació divertit @ string / hello_world.
Això és el que pot-d'intentar extreure totes les cadenes,
totes les cadenes fixes en Android en una carpeta separada,
que passa a ser en values.strings.
Si mirem aquí, podem veure que tenim una cadena fixa guardada aquí
per hola món, i es diu hola món, i això és una espècie de
decisió de disseny comú en moltes plataformes que desitja-
cadenes són el tipus de coses que volem ser potencialment capaç de canviar.
No volem controlar F al nostre arxiu de codi font en el nostre XML.
Volem ser capaços de canviar això quan tenim l'oportunitat.
>> Aquest fitxer XML, strings.xml, és una manera d'extreure
cadenes fixes que d'una altra manera, en els nostres recursos de disseny
o en el nostre codi font.
El Manifest és on guardem la informació essencial sobre l'aplicació.
Inclou el nom del paquet. Això ha de ser un identificador únic.
A diferència de l'App Store per iOS els noms de les aplicacions
no ha de ser únic, i vostè pot de fet canviar el nom de l'aplicació
després d'enviar, així que si començo amb Angry Birds,
i després faig una actualització, i jo no vull llançar una nova versió
Suposo que podria dir-Angry Birds 2 mentre sóc al mateix cicle de llançament.
S'acaba d'aparèixer com una actualització.
L'únic que ha de ser únic és el nom del paquet,
que no molta gent va a veure.
Bé, només veuries si estiguessis mirant el codi font o si hi ha algun tipus d'error.
Els components inclouran activitats, així que hem de declarar
qualsevol tipus d'activitat que utilitzem.
Es tracta d'un permís tipus de coses.
>> Perquè Android no té aquest rigorós procés d'aplicació
per a la presentació de les aplicacions sinó que simplement tot ho basen fora dels permisos
i declarant les coses en el Manifest.
La versió SDK també és important.
Podem establir el seu ús com SDK versió mínima alguna cosa.
Òbviament, vostè vol crear codi
i el disseny dels sistemes operatius més recents.
Potser no és el més nou, potser no Jelly Bean.
Potser vostè vol dissenyar tot per Ice Cream Sandwich,
tot i que són més o menys el mateix quant a les decisions de disseny
i les biblioteques reals i API.
Però en lloc que la gent
de l'original versió d'Android-com Donut camí de tornada quan-
que encara s'estigui utilitzant que intenten descarregar l'aplicació i després dir
no funciona en el meu telèfon pot establir la versió mínima
i han de ser Gingerbread o Ice Cream Sandwich
o el que vostè se senti còmode presentant.
I aquest és un exemple del Manifest. Podem mirar a la real en un moment.
>> Bé, seguirem endavant amb la demo.
Aquesta és la demostració si Google Android construir la seva primera aplicació o alguna cosa per l'estil.
Anem a passar per tot el que està passant aquí,
i ho sento, només per una referència que aquí sap Java en un grau?
Bé, Java és nou llenguatge de codificació per a la majoria de la gent que surt de CS50.
En poques paraules, per anar de nou el que diu aquí,
el que volem fer és en lloc d'ajustar aquesta aplicació hola món
que l'únic que fa és que llança i diu hola món
i diu hola CS50 a la part superior, perquè aquest és el nom de l'activitat
tractarem de fer un camp de text i un botó
de manera que quan premem aquest botó prendrà el text
des del camp de text i posar en marxa una nova activitat, i dirà:
el que sigui que el text va dir en l'activitat, i això és relativament simple.
No és molt interessant. No vol llançar qualsevol aplicació com aquesta.
Però demostra algunes coses importants de disseny.
>> Haurem de interactuar amb el Manifest, amb els arxius de disseny,
amb el codi font, i es pot veure com posar en marxa una activitat d'un altre.
Anem a començar amb el disseny de la nostra primera activitat,
que jo sé que és una mica petita,
però com es pot veure en aquest moment, tot el que és és que té el nostre logotip que vam crear,
el nom de l'activitat, i diu hola món en el centre.
En canvi, jo estic primer va a convertir això en un disseny lineal,
una disposició relativa, i aquestes són totes les coses
vostè podria mirar cap amunt i valen passar-se en algun moment, en termes dels dissenys.
És molt semblant a HTML.
Vam dir que no és realment val la pena conèixer, en termes d'un sentit programàtic,
però hi ha tants dissenys diferents que es poden controlar,
i és com CSS en termes d'estils.
>> Hi ha molt per fer només en termes de l'estètica aquí,
i sí, és val la pena aprendre, però és el tipus de cosa que vostè ha de mirar cap amunt
mentre que vostè va i vostè sent que necessita alguna cosa nova.
Puc prendre avantatge d'algunes de les eines ADT aquí almenys per començar.
Vaig a fer un camp de text, i faré un botó.
Posa'ls just al costat de l'altra.
Ja redimensionar adequadament.
Ho sentim, un cop més, tornant a la diferència entre el disseny i el disseny lineal relativa,
un disseny lineal fa una mica més de funcionalitat
en termes d'espai de farciment i d'assegurar
Ens posicionem coses horitzontal o verticalment.
La gran diferència entre un disseny lineal i una disposició relativa
és la disposició relativa llocs sobretot en relació amb altres punts de vista,
i el bo d'això és que es necessita menys temps per dibuixar
perquè el sistema operatiu mira tot el codi i diu que això va
en relació amb això aquí, aquí.
Això vol dir que té un menor nombre de mesuraments que un munt de dissenys lineals niats,
el que hauria de fer si volia que les coses van verticalment aquí.
>> Ja he algunes coses que van en horitzontal, de manera que necessitaria una disposició lineal diferent
per niar de forma vertical, però si jo estigués fent una presentació relativa podria dir
mantenir aquest a l'esquerra, aquesta a la dreta i per sota d'aquestes coses.
Però perquè jo vull que omplen ara vaig a utilitzar un disseny lineal,
i es pot veure que ja fa un munt d'aquestes coses per a nosaltres.
Totes les visites han de tenir una propietat d'ample i alt,
i aquest passa a tenir un pes d'1, i això té un pes d'1
perquè ocupi tot l'espai.
No obstant això, l'amplada i l'alçada són les més importants.
Aquest camp ID aquí no és important en el disseny actual
llevat que estiguem usant un disseny relativa i dir que podem referenciar
una posició vista en referència a un altre.
Si tinguéssim una disposició relativa podríem dir aquesta posició per sota d'aquest
o per sobre d'aquest ID, però aquesta ID serà important
quan estem utilitzant en el nostre codi, ja que podem referenciar
aquests punts de vista individuals d'aquesta manera.
>> I llavors vostè pot veure el requestFocus etiqueta, que és una cosa que probablement vas veure en PSET juliol.
Hi va haver una etiqueta enfocament automàtic o alguna cosa per l'estil d'un dels camps.
I una cosa, per descomptat, podem fer el mateix que en HTML,
i observi una de les coses bones d'ADT és que autocompletes aquí.
Potser no tan bé com ho va fer en XCode, però ho fa, però,
i podríem dir indirecta i després donar-li algun tipus de cadena
vol escriure un missatge,
i si li dono un moment, també adonar que tinc un petit error aquí
dient que hem d'utilitzar un recurs de cadena per això,
pel que si el deixo fer alguna cosa del treball dur per a mi
Puc seleccionar aquesta cadena, feu refractor Android i l'extracte de cadena Android.
Puc donar-li un nom, escriure un missatge,
i el que va fer ara és reemplaçat aquesta cadena codificada
amb una referència a la cadena a. xml de la corda,
el que significa que ara es tracta aquí.
>> I sé que sembla una mica trivial i, com a treball extra en aquest punt,
però quan vostè té un munt de coses, un munt de cordes,
això és molt important, i en particular per a la localització
ja que com he esmentat abans, Android és un sistema operatiu molt utilitzat a nivell mundial
que només ha de fer-en els valors o els valors-sp
o alguna cosa d'anglès o espanyol o en altres idiomes.
I llavors és probable que no hagi tingut aquesta experiència encara
ja que no vam fer molt JavaScript en termes de programació web,
però també podem fer això camp denominat onClick del botó,
i aquesta és una manera de referència dins el nostre disseny
que volem una determinada funció que es dirà en el nostre codi font.
Vaig a trucar a aquest sendmessage,
i per tal de fer aquest treball que significa en l'activitat principal aquí
Vaig a haver de crear una funció que és públic
de manera que es pot accedir pel disseny.
És nul · la perquè simplement no vol que es retorna res.
El anomenarem sendmessage, i es necessita un punt de vista,
que és una mena de context que podem ancorar aquest mètode
a la vista individual quan estem executant.
>> I jo no sé si t'has adonat, bé, vostè no ha notat,
però en aquest moment aquí
aquest punt de vista és un tipus que encara no s'ha inclòs,
i per descomptat, tots vostès saben sobre CS50 sense incloure els tipus.
El millor de com Eclipse IDE és que
si s'oblida d'incloure un tipus que subratllarà amb una mica de vermell squiggly
i després li donen l'opció d'importar la vista.
Una manera ràpida de fer-ho és control de canvis O, i s'importarà
tots els arxius que necessita per.
Ara que tenim aquesta funció sendmessage,
que va a enviar el missatge de la MainActivity a una nova activitat,
haurem de fer servir la intenció de posar en marxa la nova activitat d'aquest,
així que probablement volem crear una constant global o també en particular una constant pública
que l'ajudarà a saber com farem referència a la cadena de
perquè quan creem un intent no només estem cridant a una nova activitat,
però també podem donar-li un paquet d'informació.
Un paquet és realment el terme que utilitza Android,
i és una manera de dir li donen dades addicionals, que no pot ser d'un tipus de dades molt sofisticada,
però definitivament podem incloure booleans o cadenes o ints.
Aquest tipus de coses.
>> No dubti a preguntar sobre qualsevol d'aquests qualificatius aquí,
pública, final, estàtica.
Públic és l'important.
Això significa que podem accedir a aquesta variable d'altres arxius de codi font
per exemple, quan es crea una nova activitat.
Podem fer referència a la cadena dins d'aquest arxiu.
Si és privat, vol dir que està limitat a aquesta imatge individual aquí.
Però anem a trucar a aquesta cosa com a missatge addicional.
Ara hem fet aquesta funció, i si fem clic al botó, es dirà a aquesta funció.
Però no hem fet res, òbviament, amb la funció.
El que volem fer ara és crear una nova activitat,
en realitat es va posar en marxa l'activitat.
En Eclipse podem dir nova, l'activitat d'Android, l'activitat en blanc.
Podem donar-li un nom.
Diguem que és la nostra activitat resultat.
I a continuació, aquest camp matriu jeràrquica és una forma d'especificar
com les activitats estan relacionades entre si.
Perquè aquest es posarà en marxa a partir de l'altra activitat
hem d'especificar que té l'activitat principal.
>> I jo podria haver fet clic al següent camp existeix, el que ens han dit
alguns camps opcionals que també va ser inclòs,
però el bo d'ADT, un cop més, és que si em desplaço fins aquí
en el Manifest de recordar que tot això realment va ser inclòs per defecte
quan es va crear originalment el projecte,
i ara ja hem utilitzat aquest crea una nova activitat i no només
afegint el nostre propi arxiu de classe perquè ens vam anar a través de la seva interfície gràfica d'usuari per fer això
ia tot això s'afegeix al manifest per a nosaltres,
que només vol dir que ara el sistema operatiu no es queixarà
quan tractem de posar en marxa aquesta activitat.
I també, per descomptat, que va donar una etiqueta, que també es mostra en les cadenes.
Fa un munt de coses a la part de darrere per a nosaltres.
De totes maneres, ara que tenim aquesta activitat resultat així,
l'arxiu de codi font real de la carpeta d'origen,
i es pot veure a referir-me breument a aquesta-
perquè ens van dir que sobre aquesta matriu jeràrquica
donar aquest camp android.r.ide.home en aquest onOption el seleccionat.
>> El que està dient bàsicament és que hi ha un botó de menú ara
que a la cantonada superior esquerra de la pantalla
si torno a anar a la presentació de PowerPoint que parlem per primera vegada sobre la barra d'acció
causa que el pare jeràrquica ara hi ha una petita fletxa de tornada aquí
i això es pot fer clic, així que hauríem de ser capaços, després que en realitat corre aquesta aplicació-
tornar, i és una manera de salvar-nos una mica de codi allà.
Ara, dins d'aquest, bé, sembla que es queixen que per un moment.
Anem a comentar això.
Ara, per tal d'interactuar efectivament amb aquestes activitats 2,
hem de crear una intenció que inclou totes aquestes dades.
En sendmessage ara em vaig a navegar a través d'alguns trossos de codi
i explico que com vaig.
La intenció, com he dit, és una manera de posar en marxa una activitat d'un altre.
Intenció és el tipus. Estem creant un myIntent variable.
>> I això és en realitat un objecte, de manera que hem de trucar a nova.
És comú l'ús de Java no, el que podria prendre una mica de temps per acostumar.
Això vol dir que estem utilitzant l'activitat o la MainActivity classe,
i la intenció d'aquesta manera pren l'activitat que va a
i l'activitat que va a, el que anomenem ResultActivity,
i que és la seva pròpia classe.
Inclogui això.
I llavors, com he esmentat abans, li vam donar aquest ID en el camp d'edició de text
i la vista de text, pel que amb la finalitat de capturar mitjançant programació
el text que hi ha al EDITTEXT
fem servir aquesta funció anomenada findViewById,
que és similar a alguna cosa que va a utilitzar quan es tracta d'obtenir els camps de la DOM.
Potser David parla d'això en conferència.
Però és només una manera d'aconseguir els-per això ens vam marcar aquestes coses amb aquests camps.
Id.editText1.
Ja està autocompletar per a mi.
>> I llavors també inclourem-aquest EDITTEXT ara que tenim el camp
dins del nostre programa, l'únic que va fer va ser bàsicament findViewById
vostè podria pensar en ell com ens donen una referència a aquesta EDITTEXT.
Ara volem que la cadena o el missatge
dins d'aquest EDITTEXT que podem fer mitjançant l'ús de la
vostè podria pensar EDITTEXT com una estructura-
en diem un objecte en Java, amb un munt de diferents mètodes
o dels camps i els atributs que se li atribueix.
Quan dic EDITTEXT. em dóna l'oportunitat d'accedir a
un mètode com gettext, que aconseguirà el text actual
en aquest EDITTEXT i després convertir aquesta explícitament
en una cadena, i hem guardat el missatge.
Ara que realment volem fer alguna cosa amb aquesta intenció es va crear fa uns moments.
Posaré addicional com se l'anomena en l'intent,
que, de nou, com he dit abans, aquesta és una manera de crear el paquet
amb un munt de dades.
Missatge Extra és la nostra etiqueta, així que sabem el que estem estalviant aquest baix,
i estic incloent el missatge.
>> I llavors podem realment començar l'activitat donant-li el myIntent paràmetre.
I això posarà en marxa l'activitat, de manera que ara ja he actualitzat a Windows 8
pot haver alguns errors que apareixen breument, però intentar ignorar-los.
I aquest és l'emulador d'Android.
Esperem que el codi serà fet esclatar per amunt en un moment.
Un cop més, fent cas omís de totes aquestes petites coses.
Però l'emulador d'Android que pot emular qualsevol versió del sistema operatiu
dels més antics, bunyol, pa de gingebre.
Es tracta de Jelly Bean 4.1.
Però com es pot veure en aquest moment, això és una cosa que prenem.
Això té la MainActivity, la EDITTEXT, el botó.
Puc escriure alguna cosa aquí, però el que ens falta en aquest moment?
Vam fer el camp en el MainActivity que va a enviar el missatge
a l'altra activitat, però en aquest moment
no hem fet res en l'altra activitat, pel que no va a rebre res.
Anem a acabar fins que la part abans de seguir endavant.
>> Aquesta activitat resultat, el que haurem de fer és que haurem de fer és que necessitarem-
també podem fer referència a la intenció dins d'aquesta activitat,
així que hem de captar la intenció, que és molt simple.
És una funció inclosa en la classe d'activitat,
així que només podem dir "aconseguir el missatge de la intenció."
"MyIntent Intento = getIntent."
I això ens donarà, ara myIntent és un objecte,
que és una referència a la intenció que ens va conduir a aquesta activitat.
MainActivity flama i dóna la informació addicional que resulti activitat.
Resultat de l'activitat ara es veu en la intenció que va portar aquí,
i podem accedir al missatge que hem creat en l'altre,
getStringExtra, i això es autocomplete per a mi.
I a continuació, recordar, la manera en què etiquetem aquesta mica de dades
estava donant aquest camp aquí, aquesta cadena pública,
que és l'etiqueta de la cadena que realment inclòs.
>> Si dic MainActivity.Extra_Message
és just aquí, i això és una cosa així com el nom del paràmetre
quan passem codi al controlador a la plantilla,
quan dèiem títol arrow alguna cosa.
És el mateix tipus d'idea allà.
Ara, recordeu això.
També vam tenir l'acte creats o generats de codi acte
per a l'activitat de resultat, que inclou la vista de text en el medi
que diu hola món.
Potencialment Podríem fer que més gran.
Farem això primer.
Podríem fer-ho densitat 40 píxels independents.
Anem a veure, que és super enorme. Això estarà bé.
I després per fer referència a aquesta vista de text individual dins del nostre codi
haurem de donar-li una identificació,
i per tal de fer això diem @ + d, el que significa que assignem ID.
Si simplement vam dir @ id assumiria estem referència a un ID que ja existeix,
i anem a trucar a aquest nostre resultTextView.
I observi que en XML que no hi ha necessitat d'un punt i coma, ni res.
Tot està dins d'aquestes etiquetes.
És molt similar a l'HTML en molts sentits.
>> Pren una mica de temps per acostumar-se, però amb el temps se sentirà molt còmode amb ell.
Anem a actualitzar el text del nostre text veure resultat,
i com ho vam fer quan ens anàvem a aquest camp d'edició de text en la nostra altra activitat
en MainActivity Aquí també likewise-
trobarem el punt de vista de la identificació.
I, R, en cas que no ho he esmentat abans, és la referència a la nostra carpeta de recursos,
i després ID és una referència per a tot el que a la carpeta de recursos, tots els identificadors de,
i resultTextView.
I igual que abans, resultTextView és un objecte,
el que significa que té totes aquestes propietats associats.
Quan fem servir gettext per a l'edició de text en aquest camp de text oa la vista de text
que puguem usar setText,
i després ja ens trobem el missatge de la intenció,
pel que puc dir el missatge, i això va a configurar el missatge.
>> Es pren un moment per posar en marxa, i llavors podem veure si es bloqueja,
però alguna pregunta sobre aquest procés just aquí, aquest tipus d'interacció?
En molts sentits, és senzill.
La raó per la qual estic passant per una cosa relativament senzilla
és, de nou, perquè s'arriba a veure la interacció entre el disseny,
El codi font, la forma en què les coses referència
i potser una mica de l'exposició a la forma en Java treballa.
Si jo en realitat escric alguna cosa aquí, com ohai, i després fer clic al botó,
posa en marxa una nova activitat, i que vista de text diu ohai.
Això és molt simple, però espero que després que l'exemple
que sort de veure com funciona aquesta interacció, i ara aquest embolic d'arxius
a la part esquerra d'aquestes carpetes de projecte, amb sort vostè sap on mirar.
Aquesta és la seva àrea de codi font.
>> El disseny és realment l'única cosa que va a lluitar amb fins a incloure imatges
i els dibuixables o el que sigui, i els valors, que inclouran cadenes,
com hem esmentat, i estils és una cosa que és una cosa així com CSS.
Direcció quan vulgui, però fins que se senti còmode amb l'addició de toc extra
a la seva sol.licitud, no hi ha necessitat de preocupar-se massa.
Només per concloure altra cosa que sens dubte vol incloure-
suposant que es vol integrar funcions interessants i estalviar alguns extres coding-
seria incloure biblioteques tercera part.
Aquí està el petit androide amb el barret de Sherlock Holmes.
Es tracta d'una barra d'accions biblioteca Sherlock,
el que bàsicament vol dir que la barra d'acció que hem vist abans,
que ara és estàndard en Ice Cream Sandwich i Jelly Bean,
si vostè vol portar aquest tipus d'experiència d'usuari per als usuaris de versions anteriors
i estalviar d'haver de preocupar sobre com l'usuari va a navegar
en versions anteriors, quan això no és allà pot incloure aquesta biblioteca
i després només has de referència en lloc de l'Android per defecte
biblioteques de la barra d'accions, que fan referència a aquesta biblioteca de suport.
>> Coses com Scoreloop, és gran si vostè va a incloure una partida.
Permet afegir taules de classificació i èxits als jocs.
AdMob és una forma de posar anuncis a les seves aplicacions
en cas que vulgui fer una mica de diners amb ell.
Per descomptat, no és Facebook i Twitter per a la integració no
si vostè vol compartir coses amb facilitat, et cetera.
Dropbox, de la mateixa manera, i Google Analytics és aquesta carta busca ningú.
Això serà molt important si vostè realment vol veure qui està interactuant
amb la seva aplicació o qui és, com interactuen, et cetera.
Google, per defecte, li diu un munt d'estadístiques sobre qui ha instal · lat la seva aplicació
i el que els telèfons que tenen, quines versions del sistema operatiu que tingui.
Però si vostè vol veure que ho està utilitzant diàriament i com l'utilitzen
llavors vostè voldrà incloure algun tipus de sistema de seguiment d'aquesta manera.
>> Quan estigui llest per distribuir la seva aplicació
No necessito entrar en això en massa profunditat.
Fes clic a l'enllaç d'aquí, Google Play.
El que solia ser el mercat Android.
Ells van marcar de nou tot amb Google Play,
pel que ara se sotmet a això.
És molt senzill.
Vostè ha d'incloure una descripció, algunes captures de pantalla.
Com he dit, no hi ha procés d'aprovació com iOS.
¿I on anar des d'aquí?
Els vaig mostrar un exemple molt simple.
Esperem que si sembla terriblement senzilla
llavors això és probablement un bon senyal.
Si en tot sentit una mica confús o insegur sobre exactament el que estava escrivint
això és també molt bé, però a partir d'aquí anar a Guies de Google.
Aquest és un gran lloc per començar.
Es va a parlar a través del que esperen en termes del disseny de l'aplicació,
com els usuaris interactuen normalment amb ella.
És molt més de forma lliure que iOS, jo diria,
que sembla que les vistes de taula són-no ho sé, aquest és el seu pa i mantega.
Tot és una vista de taula llisqui cap amunt i cap avall.
Amb Android definitivament animar la gent a mirar les coses des
un munt de diferents perspectives.
>> Quan inclou el kit de desenvolupament de programari en aquest ADT
per defecte té un munt de projectes d'exemple en Android.
Aquí, Android, Android projecte d'exemple.
Si faig clic a això, llavors puc triar una versió perquè la mostra s'apliquen els projectes.
Hi ha un munt de coses diferents aquí.
Es comença amb l'acció de compatibilitat bar,
joc acceleròmetre, còpia de seguretat i restauració, Bluetooth, constructor gest.
Jetboy és un joc de mostres que et donen, com és LunarLander.
Hi ha un munt d'aplicacions d'exemple aquí,
i tots ells estan dirigits a diferents aspectes de l'API d'Android,
i la idea és que mentre fa la seva aplicació
vostè no ha d'aprendre tot sobre Android per fer una aplicació per Android.
Només has d'aprendre sobre les parts que en realitat està passant a utilitzar.
Mira aquestes biblioteques de la mostra.
Siéntase lliure de copiar i enganxar el codi i torni a aplicar-lo.
És una gran cosa per mirar el codi més difícil
i tractar d'entendre el que és, per descomptat, per què en CS50
que sovint li donen una gran quantitat de codi font.
Mira alguns d'aquests si vas a utilitzar les biblioteques similars
i després aplicar al seu propi codi.
I per descomptat, hi ha tutorials.
Cerca de tutorials.
Em vaig trobar amb un munt de bons en línia que li pot portar a la velocitat
amb el que en realitat són fragments i com pot utilitzar-los.
>> Algunes d'aquestes noves coses de disseny, com fragments,
vostè realment no ha de preocupar a menys que vostè està fent una
molt important en l'abast del projecte.
Són coses que Google està tractant d'eliminar polz
Stackoverflow és, per descomptat, el seu amic.
Espero que vaig vendre una mica en Android,
adonar-se que és molt més fàcil d'abordar en termes de només el llenguatge de codificació.
Java és jo diria que molt més fàcil d'entendre que Objective-C.
Android està creixent crec que molt més que iOS.
És a dir, les dades hi són també, al marge del que penso.
Tot va a ser-hi per un temps,
i són un parell d'anys enrere en termes dels seus cicles de disseny,
pel que és una mena de comprensible que encara estan treballant a través d'alguns d'aquests
qüestions de coherència, d'aquesta barra d'accions és una cosa nova per a ells encara,
espècie de la creació d'experiència d'usuari similar a través de totes les seves aplicacions.
Esperem que es pot anar cap endavant ara i obrir Eclipse
i fer les seves pròpies aplicacions d'Android.
>> Algú té alguna pregunta abans de que ens emboliquem en res?
Et puc dir que la resposta és 42.
Bé, feliç de codificació a tots, i bona sort.
[CS50.TV]