[Powered by Google Translate] [Seminar] [Android Apps (Acum, cu fasole jeleu!)]
[Iordania Jozwiak] [Universitatea Harvard]
[Aceasta este CS50.] [CS50.TV]
>> Bună ziua tuturor, și bun venit la Apps Android (acum cu fasole jeleu!) Seminar.
Se numește acum cu Jelly Beans, desigur, pentru că
cea mai recentă versiune a sistemului de operare este numit Jelly Bean.
Când am vorbit despre Android de anul trecut și a făcut acest lucru în esență același seminar
Am fost prezentat de modele de design și opțiunile stilistice de Turtă dulce,
chiar dacă Ice Cream Sandwich a ieșit la timp,
și acest lucru este ceva vom vorbi despre merge mai departe un pic.
Android, desigur, are unele probleme cu fragmentare,
astfel încât cel mai recent sistem de operare Google este, de obicei,
Nu cu adevărat de gând să devină comună în rândul utilizatorilor de potențial de până la un an, din păcate.
>> Dar, indiferent care, vom vorbi despre o multime de motive
Android este mult mai bună decât iOS.
Bine, vom vorbi despre Android versus iOS,
unele paradigme de design, cum vei fi stabilite într-un singur diapozitiv,
și diferența mare dintre acesta și anul trecut este doar vreau să
zoom prin unele lucruri conceptuale care lucrează cu
sistemul de operare și apoi du-te într-un exemplu foarte de bază.
De fapt, doar un exemplu care Google descrie pentru construirea prima aplicatie,
și vom trece prin asta împreună și doar descrie.
>> Știu că mulți dintre voi ați codificate doar în C, așa Java este deja va fi
o perspectivă diferită, și în acest fel veți obține picioarele ude
și se simt un pic mai confortabil cu el, sperăm.
Un rezumat rapid, Android versus iOS.
În Android există această taxă dezvoltator o singură dată de $ 25,
nimic din chestia asta 100 de dolari pe an.
Nu există restricții, ceea ce înseamnă că, dacă doresc să depună o aplicație,
Eu doar îl prezintă, și nu există nici un proces de aprobare ca nu este pentru iOS.
Ai de a dezvolta cu Java folosind Eclipse,
care este platforma de cruce, așa că nu contează dacă aveți un Mac,
Ferestre, sau o mașină de Linux.
Desigur, cu iOS va trebui să utilizați XCode pe un Mac,
și Android este folosit de mai multe persoane,
Deci, dacă doriți aplicația să aibă un fel de vizibilitate sau poate
a face un pic de bani de la reclame
esti, probabil, mai multe sanse de a beneficia de Android.
>> Și un lucru care a fost întotdeauna cunoscute despre Android
este suma extrem de personalizare, în timp ce iOS este foarte fixată în căile lor
astfel încât să poată menține securitatea și controlul asupra fiecarui aspect mic
de proiectare în sistemul lor de operare și aplicații individuale.
Android este forma foarte liber, și nu există atât de mult mai multe posibilități.
Bine, unele paradigme de design.
Observați aici, la fel ca iOS are tablete și iPhone și iPod Touches
ei trebuie să sprijine, să zicem, ca o duzină de dispozitive dacă doriți să sprijine
lucrurile istorice, precum și.
Cu Android va trebui să susțină sute de dispozitive,
astfel încât există unele lucruri pe care Google a fost încercarea de a pune în aplicare
pentru a face experiența utilizatorului un pic mai consistent,
dar vom vorbi de asemenea despre modul în care acest lucru înseamnă că există probleme de fragmentare
care în mod constant trebuie să fie conștienți de susținere.
Fragmentarea înseamnă că există mai multe sisteme de operare diferite,
multe telefoane diferite, cu diferite configuratii hardware care rulează Android toate în același timp,
astfel încât acest grafic aici datează de aproximativ 6 luni.
Da, de 6 luni, și puteți vedea cum cele mai întunecate banda
pe partea de jos este Jelly Bean, care a ieșit de peste vara,
și puteți vedea chiar acum, probabil, aproximativ 2% din telefoanele au.
>> Ice Cream Sandwich a ieșit mai mult de un an în urmă,
și un sfert de telefoane o au.
Există încă o mulțime de telefoane care folosesc versiunea sistemului de operare de ani în urmă.
Un lucru pe care Google a încercat să facă pentru a face experiența utilizatorului
o mult mai consistentă în aplicații începe cu Honeycomb,
care este versiunea comprimat, apoi Ice Cream Sandwich si Jelly Bean,
acestea sunt într-adevăr încearcă să accentueze utilizarea acestui bara de acțiuni,
care este ceea ce se poate vedea în partea de sus aici,
totul chiar aici, inclusiv acest buton setările mic.
Este o alegere de design.
Acum, ori de câte ori vedea cele 3 puncte înseamnă faceți clic pe acest lucru,
și va exista un meniu drop-down, care are un fel de setări.
Acest lucru arată doar pentru că am făcut clic pe acest buton.
Acest lucru este ceva ce ei încearcă să folosească pentru a face aplicații un pic mai consistent
peste bord și, astfel utilizatorul are un sentiment mai bun de experiență uniform.
>> Ok, deci în cazul în care nu au făcut deja acest lucru sau dacă te uiți la domiciliu
atunci aveți posibilitatea să urmați acești pași pentru a configura mediul de codificare.
Aceasta va implica merge la site-ul aici.
Puteți Google de a instala Android SDK
și să urmeze unele descrieri acolo.
Ei vă spun totul.
Ei au de a instala, descărca Eclipse SDK versiunea Classic,
chiar dacă, desigur, suntem de codificare în Java.
Ei recomanda acest una, iar apoi acest ADT, instrumente de dezvoltare Android,
este un plug-in care vă instalați în Eclipse care vă permite să
au o experiență mult mai raționalizate cu Android în Eclipse.
Acesta vă va oferi unele interfețe grafice cu utilizatorul
pentru proiectarea de vedere, și vă va oferi mult mai mult sprijin
și capacitatea de a lansa cu emulator și tot ce fel de lucruri.
Cadru de aplicare.
>> Vreau să vorbesc despre modul în care sunt structurate proiectele din cadrul Android,
și apoi vom merge într-un exemplu rapid, și, sperăm,
puteți pune întrebări în orice moment și se simt confortabil de la sfârșitul anului acesta.
Avem în primul rând un jargon.
O activitate este ca a ecranului puteți vedea atunci când lansa o aplicație.
Întreaga experiență este activitatea în sine,
așa că ai putea gândi la ea ca un ecran sau o imagine,
dar este de fapt partea de codul sursă de ea.
Noi încă numim parte efectiv interfața de o vedere.
Este un fel de modul în PSET 7 am avut de comandă și apoi punctul de vedere.
Activitatea este mai mult sau mai puțin controler,
și punctul de vedere este ceea ce facem în termeni de XML
care este asociat cu această activitate.
Fragmente sunt ceva care este pus în aplicare în Ice Cream Sandwich merge înainte.
E doar o idee de a lua părți din punctul de vedere sau de activitate
și împărțindu-le în zone separate, astfel încât să putem
face codul nostru mai usor de utilizat pentru aceste multe dispozitive diferite
pe care le avem pentru a sprijini, și este doar o modalitate de a încerca să
De asemenea, factorul de mult cod.
Serviciile sunt lucruri de fond, cum ar fi redarea de muzică sau directii de navigare potențial.
Furnizorii de conținut, acestea sunt API-uri în sistemul de operare
care permit accesul la date comune, cum ar fi informații de contact,
și apoi o intenție este ceva ce vom folosi atunci când vrem să lanseze
o nouă activitate din activitatea noastră curentă.
>> Bună Android, acest lucru va fi un proiect pe care vom vorbi despre.
Voi face de fapt pentru tine, iar apoi vom face un lucru care ne faceți clic pe un buton
cu un text și de a lansa o noua activitate.
Foarte simplu, dar vreau să merg prin
ceea ce va merge într-un proiect ca acesta.
Când face noul proiect veți vedea în Eclipse
există acest proiect numit Hello Android.
Apoi, există o grămadă de dosare aici.
Cei sunteți cu adevărat în cauză sunt cu dosarul sursă,
directorul de resurse, de res, și într-o anumită măsură, în dosarul libs pentru biblioteci.
Și așa suntem pe aceeași pagină cu care
dacă ați fost de a crea un nou proiect,
puteți face acest lucru chiar aici, așa că, dacă vreau să numesc HelloAndroid,
și apoi se face în mod automat o grămadă de informații pentru noi.
Numele pachetului se presupune a fi un identificator unic
care ar fi în mod normal asociat cu site-ul, dacă ați avut o.
>> De exemplu, eu voi numi net.cs50.helloandroid.
Și eu deja am făcut acest proiect dată.
Bine, îmi pare rău. Să-l numim HelloCS50.
Și atunci se va cere lucruri cum ar fi ce fel de icoană nu vrem să facem.
Acest lucru este din cauza interfeței Android Developer Tools,
plugin-ul pe care am adăugat la Eclipse, astfel încât să putem alege lucruri, cum ar fi
ce pictograma ne dorim, și care ar putea intra în această adâncime, dacă vrem.
Dar în cele din urmă, face doar proiectul,
și tot ceea ce apare chiar aici.
Așa cum am arătat, pe de altă ecran,
avem dosarul sursă, și voi vorbi despre ceea ce înseamnă toate astea curând,
dar puteți vedea că imediat ne duce pe ecranul HelloCS50.
Există unele butoane de aici pentru adăugarea de text și text machete de teren.
Este un fel de XCode, dar, din păcate, nu la fel de simplificat.
Dar clipurile va fi prietenul tău și ADT, în special pentru a face acest lucru.
>> Bine, directorul sursă este cazul
fișierele Java sunt deținute, iar acest lucru este de fapt lansarea programului.
Este practic ca controlorilor.
Director de resurse sau res este locul unde vom ține machete de ecran,
imagini, sunete, text, animație și orice altceva, libs, evident, biblioteci.
Și Manifest, este modul în care sistemul Android știe
cum să interacționeze cu aplicația.
Acesta se spune despre permisiunile și ce activități vor fi rula de fapt.
Este toate informațiile esențiale care este necesar pentru a rula aplicația.
Dosarul sursă este, dacă am extinde după cum puteți vedea aici.
Și un exemplu care un cod ar arata-Acesta este codul implicit.
Așa cum l-am numit, MainActivity.
În mod implicit, ne onCreate, care este o funcție care se numește atunci când sarcini această activitate,
astfel încât să doriți pentru a apela onCreate (savedInstanceState).
Acest lucru va restabili orice biți de informații
în cazul în care a fost oprit aplicația.
>> Exista o intreaga activitate de viață diagramă ciclu pe care poti sa te uiti la
atunci când vei ajunge un pic mai mult în profunzime în ea,
dar cea mai importantă linie de cod există această funcție setContentView
care va încărca fișierul de resurse pentru aspectul.
Apoi, ceea ce onCreate aici este, în principiu face este se spune
când am crea această activitate vreau să se încarce acest aspect.
Și vom vorbi despre ceea ce că aspectul este într-o secundă.
Dacă ar fi să lanseze că aici se arată exact ca aceasta,
și, implicit, pentru că am Eclipse face acest lucru și ADT face-o pentru noi
aceasta este tot codul șabloane care a creat pentru noi,
și putem merge pe și de a schimba lucrurile așa cum ne place.
Directorul de resurse, cum am spus, acest lucru este în cazul în care vom organiza toate aspectele,
drawables în ceea ce privește orice fel de imagini-
acestea sunt numite drawables-și apoi fișierele de sunet, meniuri.
Este o modalitate de o grămadă de XML într-un mod frumos sortate.
După cum puteți vedea, există. HDPI, ldpi, MDPI și foldere xhdpi pentru drawables.
Acestea sunt diferite densitati ecran, pixel densitate atât de mare pe inch,
de joasă densitate, densitate medie, densitate foarte mare.
>> Acest lucru este, din nou, astfel încât să putem sprijini toate aceste dispozitive diferite,
și în mod ideal, veți avea imagini diferite pentru fiecare altă rezoluție.
Machete sunt unde sunt toate aspecte diferite, care vor fi folosite în diferite activități.
Acestea ar putea include, de asemenea, machete de fragmente,
ceea ce înseamnă activități parțiale în esență.
Dacă vrei să faci ceva cool ca de fiecare dată când rotiți telefonul
doriți să aibă un aspect diferit poți face aspect, peisaj ca un alt dosar,
și Android are în mod automat o grămadă de aceste reguli în dosarul de resurse,
așa că va ști să se uite la diferite dosare în funcție de configurarea actuală a telefonului,
ce fel de hardware-ul pe care îl utilizați.
De asemenea, aceste valori-V11 aici și valorile-V14
și valorile folderul implicit acest lucru este de-
bine, valori de la sine, acest lucru va fi valorile implicite pentru toate versiunile sistemului de operare.
Pe de altă parte, V11 și V14 corespund cu fagure
și Ice Cream Sandwich, respectiv.
Din nou, acestea sunt moduri care-în aceste dosare sunt diferite siruri de caractere
și stiluri, astfel încât să puteți personaliza aspectul de aplicația
sau ar putea chiar funcționalitatea, deși ar fi, probabil, o idee rea,
bazat pe versiunea sistemului de operare.
>> Și am vorbit despre toate astea aici.
Din nou, încasabile, prime, aspect, valorile.
Setările implicite, dacă mergem în ziua Android sau Hello CS50 chiar acum
se va arata exact ca aceasta.
Acesta va salut lume.
După cum puteți vedea aici cu textul Android
textul pentru acest punct de vedere textul, care este de fapt doar o etichetă,
este ceea ce am numi în iOS.
Ea are această notație amuzant @ string / hello_world.
Acest lucru este atât putem, vom încerca să extrage toate siruri de caractere,
toate siruri de caractere greu codificate în Android într-un folder separat,
care se întâmplă să fie în values.strings.
Dacă ne uităm aici, putem vedea că avem un șir de hard-coded salvat aici
pentru Bună ziua lume, și se numește Salut lume, iar acest lucru este un fel de
decizie de design comun pe mai multe platforme pe care doriți să-
siruri de caractere sunt genul de lucruri pe care le doresc să fie posibil să se schimbe.
Noi nu vrem să controleze F în fișierul nostru de cod sursă în XML noastră.
Vrem să fie în măsură de a schimba acest lucru ori de câte ori am ocazia.
>> Acest fișier XML, strings.xml, este o modalitate de a extrage
siruri de caractere greu codificate, care altfel ar fi în resursele noastre aspect
sau în codul nostru sursă.
Manifestul este unde vom păstra aceste informații esențiale despre aplicație.
Acesta include numele pachetului. Care trebuie să fie un identificator unic.
Spre deosebire de App Store pentru iOS numele aplicații
nu trebuie să fie unic, și aveți posibilitatea de fapt, schimba numele aplicației
după ce îl prezintă, deci, dacă am începe cu Angry Birds,
și apoi am face o actualizare, iar eu nu vreau să-i elibereze o nouă versiune
Cred că aș putea Angry Birds numi 2 în timp ce eu sunt pe aceeași ciclu de lansare.
Aceasta ar arăta la fel ca o actualizare.
Singurul lucru pe care trebuie să fie unic este acest nume pachet,
care nu mulți oameni vor vedea.
Ei bine, ai vedea doar dacă te uitai la codul sursă sau dacă există un fel de eroare.
Componentele includ activități, așa că trebuie să declare
orice fel de activitate care le folosim.
Aceasta este un fel permisiunea de lucru.
>> Pentru ca Android nu are acest proces de aplicarea riguroasă
pentru depunerea Apps În schimb, ei doar fac totul pe jos de permisiuni
și declara lucruri în manifest.
Versiunea SDK este, de asemenea, importantă.
Putem stabili utilizarea ca SDK versiunea minim ceva.
Evident, doriți să creați cod
și de proiectare pentru sistemele de operare mai noi.
Poate nu cel mai nou, poate nu Jelly Bean.
Poate vrei să proiecteze primul rând pentru Ice Cream Sandwich,
deși acestea sunt destul de mult la fel în ceea ce privește deciziile de proiectare
și bibliotecile reale și API-uri.
Dar, mai degrabă decât au oameni
de original, versiunea Android, cum ar fi gogoasa drumul înapoi atunci când,
care se întâmplă încă să fie cu care încercați să descărcați aplicația dumneavoastră și apoi spune
nu funcționează pe telefonul meu puteți seta versiunea minim
și l-au fi Gingerbread sau Ice Cream Sandwich
sau orice te simti depunere confortabil.
Și acesta este un exemplu de Manifest. Ne putem uita la un efectiv într-un pic.
>> Bine, vom merge chiar mai departe cu demo-ul acum.
Acest lucru este demo, dacă Google Android construi prima ta app sau ceva de genul asta.
Vom merge prin tot ceea ce se întâmplă acolo,
și îmi pare rău, doar pentru o referință care aici stie Java într-o măsură?
Ok, deci Java este nou limbaj de codificare pentru cei mai mulți oameni care vin din CS50.
Pe scurt, pentru a trece peste din nou, ceea ce se spune aici,
ceea ce vrem să facem este, mai degrabă decât a regla această aplicație Salut lume
că tot ce face este o lansează și se spune Bună ziua lume
și se spune salut CS50 în partea de sus, pentru că e numele activitatea
vom încerca să facă un câmp de text și un buton
astfel că atunci când apăsați acest buton se va lua textul
de la câmpul de text și să lanseze o nouă activitate, și-l va spune
indiferent de faptul că textul a declarat în activitatea, iar acest lucru este relativ simplu.
Nu e foarte interesant. Tu nu ar vrea să elibereze orice aplicatie ca aceasta.
Dar demonstrează câteva lucruri importante de design.
>> Va trebui să interacționeze cu Manifest, cu fișiere de aspect,
cu codul sursă, și puteți vedea cum pentru a lansa o activitate la alta.
Vom incepe cu layout-ul pentru primul nostru de activitate,
care știu că e un fel de mic,
dar după cum puteți vedea acum, tot ce este este că are logo-ul nostru pe care am creat,
numele activității, și se spune Bună ziua lume în centru.
În schimb, eu în primul rând de gând să facă acest lucru într-un aspect liniar,
un aspect relativ, și toate acestea sunt lucruri
ai putea privi în sus și sunt în valoare de merge pe la un moment dat în ceea ce privește aspectele.
E mult ca HTML.
Am spus că nu e adevărat în valoare de știind în ceea ce privește un sens programatic,
dar există atât de multe aspecte diferite pe care le poate controla,
și e la fel ca CSS în termeni de stiluri.
>> Există o mulțime întâmplă doar în ceea ce privește estetica aici,
Și da, este în valoare de învățare, dar e genul de lucru pe care ar trebui să arate în sus
ca te duci si sa te simti ca ai nevoie de ceva nou.
Eu pot profita de unele dintre instrumentele de ADT aici cel puțin pentru a începe cu.
Voi face un câmp de text, și voi face un buton.
Pune-le chiar lângă altul.
Ei redimensiona deja corespunzător.
Ne pare rău, din nou, revenind la diferența dintre aspectul liniar și aspect relativ,
un aspect liniar dă un pic mai mult funcționalitate
în ceea ce privește umple spațiul și de a face sigur
poziția pe care am lucruri orizontal sau vertical.
Mare diferenta intre un aspect liniar și un aspect relativ
este relativ aspectul poziții totul în raport cu alte puncte de vedere,
și un lucru bun despre ea este că este nevoie de mai puțin timp pentru a trage
deoarece sistemul de operare se uită la toate codul și spune că acest lucru se
raportate la acest aici, aici.
Aceasta înseamnă că face mai puține măsurări decât o grămadă de aspecte liniare imbricate,
ceea ce mi-ar trebui să fac dacă mi-am dorit ca lucrurile sa mearga vertical aici.
>> Am deja unele lucruri merg pe orizontală, așa că am avea nevoie de un aspect liniar diferit
la cuib le vertical, dar dacă am fost a face un aspect relativ aș putea spune
păstra acest lucru la stânga, acest lucru la dreapta și aceste lucruri de mai jos.
Dar, pentru că vreau să umple chiar acum am de gând să utilizați un aspect liniar,
și puteți vedea că are deja o mulțime de aceste lucruri pentru noi.
Toate punctele de vedere trebuie să aibă o proprietate de lățime și înălțime,
și acest lucru se întâmplă să aibă o greutate de 1, iar aceasta are o greutate de 1
astfel încât să umple întregul spațiu.
Dar lățimea și înălțimea sunt cele mai importante.
Acest câmp ID-ul de aici nu este important în aspectul real
dacă nu utilizați un aspect relativ și spunând putem referință
o singură poziție în vederea referință la altul.
Dacă am avea un aspect relativ am putea spune poziția aceasta de mai jos aceasta
sau peste această identitate, dar acest ID va fi important
atunci când îl utilizați în codul nostru că ne putem referi
aceste puncte de vedere individuale în acest mod.
>> Și apoi puteți vedea requestFocus tag-ul, care este ceva ce, probabil, ați văzut în PSET 7.
Nu a fost o etichetă de auto-focus sau ceva de-a lungul acestor linii pentru unul dintre domeniile.
Și un singur lucru, desigur, putem face la fel ca in HTML,
și observați unul dintre lucrurile frumoase despre ADT este că autocompletes aici.
Poate nu la fel de frumos cum a făcut-o în XCode, dar nu cu toate acestea,
și am putea spune sugestie și apoi da-l un fel de șir
ca scrie un mesaj,
și dacă am da o clipă, observa, de asemenea, că am obține o eroare puțin aici
spunând că ar trebui să folosim o resursă șir pentru aceasta,
Deci, dacă am să-l fac parte din munca grea pentru mine
Eu pot selecta acest șir, nu refractor Android și extract de coarde Android.
Eu pot da acest nume, scrie un mesaj,
și ceea ce a făcut acum este înlocuit ca șir hard-coded
cu o trimitere la șir în fișierul XML. șirul lui,
ceea ce înseamnă că acum este aici.
>> Și știu că pare un pic de lucru suplimentar banale si ca la acest moment,
dar atunci când aveți o grămadă de lucruri, o mulțime de siruri de caractere,
care este foarte important, și în special pentru localizarea
pentru că așa cum am menționat mai devreme, Android este un sistem de operare folosit foarte la nivel global
pe care le puteți face pur și simplu valori-ro sau valori-SP
sau ceva de limba engleză sau spaniolă sau alte limbi.
Și atunci probabil că nu au avut această experiență încă
din moment ce nu a făcut mult JavaScript în termeni de programare web,
dar putem face, de asemenea, acest domeniu numit onClick pentru butonul,
și aceasta este o modalitate de referință în structura noastră
pe care ne-o dorim o anumită funcție să fie numit în codul nostru sursă.
Am de gând să numim această SendMessage,
și în scopul de a face acest lucru înseamnă că, în domeniul principal de activitate aici
Va trebui să creeze o funcție care este public
astfel încât să poată fi accesate prin aspectul.
Este gol pentru că tu chiar nu vreau să se întoarcă nimic.
Vom SendMessage numesc, și este nevoie de un punct de vedere,
care este un fel de context pe care le poate ancora această metodă
la acest punct de vedere individuale atunci când suntem o execută.
>> Și nu știu dacă ai observat-bine, nu s-ar fi observat,
dar în acest moment, chiar aici
acest punct de vedere este un tip care nu a fost încă inclus,
și, desigur, știți totul de la CS50 despre care nu include tipuri.
Cel mai frumos lucru despre IDE ca Eclipse este că
dacă vă uitați să includeți un tip se va sublinia cu un pic de rosu greu de descifrat
și apoi vă oferă opțiunea de a importa punctul de vedere.
O modalitate rapidă de a face asta este controlul schimbare O, și-l va importa
toate fișierele de care are nevoie pentru a.
Acum, că avem această funcție SendMessage,
care se va trimite un mesaj de la MainActivity la o noua activitate,
am de gând să aibă de a utiliza o intenția de a lansa noua activitate din acesta,
așa că veți dori, probabil, pentru a crea o constantă global sau, de asemenea, deosebit de o constantă publică
care ne va ajuta să știm cum vom face referire la șirul
pentru că atunci când vom crea o intenție nu ne cheamă doar o noua activitate,
dar putem oferi, de asemenea, un pachet de informații.
Un pachet este de fapt termenul care foloseste Android,
și este un fel de a spune da date suplimentare, care nu pot fi de un tip de date foarte sofisticate,
dar putem include cu siguranta Booleans sau siruri de caractere sau int.
Că fel de lucru.
>> Nu ezitați să întrebați cu privire la oricare dintre aceste calificări aici,
publice, finala, static.
Publice este unul important.
Aceasta inseamna ca putem accesa această variabilă de alte fișiere de cod sursă
cum ar fi atunci când vom crea o nouă activitate.
Putem referire la șir în acest fișier.
Dacă este privat, aceasta înseamnă că este limitat la acest fișier individual aici.
Dar vom numi acest ceva de genul mesaj suplimentar.
Acum am făcut această funcție, iar dacă ne faceți clic pe butonul, această funcție va fi numit.
Dar nu am făcut nimic, în mod evident, cu funcția.
Ceea ce vrem să facem acum este de a crea o nouă activitate,
activitate care va fi lansat efectiv.
În Eclipse, putem spune, activitatea Android nou, activitatea gol.
Ne putem da un nume.
Să-l activitatea rezultat apel.
Și apoi acest domeniu părinte ierarhic este un mod de specifying
modul în care activitățile sunt legate unele de altele.
Deoarece acesta va fi lansat de la altă activitate
noi ar trebui să precizeze că acesta are domeniul principal de activitate părinte.
>> Și am fi putut apasat pe teren următoarea acolo, care ne-ar fi spus
unele câmpuri opționale care a fost, de asemenea, inclusiv,
dar un lucru frumos despre ADT, din nou, este că, dacă am defila în jos aici
în Manifest amintiți-vă că toate acestea într-adevăr a fost inclus în mod implicit
când am creat inițial al proiectului,
și acum că am folosit acest crea o nouă activitate, mai degrabă decât doar
adăugând propria noastră fișier de clasă pentru că am trecut prin GUI lor pentru a face acest lucru
a adăugat deja toate astea pentru Manifest pentru noi,
ceea ce înseamnă doar că acum sistemul de operare nu va plânge
atunci când încercăm să lanseze această activitate.
Și, de asemenea, desigur, dat o etichetă, care, de asemenea, apare în șiruri.
Ea are o mulțime de lucruri pe partea din spate pentru noi.
Oricum, acum că avem această activitate rezultat, de asemenea,
fișierul în sine codul sursă în folderul sursă,
și puteți vedea, atinge pe scurt la această-
pentru că l-am spus despre acest părinte ierarhică
le-a dat acest domeniu android.r.ide.home în acest onOption lucru selectat.
>> Ce este acest lucru este, în principiu spune e că există un buton de meniu acum
că, în colțul din stânga sus al ecranului
dacă mă duc înapoi la PowerPoint care am vorbit prima data despre bara de acțiuni
din cauza părinte ierarhic acum există o săgeată puțin aici
iar acest lucru se poate face clic, astfel că ar trebui să fie în măsură să-după ce vom rula de fapt, această aplicație,
du-te înapoi, și este o modalitate de a economisi ne un pic de cod aici.
Acum, în acest-ei bine, se pare să se plâng că pentru un moment.
Să comenta asta.
Acum, în scopul de a interacționa efectiv cu aceste 2 activități,
trebuie să creăm o intenție, care include toate aceste date.
În SendMessage acum am de gând să croazieră prin unele biți de cod
și explică faptul că așa cum am merge.
O intenție, așa cum am spus, este un mod de a lansa o activitate de altul.
Intenția este de tip. Vom crea un myIntent variabilă.
>> Și aceasta este de fapt un obiect, care este de ce trebuie să ne numim noi.
Este utilizarea comună Java acolo, care ar putea să ia un pic de a obține utilizate pentru.
Acest lucru înseamnă că suntem folosind activitate sau MainActivity de clasă,
și intenția în acest fel se activitatea sa mergi la
și activitatea sa mergi la, pe care o numim ResultActivity,
și că este propria sa clasă.
Includeți asta.
Și atunci cum am menționat mai înainte, ne-a dat ID-ul în câmpul text
și punctul de vedere textul, astfel încât, în scopul de a captura programatic
textul care există în EditText
vom folosi aceasta functie numita findViewByID,
care este similar cu ceva ce vei folosi atunci când încercarea de a obține câmpuri din DOM.
Poate că David vorbește despre acest lucru în curs.
Dar e doar o modalitate de a obține cele, de aceea am eticheta aceste lucruri cu aceste domenii.
Id.editText1.
Este deja autocompleting pentru mine acolo.
>> Și apoi vom includ, de asemenea, acest EditText acum că avem teren
în programul nostru, tot ce findViewByID a fost practic
ai putea gândi la ea ca să ne dea o trimitere la EditText.
Acum vrem să ajungem șir sau un mesaj
în care EditText pe care le putem face prin utilizarea-
ați putea gândi de EditText ca o struct-
am un obiect în Java, cu o grămadă de metode diferite de apel
sau câmpurile și atributele atașat la acesta.
Când spun EditText. dă-mi șansa de a accesa
o metodă cum getText, care va primi textul curent
în care EditText și apoi conversia că în mod explicit
la un șir, și ne-am salvat mesajul.
Acum, am de fapt, vrei să faci ceva cu ce scop am creat câteva momente în urmă.
Voi pune in plus, cum e numit în intenție,
care, din nou, așa cum am spus mai înainte, aceasta este o modalitate de a crea pachet
cu o grămadă de date.
Mesajul suplimentar este tag-ul nostru astfel încât să știm ce vom salva acest sub,
și apoi mă, inclusiv un mesaj.
>> Și apoi putem începe efectiv activitatea, oferindu-i myIntent parametru.
Și acest lucru va lansa de fapt activitatea, asa ca acum când am upgrade la Windows 8
ar putea exista unele erori care apar pentru scurt timp, dar încercați să le ignore.
Și aceasta este emulator Android.
Sperăm că codul va apărea de fapt, într-o clipă.
Din nou, ignorând toate aceste lucruri mici.
Dar emulator Android vă pot emula orice versiune a sistemului de operare
de la cele mai vechi cele, Donut, Gingerbread.
Acest lucru este Jelly Bean 4.1.
Dar, după cum puteți vedea acum, acest lucru este ceva ce am făcut.
Aceasta are MainActivity, EditText, butonul.
Eu pot scrie ceva aici, dar ceea ce ne lipsește în acest moment?
Am făcut domeniu în MainActivity care va trimite mesajul
a altă activitate, dar în acest moment
nu am făcut nimic în altă activitate, așa că nu va primi nimic.
Să terminăm acea parte înainte de a trece mai departe.
>> Această activitate urmare, ceea ce va trebui să faceți este să avem nevoie să faceți este să avem nevoie să-
putem referire, de asemenea, scopul in cadrul acestei activități,
așa că avem de a capta intenție, care este foarte simplu.
Este o funcție inclusă în clase de activitate,
astfel încât să putem spune doar "Ia mesajul de intenție."
"MyIntent Intenție = getIntent."
Și acest lucru va da-ne-acum myIntent este un obiect,
care este o referință cu scopul ca ne-au condus la această activitate.
MainActivity cheamă și oferă informații suplimentare pentru a duce activitatea.
Activitatea rezultat se uită acum la intenția care a dus aici,
și putem accesa mesajul pe care am creat în cealaltă,
getStringExtra, iar acest lucru va Completare automată pentru mine.
Și amintiți-vă apoi, modul în care ne etichetat ca bit de date
a fost oferindu-i acest domeniu chiar aici, acest șir publice,
care este eticheta pentru șirul am inclus, de fapt.
>> Dacă spun MainActivity.Extra_Message
E chiar acolo, iar acest lucru este un fel de numele parametrului
când am trecut cod de la operator la șablon,
când am spune titlul săgeată ceva.
Este același fel de idei acolo.
Acum, amintiți-vă acest lucru.
Am, de asemenea, au această auto creat sau generat automat codul
pentru activitatea rezultat, care include vedere textul în mijloc
care spune Bună ziua lume.
Am putea face potențial că mai mare.
Să facem asta în primul rând.
Am putea face 40 de densitate de pixeli independente.
Să vedem, care e foarte mare. Că va fi bine.
Și apoi, în scopul de a face referire acest punct de vedere textul specială în codul nostru
va trebui să-i dea o identitate,
și în scopul de a face ceea ce spunem @ + ID, ceea ce înseamnă că atribuie o identitate.
Dacă doar am spus @ id-ar asuma vom referire la o identitate care există deja,
și să numim acest resultTextView nostru.
Și observă că, în XML nu este nevoie de virgulă sau ceva.
Totul este în aceste tag-uri.
Este foarte similar cu HTML într-o mulțime de sensuri.
>> Este nevoie de un pic de Noțiuni de bază utilizate pentru a, dar în cele din urmă te vei simti destul de confortabil cu ea.
Să actualizeze textul de punctul nostru de vedere textul rezultat,
și așa cum am făcut atunci când am fost obtinerea că câmp text din alte activitatea noastră
în MainActivity Aici vom, de asemenea, de asemenea,
vom găsi punctul de vedere de identitate.
Și R, în cazul în care nu am menționat acest lucru înainte, este referința la dosar resursele noastre,
și apoi ID-ul este o referință la totul în folderul resurse, toate buletinele de identitate,
și resultTextView.
Și, la fel ca și mai înainte, resultTextView este un obiect,
ceea ce înseamnă că are toate aceste proprietăți asociate cu aceasta.
Când ne-am folosi getText de text pentru acest câmp de text sau de vedere textul
putem folosi de fapt setText,
și apoi am găsit deja mesajul de intenție,
asa ca pot spune mesaj, iar acest lucru se va stabili de fapt mesajul.
>> Se ia un moment pentru a lansa, iar apoi putem vedea dacă este sau nu blochează,
dar orice întrebări cu privire la acest proces chiar acolo, ca un fel de interacțiune?
In multe feluri este simplu.
Motivul pentru care am de gând prin ceva relativ simplu,
este, din nou, pentru că veți obține pentru a vedea interacțiunea dintre structura,
codul sursă, modul în care lucrurile de referință
și poate obține o expunere mica la modul Java lucrează acolo.
Dacă scriu de fapt, ceva aici, cum ar fi Ohai, iar apoi fac clic pe butonul,
se lansează o nouă activitate, iar acest punct de vedere textul spune Ohai.
Asta e foarte simplu, dar sperăm că după exemplul
ce fel de a vedea cum funcționează această interacțiune, iar acum că mizerie de fișiere
pe partea stângă pentru toate aceste dosare de proiect, sperăm știi unde să te uiți acum.
Aceasta este zona de cod sursă.
>> Layout-ul este într-adevăr singurul lucru pe care îl vei face cu până ce includ imagini
și drawables sau orice altceva, și valori, care va include siruri de caractere,
așa cum am menționat, iar apoi stilurile este ceva care este un fel de CSS.
Adresa este atunci când doriți, dar până când vă simțiți confortabil cu adăugarea de fler suplimentare
la cererea dumneavoastră nu este nevoie să vă faceți griji despre asta prea mult.
Doar pentru a încheia un alt lucru pe care îl va dori în mod sigur să includă,
Presupunând că doriți să integreze caracteristici interesante și salvați-vă unele suplimentare de codificare-
ar fi pentru a include biblioteci 3rd party.
Aici e un tip mic Android cu Sherlock Holmes palarie.
Aceasta este o bara de acțiuni Sherlock bibliotecă,
ceea ce înseamnă în esență că bara de acțiuni ați văzut mai devreme,
care este standard în Ice Cream Sandwich si Jelly Bean,
dacă vrei să aduci un fel de experiență de utilizator pentru utilizatorii de pe versiuni mai vechi
și salvați-vă de griji cu privire la modul în care utilizatorul va naviga
pe versiuni mai vechi atunci când acel lucru nu este acolo puteți include această bibliotecă
și atunci va trebui doar să-trimitere mai degrabă decât implicit Android
biblioteci pentru bara de acțiuni, ce face referire această bibliotecă de sprijin.
>> Lucruri cum ar fi Scoreloop, e minunat, dacă ai de gând să includă un joc.
Acesta vă permite să adăugați placi de lider și realizări de jocuri.
AdMob este o modalitate de a pune anunțuri în aplicațiile dvs.
în cazul în care doriți să faceți un pic de bani de pe ea.
Desigur, există Facebook și Twitter pentru integrarea acolo
dacă doriți să partajați lucrurile ușor, et cetera.
Dropbox, de asemenea, și Google Analytics este că graficul cauta o acolo.
Asta va fi foarte important dacă vrei sa vezi care interacționează
cu aplicația sau care este, modul în care acestea interacționează, et cetera.
Google, în mod implicit, va spune o mulțime de statistici despre care a instalat aplicația
și ceea ce telefoane au, versiunile sistemului de operare ce au.
Dar dacă doriți să vedeți cine îl utilizează într-o bază de zi cu zi și modul în care se utilizează
atunci veți dori să includă un fel de sistem de monitorizare de genul asta.
>> Când sunteți gata pentru a distribui aplicația
Nu am nevoie pentru a merge în care, în prea mult profunzime.
Click pe link-ul de aici, Google Play.
Este folosit pentru a fi pe piața Android.
Ei rebranding totul cu Google Play,
Deci, acum vă prezinte la asta.
Este foarte simplu.
Trebuie să includă o descriere, unele capturi de ecran.
Cum am spus, nu există nici un proces de aprobare ca iOS.
Și unde să mă duc de aici?
Ți-am arătat un exemplu foarte simplu.
Sperăm că în cazul în care se pare teribil de simplu
atunci asta e, probabil, un semn bun.
Dacă te la toate simțit un pic confuz sau nesigur cu privire la exact ceea ce am scris
care este, de asemenea, bine, dar de aici merg la Ghiduri de Google.
Acesta este un loc minunat pentru a începe.
Acesta vă va vorbi prin ceea ce se așteaptă în ceea ce privește design-ului aplicatiei,
cum utilizatorii interacționează în mod normal cu ea.
Este mult mai mult formă liberă decât iOS, aș spune,
care se pare ca vizualizări tabel sunt-eu nu știu, că e pâinea și untul.
Totul este o vizualizare tabel alunecare în sus și în jos.
Cu Android au încuraja cu siguranță oamenii să se uite la ea din
o grămadă de perspective diferite.
>> Când includ kit de dezvoltare software în acest ADT
implicit aveți o grămadă de proiecte de probă în Android.
Chiar aici, Android, exemplu de proiect Android.
Dacă am faceți clic pe asta, atunci eu pot alege o versiune pentru care a probei se aplică proiectelor.
Există o grămadă de lucruri diferite aici.
Se incepe cu compatibilitate bara de acțiuni,
joc accelerometru, de backup și restaurare, Bluetooth, constructor gest.
JetBoy este un joc de probă se va da, cum este LunarLander.
Există o grămadă de exemple de aplicatii aici,
și toate acestea sunt orientate la diferite aspecte ale API Android,
iar ideea este că pe măsură ce face cererea dvs.
nu aveți nevoie pentru a afla totul despre Android pentru a face o aplicatie Android.
Trebuie doar să învețe despre piesele pe care sunteți de fapt de gând să utilizeze.
Uită-te la aceste biblioteci probă.
Simțiți-vă liber să copiați și inserați codul și reaplicați.
Este un lucru mare să se uite la codul mult mai dificil
și să încerce să-l înțeleagă, care este, desigur, de ce în CS50
de multe ori am da cantități mari de cod sursă.
Uită-te la unele dintre acestea, dacă ai de gând să utilizeze bibliotecile similare
și apoi aplica-l la propriul cod.
Și, desigur, există tutoriale.
Caută tutoriale.
Am găsit o mulțime de cele bune online, care vă poate aduce până la viteza
cu ceea ce fragmente sunt cu adevărat și cum le puteți folosi.
>> Unele dintre aceste noi lucruri de design, cum ar fi fragmente,
tu chiar nu trebuie să fie îngrijorat dacă nu faci o
destul de mare în proiectul domeniul de aplicare.
Acestea sunt lucruri pe care Google încearcă să elimine inch
StackOverflow este, desigur, prietenul tău.
Sperăm că v-am vândut un pic pe Android,
și dea seama că e mult mai ușor să se apropie din punct de vedere doar în limba de codificare.
Java este aș spune mult mai ușor de înțeles decât Objective-C.
Android este în creștere Cred mult mai mult decât iOS.
Adică, datele sunt acolo, în afară de ceea ce cred.
Acesta va fi în jurul valorii pentru un timp,
și ele sunt cu câțiva ani în urmă în ceea ce privește ciclurile de proiectare,
deci e un fel de înțeles că acestea sunt încă de lucru prin unele dintre acestea
întrebări de coerență, ca aceasta bara de acțiuni este un lucru nou pentru ei încă,
un fel de a crea o experiență de utilizare similară în toate aplicațiile lor.
Sperăm că puteți merge mai departe acum și deschide Eclipse
și face propriile aplicații Android.
>> Are cineva vreo întrebare înainte de a încheia despre nimic?
Pot să vă spun că răspunsul este 42.
Ei bine, de codificare toată lumea, și de noroc fericit.
[CS50.TV]