[Powered by Google Translate] [Seminario] [Android Apps (Nun kun Jelly Faboj!)]
[Jordan Jozwiak] [Universitato Harvard]
[Ĉi tiu estas CS50.] [CS50.TV]
>> Saluton al ĉiuj, kaj bonvenon al la Android Apps (Nun kun Jelly Faboj!) Seminario.
Ĝi nomiĝas Nun kun Jelly Faboj, kompreneble, ĉar
la lasta versio de la SUB nomas Jelly Bean.
Kiam mi parolis pri Android lasta jaro kaj faris tion esence sama seminario
Mi estis prezenti la dezajno mastroj kaj stilaj elektoj por Gingerbread,
kvankam Ice Cream Sandwich estis elirinta en la momento,
kaj tio estas io, kion ni parolos pri iri antaŭen iomete.
Android, kompreneble, ĝi havas iuj temoj kun fragmentación,
tial la lastaj Google mastruma sistemo estas kutime
ne vere tuj fariĝis komuna inter la uzantoj por potenciale supren al jaro, bedaŭrinde.
>> Sed neglekti ke, ni parolos pri multaj kialoj kial
Android estas multe pli bona ol IOS.
Bone, ni parolos pri Android kontre IOS,
iuj dezajno paradigmoj, kiel vi get starigis en nur unu glito,
kaj la granda diferenco inter ĉi tiu kaj la lasta jaro estas mi volas nur
zoom tra iu koncepta aferoj laborante kun
la mastruma sistemo kaj tiam iru en vere baza ekzemplo.
Fakte, nur la ekzemplon ke Google priskribas por konstrui vian unuan app,
kaj ni iros tra ĝi kune kaj simple priskribas.
>> Mi konas multajn el vi nur koditaj en C, do Javo jam tuj estos
malsaman perspektivon, kaj tiel vi akiros viajn piedojn trempi
kaj sentas iom pli komforta kun ĝi espereble.
Rapida resumo, Android kontre IOS.
En Android ekzistas ĉi tiu tempo developer kotizon de US $ 25,
neniu el ĉi $ 100 jare afero.
Ne estas limigoj, kio signifas, ke se mi volas sendi app,
Mi nur submeti ĝin, kaj tie estas neniu aprobo procezon kiel tie estas por iOS.
Vi ricevas por disvolvi kun Java uzante Eklipso,
kio estas kruco platformo, do ne gravas se vi havas Mac,
Fenestroj, aŭ iu Linukso maŝino.
Kompreneble, kun IOS vi devas uzi XCode sur Mac,
kaj Android estas uzata de multaj pli da homoj,
do se vi volas, ke via app havi ian videbleco aŭ eble
fari iom da mono el reklamoj
vi probable pli verŝajna por profitigi de Android.
>> Kaj unu afero ke ĉiam estis konata de Android
estas la ekstrema kvanto de personigo, dum IOS estas tre fiksitaj sur iliaj vojoj
por ke ili povu subteni sekureco kaj kontrolo super cxiuj iom aspekto
de la dezajno ene de sia VIN kaj la individuaj aplikoj.
Android estas tre libera formo, kaj estas tiom da pli ebloj.
Okay, iuj dezajno paradigmoj.
Rimarku ĉi tie same kiel IOS havas tabelojn kaj iPhone kaj iPod Touches
ili devas apogi, diru, kiel dekduo mekanismoj se vi volas subteni
historiaj aferoj ankaŭ.
Kun Android de vi devos elporti cientos de mekanismoj,
tiel estas iuj aferoj kiuj Google estis klopodante implemento
fari la uzanto spertas iom pli kohera,
sed ni ankaŭ parolas pri kiel ĉi tio signifas ke estas temoj de fragmentiĝo
ke vi senĉese devas konscii pri apogo.
Fragmentación signifas ke estas multaj malsamaj mastrumaj sistemoj,
multaj diversaj telefonoj kun malsamaj aparataro kurante Android ĉiuj samtempe,
tial ĉi grafikaĵo tie superas dum ĉirkaŭ 6 monatoj.
Yeah, 6 monatoj, kaj vi povos vidi kiel la plej malluma bando
sur la fundo estas Jelly Bean, kiu eliris trans la somero,
kaj vi povas vidi nun probable ĉirkaŭ 2% de la telefonoj havas ĝin.
>> Ice Cream Sandwich elvenis pli ol jaro,
kaj kvara el la telefonoj havas ĝin.
Tamen restas multe da telefonoj kiuj uzas OS versio de jaroj.
Unu kudru ke Google klopodis fari por fari la uzanto sperto
multe pli kohera trans apps komencas kun Honeycomb,
kiu estas la tablojdo versio, tiam Ice Cream Sandwich kaj Jelly Fabo,
ili estas vere klopodas reliefigi uzo de tiu ago trinkejo,
kiu estas kion vi povas vidi ĉe la supro tie,
ĉion ĝuste ĉi tie, inkluzive de tiu malgranda agordoj butonon.
Ĝi estas la dezajno elekto.
Nun, kiam ajn vi vidi la 3 dots ĝin signifas klaku sur ĉi tio,
kaj estos falmenuo, kiu havas ian agordojn.
Tio nur montras supren ĉar mi klakis sur ĉi tiu butono.
Ĉi tiu estas aĵo kiun ili provas uzi por fari apps iom pli kohera
trans la tabulo kaj tiel la uzanto havas pli bonan senson de uniformaj sperto.
>> Bone, do se vi ankoraŭ ne faris tion jam aŭ se vi rigardi hejme
tiam vi povas sekvi ĉi tiujn paŝojn por agordi vian kodigon medio.
Ĝi implicas tuj la retejo tie.
Vi povas Google instali Android SDK
kaj sekvi iujn priskribojn tie.
Ili diros al vi ĉion.
Ili havas vi instalu la SDK, download Eklipso Klasika versio,
kvankam, kompreneble, ni kodigo en Java.
Ili rekomendas ĉi tiu, kaj tiam ĉi ADT, la Android Disvolvado Iloj,
estas kromaĵo, kiun vi instalu en Eklipso kiu permesas vin
havi multe pli stiligitaj sperto kun Android ene Eklipso.
Ĝi donos al vi grafikajn interfacojn de uzanto
por desegni la opiniojn, kaj gxi donos al vi multe pli da subteno
kaj la kapablo por ĵeti kun la emulador kaj ĉiuj tiaj aferoj.
Apliko kadro.
>> Mi volas paroli pri tio, kiel la projektoj ene Android estas strukturitaj,
kaj poste ni iros en rapida ekzemple, kaj espereble
vi povas demandi demandojn je ajna punkto kaj senti komforta por la fino de ĝi.
Ni havas kelkajn ĵargono unua.
Aktiveco estas kiel la ekrano vi vidos, kiam vi lanĉi programon.
La tuta sperto estas la aktiveco mem,
tial vi povis pensi pri tio kiel ekrano aŭ cele,
sed ĝi estas fakte la fontkodo flanko.
Ni ankoraŭ nomas la reala interfaco parto de ĝi vidon.
Estas iel kiel kiel en pset 7 ni havis la adaptilo kaj tiam la vido.
La aktiveco estas pli aŭ malpli la adaptilo,
kaj la vido estas kion ni faras en terminoj de la XML
kiu asocias kun tiu aktiveco.
Fragmentoj estas iu kiu estas implementado en Ice Cream Sandwich iri antaŭen.
Estas nur ideo de prenante partoj de la vido aŭ la aktiveco
kaj dividante ilin en apartaj zonoj tiel ke ni povas
fari nian kodon pli uzebla por tiuj multaj malsamaj aparatoj
ke ni devas apogi, kaj estas nur maniero de klopodi
ankaŭ faktorigi el pli kodo.
Servoj estas fono aĵoj kiel ludi muzikon aŭ navigado direktoj potenciale.
Enhavo provizantoj, tiuj estas API ene de la mastruma sistemo
kiu permesas aliri datumoj dividitaj kiel kontakto informoj,
kaj tiam intenco estas io, kion ni uzos, kiam ni volas lanĉi
nova aktiveco de nia nuna agado.
>> Saluton Android, tiu tuj estos projekto kiu ni parolos pri.
Mi fakte faras por vi, kaj tiam ni faros ion, kie ni klaki butonon
kun iom da teksto kaj lanĉi novan aktivecon.
Tre simpla, sed mi volas iri tra
kio iros en projekto kiel ĉi tio.
Kiam vi faras la nova projekto vi vidos ene Eklipso
ekzistas tiu projekto nomata Saluton Android.
Tiam ekzistas tuta aro da dosierujoj tie.
Tiuj, vi vere koncernas estas la fonto dosierujo,
la rimedo dosierujo, la rezolucio, kaj iom la libs dosierujon por bibliotekoj.
Kaj ĝuste tial ni estas en la sama paĝo kun tiu
se vi krei novan projekton,
vi povas fari tion ĉi tie, do se mi volas nomi ĝin HelloAndroid,
kaj tiam ĝi aŭtomate faras tuta amaso de la informoj por ni.
La pako nomo estas supozataj esti unika identigilo
ke estus normale asociita kun la retejo, se vi havis unu.
>> Ekzemple, mi nomos tiun net.cs50.helloandroid.
Mi jam faris ĉi tiun projekton unufoje.
Okay, sorry. Ni nomas ĝin HelloCS50.
Kaj tiam ĝi petos aĵojn kiel kian ikono ni volas fari.
Tio estas cxiuj pro la Android Programisto Agordoj interfaco,
la kromaĵo ke ni aldonis al Eklipso, do ni povas elekti tion kiel
kio ikono ni volas, kaj kiu irus en tiu profundo, se ni volas.
Sed en la fino, simple fari la projekto,
kaj ĉio aperas ĉi tie.
Kiel mi montris en la alia ekrano,
ni havas la fonto dosierujo, kaj mi parolos pri kio ĉio tio signifas baldaŭ,
sed vi povas vidi ke gxi tuj prenas nin al la HelloCS50 ekrano.
Estas iuj butonoj ĉi tie por aldoni teksto kaj teksto kampo layouts.
Estas iel kiel XCode sed bedaŭrinde ne sufiĉe kiel stiligita.
Sed la klipojn estos via amiko kaj ADT en aparta por fari tion.
>> Bone, la fonto dosierujo estas kie
la Java dosieroj tenataj, kaj ĉi tiu estas vere la lanĉo de via programo.
Ĝi estas esence same kiel la regiloj.
La rimedo dosierujo aŭ la rezolucio estas kie ni malebligos ke ekrano layouts,
bildoj, sonoj, teksto, kuraĝigo kaj ĉion alian, libs, evidente, bibliotekoj.
Kaj la Manifesto, estas la maniero, ke la sistemo Android scias
kiel interagi kun viaj app.
Ĝi rakontas ĝin pri permesoj kaj kio agadojn efektive esti kuri.
Estas ĉiuj esencaj informoj estas necese kuri vian programon.
La fonto dosierujo estas-se ni pligrandigi ĝin kiel vi povas vidi ĉi tie.
Kaj ekzemplo, ke kodo aspektus-ĉi estas la defaŭlta kodo.
Kiel ni nomas ĝin, MainActivity.
Implicite, ni preni onCreate, kiu estas funkcio kiu nomas kiam tiu aktiveco ŝarĝoj,
tiel vi volas nomi onCreate (savedInstanceState).
Tiu redonos ajna informerojn
en kazo la programo paŭzis.
>> Ekzistas tuta aktiveco vivo ciklo abako kiu vi povas rigardi
kiam vi ricevas iom pli detala en ĝi,
sed la plej grava linio de kodo estas ĉi setContentView funkcio
kiu ŝarĝas la rimedo dosiero por la aranĝo.
Do kion onCreate tie estas esence faras estas ĝi estas jene
kiam mi kreas tiu aktiveco Mi volas ŝarĝi ĉi aranĝo.
Kaj ni parolos pri kion tiu aranĝo estas en dua.
Se ni ĵeti, ke ĉi tie ĝi aspektas precize kiel tiu,
kaj defaŭlte ĉar ni eklipso faranta tion kaj ADT fari ĝin por ni
ĉi estas la tuta Boilerplate kodo kiun oni kreis por ni,
kaj ni povas pluiri kaj ŝanĝi tion kiel ni ŝatas.
La rimedo dosierujo, kiel mi diris, ĉi tiu estas kie ni tenos ĉiuj layouts,
drawables en terminoj de iu ajn speco de bildoj-
ili estas nomitaj drawables-kaj tiam sondosieroj, menuoj.
Ĝi estas maniero de tuta amaso de XML en bela ordo modo.
Kiel vi povas vidi, estas. Hdpi, ldpi, mdpi kaj xhdpi dosierujoj por la drawables.
Ĉi tiuj estas malsama ekrano densecoj, tiel alta denseco rastrumero por colo,
malalta denseco, meza denseco, ekstra alta denseco.
>> Jen, denove, tiel ni povas subteni ĉiuj tiuj diversaj mekanismoj,
kaj ideale, vi havos malsamajn bildojn por ĉiu malsamaj rezolucio.
Layouts estas kie ni inkludas ĉiujn malsamajn layouts kiuj estos uzitaj en malsamaj aktivecoj.
Ili povus ankaŭ inkludi layouts por fragmentojn,
kio signifas parta aktivecoj esence.
Se vi volas fari ion malvarmeta kiel ĉiam vi turni la telefono
Vi volas havi malsamajn aranĝo vi povas fari aranĝo-pejzaĝo kiel alia dosierujo,
kaj Android aŭtomate havas tutan faskon da tiuj reguloj ene de la rimedo dosierujo,
tial ĝi ekscios rigardi malsamaj dosierujoj bazita sur la aktuala instalinstrukciojn de la telefono,
kian aparataron vi uzas.
Simile, ĉi valoroj-v11 tie kaj valoroj-v14
kaj la defaŭlta valoroj dosierujo ĉi tio estas por-
bone, valoroj per sin, tiu estos la defaŭlta valoroj tra ĉiuj versioj de la mastruma sistemo.
Aliflanke, v11 kaj v14 korespondi kun Honeycomb
kaj Ice Cream Sandwich, respektive.
Denove, ĉi tiuj manieroj kiujn-ene de ĉi tiuj dosierujoj estas malsamaj kordoj
kaj stiloj, do vi povas agordi la aspekton de via app
aŭ potenciale eĉ lia funkciojn, kvankam tio probable estus malbona ideo,
surbaze de la versio de la mastruma sistemo.
>> Kaj mi parolis pri tiu tie ĉi.
Denove, drawable, kruda, aranĝo, valoroj.
La implicite, se ni iros en Saluton Android aŭ Saluton CS50 nun
ĝi aspektos same kiel ĉi tio.
Ĝi diros saluton mondo.
Kiel vi povas vidi ĉi tie kun la Android teksto
la tekston por tiu teksto vido, kiu estas esence nur etiketon,
estas kion ni nomus ĝin en IOS.
Ĝi havas ĉi amuza skribmaniero @ kordo / hello_world.
Tio estas do ni povas-ni provas ĉerpi ĉiuj ŝnuroj,
ĉiuj de la malmola-kodita kordoj en Android en apartan dosierujon,
kio okazas al esti en values.strings.
Se ni rigardas tien, ni povas vidi, ke ni havas malmolan-kodita ĉeno savita ĉi tie
por saluton mondo, kaj ĝi nomiĝas saluton mondo, kaj ĉi tiu estas speco de
komuna decido de dezajno trans multaj platformoj, ke vi volas al-
kordoj estas la speco de aferoj kiujn ni volas potenciale povos ŝanĝi.
Ni ne volas kontroli F en nia fontkodon dosiero en nia XML.
Ni volas povi ŝanĝi ĉi ĉiufoje kiam ni atingos la sorto.
>> Ĉi XML-dosiero, strings.xml, estas maniero de ĉerpi
malmola-kodita kordoj kiuj devus alie esti en nia aranĝo rimedoj
aŭ en nia fontkodo.
La Manifesto estas kie ni plenumas ĉi tiu esenca informo pri la apliko.
Ĝi inkludas la pako nomo. Tio devas esti unika identigilo.
Kontraste la App Store por IOS la nomoj de la aplikoj
Ne devas esti sola, kaj vi povas fakte ŝanĝi la nomon de via kandidatiĝo
post vi submetas ĝin, do se mi komencas evi Kolera Birdoj,
kaj tiam mi fari ĝisdatigon, kaj mi ne volas liberigi nova versio
Mi supozas ke mi povus nomi Kolera Birdoj 2 dum mi estas en la sama eldono ciklo.
Estus nur aperas kiel ĝisdatigo.
La sola afero kiu devas esti unika estas ĉi pakon nomo,
kiu ne multaj homoj vidos.
Nu, vi volas vidi nur se vi rigardas la fontokodon aŭ se estas ia eraro.
La komponantoj inkludas agadojn, do ni devas deklari
ia agado ni uzas.
Tio ĉi estas permeso tiaj aferoj.
>> Ĉar Android ne havas tiun striktan aplikon procezo
por submeti apps anstataŭ ili simple ĉion bazita ekstere de permesoj
kaj deklarante aĵoj en la Manifesto.
La SDK versio estas same grava.
Ni povas difini uzo kiel SDK minimuma versio ion.
Evidente, vi volas krei kodo
kaj dezajno por la pli novaj mastrumaj sistemoj.
Eble ne la plej nova, eble ne Jelly Bean.
Eble vi volas desegni unuavice por Ice Cream Sandwich,
kvankam ili estas preskaux la samo en terminoj de dezajno decidoj
kaj la efektiva bibliotekoj kaj API.
Sed anstataŭ havi homo
de la originala Android versio-kiel Donut vojon reen al-
kiuj ankoraŭ okazi esti uzanta kiuj provas elŝuti via kandidatiĝo kaj poste diri
ĝi ne funkcias en miaj telefonoj vi povas agordi la minimuma versio
kaj ĝi estu Gingerbread aŭ Ice Cream Sandviĉo
aŭ kion ajn vi senti komforta Submeti.
Kaj jen estas ekzemplo de la Manifesto. Ni povas rigardi la reala en iom.
>> Bone, ni nur iri antaŭen kun la demo nun.
Ĉi tiu estas la demo se vi Google Android konstruu vian unuan app aŭ io kiel tio.
Ni iros per ĉio, kio okazas en tie,
kaj sorry, nur por referenco, kiuj ĉi tie scias Java por ajna punkto?
Bone, do Java estas nova kodigo lingvo por plej multaj homoj venas el CS50.
Mallonge, por iri denove kion diras ĉi tie,
kion ni volas fari estas anstataŭ ĝustigi tiun saluton mondo apliko
ke ĉiuj faras estas ĵetas kaj ĝi diras saluton mondo
kaj gxi diras saluton CS50 supre ĉar tio estas la aktiveco nomo
Ni tuj provos fari teksto kampo kaj butono
tiel ke kiam ni premu tiun butonon prenos la teksto
de la teksto kampo kaj lanĉi novan aktivecon, kaj ĝi diros
kion ajn tiu teksto diris en la agado, kaj tio estas relative simpla.
Ĝi ne estas tre interesa. Vi ne volas liberigi ajna app ŝatas tion.
Sed ĝi pruvas kelkaj gravaj dezajno aĵoj.
>> Ni devos interagi kun la Manifesto, kun la aranĝo dosieroj,
kun la fontkodon, kaj vi povos vidi kiel lanĉi unu aktiveco de alia.
Ni komencu per la aranĝo por nia unua agado,
kiun mi scias ke estas speco de malgranda,
sed kiel vi povas vidi nun, ĉiu estas estas ĝi havas nian logo kiun ni kreis,
la aktiveco nomon, kaj ĝi diras saluton mondo en la centro.
Anstataŭe, mi unue iri al fari ĉi tiu enen lineara aranĝo,
relativa aranĝo, kaj tio estas ĉio
vi povus rigardi supren kaj valoras tuj super je iu punkto en terminoj de la layouts.
Estas multa kiel HTML.
Ni diris, ke ĝi ne estas vere valoras scii koncerne programita senso,
sed estas tiel multe da malsamaj layouts vi povas kontroli,
kaj tio estas nur kiel CSS koncerne stilojn.
>> Estas multe okazas nur en terminoj de la estetiko tie,
kaj jes, ĝi estas lernebla, sed estas la speco de afero kiun vi devus serĉi
kiel vi iros kaj vi emas vi bezonas ion novan.
Mi povas utiligi iujn de la ADT iloj tie almenaŭ dividi kun.
Mi faros teksta kampo, kaj Mi faros butonon.
Metu ilin dekstra flanko de ĉiu alia.
Ili jam regrandigi taŭge.
Pardonu, denove, revenante al la diferenco inter lineara aranĝo kaj relativa aranĝo,
lineara aranĝo donas iom pli funkciojn
en terminoj de plenigi spacon kaj certigante
ni pozicio tion horizontale aŭ vertikale.
La granda diferenco inter lineara aranĝo kaj relativa aranĝo
estas la relativa aranĝo pozicioj ĉio relativa al aliaj vidpunktoj,
kaj la bona afero pri ĝi estas kiu portas malpli da tempo por cxerpi
ĉar la mastruma sistemo aspektas tute la kodo kaj diras ĉi iras
relativa al ĉi tie, tie ĉi.
Ĝi signifas faras malpli mezuradojn ol tuta aro da nestitaj lineara layouts,
kion mi devus fari se mi volis tion iri vertikale tie.
>> Mi jam kelkaj aferoj iras horizontale, do mi bezonus malsama lineara aranĝo
al nesto ilin vertikale, sed se mi faris relativa aranĝo mi povus diri
teni ĉi tion al la maldekstra, tiu al la dekstra kaj tion sube.
Sed cxar mi volas ilin por plenigi ĝuste nun mi tuj uzos lineara aranĝo,
kaj vi povas vidi jam faras multajn el tiuj aferojn por ni.
Ĉiuj opinioj bezonas havi bienon de larĝeco kaj alteco,
kaj ĉi tio okazas al havi pezon de 1, kaj ĉi tiu havas pezon de 1
por ke ĝi plenigas la tuta spaco.
Sed la larĝeco kaj alteco estas plej grava.
Ĉi ID kampo ĝuste ĉi tie ne estas grava en la reala aranĝo
krom se ni uzas relativan aranĝo kaj dirante ni povas referenci
unu vido pozicion en referenco al alia.
Se ni havis relativan aranĝo ni povus diri pozicio ĉi sube ĉi tiu
aŭ pli alta ĉi ID, sed ĉi ID estos grava
kiam ni uzas ĝin en nia kodo ĉar ni povas referenci
tiuj individuaj opinioj en tiu vojo.
>> Kaj tiam vi povas vidi la etikedo requestFocus, kiu estas iu vi probable vidis en pset 7.
Okazis aŭtomata fokuso etikedo aŭ io kune tiujn liniojn por unu el la kampoj.
Kaj unu afero, kompreneble, ni povas fari same kiel en HTML,
kaj avizo unu el la agrablaj aĵoj pri ADT estas kiu autocompletes tie.
Eble ne tiel bele kiel ĝi faris en XCode, sed ĝi tamen,
kaj ni povus diri aludo kaj tiam donas ian kordo
kiel skribi mesaĝon,
kaj se mi donos gxin momente, rimarki ankaŭ ke mi alvenas iom eraro ĉi tie
dirante, ke ni devus uzi ĉenon rimedo por tio,
do se mi lasu ĝin fari iuj de la laboremo por mi
Mi povas selekti ĉi tiun ĉenon, do refractor Android kaj ekstrakto Android kordo.
Mi povas doni al ĝi tiun nomon, skribi mesaĝon,
kaj kio ĝi nun estas anstataŭita tiu malmola-kodita ĉeno
kun referenco al la ĉeno en la kordo-aj jaroj. xml-dosiero,
kio signifas nun estas ĉi tie.
>> Kaj mi scias, kiu ŝajnas iom banala kaj kiel ekstra laboro je ĉi tiu punkto,
sed kiam vi havos tutan faskon da aĵoj, tuta aro da kordoj,
ke estas vere grava, kaj aparte por lokaligo
ĉar kiel mi menciis antaŭe, Android estas tre monde uzata mastruma sistemo
ke vi simple povas fari valoroj-eo aŭ valoroj-sp
aŭ io por la angla aŭ hispana aŭ aliaj lingvoj.
Kaj tiam vi probable ne havis tiun sperton ankoraŭ
ĉar ni ne faris multe JavaScript en terminoj de ttt programado,
sed ni ankaŭ povas fari ĉi kampo nomata onClick por la butono,
kaj tio estas vojo de referenco en nia aranĝo
ke ni volas certa funkcio al esti nomata en niaj fontkodo.
Mi tuj nomas tiun sendMessage,
kaj por fari tiun laboron kiu signifas en la ĉefa aktiveco ĉi tie
Mi devos krei funkcio kiu estas publika
tiel ke ĝi povas aliri la aranĝo.
Ĝi estas malplena ĉar vi simple ne volas reveni nenion.
Ni nomas ĝin sendMessage, kaj prenas vidpunkton,
kiu estas speco de kunteksto, ke ni povas ankrumi tiu metodo
al tiu individua vidpunkto, kiam ni kurante ĝin.
>> Kaj mi ne scias se vi rimarkis-bone, vi ne rimarkis,
sed en ĉi tiu punkto ĝuste ĉi tie
tiu vidpunkto estas tipo kiuj ankoraŭ ne estis inkludita,
kaj sendube, vi ĉiuj scias el CS50 pri ne inkludante tipoj.
La bela afero pri IDE la kiel Eklipso estas ke
se vi forgesu inkluzivi tipo estos substreki kun iom ruĝa squiggly
kaj poste doni al vi la eblon por importi la vidon.
Rapida maniero fari tion estas kontrolo movo ho, kaj estos importi
ĉiuj dosieroj kiuj bezonas.
Nun ke ni havas ĉi tiun funkcion sendMessage,
kiu iras al sendi mesaĝon de la MainActivity al nova aktiveco,
ni tuj devos uzi intencon lanĉi la novan aktivecon de ĉi tiu,
tial ni probable volas krei tutmondan konstanta aŭ ankaŭ aparte publikan konstantan
kiu helpos nin scias kiel ni iras por referenci la kordo
ĉar kiam ni krei intenco ni ne simple nomi nova aktiveco,
sed ni ankaŭ povas doni ĝin faskon da informoj.
Kiel fasko estas fakte la termino kiu Android uzas,
kaj estas maniero de diri donu ekstra datumoj, kiuj ne povas esti de tre kompleksa datumtipo,
sed ni povas definitive inkluzivas booleans aŭ ŝnuroj aŭ ints.
Tiaj aferoj.
>> Sentu vin libera demandi pri iu ajn el tiuj klasifiko tie,
publiko, fina, statika.
Publiko estas la plej grava.
Ĝi signifas ke ni povas konsenti tiun variablon de aliaj fontkodon dosieroj
kiel kiam ni krei novan aktivecon.
Ni povas referenci la kordo ene de ĉi tiu dosiero.
Se ĝi estas privata, tio signifas ke ĝi estas limigita al tiu individuo dosieron ĉi tie.
Sed ni nomas iun kiel ekstra mesaĝo.
Nun ni faris tiun funkcion, kaj se ni klaki la butonon, ĉi tiu funkcio estos vokita.
Sed ni ne faris ion ajn, evidente, kun la funkcio.
Kion ni volas fari nun estas krei novan aktivecon,
la aktiveco kiu efektive estos ĵetita.
En Eklipso ni povas diri nova, Android aktiveco, malplenan aktiveco.
Ni povas doni al li nomon.
Ni nomas ĝin nia rezulto aktiveco.
Kaj tiam tiu hierarkia patro kampon estas vojo de preciziganta
kiel la aktivecoj estas rilatanta al ĉiu alia.
Ĉar ĉi tiu estos ĵetita el la alia aktiveco
ni devus specifi ke ĝi havas la patro ĉefa aktiveco.
>> Kaj mi povus esti klakis sur la sekvanta kampo tie, kiu dirus al ni
iuj nedeviga kampoj kiuj oni ankaŭ inkluditaj,
sed la bela afero pri ADT, denove, estas ke se mi rulu suben ĉi tien
en la Manifesto memori ke ĉio ĉi vere estis komprenita de defaŭlta
kiam oni origine kreis la projekton,
kaj nun ĉar ni uzas ĉi krei novan aktivecon anstataŭ nur
aldonante nia propra klaso dosieron ĉar ni iris tra lian GUI por fari tion
Jam aldonitaj ĉio ĉi por la Manifesto por ni,
kiu signifas nur ke nun la mastruma sistemo ne plendi
kiam ni provas lanĉi tiun aktivecon.
Kaj ankaŭ, kompreneble, donis ĝin etiketo, kio ankaŭ aperas en ĉenoj.
Ĝi faras multajn aĵojn sur la dorso fino por ni.
Ĉiuokaze, nun ke ni havas ĉi tiun rezulton aktiveco tiel,
la reala fontkodon dosiero en la fonto dosierujo,
kaj vi povas vidi-al mallonge tuŝi sur ĉi-
ĉar ni rakontis pri tiu hierarkia patro
donis tiun tajpujon android.r.ide.home en ĉi onOption elektitan afero.
>> Kio tio estas esence dirante estas tie estas menuo butonon nun
ke en la supera maldekstra angulo de la ekrano
se mi reiros al la PowerPoint kie ni unue parolis pri agado trinkejo
pro la hierarkia patro nun estas iom sago reveni ĉi tien
kaj ĉi tiu estas alklakeblaj do ni devus kapabli-post ni efektive kuri ĉi app-
reiri, kaj estas maniero de savi al ni iom da kodo tie.
Nun ene de tiu-bone, ŝajnas esti plendis pri tio dum momento.
Ni diri ke eksteren.
Nun, por vere interagi kun tiuj 2 aktivecoj,
ni devas krei intenco kiu inkluzivas ĉio ĉi datumojn.
En sendMessage nun mi iros al transepto tra iuj bitoj de kodo
kaj klarigi ke kiel mi iras.
An intenco, kiel mi diris, estas maniero lanĉi unu aktiveco de alia.
Intenco estas la tipo. Ni kreante variablo myIntent.
>> Kaj tio estas fakte objekto, tial ni devas nomi novan.
Ĝi estas komuna Java uzado tie, kiu povus preni iom da alkutimiĝi al.
Tio signifas, ni uzas la aktiveco aŭ de la klaso MainActivity,
kaj absorbita en tiu maniero prenas la aktiveco okazas de
kaj la aktiveco tuj, kiun ni nomas ResultActivity,
kaj ke estas lia propra klaso.
Inkluzivi tio.
Kaj tiam kiel mi menciis antaŭe, ni donis al tiu ID al la redakta kampo de teksto
kaj la teksto vidpunkto, do la celo programmatically kapti
la teksto kiu ekzistas en la editText
ni uzas tiun funkcion nomita findViewByID,
kiu estas simila al iu kiu vi uzos kiam provante atingi kampojn de la DOM.
Eble Davido parolas pri ĉi tio en prelego.
Sed estas nur maniero de prenanta tiuj-jen kial ni tag tion kun tiuj kampoj.
Id.editText1.
Ĝi jam autocompleting por mi tie.
>> Kaj tiam ni ankaŭ inkluzivas-ĉi editText nun ke ni havas la kampo
en nia programo, cxiuj findViewByID faris estis esence
vi povus pensi pri tio kiel al ni referencon kiu editText.
Nun ni volas akiri la ŝnuro aŭ la mesaĝo
ene de tiu editText kion ni povas fari per la uzo de la-
vi povus pensi editText kiel struct-
ni nomas ĝin objekto en Java-kun tuta amaso de malsamaj metodoj
aŭ kampoj kaj atributoj ligita al ĝi.
Kiam mi diras editText. tio donas al mi la ŝancon por aliri
metodon kiel gettext, kiu ricevos la nuna teksto
en tiu editText kaj poste konverti kiuj eksplicite
al ĉeno, kaj ni savis la mesaĝo.
Nun ni efektive volas fari ion kun tiu intenco ni kreis ĝuste momentojn.
Mi metos ekstra kiel ĝi nomiĝas en la intenco,
kiu, denove, kiel mi diris antaŭe, tio estas maniero de krei la pakaĵo
kun tuta amaso de datumoj.
Ekstra mesaĝo estas nia etikedo do ni scias kion ni ŝparas ĉi malsupre,
kaj poste mi inkluzive de la mesaĝo.
>> Kaj tiam ni povas efektive komenci la aktiveco per doni al ĝi la parametro myIntent.
Kaj tion efektive ĵetas la aktiveco, do nun kiam mi ĝisdatigis al Windows 8
povus esti kelkaj eraroj kiuj aperas mallonge, sed provi ignori ilin.
Kaj jen estas la Android emulador.
Atendu ke la kodo estos efektive pop supren en momento.
Denove, ignorante ĉiujn tiujn etulojn.
Sed la Android emulador vi povas imiti ajna versio de la mastruma sistemo
de la plej fruaj, ili Donut, Gingerbread.
Ĉi tiu estas Jelly Fabo 4.1.
Sed kiel vi povas vidi ĝuste nun, ĉi tiu estas io, kion ni faris.
Ĉi tio havas la MainActivity, la editText, la butono.
Mi povas tajpi ion ĉi tie, sed kion ni mankas ĉe tiu punkto?
Ni faris la kampo en la MainActivity ke tuj sendi la mesaĝon
al la alia aktiveco, sed je tiu punkto
ni ne faris ion ajn en la alia aktiveco, tial ne tuj akceptos nenion.
Ni finos ĝis tiu parto antaŭ ol ni pluiru.
>> Ĉi tiu rezulto aktiveco, kion ni devas fari estas ni devas fari estas ni bezonos-
ni povas ankaŭ referenci la intenco ene de ĉi tiu aktiveco,
do ni devas kapti la intenco, kiu estas vere simpla.
Ĝi estas funkcio inkluzivita en la aktiveco klaso,
do ni povas simple diri "Get la mesaĝo de la intenco."
"Intent myIntent = getIntent."
Kaj tion donos al ni, nun myIntent estas objekto,
kio estas referenco al la intenco kiu kondukis nin al ĉi tiu aktiveco.
MainActivity flamo kaj donas ekstran informon por rezulti aktiveco.
Rezulto aktiveco nun rigardas al la intenco kiu kondukis ĝin ĉi tie,
kaj ni povas konsenti la anonco, kiun ni kreis en la alia,
getStringExtra, kaj tiu volo autocompletar por mi.
Kaj tiam memoras, kiel ni tagged ke iom de datumoj
Estis donante ĝin ĉi kampo tie ĉi, tiu publika ĉeno,
kiu estas la etikedo por la kordo ni efektive inkluditaj.
>> Se mi diras MainActivity.Extra_Message
ĝi estas prava, kaj tio estas speco de kiel la parametro nomo
kiam ni trapasis kodon de la regilo al la ŝablono,
kiam ni dirus titolo sago ion.
Ĝi estas la sama speco de ideo tie.
Nun, memoru tion.
Ni ankaŭ estis ĉi auto kreitaj aŭ auto generita kodo
por rezulto aktiveco, kiu inkluzivas la tekston vido en la mezo
kiu diras saluton mondo.
Ni povus potenciale faras ke pli granda.
Ni faru tion unue.
Ni povus fari ĝin 40 denseso sendependa rastrumeroj.
Vidu, tio estas super enorma. Ke estos bone.
Kaj tiam, por referenci tiun ĉi individuaj teksto vido ene nia kodo
Ni bezonos doni ĝin al ID,
kaj por fari tion ni diras @ + id, kio signifas ke ni atribui ĝin ID.
Se ni nur diris @ id supozus ni referenco de ID kiu jam ekzistas,
kaj ni nomas tiun nian resultTextView.
Kaj rimarki ke en XML estas neniu bezono por punktokomojn aŭ nenion.
Ĉio estas ene de ĉi tiuj etikedoj.
Ĝi estas tre simila al HTML en multaj sencoj.
>> Ĝi prenas iom da alkutimiĝi al, sed fine vi sentos sufiĉe komforta kun ĝi.
Ni ĝisdatigos la tekston por nia rezulto teksto vido,
kaj kiel ni faris kiam ni ricevas, ke redaktu teksto kampo en niaj aliaj aktiveco
en MainActivity tie ni faros ankaŭ same-
ni trovos la vido de la ID.
Kaj R, en kazo mi ne menciis tiun antaŭe, estas la referenco al niaj rimedoj dosierujo,
kaj tiam ID estas referenco al ĉiu en la rimedoj dosierujo, ĉiuj IDs,
kaj resultTextView.
Kaj ĝuste kiel antaŭe, resultTextView estas objekto,
kio signifas ke ĝi havas ĉiujn tiujn propraĵoj asociita kun ĝi.
Kiam ni uzas gettext por redakti tekston por tiu teksto kampo aŭ la teksto vido
ni povas efektive uzi setText,
kaj poste ni jam trovis la mesaĝon de la intenco,
do mi povas diri mesaĝon, kaj tio efektive starigis la mesaĝo.
>> Ĝi preni momenton por ĵeti, kaj poste ni povos vidi ĉu aŭ ne ĝi kraŝas,
sed ajnajn demandojn pri tiu procezo Dekstre, ke ia interago?
En multaj manieroj estas simpla.
La kialo mi iros tra iu relative simpla
estas, denove, ĉar vi ricevas por vidi la interago inter la aranĝo,
la fontkodon, kiom vi referenco aĵoj
kaj eble akiri iom ekspozicio al kiom Javo laboras tie.
Se mi efektive tajpi ion en ĉi tie, kiel ohai, kaj poste mi klakas la butonon,
ĝi ĵetas novan aktivecon, kaj tiu teksto vidpunkto diras ohai.
Tio estas tre simpla, sed espereble post kiam Ekzemplo
vi speco de vidi kiel tiu interago funkcias, kaj nun ke salato de dosieroj
sur la maldekstra flanko de cxiuj tiuj projekto dosierujoj, espereble vi scias kie serĉi nun.
Ĉi tiu estas via fontkodo areo.
>> Aranĝo estas vere la sola afero ke vi agos kun ĝis vi inkluzivi bildojn
kaj la drawables aŭ kion ajn, kaj la valorojn, kiuj inkludas kordoj,
kiel ni menciis, kaj poste stiloj estas iu kiu estas speco de kiel CSS.
Adreso ĝin kiam vi volas, sed ĝis vi sentos komforta kun aldonante ekstrajn instinkton
por via kandidatiĝo ne necesas zorgi pri ĝi tro multe.
Nur por enpaki supren unu alia afero vi estos definitive volas inkludi-
supozante ke vi volas integri malvarmeta karakterizaĵoj kaj savi vin kaj iomete kodigo-
Estus por inkludi 3a partio bibliotekoj.
Jen la iom Android ulo kun la Ŝerloko Holmso ĉapelon.
Tiu estas ago trinkejo Sherlock biblioteko,
kiu esence signifas, ke ago trinkejo vi vidis antaŭe,
kiu nun estas normo en Ice Cream Sandwich kaj Jelly Fabo,
se vi volas alporti tian sperton de uzanto al uzantoj en pli malnovaj versioj
kaj savi vin de zorgi pri kiel la uzanto tuj navigi
en malnovaj versioj, kiam tiu afero ne estas tie vi povas inkludi tiun bibliotekon
kaj tiam vi nur devas referenco-anstataŭ la defaŭlta Android
bibliotekojn por la ago trinkejo, vi referenci tiun ĉi apogo biblioteko.
>> Aĵoj kiel Scoreloop, estas granda se vi iras por inkludi ludo.
Ĝi permesas aldoni ĉefo tabuloj kaj atingoj al ludoj.
AdMob estas maniero de meti anoncojn en viajn aplikoj
en kazo vi volas fari iom da mono for de ĝi.
Kompreneble, ekzistas Facebook kaj Twitter por integri tie
se vi volas dividi tion facile, kaj tiel plu.
Dropbox, same, kaj Google Analytics estas ke abako rigardante unu tie.
Tio estos tre grava se vi efektive volas vidi kiu estas interagante
kun via app aŭ kiu estas, kiel ili interagas, kaj tiel plu.
Google, implicite, diras al vi multe da statistiko pri kiuj instalis vian app
kaj kion telefonoj ili havas, kion mastruma sistemo versioj ili havas.
Sed se vi volas vidi kiuj uzas ĝin ĉiutage, kaj kiel ili uzas ĝin
tiam vi volas inkludi ian sekvado sistemo tiel.
>> Kiam vi pretas distribui vian app
Mi ne bezonas iri en tiun en tro multa profundo.
Klaku la ligilon ĉi tie, Google Play.
Ĝi kutimis esti la Android merkato.
Ili renomaj ĉion per Google Play,
tial nun vi prezentas al tio.
Ĝi estas tre simpla.
Vi devas inkluzivi priskribon, iuj ekrankopioj.
Kiel mi diris, ne estas aprobo procezon kiel IOS.
Kaj kien iri de ĉi tie?
Mi montris al vi vere simpla ekzemplo.
Espereble se ŝajnas terure simpla
tiam tio estas probable bona signo.
Se vi tute sentis iom konfuza aŭ necerta pri precize kion mi tajpas
tio estas same bone, sed de tie iri al Google Skoltinoj.
Tiu estas granda loko por komenci.
Ĝi parolos vin tra kion ili atendas en terminoj de la apliko dezajno,
kiel la uzantoj kutime interagas kun ĝi.
Ĝi estas multe pli libera formo ol IOS, mi dirus,
kiu similas tablon viditaj-Mi ne scias, tio estas ilia pano kaj butero.
Ĉio estas tabulo view glitante supren kaj malsupren.
Kun Android ili definitive instigi homojn rigardi ĝin de
tutan faskon da malsamaj perspektivoj.
>> Kiam vi inkludas la programaron kit de disvolviĝo en ĉi ADT
implicite vi havas tutan faskon de specimeno projektojn en Android.
Ĝuste tie, Android, Android Specimeno Project.
Se mi klakas sur tiu, tiam mi povas elekti version por kiu el la specimeno projektoj apliki.
Ekzistas tuta aro da malsamaj aferoj ĉi tie.
Ĝi dividu kun ago trinkejo kongruo,
acelerómetro ludo, apogilo kaj restarigi, Bluetooth, gesto konstruisto.
JetBoy estas specimeno ludo doni al vi, kiel estas LunarLander.
Ekzistas tuta amaso de specimeno aplikoj tie,
kaj ili ĉiuj direktitaj al diversaj aspektoj de Android API,
kaj la ideo estas, ke kiel vi faras via kandidatiĝo
vi ne bezonas lerni ĉion pri Android fari Android app.
Vi nur devas lerni pri la partoj kiujn vi fakte tuj uzos.
Rigardu tiujn specimeno bibliotekoj.
Sentu vin libera kopii kaj almeti la kodo kaj rekandidatiĝi ĝin.
Ĝi estas granda afero por rigardi pli malfacila kodo
kaj provi kompreni ĝin, kio estas kompreneble kial en CS50
ni ofte donas al vi grandajn kvantojn de fontkodo.
Rigardu kelkaj el tiuj se vi tuj uzos similajn bibliotekojn
kaj tiam apliki ĝin al viaj propraj kodo.
Kaj kompreneble, estas lernilojn.
Serĉu lernilojn.
Mi trovis multe da bonaj linio kiu povas alporti vin por akceli
kun kio fragmentoj vere estas kaj kiel vi povas uzi ilin.
>> Kelkaj el tiuj novaj dezajno aĵojn, kiel fragmentoj,
vi vere ne devas esti maltrankviligita se vi faras
sufiĉe granda en la medio projekto.
Ili estas aĵoj kiuj Google provas fazo in
Stackoverflow estas kompreneble via amiko.
Espereble mi vendis vin iom sur Android,
rimarki ĝi estas multe pli facila por alproksimigi en terminoj de la ĵus kodigo lingvo.
Java estas mi dirus pli facile kompreni ol Objective-C.
Android kreskas Mi kredas multe pli ol IOS.
Mi volas diri, la datumoj estas tie, aparte de tio, kion mi pensas.
Ĝi tuj estos ĉirkaŭ dum momento,
kaj ili estas kelkajn jarojn malantaŭe en terminoj de iliaj dezajno cikloj,
tial estas speco de komprenebla ke ili estas ankoraŭ laborante tra iu el tiuj
konsekvenca demandoj, kiel tiu ago trinkejo estas nova afero por ili ankoraŭ,
speco de krei similan sperton de uzanto tra ĉiuj iliaj aplikoj.
Mi esperas vi povas iri antaŭen nun kaj malfermu Eklipso
kaj fari viajn proprajn Android apps.
>> Ĉu iu havas demandojn antaŭ ol ni enpaki supren pri io?
Mi povas diri al vi la respondo estas 42.
Nu, feliĉa kodigo ĉiuj, kaj bonan sorton.
[CS50.TV]