[Powered by Google Translate] [Seminar] [Android Apps (Zdaj z žele bonboni!)] [Jordan Jóźwiak] [Harvard University] [To je CS50.] [CS50.TV] Pozdravljeni vsi in dobrodošli na Android Apps (Zdaj z žele bonboni!) Seminarja. To je imenovano Zdaj z žele bonboni, seveda, saj Najnovejša različica OS se imenuje Jelly Bean. Ko sem govoril o Androidu lani in se je to v bistvu isti seminar Sem bila predstavitev načrtovalskih vzorcev in slogovne usmeritve za Gingerbread, čeprav Ice Cream Sandwich pridejo ven takrat, in to je nekaj, kar bomo govorili o gredo naprej malo. Android, seveda, ima nekaj težav z drobljenjem, Tako najnovejši operacijski sistem Google je običajno ni res dogaja, da postane pogost med uporabniki potencialno do enega leta, žal. Brez upoštevanja, da bomo govorili o veliko razlogov, zakaj Android je veliko boljši od iOS. Ok, bomo govorili o Android primerjavi iOS, nekateri oblikovanja paradigme, kako se boš ustanovljeni v samo en diapozitiv, in velika razlika med tem in preteklem letu je samo želim zoom skozi nekaj konceptualnih stvari delajo z operacijski sistem in nato šel v resnici osnovni primer. V resnici, samo primer, ki opisuje Google za gradnjo vaše prvo aplikacijo, in bova šla skupaj skozi in samo opisati. Vem, da mnogi od vas so kodirani samo v C, tako da je Java že bo drugačen pogled, in na ta način boste dobili noge mokre in se počutim malo bolj udobno z njim upam. Hiter povzetek, Android v primerjavi z iOS. V Android tam je to enkratna razvijalec pristojbino v višini $ 25, nič od tega 100 $ na leto stvar. Ni nobenih omejitev, kar pomeni, da če želim, da predloži app, Pravkar sem ga predložiti, in ni postopek odobritve, kot je za iOS. Dobiš za razvoj z uporabo Eclipse Java, ki je navzkrižno platformo, tako da ni važno, če imate Mac, Windows ali Linux nekateri stroj. Seveda, z iOS boste morali uporabiti Xcode na Mac, in Android uporablja veliko več ljudi, tako da, če želite, da vaš app, da so neke vrste vidljivosti ali morda da bi nekaj denarja od oglasov ste bolj verjetno, da izkoristijo Android. In še ena stvar, ki je že od nekdaj znano o Androidu je skrajni znesek prilagoditev, medtem ko je iOS zelo določen v svojih pogledih tako da lahko ohranijo varnost in nadzor nad vsako malo vidik oblikovanja v njihovi OS in posamezne aplikacije. Android je zelo prosti obliki, in tam je toliko več možnosti. Ok, nekateri oblikovanja paradigme. Obvestilo tu tako kot iOS ima tablete in iPhone in iPod Dotiki imajo podporo, recimo, kot ducat napravami, če želite, da podprejo zgodovinskih stvari, kot dobro. Z Androidom lahko podprete stotine naprav, tako da obstaja nekaj stvari, ki je bil Google poskuša izvajati da uporabnik pride malo bolj dosledno, ampak bomo govorili tudi o tem, kako to pomeni, da so vprašanja fragmentacije da ste nenehno morali zavedati podporo. Razdrobljenost pomeni, da obstaja veliko različnih operacijskih sistemov, veliko različnih telefonov z različno strojno opremo teče Android vse ob istem času tako da je ta graf tukaj gre spet za približno 6 mesecev. Ja, 6 mesecev, in si lahko ogledate, kako najtemnejšo pas na dnu je Jelly Bean, ki je prišel ven čez poletje, in lahko vidite, zdaj verjetno okoli 2% od telefonov ga imate. Ice Cream Sandwich je prišel ven pred letom dni, in četrtina telefonov ga imate. Obstaja še veliko telefonov, ki uporabljajo različico OS od pred leti. Ena stvar, ki jo je Google poskušal narediti, da bi uporabniško izkušnjo Veliko bolj dosleden apps se začne s Honeycomb, ki je različica tableta, nato Ice Cream Sandwich in Jelly Bean, oni so res poskušali poudariti uporabo tega akcijskega bar, , ki je tisto, kar lahko vidite na vrhu tukaj, Vse tukaj, vključno s tem gumbom malo nastavitve. To je izbira oblikovanja. Zdaj, ko ste videli 3 pike, to pomeni, kliknite na to, in bo spustnem meniju, ki ima neke vrste nastavitev. To samo kaže gor, ker sem kliknil na ta gumb. To je nekaj, kar poskušajo uporabiti, da bi aplikacije malo bolj dosledno čez krov in tako ima uporabnik boljši občutek za enotno izkušnjo. Ok, tako da v primeru, da niso storili že prej, ali če ste gledal doma potem lahko sledite tem korakom, da nastavite kodiranje okolja. To bo vključevalo bo na spletni strani tukaj. Lahko Google namestitvijo Android SDK in sledite nekaj opisov tam. So vam povem vse. Imajo namestite SDK prenos Eclipse Classic različico, čeprav, seveda, smo kodiranja v Javi. Ti priporočam tole, potem pa to ADT, razvojna orodja Android, je plugin, ki ga namestite v Eclipse, ki vam omogoča, da imajo precej bolj usmerjeno izkušnjo z Android v Eclipse. To vam bo dala nekaj grafičnih uporabniških vmesnikov za oblikovanje stališča, in to vam bo dala veliko več podpore in sposobnost, da začnejo z emulatorjem in vse te stvari. Programski okvir. Rad bi govoril o tem, kako so strukturirani projekti v Android, in potem bomo šli v hiter primer, in upajmo lahko postavljajo vprašanja na kateri koli točki in se dobro počutil do konca tega. Prva imamo nekaj žargonu. Dejavnost je kot zaslona vidite, ko zaženete aplikacijo. Celotna izkušnja je sama dejavnost, tako da bi lahko o njej mislijo kot zaslon ali pogled, ampak to je dejansko kodo strani vir njo. Še vedno pokličete dejansko vmesnika del tega pogleda. To je nekaj podobnega, kako smo v pset 7 imel krmilnik in nato pogled. Aktivnost je bolj ali manj krmilnik, in pogled je tisto, kar počnemo v smislu XML , ki je povezana s to dejavnostjo. Fragmenti so nekaj, kar se izvaja na Ice Cream Sandwich, gredo naprej. To je samo ideja o čemer dele pogledu ali dejavnost in jih razvrstili v ločenih prostorih, tako da smo lahko bo naša koda bolj uporaben za te različne naprave da moramo podpreti, in to je samo način, da poskuša tudi dejavnik izvedeti več kode. Storitve so v ozadju stvari, kot so predvajanje glasbe ali navigacijske napotke potencialno. Ponudniki vsebin, so API znotraj operacijskega sistema , ki vam omogoča dostop do skupnih podatkov, kot so kontaktni podatki, in potem namen je nekaj, kar bomo uporabili, ko smo želeli začeti nova dejavnost od naše trenutne aktivnosti. Pozdravljeni Android, to se bo projekt, ki ga bomo govorili o tem. Jaz bom dejansko stori za vas, in potem bomo nekaj narediti, kjer kliknite na gumb z nekaj besedila in začne z novo dejavnostjo. Zelo enostavna, ampak želim, da gredo skozi kaj bo šel v projekt, kot je ta. Ko bo nov projekt, boste videli v Eclipse da je to projekt, imenovan Hello Android. Potem so tu še cel kup map tukaj. Tiste, ki ste res zaskrbljeni nad mapo vir, mapa vir, RES, in do neke mere mapo libs za knjižnice. In samo zato, da smo na isti strani, da z če ste bili, da ustvarite nov projekt, lahko storite to pravico tukaj, tako da, če hočem, da ga pokličete HelloAndroid, in ga nato samodejno naredi cel kup informacij za nas. Ime Paket naj bi posebni identifikator ki bi se običajno povezana s spletno stranjo, če bi imeli eno. Na primer, bom poklical ta net.cs50.helloandroid. In sem že ta projekt enkrat. Ok, oprosti. Recimo, da HelloCS50 pokličite. In potem se bo vprašati stvari, kot kakšno ikone ne želimo, da bi. To je vse zaradi razvijalce vmesnika Android Orodja plugin, da smo dodali Eclipse, tako da bomo lahko izberete stvari, kot so kakšna ikona želimo, in da bo šel v tej globini, če želimo. Toda na koncu, samo da projekt, in vse kaže, tukaj gor. Kot sem pokazal na drugi zaslon, imamo mapo vir, in bom govoril o tem, kaj vse to prej pomeni, vendar pa lahko vidite, da takoj nas popelje v HelloCS50 zaslonu. Obstaja nekaj gumbov več tukaj za dodajanje besedila in besedila postavitve polj. To je nekako tako kot Xcode, vendar na žalost ni tako zelo poenostavljeno. Vendar bo izrezki biti tvoj prijatelj in ADT zlasti za to. Ok, mapa vir, kjer datoteke Java potekajo, in to je pravzaprav začetek vašega programa. To je v bistvu kot kontrolorji. Mapa vir ali res je, če bomo še naprej postavitve zaslona, slike, zvok, besedilo, animacije in vse ostalo, libs, seveda, knjižnice. In Manifest, to je način, da sistem Android ve kako za interakcijo z vašega app. Jo pripoveduje o dovoljenjih in katere dejavnosti bodo dejansko deluje. To je vse bistvene informacije, ki jih je potrebno zagnati vaš app. Mapa vir, če smo ga razširili, kot lahko vidite tukaj. In primer, ki bi koda poglej-to je privzeta koda. Kot smo jo imenovali, MainActivity. Privzeto je, da smo dobili onCreate, ki je funkcija, ki se sproži ob obremenitve to dejavnost, tako da boste želeli poklicati onCreate (savedInstanceState). To bo ponovno vse bitov informacij v primeru, je app prekinjeno. Tam je vsa dejavnost diagram življenjskega cikla, ki si lahko ogledate ko boš dobil malo bolj poglobljeno v njej, vendar pa je najpomembnejše vrstica kode je ta funkcija setContentView ki bo obremenitev datoteko virov za postavitev. Kaj onCreate tukaj je v bistvu delaš, potem je to govori ko sem ustvariti to dejavnost hočem naložiti to postavitev. In bomo govorili o tem, kaj da je postavitev v drugi. Če smo bili začeti, da tukaj je videti natanko tako kot je ta, in privzeto, ker smo Eclipse tem in ADT to počne za nas to je vse boilerplate kodo, ki je ustvarjena za nas, in gremo lahko naprej in spremeniti stvari, kot smo želeli. Mapa virov, kot sem rekel, to je, če imamo vse postavitve, drawables glede na kakršno koli podob- oni imenujejo drawables-in nato zvočne datoteke, menije. To je način cel kup XML v lepo sortirane način. Kot lahko vidite, obstajajo. Hdpi, ldpi, mdpi in xhdpi mape za drawables. To so različni zaslon gostote, tako visoko gostoto pik na palec, nizke gostote, srednje gostote, ekstra visoke gostote. To je, še enkrat, tako da bomo lahko podpre vse te različne naprave, in v najboljšem primeru, boste imeli različne slike za vsako različno ločljivostjo. Postavitve so kje smo vključiti vse različne postavitve, ki bodo uporabljene v različnih dejavnostih. Zajemajo lahko tudi postavitve za fragmentov, kar pomeni, delne aktivnosti v bistvu. Če želite narediti nekaj kul kot vedno, ko zavrtite telefon si želim, da bi imela drugačno postavitev lahko storite postavitve-pokrajine kot drugo mapo in Android avtomatično ima cel kup teh pravil v mapi virov, tako da bo vedel, da pogled na različne mape, ki temeljijo na trenutnem nastavitev telefona, kakšno strojno opremo, ki jo uporabljate. Prav tako ta vrednote-v11 tukaj in vrednote-v14 in privzete vrednosti mapo, to je za- Tudi vrednosti sama po sebi, to bodo privzete vrednosti v vseh različicah operacijskega sistema. Po drugi strani, V11 in V14 ustrezajo Honeycomb in Ice Cream Sandwich, respectively. Še enkrat, to so načini, da se-v teh mapah so različni nizi in stilov, tako da lahko prilagodite videz vašega app ali morda celo njegova funkcionalnost, čeprav bi bilo to verjetno slaba ideja, temelji na različici operacijskega sistema. In jaz sem govoril o vsem tem tukaj. Še enkrat, vlek, surove, postavitev, vrednote. Neplačil, če gremo v Hello Hello Android ali CS50 prav zdaj bo videti tako, kot je ta. To bo pozdravit svet. Kot lahko vidite tukaj z besedilom Android Besedilo za tem pogledu besedilo, ki je v bistvu samo nalepka, je tisto, kar bi mu pravimo v iOS. To je to smešno zapis @ niza / hello_world. To je tako, bomo lahko, bomo poskušali izločiti vse strune, vse trdo kodiranih nizov v Android v posebno mapo, ki se zgodi, da se v values.strings. Če pogledamo tukaj, lahko vidimo, da imamo močno kodirano niz tu shranjeno za zdravo svet, in to se imenuje zdravo svet, in to je neke vrste skupna odločitev oblikovanje v številnih platformah, ki jih želite, strune so vrste stvari, ki jih želimo potencialno lahko spremenili. Nočemo, da bi za nadzor F v naši kode datoteki vira v naši XML. Želimo, da bi lahko to spremenilo, ko smo dobili priložnost. Ta datoteka XML, strings.xml, je način pridobivanja težko kodirane strune ki bi sicer bili v naših postavitve virov ali pa v naši izvorni kodi. Očitna je, če se držimo te bistvene informacije o aplikaciji. To vključuje ime paketa. Da mora biti enotni identifikator. Za razliko od App Store za iOS imeni aplikacij ne bi bilo treba biti edinstven, in lahko dejansko spremeniti ime svoje vloge po tem, ko ga predloži, tako da, če začnem ven z Angry Birds, in potem sem naredimo posodobitev in ne želim, da izdamo novo različico Mislim, da bi to lahko Angry Birds pokličite 2, ko sem na istem javnost cikel. To bi le prikazal kot posodobitev. Edina stvar, ki mora biti edinstvena, je to ime paketa, ki bo veliko ljudi ne vidim. No, boš videl le, če ste iskali na izvorno kodo, ali če obstaja neke vrste napake. Sestavni deli vključujejo dejavnosti, zato smo morali prijaviti kakršno koli dejavnost, ki jih uporabljamo. Ta je dovoljenje reč. Ker Android nima tega strogega postopka prijave za oddajo aplikacij, namesto ti pač vse, kar temelji off z dovoljenji in izjavlja stvari v manifestu. SDK različica je prav tako pomembna. Mi lahko nastavite z uporabo kot SDK minimalno nekaj različic. Očitno je, da želite ustvariti kodo in oblikovanje za novejše operacijske sisteme. Morda ni najnovejši, morda ne Jelly Bean. Morda želite oblikovati predvsem za Ice Cream Sandwich, čeprav so precej enake v smislu konstrukcijskih odločitev in dejanske knjižnice in API. Toda namesto da bi imeli ljudi v prvotni različici Android-všeč Donut poti nazaj, ko- ki se še vedno zgodi, da se z uporabo, ki poskušajo prenesti aplikacijo in potem reči ne deluje na mojem telefonu lahko nastavite minimalno različico in je bilo Gingerbread ali Ice Cream Sandwich ali karkoli boste počutili udobno posredovanje izjave. In to je primer manifesta. Mi lahko ogledate na dejansko ena v bit. Ok, bomo šele iti naprej z demo zdaj. To je demo, če Google Android graditi svojo prvo aplikacijo ali kaj podobnega. Šli bomo skozi vse, kar se dogaja tam, in žal, samo za referenco, ki tukaj pozna Java do take mere? Ok, tako da Java je novo kodiranje jezik za večino ljudi, ki prihajajo iz CS50. Na kratko, da gredo spet kaj piše tukaj, tisto, kar smo želeli storiti, je, namesto prilagoditev te Hello World aplikacijo da vse kar naredi je, da začenja in pravi, zdravo svet in ga pozdravi CS50 na vrhu, ker to je ime dejavnost bomo poskušali narediti polje z besedilom in gumb tako da, ko smo na ta gumb bo trajalo besedilo iz polja z besedilom in začeti novo dejavnost, in to bodo rekli ne glede na to besedilo omenjeni v aktivnosti, kar je razmeroma preprost. To ni zelo zanimivo. Si ne bi želel, da izpustijo vse aplikacije, kot je ta. Ampak to kaže nekatere pomembne oblikovne stvari. Bomo morali za interakcijo z manifesta, s postavitvijo datotek, z izvorno kodo, in si lahko ogledate, kako začeti eno dejavnost od drugega. Bomo začeli z načrtom za našega prvega dejavnosti, kar vem, da je vrsta majhnih, ampak kot lahko vidite zdaj, vse, kar je, je, da ima naš logotip, da smo ustvarili, ime dejavnost, in pravi Zdravo svet v centru. Namesto tega sem prvič dogaja, da bi to v linearno obliko, relativna postavitev, in to so vse stvari si lahko pogledate in so vredni šli čez na neki točki v smislu postavitve. To je zelo podobna HTML. Rekli smo, da to ni res vredno vedeti glede na programski smislu, vendar obstaja toliko različnih postavitvah lahko nadzor, in to je tako kot CSS v smislu stilov. Obstaja veliko dogaja samo v smislu estetike tukaj, in ja, to je vredno učenja, vendar je reč, ki jo je treba poiskati kot greš in čutite, da potrebujete nekaj novega. Jaz lahko izkoristite nekaj ADT orodij tu vsaj, da začnete s. Poskrbel bom, polje z besedilom, in mi bo gumb. Jih dal zraven drugega. So že ustrezno velikost. Oprostite, spet vrača na razliko med linearno postavitev in relativno postavitev, linearna postavitev daje malo več funkcionalnosti glede na polnjenje prostora in zagotoviti smo naravnani stvari, vodoravno ali navpično. Velika razlika med linearno postavitev in relativno postavitev je relativna postavitev pozicije vse glede drugih pogledov in dobra stvar je, da je potrebno manj časa za pripravo ker operacijski sistem obravnava vse kodo in pravi, da to gre glede na to tukaj, tukaj. To pomeni, da naredi manj meritve, kot cel kup ugnezdenih linearnih postavitvah, kar bi morali storiti, če sem hotel stvari gredo vertikalno tukaj. Sem že nekatere stvari gredo vodoravno, tako da bi potreboval drugačno linearno postavitev Da bi jih gnezdo navpično, ampak če sem delal relativno postavitev lahko rečem da je to v levo, to pravico in teh stvari spodaj. Ampak zato, ker želim, da izpolnite zdaj bom uporabiti linearno postavitev, in lahko vidite, to že počne veliko teh stvari za nas. Vsi pogledi morajo imeti lastnost širino in višino, in se to zgodi, utež 1, kar ima težo 1 tako da zapolnjuje celoten prostor. Ampak širina in višina sta najbolj pomembna. Ta ID polje tukaj ni pomembno v dejanske razporeditve če smo z relativno postavitev in rekel, da se lahko sklicuje en pogled na položaj v zvezi z drugo. Če bi imeli relativno postavitev lahko rečemo, položaj to pod tole ali nad to ID, vendar bo ta ID pomembno ko smo ga uporabljate v naši kodi, ker smo lahko sklicujete ti posamezni pogledi na ta način. In potem si lahko ogledate tag requestFocus, kar je nekaj, kar si verjetno videl v pset 7. Tam je bil samodejno ostrenje tag ali kaj podobnega za eno od polj. In še ena stvar, seveda, lahko naredimo tako kot v HTML, in obvestilo eden od lepih stvari o ADT je, da autocompletes tukaj. Morda ni tako lepo, kot je to storila v Xcode, vendar pa kljub temu, in lahko rečemo namig, nato pa ji dati neko niz rad bi napisal sporočilo, in če sem ji dati trenutek, prav tako opazili, da dobim malo napako tukaj pravijo, da bi morali uporabiti niz vir za to, tako da, če mi dovolite, da naredite nekaj trdega dela za mene Lahko izberete ta niz, naredite refraktorski teleskop Android in ekstrakt Android niz. Lahko ji to ime, napišite sporočilo in kaj je zdaj to, da je težko nadomestiti kodirano niz s sklicevanjem niza v niz je. xml datoteko, kar pomeni, zdaj je to tukaj. In vem, da se zdi malo nepomembno in kot dodatno delo na tej točki, ko pa imate cel kup stvari, cel kup strun, da je res pomembno, zlasti za lokalizacijo ker kot sem že prej omenil, Android, je zelo splošno uporablja operacijski sistem da lahko preprosto storite vrednote-en ali vrednote-SP ali nekaj za angleščino ali španščino ali drugih jezikih. In potem si verjetno niso imeli to izkušnjo še saj nismo naredili toliko JavaScript v zvezi z web programiranje, vendar ne moremo storiti prav to področje, imenovano OnClick za gumb, in to je način za navajanje v naši postavitvi da želimo neko funkcijo, ki se imenuje v naši izvorni kodi. Bom poklical ta sendMessage, in da bi to delo, ki pomeni v glavno dejavnost tukaj Bom moral ustvariti funkcijo, ki je javno tako da se doseže lahko po postavitvi. To je ničen, ker si ne želim, da bi vrnil ničesar. Mi bomo sendMessage poklical, in zastopa stališče, ki je nekakšen kontekst, da bomo lahko zasidra to metodo za posamezen da ko smo jo izvaja. In ne vem, če ste opazili, dobro, da ne bi opazil, vendar v tem trenutku tukaj Ta pogled je tip, ki še niso bili vključeni še in seveda, vsi veste, od CS50 pa ne vključuje vrste. Lepo stvar o IDE Eclipse, kot je to če ste pozabili, da vključuje vrsto bo podčrtano z malo rdečo vijugasto in potem vam možnost, da uvoz pogled. Hiter način za to, da je nadzor premik O, in da bo uvoz vse datoteke, ki jih potrebuje za. Zdaj, ko imamo to funkcijo sendMessage, ki bo poslal sporočilo v MainActivity na novo dejavnost bomo morali uporabiti namero o uvedbi nove dejavnosti, od tega enega, tako da bomo verjetno želeli ustvariti globalno konstanta ali tudi posebno javno konstanta ki nam bo pomagalo vedeti, kako bomo za navajanje niz ker ko smo ustvarili namen smo ne samo kliče novo dejavnost, vendar smo lahko podelili tudi skupek informacij. Sveženj je pravzaprav izraz, ki se uporablja Android, in to je način rekel, da ima dodatne podatke, ki jih ne more biti na zelo prefinjen vrsto podatkov, vendar pa lahko zagotovo tudi booleans ali nize ali Ints. Ta reč. Vas prosimo, da vprašati o kateri koli od teh kvalifikatorjev tukaj, javnosti, končna, statična. Javnosti je pomembna. To pomeni, da lahko dostopate do te spremenljivke od drugih datotek izvorne kode na primer, ko smo ustvariti novo aktivnost. Mi lahko sklicujete niz v tej datoteki. Če je zasebno, to pomeni, da je omejena na to posamezno datoteko tukaj. Ampak bomo to imenujemo nekaj podobnega dodatno sporočilo. Zdaj smo naredili to funkcijo, in če kliknete gumb, se bo ta funkcija se imenuje. Vendar nismo naredili ničesar, seveda, s funkcijo. Kaj želimo storiti zdaj, je ustvariti novo dejavnost, dejavnost, ki se bo dejansko začelo. V Eclipse lahko rečemo nov, Android dejavnost, prazno dejavnosti. Mi lahko ji dati ime. Oglejmo je naša dejavnost rezultat pokličite. In potem je ta hierarhično nadrejena polja je način določajo kako so z njim povezane med seboj. Ker bo ta začel z drugo dejavnostjo moramo navesti, da ima matično glavno dejavnost. In lahko sem kliknil na naslednji terenu, ki bi nam povedali, nekateri neobvezni polja, ki je bilo prav tako tudi, ampak lepo stvar o ADT, še enkrat, da če sem se pomaknite tukaj V manifestu ne pozabite, da je vse to res bila vključena privzeto ko smo prvotno ustvaril projekt, in zdaj, ker smo to ustvarili novo dejavnost, in ne samo dodajanje lastnega razreda datoteke, ker smo šli skozi GUI za tem je že dodali vse to v manifestu za nas, kar samo pomeni, da je zdaj operacijski sistem ne bo pritoževal ko smo poskušali začeti s to dejavnostjo. In tudi, seveda, to je z nalepko, ki tudi kaže v nizih. To počne veliko stvari na zadnji konec za nas. Kakorkoli že, zdaj ko imamo ta rezultat dejavnosti, kot tudi, Dejanska izvorno kodo datoteke v mapo vir, in lahko vidite, da se na kratko dotaknem te- ker smo povedali o tem hierarhično staršev je dal to polje android.r.ide.home v tem onOption izbrani stvar. Kaj to je v bistvu rekel je, da je gumb za meni zdaj da je v zgornjem levem kotu zaslona če grem nazaj v PowerPointu, kjer smo najprej govorili o akcijskem baru ker hierarhične staršev zdaj pa je malo puščico nazaj in to je mogoče klikniti, da bi morali biti sposobni, potem ko smo dejansko vodijo to app- pojdi nazaj, in to je način nam prihrani malo kode tam. Zdaj v to-no, zdi se pritožujejo, da za trenutek. Oglejmo komentar, ki ven. Zdaj, da dejansko interakcijo s temi 2 dejavnosti moramo ustvariti namere, ki vključuje vse od teh podatkov. V sendMessage zdaj bom križarjenje skozi nekaj bitov kode in pojasni, da je, kot sem šel. Namen, kot sem rekel, je način za zagon ene dejavnosti v drugo. Namen je tip. Smo ustvariti spremenljivo myIntent. In to je pravzaprav cilj, zato smo morali poklicati novega. To je skupna uporaba Java tam, ki lahko traja malo privajanje. To pomeni, da smo s pomočjo dejavnosti ali razred MainActivity, in namen na ta način prevzame dejavnost se dogaja z in dejavnosti, ki se dogaja, da, ki smo jih poimenovali ResultActivity, in da je sama razred. Vključi to. In potem, kot sem že omenil, mi je dal ta ID v polje za urejanje besedila in pogled na besedilo, tako da se zajame programsko Besedilo, ki obstaja v editText bomo uporabili to funkcijo imenovan findViewByID, ki je podoben nekaj, kar boste uporabljali, ko poskuša priti polja iz DOM. Morda David govori o tem v predavanju. Ampak to je samo način, kako tiste, ki je zato označil te stvari s temi področji. Id.editText1. To je že autocompleting me tam. In potem bomo vključujejo-ta tudi editText zdaj, ko imamo polje v našem programu, ni bilo vse, kar v bistvu findViewByID si lahko misliš, da nam kot da sklicevanje na to editText. Zdaj želimo, da bi dobili niz ali sporočila v tem editText kar lahko storimo z uporabo- si lahko zamislite editText kot struct- smo se objekt v Java, z cel kup različnih metod pokličite ali polja in atributi v zvezi z njo. Ko rečem editText. to mi daje možnost dostopa do Metoda kot gettext, ki bodo dobili sedanji besedilo V tem editText in potem pretvarjanja, da izrecno v niz in smo jih shranili sporočila. Zdaj smo dejansko želijo nekaj narediti s tem namenom smo ustvarili pred nekaj trenutki. Bom dal ekstra, kot se imenuje v nameri, ki je, še enkrat, kot sem rekel prej, to je način ustvarjanja snop s kopico podatkov. Dodatno sporočilo je naš tag, tako vemo, kaj bomo to varčevanje pod, in potem sem tudi sporočilo. In potem bomo lahko dejansko začeli aktivnosti, ki jih ji daje parametrov myIntent. In se bo to dejansko začela dejavnost, tako da sedaj odkar sem nadgradil na Windows 8 lahko pride do nekaj napak, ki kažejo na kratko, vendar jih poskušati ignorirati. In to je Android emulator. Upam, da bo kodeks dejansko pop up v trenutku. Spet ignorira vse tiste majhne stvari. Toda Android emulator lahko posnemati koli različico operacijskega sistema od najzgodnejših tiste, krof, Gingerbread. To je Jelly Bean 4.1. Toda, kot lahko vidite zdaj, to je nekaj, kar smo naredili. Ta ima MainActivity, se editText, gumb. Lahko vnesete nekaj tukaj, ampak kaj nam manjka v tem trenutku? Naredili smo polje na MainActivity, da se dogaja, da pošljete sporočilo za drugo dejavnost, vendar v tem trenutku nismo naredili ničesar v drugi dejavnosti, tako da je ne bodo prejeli ničesar. Končajmo do tistega dela, preden gremo naprej. Ta dejavnost je rezultat, kar boste morali storiti, je, da bomo morali storiti, je, da bomo morali za- bomo lahko tudi navajanje namena v tej dejavnosti, zato moramo ujeti namero, ki je zelo enostavna. To je funkcija vključena v razred aktivnosti, tako da lahko samo povem, "je sporočilo od namere." "Namera myIntent = getIntent." In to nam daje, zdaj myIntent je objekt, kar je sklic namenom, da nas je pripeljala do te dejavnosti. MainActivity klice in daje dodatne informacije za posledico dejavnost. Dejavnost Rezultat je zdaj videti na nameri, ki ga je vodil tukaj, in bomo lahko dostopate sporočilo, ki smo ga ustvarili v drugem dokumentu getStringExtra, in to bo autocomplete za mene. In potem ne pozabite, pot smo označili, da je bit podatkov je bilo tako, da mu to področje prav tukaj, na tej javni niz, ki je oznaka za niz smo dejansko vključeni. Če rečem MainActivity.Extra_Message to je tam, in to je nekaj podobnega imena parametrov ko smo opravili kodo iz krmilnika s predlogo, ko bi rekel, da naslovno puščico nekaj. To je ista vrsta idejo tam. Zdaj, zapomni si to. Imeli smo tudi ta auto ustvari ali samodejno ustvari kodo za dejavnosti rezultatov, ki vključuje pogled besedila v sredini ki pravi, da zdravo svet. Mi bi potencialno lahko da večji. Kaj je to prvič. Lahko bi bilo 40 neodvisnih gostoto pik. Poglejmo, to je zelo velik. To bo v redu. In potem, da bi povezali te individualne pogled besedila v našem zakoniku bomo morali dati osebni dokument, in za to, da rečemo @ + id, kar pomeni, da ji dodelite ID. Če smo pravkar rekel @ id bi bilo domnevati, da smo navajanje ID, ki že obstaja, in recimo to naš resultTextView. In opazili, da v XML ni potrebe za podpičjem ali karkoli. Vse, kar je znotraj teh oznak. To je zelo podobna HTML v veliko čutov. To traja malo navaditi, ampak sčasoma se boste počutili zelo udobno z njim. Oglejmo posodobiti tudi besedilo za naš rezultat besedilnem pogledu in kot smo to storili, ko smo se dobili, da je polje za urejanje besedila v drugih naših aktivnosti V MainActivity tukaj bomo tudi prav- bomo našli stališčem ID. In R, v primeru, da nisem prej omenil to, ali je sklicevanje na mapi naši viri, in potem ID je sklicevanje na vse v mapi virov, vse IDS, in resultTextView. In tako kot prej, resultTextView je predmet, kar pomeni, da ima vse te lastnosti povezane z njo. Ko smo uporabiti gettext za urejanje besedila za to polje z besedilom ali v pogledu besedila bomo lahko dejansko uporabljajo setText, in potem bomo že našli sporočilo od namere, tako da lahko rečem, sporočilo, in to bo dejansko nastavljena sporočilo. To bo pravi trenutek za začetek, potem pa bomo lahko videli, ali se sesuje, ampak vsa vprašanja o tem procesu prav tam, da nekako interakcije? V mnogih pogledih je enostavna. Razlog, da sem šel skozi nekaj razmeroma preprost je, še enkrat, ker ste dobili za prikaz interakcije med postavitve, izvorno kodo, kako si referenčne stvari in morda dobili malo izpostavljenost kako Java deluje tam. Če sem dejansko vnesite nekaj v tukaj, kot ohai, potem pa sem kliknite gumb, se začenja novo dejavnost, in da je pogled pravi besedilo ohai. To je zelo preprosta, vendar upam, da po tem primer si nekako videli, kako ta interakcija deluje, in zdaj, da nered datotek na levi strani, za vse te projektne mape, upam, da boste vedeli, kje iskati zdaj. To je tvoja koda območje vir. Postavitev je res edina stvar, ki jo obravnava, dokler ne vključujejo slike in drawables ali karkoli, in vrednote, ki bo vključeval nize, kot smo že omenili, nato pa slogi je nekaj, kar je nekako kot CSS. Njegovo obravnavo, če želite, ampak dokler ne boste počutili udobno z dodajanjem dodaten pridih v svoji vlogi ni treba skrbeti za to preveč. Samo, da zaključimo eno stvar, boste zagotovo želeli, da se vključi- ob predpostavki želite vključiti kul funkcij in si prihranite nekaj dodatnih kodiranje- bi bila vključitev knjižnice 3. stranka. Tukaj je malo Android tip z Sherlock Holmes klobuk. To je dejanje bar Sherlock knjižnica kar v bistvu pomeni, da akcijski bar, da ste videli že prej, ki je zdaj standard Ice Cream Sandwich in Jelly Bean, če želite, da bi te vrste uporabniško izkušnjo za uporabnike na starejše različice in shranite sami od skrbi, kako si se dogaja za navigacijo na starejše različice, če ta stvar ni tam lahko vključi to knjižnico in potem boste morali reference, namesto privzete Android knjižnice za vrstico dejanj boste povezali te podporne knjižnice. Stvari, kot Scoreloop, to je super, če boš tudi igro. To vam omogoča dodati vodilne plošče in dosežke na igrah. AdMob je način dajanja oglasov v aplikacijah V primeru, da želite, da bi malo denarja off od tega. Seveda, tam je Facebook in Twitter za integracijo tam Če želite deliti stvari enostavno, et cetera. Dropbox, prav, in Google Analytics je, da je graf videti eno tam. To bo zelo pomembno, če si dejansko želite videti, kdo je vzajemno s svojo aplikacijo ali kdo je to, kako komunicirajo, in tako naprej. Google, ki ga privzeto, vam pove veliko statističnih podatkov o tem, kdo je nameščen vaš app in kaj telefoni imajo, kakšna različice operacijskega sistema imajo. Toda, če želite videti, kdo ga uporablja vsak dan in kako jih uporabljati potem boste želeli vključiti neke vrste sistem za sledenje, kot je ta. Ko ste pripravljeni za distribucijo vaš app Ne rabim iti v to, v preveč globino. Kliknite na povezavo tukaj, Google Predvajaj. Včasih je bilo na trgu Android. So preimenovali vse z Google Play, tako da zdaj oddate na to. To je zelo preprost. Moraš vsebuje opis, nekateri galerija. Kot sem rekel, ni postopek odobritve, kot iOS. In kam naj gredo od tu? Pokazala sem vam res preprost primer. Upajmo, da če se zdi strašno preprosta potem je verjetno dober znak. Če sploh počutil malo zmedeni ali negotovi, kaj sem bil tipkanje tudi to je v redu, ampak od tu šel na Google vodniki. To je odličen kraj za začetek. To vam bo predstavil, kaj pričakujejo v smislu oblikovanja aplikacij, kako uporabniki običajno interakcijo z njim. To je veliko bolj proste oblike kot iOS, bi rekel, kar se zdi, kot pogledi v tabeli so, ne vem, to je njihov kruh in maslo. Vse je pogled tabele drsenje gor in dol. Z Androidom zagotovo spodbuditi ljudi, da pogled na to iz cel kup različnih perspektiv. Ko so komplet za razvoj programske opreme v tem ADT privzeto imate cel kup vzorčnih projektov na Androidu. Tukaj, Android, Android Vzorec projekta. Če sem kliknite na to, potem lahko izberete različico, za katero vzorca uporabi projekti. Obstaja cel kup različnih stvari tukaj. Začne se z akcijskim bar združljivosti, pospeška igre, varnostno kopiranje in obnovitev, Bluetooth, gesta graditelja. JetBoy je vzorec igre so ti dali, saj je LunarLander. Obstaja cel kup vzorčnih aplikacij tukaj in oni so vsi usmerjeni na različne vidike Android je API, in ideja je, da, ko bo svojo vlogo vam ni treba naučiti vse o Android narediti Android. Saj je le, da se učijo o delih, ki ste dejansko uporabljali. Pogled na teh vzorčnih knjižnic. Vas prosimo, da kopirate in prilepite kodo in jo znova. To je velika stvar, da pogled na več težkih kodo in poskusite razumeti, kar je seveda, zakaj v CS50 vam pogosto dajejo velike količine izvorne kode. Pogled na nekatere od njih, če ste tekoč, da uporabljajo podobne knjižnice nato pa ga uporablja za svojo lastno kodo. In seveda, obstajajo vaje. Išči vaj. Našel sem veliko dobrih spletu, ki vam lahko prinese do hitrosti s kakšnimi delci resnici so in kako jih lahko uporabite. Nekatere od teh novih konstrukcijskih stvari, kot fragmentov, res ni treba biti zaskrbljeni, če delate zelo velika, v projektu področje. So stvari, ki jih je Google poskuša postopno noter Stackoverflow je seveda tvoj prijatelj. Upajmo, da sem prodal vam malo na Android, zavedali, da je veliko bolj enostaven pristop v smislu samo jezika kodiranja. Java je Rekel bi, da je veliko lažje razumeti kot Objective-C. Android narašča Mislim, da veliko več kot iOS. Mislim, da so podatki tudi tam, stran od tega, kar mislim. To se dogaja, da je približno za nekaj časa, in so nekaj let zadaj v smislu njihovih projektnih ciklov, tako da je nekako razumljivo, da se še vedno delaš prek nekaterih od teh Vprašanja doslednost, kot je ta ukrep baru je nova stvar za njih še vedno, nekako ustvarja podobno uporabniško izkušnjo na vseh njihovih aplikacij. Upajmo, da lahko greš naprej in zdaj odprli Eclipse in da svoje Android aplikacije. Ali ima kdo kakšna vprašanja, preden smo zavil o čemerkoli? Lahko vam povem, da je odgovor 42. No, srečno kodiranje vsem in srečno. [CS50.TV]