[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]