[Powered by Google Translate] [Seminář] [Aplikace pro Android (Nyní s želé!)]
[Jordánsko Jozwiak] [Harvard University]
[To je CS50.] [CS50.TV]
>> Ahoj všichni, vítejte na Android Apps (Nyní s želé!) Seminář.
Jmenuje se teď s želé, samozřejmě, protože
Nejnovější verze operačního systému se nazývá Jelly Bean.
Když jsem mluvil o Androidu minulý rok a bylo to v podstatě stejný seminář
Byl jsem prezentaci návrhové vzory a stylistické možnosti pro perníku,
i když Ice Cream Sandwich přišel v té době,
a to je něco, co budeme mluvit o tom, do budoucna trochu.
Android samozřejmě má nějaké problémy s fragmentací,
takže poslední Google operační systém je obvykle
nemíníme se běžné mezi uživateli potenciálně až na jeden rok, bohužel.
>> Ale bez ohledu na to, že budeme mluvit o mnoho důvodů, proč
Android je mnohem lepší než iOS.
Dobře, budeme mluvit o Androidu oproti iOS,
některé konstrukční paradigmata, jak se vám budou zřízeny v jediném snímku,
a velký rozdíl mezi tímto a posledním roce se chci jen
zoom přes některé koncepční věci pracují s
operační systém a pak jít do opravdu základní příklad.
Ve skutečnosti je jen příklad, který popisuje Google pro budování své první aplikaci,
a půjdeme přes to spolu a jen popsat.
>> Vím, že mnozí z vás mají jen kódované v C, takže Java již bude
jiný pohled, a tím budete mít vaše nohy mokré
a cítit trochu pohodlnější s ním nadějně.
Rychlé shrnutí, Android vs iOS.
V Android tam je to jednorázový vývojář poplatek $ 25,
nic z toho 100 dolarů ročně věc.
Neexistují žádná omezení, což znamená, že pokud chci podat aplikace,
Jen jsem předložila, a není schvalovací proces, jako je tomu u iOS.
Můžete si vytvořit s pomocí Eclipse Java,
který je multiplatformní, takže nezáleží na tom, jestli máte Mac,
Windows, Linux nebo nějaký stroj.
Samozřejmě, že s iOS budete muset použít XCode na Mac,
a Android je používán mnoho dalších lidí,
takže pokud chcete, aby vaše aplikace mít nějaký viditelnosti nebo třeba
vydělat trochu peněz z reklamy
jste pravděpodobně spíše těžit z Android.
>> A ještě jedna věc, která vždycky ví o Androidu
je extrémní množství úprav, zatímco iOS je velmi pevně ve svých způsobech
aby mohli udržovat bezpečnost a kontrolu nad každou malou aspektu
konstrukce v rámci svého operačního systému a jednotlivými aplikacemi.
Android je velmi volné formě, a je tu mnoho dalších možností.
Dobře, některé konstrukční vzory.
Všimněte si, stejně jako iOS má tablet a iPhone a iPod Doteky
mají podporovat, řekněme, jako tucet zařízení, pokud je chcete podpořit
historické věci stejně.
S operačním systémem Android máte podporovat stovky zařízení,
tak tam jsou některé věci, které Google se snaží realizovat
aby si uživatel zažít trochu více konzistentní,
ale budeme také hovořit o tom, jak to znamená, že existují problémy fragmentace
že neustále musíte být vědomi podporovat.
Fragmentace znamená, že existuje mnoho různých operačních systémů,
mnoho různých telefonů s odlišným hardware s operačním systémem Android všechny najednou,
takže tento graf zde sahá po dobu asi 6 měsíců.
Jo, 6 měsíců, a můžete vidět, jak nejtemnější kapelu
na dně je Jelly Bean, který vyšel v létě,
a můžete vidět právě teď asi tak 2% z telefonů mít.
>> Ice Cream Sandwich vyšel před více než rokem,
a čtvrtina telefonů mít.
Existuje ještě spousta telefonů, které používají verzi operačního systému od lety.
Jedna věc, že ​​Google se snaží udělat, aby se uživatelské zkušenosti
mnohem více konzistentní aplikace začíná s Honeycomb,
které je tablet verze, pak se Ice Cream Sandwich a Jelly Bean,
oni opravdu snaží zdůraznit použití tohoto panelu akcí
což je to, co můžete vidět v horní části zde
všechno tady, včetně této malé tlačítko Nastavení.
To je výběr designu.
Nyní, když vidíte tři tečky, znamená to, klikněte na toto,
a tam bude drop-down menu, které má nějaký druh nastavení.
Toto se zobrazí pouze proto, že jsem klikl na toto tlačítko.
To je něco, co se snažíte použít, aby se aplikace trochu více konzistentní
plošně, a tak uživatel má lepší smysl pro jednotné zkušenosti.
>> Dobře, takže v případě, že jste neudělali to už, nebo pokud jste sledoval doma
pak můžete takto nastavit prostředí pro psaní kódu.
To bude zahrnovat jít na webových stránkách zde.
Můžete Google, instalaci Android SDK
a sledovat některé popisy tam.
Oni ti všechno.
Mají instalaci SDK, download Eclipse Classic verze
i když, samozřejmě, my kódování v Javě.
Doporučují tohle, a pak tento nástroj ADT, Android Vývojové nástroje,
je plugin, který nainstalujete do Eclipse, který umožňuje
mají mnohem efektivnější zkušenosti s Androidem v rámci Eclipse.
To vám dá nějaké grafické uživatelské rozhraní
pro projektování názory, a to vám poskytne mnohem větší podporu
a schopnost zahájit s emulátorem a všechny takovéhle věci.
Aplikační framework.
>> Chci mluvit o tom, jak jsou strukturovány Projekty v rámci systému Android
a pak půjdeme do rychlého například, a doufejme, že
můžete klást otázky na jakémkoli místě a cítit se pohodlně do konce roku to.
Máme nějaké žargonu jako první.
Činnost jako na obrazovce uvidíte při spuštění app.
Celý zážitek je činnost sama o sobě,
takže si mohl myslet na to jako obrazovky nebo zobrazení,
ale je to vlastně zdrojový kód straně.
Stále volat skutečné rozhraní část toho pohledu.
Je to něco jako, jak v Pset 7 jsme měli regulátor a pak výhled.
Tato aktivita je více či méně regulátor,
a pohled je to, co děláme, pokud jde o XML
, který je spojen s touto činností.
Fragmenty jsou něco, co je realizován v Ice Cream Sandwich do budoucna.
Je to jen nápad s částí zobrazení nebo činnost
a rozdělit je do samostatných oblastí, takže můžeme
aby náš kód použitelný pro více těchto mnoha různých zařízení
že musíme podpořit, a je to jen způsob, jak se snaží
také vytknout více kódu.
Služby jsou na pozadí věci jako přehrávání hudby nebo navigačních směry potenciálně.
Poskytovatelé obsahu, jedná se o API v rámci operačního systému
které vám umožní přístup k sdílených dat, jako jsou kontaktní údaje,
a záměr je něco, co budeme používat, když chcete spustit
nová aktivita z naší aktuální činnosti.
>> Dobrý den, Android, to bude projekt, který budeme mluvit.
Budu vlastně dělat to pro vás, a pak budeme dělat něco, kde klikneme na tlačítko
s nějakým textem a zahájit novou činnost.
Velmi jednoduché, ale já chci jít přes
co se jít do projektu, jako je tento.
Když uděláte nový projekt uvidíte v Eclipse
tam je to projekt s názvem Hello Android.
Pak jsou tu celá parta složek zde.
Ty jsi opravdu zabývají, jsou zdrojové složky,
zdroj složky, res, a do jisté míry libs složky pro knihovny.
A právě proto, že jsme na stejné straně s tím
pokud byste chtěli vytvořit nový projekt,
můžete to udělat tady, takže když chci říkat HelloAndroid,
a pak to automaticky dělá spoustu informací pro nás.
Název balíčku by měl být jedinečný identifikátor
které by normálně byly spojeny s webové stránky, pokud jste měl.
>> Například, budu volat tuto net.cs50.helloandroid.
A už jsem udělal tento projekt jednou.
Dobře, omlouvám se. Říkejme tomu HelloCS50.
A pak to bude ptát, jaké věci jako ikony chceme dělat.
To je všechno kvůli Android Developer Tools rozhraní,
plugin, který jsme přidali Eclipse, takže si můžeme vybrat věci, jako je
co ikona chceme, a že by šel do té hloubky, pokud chceme.
Ale na konci, jen aby projekt,
a vše, co se objeví tady.
Jak jsem ukázal na druhé obrazovce,
máme zdrojovou složku, a budu mluvit o tom, co to všechno znamená, že brzy
ale můžete vidět, že to okamžitě nás zavede do HelloCS50 obrazovce.
Tam jsou některé tlačítka přes tu pro přidávání a textová pole rozložení.
Je to něco jako XCode, ale bohužel ne tak zefektivnit.
Ale klipy bude váš přítel a ADT zejména pro dělání toto.
>> Dobře, zdrojové složky, kde je
Java soubory se konají, a to je vlastně spuštění programu.
Je to v podstatě jako regulátory.
Zdrojů nebo do složky res je místo, kde budeme držet rozvržení obrazovky,
obrázky, zvuky, text, animace a vše ostatní, libs, samozřejmě, knihovny.
A Manifest, je to tak, že se systém Android ví
jak komunikovat s vaší aplikace.
Vypovídá to o oprávněních a jaké činnosti bude skutečně provozovat.
Je to všechno základní informace, které je nutné ke spuštění aplikace.
Zdrojová složka je-li jsme se rozšířit to, jak můžete vidět právě zde.
A příklad, který by kód vypadat, to je základní kód.
Jak jsme říkali, MainActivity.
Ve výchozím nastavení se dostaneme onCreate, což je funkce, která je volána, když tuto činnost zatížení,
takže chcete volat onCreate (savedInstanceState).
To obnoví všechny kousky informací
v případě, že byl pozastaven app.
>> Existuje celá činnost životního cyklu schéma, které si můžete prohlédnout na
když se dostanete trochu více do hloubky v tom,
ale nejdůležitější řádek kódu je tato funkce setContentView
který načte soubor prostředků pro rozvržení.
Tak co onCreate zde je v podstatě dělá, je, že to říká
když jsem se vytvořit tuto činnost chci nahrát toto rozložení.
A budeme mluvit o tom, že rozložení je v druhém.
Pokud bychom měli zahájit, že tady to vypadá přesně jako to,
a ve výchozím nastavení, protože jsme Eclipse dělá to a ADT dělá to pro nás
to je vše, často používaný kód, který je vytvořen pro nás,
a můžeme jít dál a změnit věci tak, jak se nám líbí.
Zdroj složka, jak jsem řekl, to je místo, kde máme všechny layouty,
obrazovkami, pokud jde o jakýkoli druh snímků-
se jim říká obrazovkami A pak zvukové soubory, menu.
Je to způsob, jak celou partou XML v pěkném tříděného módy.
Jak můžete vidět, jsou zde. Hdpi, ldpi, MDPI a xhdpi složky pro obrazovkami.
Jedná se o různé hustoty obrazovky, takže s vysokou hustotou pixelů na palec,
nízká hustota, střední hustota, extra vysokou hustotou.
>> To je opět, takže můžeme podporovat všechny tyto různé zařízení,
a ideálně, budete mít různé obrazy pro každé jiné rozlišení.
Rozložení tam, kde jsme je všechny různé rozložení, které budou použity v různých činnostech.
Rovněž by mohly zahrnovat rozložení pro fragmenty,
což znamená, že v podstatě dílčí aktivity.
Pokud chcete udělat něco zajímavého, jako když otočíte telefon
Chcete to mít jiné rozložení, které můžete udělat layout-krajinu jako jiné složky,
a automaticky Android má spoustu těchto pravidel v rámci zdrojů složky,
tak, že bude vědět, že se na různých složek na základě aktuálního nastavení v telefonu,
jaký druh hardwaru, který používáte.
Nejinak tomu hodnotách v11 zde a hodnoty-V14
a výchozí hodnoty složky je to pro-
dobře, hodnoty od sebe, bude to výchozí hodnoty napříč všemi verzemi operačního systému.
Na druhé straně, V11 a V14 odpovídají Honeycomb
a Ice Cream Sandwich, resp.
Opět se jedná o způsoby, v těchto složkách jsou různé řetězce
a stylů, takže si můžete přizpůsobit vzhled vaší aplikace
nebo potenciálně i jeho funkčnost, i když to bude pravděpodobně špatný nápad,
na základě verze operačního systému.
>> Mluvila jsem o tom všem tady.
Opět, tažný, syrový, dispozice, hodnoty.
Výchozí nastavení, když jdeme do Hello Android nebo Hello CS50 právě teď
to bude vypadat přesně takhle.
Bude pozdravit svět.
Jak můžete vidět tady s textem Android
Text pro toto textové zobrazení, což je v podstatě jen označení,
je to, co bychom nazvali jej iOS.
Má tento legrační zápis @ string / hello_world.
To je tak můžeme-se snažíme získat všechny řetězce,
všechny natvrdo kódovaných řetězců v Android do samostatné složky,
který se stane být v values.strings.
Podíváme-li se zde, můžeme vidět, že máme pevně řetězec uložený zde
pro Hello World, a je to jen hello world, a to je druh
obyčejný design rozhodnutí v mnoha platformách, které chcete,
struny jsou takové věci, které chceme, aby mohly být schopni změnit.
Nechceme kontrolovat F v našem souboru zdrojového kódu v našem XML.
Chceme být schopni změnit kdykoliv dostaneme šanci.
>> Tento soubor XML, strings.xml, je způsob získávání
hard-kódované řetězce, které by jinak byly v našich rozvržení zdrojů
nebo v našem zdrojovém kódu.
Manifest je místo, kde jsme se udržet tuto základní informace o aplikaci.
To zahrnuje název balíčku. To musí být jedinečný identifikátor.
Na rozdíl od App Store pro iOS jmény aplikací
nemusí být jedinečný, a může ve skutečnosti změnit název aplikace
po odeslání, takže když jsem se začít s Angry Birds,
a pak udělám aktualizaci, a já nechci, aby novou verzi
Myslím, že bych mohl nazvat Angry Birds 2, zatímco já jsem na stejném vývojovém cyklu.
To by jen ukázat jako aktualizace.
Jediná věc, která musí být jedinečné, je to název balíčku,
což není mnoho lidí uvidí.
No, já jenom, jestli jste se dívali na zdrojovém kódu, nebo pokud tam je nějaký druh chyby.
Komponenty zahrnují činnosti, takže musíme prohlásit,
jakýkoli druh činnosti používáme.
Jedná se o povolení věci.
>> Protože Android nemá tento přísný proces aplikace
pro předkládání aplikace místo toho jen, že to všechno vychází mimo oprávnění
a prohlašuje věci v manifestu.
Verze SDK je také důležité.
Můžeme nastavit použití jako minimální verze SDK něco.
Je zřejmé, že chcete vytvořit kód
a design pro novější operační systémy.
Možná, že není nejnovější, možná ne Jelly Bean.
Možná, že chcete navrhnout především pro Ice Cream Sandwich,
ačkoli oni jsou skoro stejné, pokud jde o rozhodnutí o návrhu
a skutečné knihovny a API.
Ale spíše než mít lidi
z původní verzi Android-jako cesta zpátky, když Donut-
kteří ještě stalo, že se pomocí které se snaží stahovat aplikace a pak vyslovte
nefunguje na mém telefonu můžete nastavit minimální verze
a mají být perník nebo Ice Cream Sandwich
nebo co cítíte na předkládání.
A to je příklad manifestu. Můžeme se podívat na skutečné jeden v trochu.
>> Dobře, budeme prostě jít dopředu s demoverzi.
Toto je demo, pokud Google Android postavit svůj první aplikaci nebo něco takového.
Půjdeme přes všechno, co se děje tam,
a omlouvám, jen s odkazem, který zde zná Java jakémkoliv rozsahu?
Dobře, tak Java je nové kódování jazyka pro většinu lidí, kteří přicházejí z CS50.
Stručně řečeno, jít znovu to, co říká tady,
co chceme udělat, je spíše než přizpůsobit tuto aplikaci Hello World
že vše, co dělá, je, že na trh a říká, že hello world
a říká ahoj CS50 nahoře, protože to je činnost, název
budeme se snažit, aby se textové pole a tlačítko
tak, že když jsme se stisknutím tohoto tlačítka bude trvat text
z textového pole a zahájit novou aktivitu, a to bude říkat
bez ohledu na tento text uvedený v činnosti, a to je poměrně jednoduchý.
Není to velmi zajímavé. Ty by nechtěl, aby se uvolnilo aplikace, jako je tento.
Ale ukazuje některé důležité věci návrhu.
>> Budeme muset spolupracovat s manifestu, s uspořádáním souborů,
se zdrojovým kódem, a můžete vidět, jak spustit jednu činnost od druhého.
Začneme s rozložením pro naše první činnosti,
o němž vím, že je to taková malá,
ale jak můžete vidět právě teď, vše, co je je, že má své logo, které jsme vytvořili,
Název aktivity, a říká, že hello world v centru.
Místo toho jsem jako první jít, aby se to na lineární uspořádání,
relativní rozložení a to všechno jsou věci,
byste se mohli podívat a stojí jít přes na nějakém místě, pokud jde o rozvržení.
Je to hodně podobný HTML.
Řekli jsme, že to opravdu není dobré znát, pokud jde o programové smyslu,
ale tam je tak mnoho různých rozvržení můžete ovládat,
a je to jako CSS, pokud jde o styly.
>> Je tu hodně děje jen z hlediska estetiky zde,
a jo, je to stojí za to učení, ale je to jedna z těch věcí, měli byste vyhledat
jak jdete a máte pocit, že musíte něco nového.
Mohu využít některé z ADT nástrojů zde alespoň začít s.
Udělám textové pole, a učiním tlačítko.
Dejte je hned vedle sebe.
Už velikost odpovídajícím způsobem.
Omlouváme se, ale opět vrací na rozdíl mezi lineární uspořádání a relativní uspořádání,
lineární uspořádání dává trochu více funkcí
pokud jde o plnění místo a ujistěte se,
Umístíme věci vodorovně nebo svisle.
Velký rozdíl mezi lineární uspořádání a rozložení relativní
je relativní rozložení pozic vše ve srovnání s jinými názory,
a dobrá věc na tom je, že to trvá kratší dobu k tomu
protože operační systém se dívá na všechny kódu a říká, že to jde
vzhledem k tomu zde, zde.
To znamená, že je méně než měření spoustu vnořených lineární uspořádání,
které jsem musel udělat, kdybych chtěl věci jít vertikálně zde.
>> Už jsem některé věci jít vodorovně, takže bych potřeboval jiný lineární uspořádání
hnízdit svisle, ale když jsem dělal relativní rozložení bych mohl říct,
si to na levé straně, to napravo a tyto věci níže.
Ale protože chci, aby vyplnit teď budu používat lineární uspořádání,
a můžete vidět, že už má spoustu těchto věcí pro nás.
Všechny pohledy musí mít vlastnost šířky a výšky,
a to se stane, že hmotnost 1, a to má váhu 1
tak, aby vyplnil celý prostor.
Ale šířka a výška jsou nejdůležitější.
Toto pole ID tady není důležité ve skutečném rozložení
pokud budeme pomocí relativní rozložení a mluvy, můžeme odkazovat
jeden pohled pozici ve vztahu k jinému.
Pokud bychom měli relativní uspořádání by se dalo říci toto postavení pod tento
nebo nad tímto ID, ale ID bude důležité
když jsme použili v našem kódu, protože se můžeme odkazovat
Tyto jednotlivé pohledy tímto způsobem.
>> A pak můžete vidět requestFocus tag, což je něco, co jste pravděpodobně viděli v Pset 7.
Tam byl automatické zaostřování tag nebo něco v tomto směru za jednoho z polí.
A ještě jedna věc, samozřejmě, můžeme to udělat stejně jako v HTML,
a všimněte si, jedna z krásných věcí, o ADT je ​​to, že autocompletes zde.
Možná ne tak pěkně, jak tomu bylo v XCode, ale to přesto,
a tak bychom mohli říci, radu a dát mu nějaký řetězec
Líbí napsat zprávu,
a když jsem dát chvilku, také všimnout, že jsem si trochu chyba zde
říká, že bychom měli použít řetězec prostředku za to,
takže když jsem nechat ji dělat některé tvrdé práce pro mě
Umím zvolit tento řetězec, proveďte refractor Android a extrakt Android řetězec.
Můžu dát toto jméno, napsat zprávu,
a co to teď je nahrazen že pevně řetězec
s odkazem na řetězec v řetězci v souboru XML.,
což znamená, že teď je to tady.
>> A vím, že vypadá trochu triviální a stejně jako práce navíc v tomto bodě,
ale když máte spoustu věcí, spoustu řetězců,
to je opravdu důležité, a to zejména pro lokalizaci
protože jak jsem již zmínil, Android je velmi celosvětově používá operační systém
že můžete jednoduše udělat hodnot-en nebo hodnoty-SP
nebo něco pro anglicky nebo španělsky nebo jiné jazyky.
A pak jste pravděpodobně měli tuto zkušenost ještě
protože jsme neměli dělat hodně JavaScript ve smyslu programování pro web,
ale můžeme i to pole s názvem onClick pro tlačítka,
a toto je způsob odkazování v našem uspořádání
že chceme určitou funkci, která se nazývá v našem zdrojovém kódu.
Budu volat tento SendMessage,
a aby tuto práci to znamená, že v hlavní činnosti zde
Budu muset vytvořit funkci, která je veřejnosti
tak, aby mohl být přístupné uspořádání.
Je to neplatné, protože prostě nechtějí, že se vrátí nic.
Nazveme to sendMessage, a to trvá nějaký názor
který je jakýmsi kontextu můžeme ukotvit tuto metodu
se daného pohledu, když jsme spuštěním.
>> A já nevím, jestli jste si všimli, tak by jste si toho nevšimli,
ale v tuto chvíli tady
Tento pohled je typ, který nebyl dosud,
a samozřejmě, že všichni víte, od CS50 o nezahrnuje typy.
Krásná věc na tom jako Eclipse IDE je, že
Pokud zapomenete-li nějaký typ bude zdůraznit s malou červenou klikatou
a pak vám možnost importovat názor.
Rychlý způsob, jak toho dosáhnout, je řízen posun O, a to bude importovat
všechny soubory, které potřebuje k.
Nyní, když máme tuto funkci SendMessage,
který pošle zprávu z MainActivity do nové činnosti,
budeme muset použít úmysl zahájit novou činnost z tohoto jednoho,
takže budeme pravděpodobně chtít vytvořit globální konstanty nebo také zvláště veřejné konstanty
že nám pomůže vědět, jak budeme odkazovat na řetězec
protože když jsme se vytvořit úmysl, že nejsme jen volat novou aktivitu,
ale můžeme také dát balík informací.
Svazek je vlastně termín, který používá Android,
a je to způsob, jak říct, aby to další údaje, které nemohou být z velmi sofistikovaný datový typ,
ale rozhodně můžeme zahrnout pravdivostní nebo řetězce nebo INT.
Taková věc.
>> Neváhejte se zeptat na některý z těchto kvalifikačních zde,
veřejnosti, v konečném znění, statické.
Veřejnost je důležitá.
To znamená, že můžeme přistupovat k této proměnné z jiných souborů zdrojového kódu
například když se vytvoří nové aktivity.
Můžeme odkazovat na řetězec v rámci tohoto souboru.
Pokud je to soukromý, to znamená, že je omezena na tomto jednotlivých souborů zde.
Ale my jsme mu říkat něco jako další zprávy.
Nyní jsme udělali tuto funkci, a pokud klepnete na tlačítko, bude tato funkce nazývá.
Ale my jsme nic neudělali, samozřejmě, s funkcí.
To, co chceme udělat, je vytvořit novou aktivitu,
činnost, která bude skutečně zahájena.
V Eclipse můžeme říci nový, Android činnost, prázdné činnost.
Můžeme dát mu jméno.
Říkejme tomu náš výsledek činnosti.
A pak hierarchické rodič pole je možnost specifikovat
jak jsou činnosti související s sebou.
Protože tohle bude spuštěna z jiné činnosti
bychom měli stanovit, že se má nadřazený hlavní činnost.
>> A mohl jsem kliknul na další pole tam, který by nám řekl,
Některé volitelné pole, které bylo také, včetně,
ale pěkná věc, o ADT, opět je, že když jsem přejděte sem
V manifestu si uvědomit, že to všechno byla skutečně implicitně zahrnuta
když jsme původně vytvořen projekt,
a teď, protože jsme to vytvořit novou aktivitu, nikoli jen
přidat vlastní soubor třídy, protože jsme prošli jejich GUI pro dělání toto
to už zní všechno na manifestu pro nás,
což prostě znamená, že se operační systém nebude stěžovat
když se snažíme zahájit tuto činnost.
A také, samozřejmě, dal označení, což se projevuje i v řetězcích.
To dělá spoustu věcí na zadním konci pro nás.
Každopádně, teď máme tuto činnost i výsledek,
skutečný zdrojový kód soubor ve zdrojové složce,
a můžete vidět, se krátce dotknout this-
protože jsme si řekli, že o této hierarchické rodiče
to dalo toto pole android.r.ide.home v tomto onOption vybrané věci.
>> Co to v podstatě říká, je tam tlačítko menu nyní
že v levém horním rohu obrazovky
když jsem se vrátit do aplikace PowerPoint, kde jsme se poprvé mluvili o panelu akcí
z důvodu hierarchického rodiče teď je tu trochu šipka sem
a to je klikací, takže bychom měli být schopni, poté, co jsme vlastně spustit tuto aplikaci,
vrátit se, a to je způsob, jak ušetřit nám trochu kódu tam.
Právě v rámci této No, zdá se, že si stěžují, že na chvíli.
Pojďme komentovat, že ven.
Nyní, aby se skutečně interakci s těmito činnostmi 2,
musíme vytvořit záměr, který obsahuje všechny tyto údaje.
V SendMessage teď budu pro plavbu přes některé kousky kódu
a vysvětlit, že, jak jsem jít.
Záměr, jak jsem řekl, je způsob, jak zahájit činnost jeden od druhého.
Záměr je ten typ. Budeme vytvářet variabilní myIntent.
>> A to je vlastně objekt, což je důvod, proč máme zavolat nový.
Je běžné, že Java použití tam, což může trvat trochu zvykat.
To znamená, že používáte činnost nebo třídní MainActivity,
a záměr tímto způsobem se činnost, že to bude od
a aktivita bude to, které nazýváme ResultActivity,
a to je vlastní třída.
Zahrnout to.
A pak, když jsem se zmínil dříve, dali jsme, že ID do textového pole pro úpravy
a text pohled, tak aby programově zachytit
text, který existuje v EDITTEXT
budeme používat tuto funkci s názvem findViewByID,
který je podobný něčemu, co budete používat, když se snaží dostat z polí DOM.
Možná, že David mluví o tom v přednášce.
Ale je to jen způsob, jak se těch-to je důvod, proč jsme se označit tyto věci s těchto oblastech.
Id.editText1.
Už autocompleting tam na mě.
>> A pak budeme patří-to EDITTEXT nyní, že máme pole
v rámci našeho programu, to vše findViewByID to byl v podstatě
si mohl myslet na to, jak nám dát odkaz na tento EDITTEXT.
Nyní chceme, aby se řetězec nebo zprávu
v tomto EDITTEXT, které můžeme udělat pomocí-
si mohl myslet EDITTEXT jako struct-
říkáme, že objekt v Javě, s celou bandou různých metod
nebo pole a atributy k ní připojeny.
Když řeknu, že EDITTEXT. to mi dává možnost přístupu
metoda jako gettext, který bude získat aktuální znění
v tomto EDITTEXT a pak převést že výslovně
na řetězec, a my jsme uložili zprávu.
Teď jsme vlastně chcete udělat něco s tím záměrem, který jsme vytvořili jen před chvílí.
Dám navíc, jak se tomu říká v úmyslu,
která opět, stejně jako jsem řekl dříve, je to způsob, jak vytvořit svazek
s celou partou dat.
Extra zpráva je naše značka, takže víme, co to schovával pod,
a pak jsem včetně zprávy.
>> A pak můžeme skutečně začít aktivitu tím, že mu parametru myIntent.
A to bude skutečně zahájí činnost, tak teď, protože jsem se upgradovat na Windows 8
tam by mohlo být nějaké chyby, které se objevují krátce, ale snažte se je ignorovat.
A to je Android emulátor.
Doufejme, že kód bude skutečně vyskočí za chvíli.
Opět platí, že ignorovat všechny ty maličkosti.
Ale emulátor Android můžete napodobit jakoukoli verzi operačního systému
od nejčasnějších ty, Donut, Gingerbread.
To je Jelly Bean 4.1.
Ale jak můžete vidět právě teď, je to něco, co jsme udělali.
To má MainActivity, EDITTEXT, tlačítko.
Mohu něco psát zde, ale co jsme chybí na tomto místě?
Udělali jsme pole v MainActivity, že se to poslat zprávu
na jiné činnosti, ale v tuto chvíli
neudělali jsme nic jiné činnosti, takže to nebude něco dostane.
Pojďme dokončit tuto část dříve, než budeme pokračovat.
>> Tento výsledek činnosti, co budete muset udělat, je, že budete muset udělat, je, že budete muset-
můžeme také odkazovat na záměr v rámci této aktivity,
takže musíme zachytit záměr, který je opravdu jednoduché.
Je to funkce zařazena do třídy činnosti,
takže můžeme jen říct "Získat zprávu od záměru."
"Záměr myIntent = getIntent."
A to nám dá-myIntent nyní je objekt,
což je odkaz na záměru, které nás vedly k této činnosti.
MainActivity volá a dává další informace vést činnost.
Výsledek činnost se zaměřuje na záměru, který vedl to tady,
a můžeme přistupovat k, který jsme vytvořili v druhém,
getStringExtra, a to autocomplete pro mě.
A pak si vzpomeňte, jak jsme označili, že bit dat
bylo tím, že mu toto pole tady, to public String,
což je značka pro řetězec jsme vlastně v ceně.
>> Když řeknu, že MainActivity.Extra_Message
je to tady, a to je něco jako název parametru
když jsme míjeli kód z regulátoru do šablony,
když bych řekl, že titul šipky něco.
Je to stejný druh myšlenky zde.
Nyní si pamatuju.
Také jsme si to auto vytvořené nebo automatické generován kód
pro výsledek činnosti, který obsahuje text zobrazení uprostřed
, který říká, hello world.
Mohli bychom mohly dělat, že větší.
Pojďme to udělat jako první.
Mohli bychom dělat to hustota 40 nezávislých pixelů.
Pojďme se podívat, to je výborný obrovský. To bude v pořádku.
A pak, aby se odkazovat na tento samostatný textový pohled do našeho kódu
budeme muset dát identifikátor,
a aby k tomu, že říkáme @ + id, což znamená, že jí přiřadit ID.
Pokud se právě řekl @ id by předpokládat jsme odkazování na ID, který již existuje,
a nazvěme to naše resultTextView.
A zjistíte, že v XML není potřeba středníky nebo tak něco.
Vše, co je v těchto značek.
Je to velmi podobné HTML v mnoha smyslech.
>> To trvá trochu zvyknout, ale nakonec se budete cítit docela pohodlně s ním.
Pojďme aktualizovat text našeho názoru výsledek textu,
a jak jsme dělali, když jsme se dostat, že textové pole pro úpravy v našem jiné činnosti
v MainActivity zde budeme také podobně-
najdeme zobrazení podle ID.
A R, v případě, nezmínil jsem se o to dříve, je odkaz na naše zdroje složky,
a pak ID je odkaz na vše, co v adresáři zdrojů, všechny IDS,
a resultTextView.
A stejně jako dříve, resultTextView je objekt,
což znamená, že má všechny tyto vlastnosti, spojené s ním.
Když používáme gettext pro úpravy textu pro toto textové pole nebo textového zobrazení
můžeme skutečně využít SetText,
a pak už jsme našli zprávu od záměru,
takže mohu říci zprávu, a to bude skutečně nastavit zprávu.
>> Je to chvíli trvat, než zahájit, a pak vidíme, zda je či není zhroucení,
ale všechny otázky týkající se tohoto procesu přímo tam, takové interakce?
V mnoha ohledech je to jednoduché.
Důvod, proč jsem prochází něčím relativně jednoduché
je, znovu, protože dostanete se na interakci mezi rozložení,
zdrojového kódu, jak se věci referenční
a možná si trochu expozici, jak Java tam pracuje.
Pokud bych vlastně něco psát sem, jako Ohai, a pak jsem klepněte na tlačítko
se uvádí na trh novou aktivitu, a tento text pohled říká Ohai.
To je velmi jednoduché, ale doufejme, že po tomto příkladu
jste trochu vidět, jak tato interakce funguje, a teď, když nepořádek souborů
na levé straně všech těchto složek projektů, doufejme, že víte, kde hledat dnes.
Toto je váš zdrojový kód oblasti.
>> Layout je opravdu to jediné, co budete řešit, dokud jsou obrázky
a obrazovkami nebo cokoliv, a hodnoty, bude, že patří řetězce,
Jak jsme se zmínili, a pak stylů je něco, co to něco jako CSS.
Adresa, když chceš, ale dokud se nebudete cítit pohodlně s přidáním zvláštní vkus
pro vaši aplikaci není třeba se starat o to příliš mnoho.
Stačí zabalit jednu další věc, kterou budete určitě chtít zahrnout-
za předpokladu, že chcete integrovat skvělých funkcí a ušetřit nějaké extra kódování,
bude zahrnovat třetí strany knihovny.
Zde je malý kluk s Android Sherlocka Holmese klobouku.
To je akční bar Sherlock knihovna,
což v podstatě znamená, že akční bar jste viděli dříve,
který je nyní standardem v Ice Cream Sandwich a Jelly Bean,
Pokud chcete, aby tento druh uživatelského rozhraní pro uživatele na starší verze
a zachránit se před starostí o tom, jak se uživatel bude pohybovat
Na starších verzích, když ta věc není tam můžete zahrnout tuto knihovnu
a pak stačí odkaz, spíše než výchozí Android
knihovny pro akčním baru, abyste tento podporu knihovny.
>> Věci jako Scoreloop, je to skvělé, pokud budete zahrnovat hru.
To vám umožní přidat vůdce desek a úspěchy na hry.
Admob je způsob, jak dát reklamy do aplikací
v případě, že chcete, aby se trochu peněz z ní.
Samozřejmě, že je Facebook a Twitter pro integraci se
Chcete-li sdílet věci jednoduše, et cetera.
Dropbox, podobně, a Google Analytics je, že graf vypadající tam.
To bude velmi důležité, pokud skutečně chtějí vidět, kdo je interakce
s vaší aplikace, nebo kdo to je, jak se vzájemně ovlivňují, et cetera.
Google ve výchozím nastavení, vám řekne spoustu statistických údajů o tom, kdo má instalovali aplikaci
a jaké telefony mají, co verze operačních systémů, které mají.
Ale pokud chcete vidět, kdo ji používá na denní bázi, a jak používat
pak budete chtít zahrnout nějaký sledovací systém, jako je to.
>> Když jste připraveni k distribuci aplikace
Nepotřebuji jít do toho příliš mnoho hloubky.
Klikněte na odkaz zde, Google Play.
Býval Android Marketu.
Jsou přejmenované vše, co s Google Play,
Takže teď, že předloží.
Je to velmi jednoduché.
Musíte obsahovat popis, několik snímků obrazovky.
Jak jsem řekl, není schvalovací proces jako iOS.
A kam jít teď?
Ukázal jsem vám opravdu jednoduchý příklad.
Doufejme, že pokud se to zdá strašně jednoduché
pak je to asi dobré znamení.
Pokud se vůbec cítil trochu zmatený, nebo si nejste jisti, co přesně jsem psát
to je také v pořádku, ale odtud jděte na Google Guides.
Je to skvělé místo pro start.
Bude vás bavit, co očekávají z hlediska návrhu aplikace,
jak uživatelé obvykle s ní pracovat.
Je to mnohem volná forma než iOS, řekl bych,
které vypadá to, že zobrazení tabulky jsou-Nevím, je to jejich chleba a máslo.
Vše je zobrazení tabulky pohybu nahoru a dolů.
S operačním systémem Android, které jistě motivovat lidi, aby se na to podívat z
celá parta různých perspektiv.
>> Pokud je Software Development Kit v této ADT
Ve výchozím nastavení máte spoustu ukázkových projektů v Android.
Tady, Android, Android ukázkový projekt.
Když kliknu na to, pak si mohu vybrat verzi, pro kterou vzorku projektů požádat.
Je tu celá parta různých věcí zde.
Začíná s kompatibilitou panelu akcí
akcelerometr hra, zálohování a obnovení, Bluetooth, gesto stavitel.
JetBoy je ukázka hry, které vám, jak je LunarLander.
Existuje celá parta ukázkové aplikace zde
a všichni zaměřeny na různé aspekty API Androidu,
a myšlenka je, že, jak si aplikaci
nemusíte se učit vše o Androidu, aby android aplikace.
Stačí se jen seznámit s díly, které jste vlastně jít použít.
Podívejte se na těchto vzorových knihoven.
Neváhejte a zkopírovat a vložit kód, a znovu ji.
Je to skvělá věc, podívat se na složitější kód
a pokusit se pochopit, což je samozřejmě důvod, proč v CS50
často vám velké množství zdrojového kódu.
Podívejte se na některé z nich, pokud se chystáte používat podobné knihovny
a pak použít pro své vlastní kód.
A samozřejmě, tam jsou návody.
Hledat cvičení.
Našel jsem mnoho dobrých on-line, které může přinést až do rychlosti
s tím, co Fragmenty opravdu jsou a jak je můžete použít.
>> Některé z těchto nových konstrukčních věci, jako fragmenty,
Opravdu nemusíte se obávat, pokud děláte
docela velký v rozsahu projektu.
Jsou to věci, které Google se snaží postupně palců
StackOverflow je samozřejmě váš přítel.
Doufám, že ti prodal trochu na Android,
si uvědomil, že je to mnohem jednodušší přistupovat z hlediska jen kódování jazyka.
Java je řekl bych, že mnohem srozumitelnější než Objective-C.
Android je stále myslím, že mnohem víc než iOS.
Myslím, že data jsou tam taky, kromě toho, co si myslím.
To bude asi na chvíli,
a jsou několik let pozadu, pokud jde o jejich designu cyklů,
takže je to trochu pochopitelné, že stále pracujeme přes některé z nich
konzistence otázky, jako je tento panelu akcí je nová věc pro ně stále,
druh vytvoření podobné zkušenosti uživatelů napříč všemi aplikacemi,.
Doufejme, že můžete jít dopředu a nyní otevírají Eclipse
a vyrobit si vlastní Android aplikace.
>> Má někdo nějaké otázky, než se zabalit o něčem?
Mohu vám říci, že odpověď je 42.
No, šťastný kódování všem, a hodně štěstí.
[CS50.TV]