1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Seminář] [Aplikace pro Android (Nyní s želé!)] 2 00:00:02,610 --> 00:00:04,210 [Jordánsko Jozwiak] [Harvard University] 3 00:00:04,210 --> 00:00:06,780 [To je CS50.] [CS50.TV] 4 00:00:06,780 --> 00:00:11,600 >> Ahoj všichni, vítejte na Android Apps (Nyní s želé!) Seminář. 5 00:00:11,600 --> 00:00:14,530 Jmenuje se teď s želé, samozřejmě, protože 6 00:00:14,530 --> 00:00:17,310 Nejnovější verze operačního systému se nazývá Jelly Bean. 7 00:00:17,310 --> 00:00:22,950 Když jsem mluvil o Androidu minulý rok a bylo to v podstatě stejný seminář 8 00:00:22,950 --> 00:00:29,150 Byl jsem prezentaci návrhové vzory a stylistické možnosti pro perníku, 9 00:00:29,150 --> 00:00:31,250 i když Ice Cream Sandwich přišel v té době, 10 00:00:31,250 --> 00:00:33,680 a to je něco, co budeme mluvit o tom, do budoucna trochu. 11 00:00:33,680 --> 00:00:35,720 Android samozřejmě má nějaké problémy s fragmentací, 12 00:00:35,720 --> 00:00:40,240 takže poslední Google operační systém je obvykle 13 00:00:40,240 --> 00:00:44,710 nemíníme se běžné mezi uživateli potenciálně až na jeden rok, bohužel. 14 00:00:44,710 --> 00:00:49,960 >> Ale bez ohledu na to, že budeme mluvit o mnoho důvodů, proč 15 00:00:49,960 --> 00:00:53,000 Android je mnohem lepší než iOS. 16 00:00:53,000 --> 00:00:56,410 Dobře, budeme mluvit o Androidu oproti iOS, 17 00:00:56,410 --> 00:00:59,770 některé konstrukční paradigmata, jak se vám budou zřízeny v jediném snímku, 18 00:00:59,770 --> 00:01:03,410 a velký rozdíl mezi tímto a posledním roce se chci jen 19 00:01:03,410 --> 00:01:06,860 zoom přes některé koncepční věci pracují s 20 00:01:06,860 --> 00:01:09,950 operační systém a pak jít do opravdu základní příklad. 21 00:01:09,950 --> 00:01:13,730 Ve skutečnosti je jen příklad, který popisuje Google pro budování své první aplikaci, 22 00:01:13,730 --> 00:01:17,070 a půjdeme přes to spolu a jen popsat. 23 00:01:17,070 --> 00:01:22,100 >> Vím, že mnozí z vás mají jen kódované v C, takže Java již bude 24 00:01:22,100 --> 00:01:27,220 jiný pohled, a tím budete mít vaše nohy mokré 25 00:01:27,220 --> 00:01:31,540 a cítit trochu pohodlnější s ním nadějně. 26 00:01:31,540 --> 00:01:35,330 Rychlé shrnutí, Android vs iOS. 27 00:01:35,330 --> 00:01:39,200 V Android tam je to jednorázový vývojář poplatek $ 25, 28 00:01:39,200 --> 00:01:42,390 nic z toho 100 dolarů ročně věc. 29 00:01:42,390 --> 00:01:45,440 Neexistují žádná omezení, což znamená, že pokud chci podat aplikace, 30 00:01:45,440 --> 00:01:51,560 Jen jsem předložila, a není schvalovací proces, jako je tomu u iOS. 31 00:01:51,560 --> 00:01:53,890 Můžete si vytvořit s pomocí Eclipse Java, 32 00:01:53,890 --> 00:01:57,090 který je multiplatformní, takže nezáleží na tom, jestli máte Mac, 33 00:01:57,090 --> 00:01:59,600 Windows, Linux nebo nějaký stroj. 34 00:01:59,600 --> 00:02:03,730 Samozřejmě, že s iOS budete muset použít XCode na Mac, 35 00:02:03,730 --> 00:02:06,930 a Android je používán mnoho dalších lidí, 36 00:02:06,930 --> 00:02:11,580 takže pokud chcete, aby vaše aplikace mít nějaký viditelnosti nebo třeba 37 00:02:11,580 --> 00:02:14,110 vydělat trochu peněz z reklamy 38 00:02:14,110 --> 00:02:17,450 jste pravděpodobně spíše těžit z Android. 39 00:02:17,450 --> 00:02:20,630 >> A ještě jedna věc, která vždycky ví o Androidu 40 00:02:20,630 --> 00:02:25,100 je extrémní množství úprav, zatímco iOS je velmi pevně ve svých způsobech 41 00:02:25,100 --> 00:02:29,380 aby mohli udržovat bezpečnost a kontrolu nad každou malou aspektu 42 00:02:29,380 --> 00:02:34,180 konstrukce v rámci svého operačního systému a jednotlivými aplikacemi. 43 00:02:34,180 --> 00:02:40,180 Android je velmi volné formě, a je tu mnoho dalších možností. 44 00:02:40,180 --> 00:02:42,530 Dobře, některé konstrukční vzory. 45 00:02:42,530 --> 00:02:49,600 Všimněte si, stejně jako iOS má tablet a iPhone a iPod Doteky 46 00:02:49,600 --> 00:02:53,840 mají podporovat, řekněme, jako tucet zařízení, pokud je chcete podpořit 47 00:02:53,840 --> 00:02:55,450 historické věci stejně. 48 00:02:55,450 --> 00:02:58,410 S operačním systémem Android máte podporovat stovky zařízení, 49 00:02:58,410 --> 00:03:01,240 tak tam jsou některé věci, které Google se snaží realizovat 50 00:03:01,240 --> 00:03:04,970 aby si uživatel zažít trochu více konzistentní, 51 00:03:04,970 --> 00:03:08,560 ale budeme také hovořit o tom, jak to znamená, že existují problémy fragmentace 52 00:03:08,560 --> 00:03:11,700 že neustále musíte být vědomi podporovat. 53 00:03:11,700 --> 00:03:16,140 Fragmentace znamená, že existuje mnoho různých operačních systémů, 54 00:03:16,140 --> 00:03:20,330 mnoho různých telefonů s odlišným hardware s operačním systémem Android všechny najednou, 55 00:03:20,330 --> 00:03:29,680 takže tento graf zde sahá po dobu asi 6 měsíců. 56 00:03:29,680 --> 00:03:36,460 Jo, 6 měsíců, a můžete vidět, jak nejtemnější kapelu 57 00:03:36,460 --> 00:03:39,330 na dně je Jelly Bean, který vyšel v létě, 58 00:03:39,330 --> 00:03:42,970 a můžete vidět právě teď asi tak 2% z telefonů mít. 59 00:03:42,970 --> 00:03:45,520 >> Ice Cream Sandwich vyšel před více než rokem, 60 00:03:45,520 --> 00:03:47,770 a čtvrtina telefonů mít. 61 00:03:47,770 --> 00:03:53,910 Existuje ještě spousta telefonů, které používají verzi operačního systému od lety. 62 00:03:53,910 --> 00:03:57,820 Jedna věc, že ​​Google se snaží udělat, aby se uživatelské zkušenosti 63 00:03:57,820 --> 00:04:01,400 mnohem více konzistentní aplikace začíná s Honeycomb, 64 00:04:01,400 --> 00:04:04,320 které je tablet verze, pak se Ice Cream Sandwich a Jelly Bean, 65 00:04:04,320 --> 00:04:06,750 oni opravdu snaží zdůraznit použití tohoto panelu akcí 66 00:04:06,750 --> 00:04:10,430 což je to, co můžete vidět v horní části zde 67 00:04:10,430 --> 00:04:14,730 všechno tady, včetně této malé tlačítko Nastavení. 68 00:04:14,730 --> 00:04:16,079 To je výběr designu. 69 00:04:16,079 --> 00:04:18,000 Nyní, když vidíte tři tečky, znamená to, klikněte na toto, 70 00:04:18,000 --> 00:04:21,880 a tam bude drop-down menu, které má nějaký druh nastavení. 71 00:04:21,880 --> 00:04:28,900 Toto se zobrazí pouze proto, že jsem klikl na toto tlačítko. 72 00:04:28,900 --> 00:04:32,040 To je něco, co se snažíte použít, aby se aplikace trochu více konzistentní 73 00:04:32,040 --> 00:04:39,210 plošně, a tak uživatel má lepší smysl pro jednotné zkušenosti. 74 00:04:39,210 --> 00:04:42,640 >> Dobře, takže v případě, že jste neudělali to už, nebo pokud jste sledoval doma 75 00:04:42,640 --> 00:04:50,210 pak můžete takto nastavit prostředí pro psaní kódu. 76 00:04:50,210 --> 00:04:52,630 To bude zahrnovat jít na webových stránkách zde. 77 00:04:52,630 --> 00:04:56,260 Můžete Google, instalaci Android SDK 78 00:04:56,260 --> 00:04:59,130 a sledovat některé popisy tam. 79 00:04:59,130 --> 00:05:01,310 Oni ti všechno. 80 00:05:01,310 --> 00:05:05,160 Mají instalaci SDK, download Eclipse Classic verze 81 00:05:05,160 --> 00:05:07,450 i když, samozřejmě, my kódování v Javě. 82 00:05:07,450 --> 00:05:12,190 Doporučují tohle, a pak tento nástroj ADT, Android Vývojové nástroje, 83 00:05:12,190 --> 00:05:17,300 je plugin, který nainstalujete do Eclipse, který umožňuje 84 00:05:17,300 --> 00:05:20,550 mají mnohem efektivnější zkušenosti s Androidem v rámci Eclipse. 85 00:05:20,550 --> 00:05:24,070 To vám dá nějaké grafické uživatelské rozhraní 86 00:05:24,070 --> 00:05:29,610 pro projektování názory, a to vám poskytne mnohem větší podporu 87 00:05:29,610 --> 00:05:34,840 a schopnost zahájit s emulátorem a všechny takovéhle věci. 88 00:05:34,840 --> 00:05:36,090 Aplikační framework. 89 00:05:36,090 --> 00:05:41,590 >> Chci mluvit o tom, jak jsou strukturovány Projekty v rámci systému Android 90 00:05:41,590 --> 00:05:44,830 a pak půjdeme do rychlého například, a doufejme, že 91 00:05:44,830 --> 00:05:48,820 můžete klást otázky na jakémkoli místě a cítit se pohodlně do konce roku to. 92 00:05:48,820 --> 00:05:50,090 Máme nějaké žargonu jako první. 93 00:05:50,090 --> 00:05:55,330 Činnost jako na obrazovce uvidíte při spuštění app. 94 00:05:55,330 --> 00:05:57,840 Celý zážitek je činnost sama o sobě, 95 00:05:57,840 --> 00:06:00,790 takže si mohl myslet na to jako obrazovky nebo zobrazení, 96 00:06:00,790 --> 00:06:04,540 ale je to vlastně zdrojový kód straně. 97 00:06:04,540 --> 00:06:12,680 Stále volat skutečné rozhraní část toho pohledu. 98 00:06:12,680 --> 00:06:17,230 Je to něco jako, jak v Pset 7 jsme měli regulátor a pak výhled. 99 00:06:17,230 --> 00:06:20,690 Tato aktivita je více či méně regulátor, 100 00:06:20,690 --> 00:06:23,360 a pohled je to, co děláme, pokud jde o XML 101 00:06:23,360 --> 00:06:25,260 , který je spojen s touto činností. 102 00:06:25,260 --> 00:06:29,340 Fragmenty jsou něco, co je realizován v Ice Cream Sandwich do budoucna. 103 00:06:29,340 --> 00:06:36,380 Je to jen nápad s částí zobrazení nebo činnost 104 00:06:36,380 --> 00:06:39,990 a rozdělit je do samostatných oblastí, takže můžeme 105 00:06:39,990 --> 00:06:45,030 aby náš kód použitelný pro více těchto mnoha různých zařízení 106 00:06:45,030 --> 00:06:51,890 že musíme podpořit, a je to jen způsob, jak se snaží 107 00:06:51,890 --> 00:06:54,290 také vytknout více kódu. 108 00:06:54,290 --> 00:07:01,090 Služby jsou na pozadí věci jako přehrávání hudby nebo navigačních směry potenciálně. 109 00:07:01,090 --> 00:07:05,640 Poskytovatelé obsahu, jedná se o API v rámci operačního systému 110 00:07:05,640 --> 00:07:09,070 které vám umožní přístup k sdílených dat, jako jsou kontaktní údaje, 111 00:07:09,070 --> 00:07:12,790 a záměr je něco, co budeme používat, když chcete spustit 112 00:07:12,790 --> 00:07:17,210 nová aktivita z naší aktuální činnosti. 113 00:07:17,210 --> 00:07:20,980 >> Dobrý den, Android, to bude projekt, který budeme mluvit. 114 00:07:20,980 --> 00:07:25,410 Budu vlastně dělat to pro vás, a pak budeme dělat něco, kde klikneme na tlačítko 115 00:07:25,410 --> 00:07:27,650 s nějakým textem a zahájit novou činnost. 116 00:07:27,650 --> 00:07:30,110 Velmi jednoduché, ale já chci jít přes 117 00:07:30,110 --> 00:07:34,480 co se jít do projektu, jako je tento. 118 00:07:34,480 --> 00:07:39,260 Když uděláte nový projekt uvidíte v Eclipse 119 00:07:39,260 --> 00:07:41,900 tam je to projekt s názvem Hello Android. 120 00:07:41,900 --> 00:07:43,470 Pak jsou tu celá parta složek zde. 121 00:07:43,470 --> 00:07:46,760 Ty jsi opravdu zabývají, jsou zdrojové složky, 122 00:07:46,760 --> 00:07:54,540 zdroj složky, res, a do jisté míry libs složky pro knihovny. 123 00:07:54,540 --> 00:08:00,070 A právě proto, že jsme na stejné straně s tím 124 00:08:00,070 --> 00:08:03,240 pokud byste chtěli vytvořit nový projekt, 125 00:08:03,240 --> 00:08:08,270 můžete to udělat tady, takže když chci říkat HelloAndroid, 126 00:08:08,270 --> 00:08:11,100 a pak to automaticky dělá spoustu informací pro nás. 127 00:08:11,100 --> 00:08:14,110 Název balíčku by měl být jedinečný identifikátor 128 00:08:14,110 --> 00:08:16,710 které by normálně byly spojeny s webové stránky, pokud jste měl. 129 00:08:16,710 --> 00:08:24,430 >> Například, budu volat tuto net.cs50.helloandroid. 130 00:08:24,430 --> 00:08:30,070 A už jsem udělal tento projekt jednou. 131 00:08:30,070 --> 00:08:40,059 Dobře, omlouvám se. Říkejme tomu HelloCS50. 132 00:08:40,059 --> 00:08:42,929 A pak to bude ptát, jaké věci jako ikony chceme dělat. 133 00:08:42,929 --> 00:08:48,840 To je všechno kvůli Android Developer Tools rozhraní, 134 00:08:48,840 --> 00:08:53,350 plugin, který jsme přidali Eclipse, takže si můžeme vybrat věci, jako je 135 00:08:53,350 --> 00:08:58,320 co ikona chceme, a že by šel do té hloubky, pokud chceme. 136 00:08:58,320 --> 00:09:04,360 Ale na konci, jen aby projekt, 137 00:09:04,360 --> 00:09:07,040 a vše, co se objeví tady. 138 00:09:07,040 --> 00:09:10,030 Jak jsem ukázal na druhé obrazovce, 139 00:09:10,030 --> 00:09:14,070 máme zdrojovou složku, a budu mluvit o tom, co to všechno znamená, že brzy 140 00:09:14,070 --> 00:09:19,090 ale můžete vidět, že to okamžitě nás zavede do HelloCS50 obrazovce. 141 00:09:19,090 --> 00:09:24,690 Tam jsou některé tlačítka přes tu pro přidávání a textová pole rozložení. 142 00:09:24,690 --> 00:09:28,910 Je to něco jako XCode, ale bohužel ne tak zefektivnit. 143 00:09:28,910 --> 00:09:37,790 Ale klipy bude váš přítel a ADT zejména pro dělání toto. 144 00:09:37,790 --> 00:09:40,920 >> Dobře, zdrojové složky, kde je 145 00:09:40,920 --> 00:09:43,820 Java soubory se konají, a to je vlastně spuštění programu. 146 00:09:43,820 --> 00:09:45,990 Je to v podstatě jako regulátory. 147 00:09:45,990 --> 00:09:49,020 Zdrojů nebo do složky res je místo, kde budeme držet rozvržení obrazovky, 148 00:09:49,020 --> 00:09:54,110 obrázky, zvuky, text, animace a vše ostatní, libs, samozřejmě, knihovny. 149 00:09:54,110 --> 00:10:01,700 A Manifest, je to tak, že se systém Android ví 150 00:10:01,700 --> 00:10:03,130 jak komunikovat s vaší aplikace. 151 00:10:03,130 --> 00:10:07,980 Vypovídá to o oprávněních a jaké činnosti bude skutečně provozovat. 152 00:10:07,980 --> 00:10:12,350 Je to všechno základní informace, které je nutné ke spuštění aplikace. 153 00:10:12,350 --> 00:10:17,990 Zdrojová složka je-li jsme se rozšířit to, jak můžete vidět právě zde. 154 00:10:17,990 --> 00:10:23,920 A příklad, který by kód vypadat, to je základní kód. 155 00:10:23,920 --> 00:10:27,930 Jak jsme říkali, MainActivity. 156 00:10:27,930 --> 00:10:33,230 Ve výchozím nastavení se dostaneme onCreate, což je funkce, která je volána, když tuto činnost zatížení, 157 00:10:33,230 --> 00:10:37,150 takže chcete volat onCreate (savedInstanceState). 158 00:10:37,150 --> 00:10:40,440 To obnoví všechny kousky informací 159 00:10:40,440 --> 00:10:44,910 v případě, že byl pozastaven app. 160 00:10:44,910 --> 00:10:48,790 >> Existuje celá činnost životního cyklu schéma, které si můžete prohlédnout na 161 00:10:48,790 --> 00:10:50,380 když se dostanete trochu více do hloubky v tom, 162 00:10:50,380 --> 00:10:56,210 ale nejdůležitější řádek kódu je tato funkce setContentView 163 00:10:56,210 --> 00:11:00,290 který načte soubor prostředků pro rozvržení. 164 00:11:00,290 --> 00:11:03,590 Tak co onCreate zde je v podstatě dělá, je, že to říká 165 00:11:03,590 --> 00:11:07,010 když jsem se vytvořit tuto činnost chci nahrát toto rozložení. 166 00:11:07,010 --> 00:11:12,030 A budeme mluvit o tom, že rozložení je v druhém. 167 00:11:12,030 --> 00:11:16,230 Pokud bychom měli zahájit, že tady to vypadá přesně jako to, 168 00:11:16,230 --> 00:11:22,880 a ve výchozím nastavení, protože jsme Eclipse dělá to a ADT dělá to pro nás 169 00:11:22,880 --> 00:11:28,210 to je vše, často používaný kód, který je vytvořen pro nás, 170 00:11:28,210 --> 00:11:34,630 a můžeme jít dál a změnit věci tak, jak se nám líbí. 171 00:11:34,630 --> 00:11:38,190 Zdroj složka, jak jsem řekl, to je místo, kde máme všechny layouty, 172 00:11:38,190 --> 00:11:41,150 obrazovkami, pokud jde o jakýkoli druh snímků- 173 00:11:41,150 --> 00:11:46,360 se jim říká obrazovkami A pak zvukové soubory, menu. 174 00:11:46,360 --> 00:11:51,170 Je to způsob, jak celou partou XML v pěkném tříděného módy. 175 00:11:51,170 --> 00:11:58,030 Jak můžete vidět, jsou zde. Hdpi, ldpi, MDPI a xhdpi složky pro obrazovkami. 176 00:11:58,030 --> 00:12:02,220 Jedná se o různé hustoty obrazovky, takže s vysokou hustotou pixelů na palec, 177 00:12:02,220 --> 00:12:05,710 nízká hustota, střední hustota, extra vysokou hustotou. 178 00:12:05,710 --> 00:12:08,900 >> To je opět, takže můžeme podporovat všechny tyto různé zařízení, 179 00:12:08,900 --> 00:12:15,100 a ideálně, budete mít různé obrazy pro každé jiné rozlišení. 180 00:12:15,100 --> 00:12:20,740 Rozložení tam, kde jsme je všechny různé rozložení, které budou použity v různých činnostech. 181 00:12:20,740 --> 00:12:24,150 Rovněž by mohly zahrnovat rozložení pro fragmenty, 182 00:12:24,150 --> 00:12:26,670 což znamená, že v podstatě dílčí aktivity. 183 00:12:26,670 --> 00:12:29,610 Pokud chcete udělat něco zajímavého, jako když otočíte telefon 184 00:12:29,610 --> 00:12:33,900 Chcete to mít jiné rozložení, které můžete udělat layout-krajinu jako jiné složky, 185 00:12:33,900 --> 00:12:39,000 a automaticky Android má spoustu těchto pravidel v rámci zdrojů složky, 186 00:12:39,000 --> 00:12:44,690 tak, že bude vědět, že se na různých složek na základě aktuálního nastavení v telefonu, 187 00:12:44,690 --> 00:12:46,740 jaký druh hardwaru, který používáte. 188 00:12:46,740 --> 00:12:52,350 Nejinak tomu hodnotách v11 zde a hodnoty-V14 189 00:12:52,350 --> 00:12:55,460 a výchozí hodnoty složky je to pro- 190 00:12:55,460 --> 00:13:01,730 dobře, hodnoty od sebe, bude to výchozí hodnoty napříč všemi verzemi operačního systému. 191 00:13:01,730 --> 00:13:06,390 Na druhé straně, V11 a V14 odpovídají Honeycomb 192 00:13:06,390 --> 00:13:08,780 a Ice Cream Sandwich, resp. 193 00:13:08,780 --> 00:13:12,800 Opět se jedná o způsoby, v těchto složkách jsou různé řetězce 194 00:13:12,800 --> 00:13:17,550 a stylů, takže si můžete přizpůsobit vzhled vaší aplikace 195 00:13:17,550 --> 00:13:22,660 nebo potenciálně i jeho funkčnost, i když to bude pravděpodobně špatný nápad, 196 00:13:22,660 --> 00:13:25,890 na základě verze operačního systému. 197 00:13:25,890 --> 00:13:28,760 >> Mluvila jsem o tom všem tady. 198 00:13:28,760 --> 00:13:35,870 Opět, tažný, syrový, dispozice, hodnoty. 199 00:13:35,870 --> 00:13:41,380 Výchozí nastavení, když jdeme do Hello Android nebo Hello CS50 právě teď 200 00:13:41,380 --> 00:13:43,310 to bude vypadat přesně takhle. 201 00:13:43,310 --> 00:13:45,800 Bude pozdravit svět. 202 00:13:45,800 --> 00:13:58,430 Jak můžete vidět tady s textem Android 203 00:13:58,430 --> 00:14:04,420 Text pro toto textové zobrazení, což je v podstatě jen označení, 204 00:14:04,420 --> 00:14:06,900 je to, co bychom nazvali jej iOS. 205 00:14:06,900 --> 00:14:11,580 Má tento legrační zápis @ string / hello_world. 206 00:14:11,580 --> 00:14:16,200 To je tak můžeme-se snažíme získat všechny řetězce, 207 00:14:16,200 --> 00:14:19,740 všechny natvrdo kódovaných řetězců v Android do samostatné složky, 208 00:14:19,740 --> 00:14:23,610 který se stane být v values.strings. 209 00:14:23,610 --> 00:14:29,300 Podíváme-li se zde, můžeme vidět, že máme pevně řetězec uložený zde 210 00:14:29,300 --> 00:14:33,910 pro Hello World, a je to jen hello world, a to je druh 211 00:14:33,910 --> 00:14:39,230 obyčejný design rozhodnutí v mnoha platformách, které chcete, 212 00:14:39,230 --> 00:14:41,780 struny jsou takové věci, které chceme, aby mohly být schopni změnit. 213 00:14:41,780 --> 00:14:48,050 Nechceme kontrolovat F v našem souboru zdrojového kódu v našem XML. 214 00:14:48,050 --> 00:14:50,760 Chceme být schopni změnit kdykoliv dostaneme šanci. 215 00:14:50,760 --> 00:14:53,640 >> Tento soubor XML, strings.xml, je způsob získávání 216 00:14:53,640 --> 00:14:56,710 hard-kódované řetězce, které by jinak byly v našich rozvržení zdrojů 217 00:14:56,710 --> 00:15:03,530 nebo v našem zdrojovém kódu. 218 00:15:03,530 --> 00:15:08,190 Manifest je místo, kde jsme se udržet tuto základní informace o aplikaci. 219 00:15:08,190 --> 00:15:11,050 To zahrnuje název balíčku. To musí být jedinečný identifikátor. 220 00:15:11,050 --> 00:15:16,020 Na rozdíl od App Store pro iOS jmény aplikací 221 00:15:16,020 --> 00:15:19,980 nemusí být jedinečný, a může ve skutečnosti změnit název aplikace 222 00:15:19,980 --> 00:15:23,570 po odeslání, takže když jsem se začít s Angry Birds, 223 00:15:23,570 --> 00:15:26,840 a pak udělám aktualizaci, a já nechci, aby novou verzi 224 00:15:26,840 --> 00:15:34,230 Myslím, že bych mohl nazvat Angry Birds 2, zatímco já jsem na stejném vývojovém cyklu. 225 00:15:34,230 --> 00:15:36,780 To by jen ukázat jako aktualizace. 226 00:15:36,780 --> 00:15:39,790 Jediná věc, která musí být jedinečné, je to název balíčku, 227 00:15:39,790 --> 00:15:41,280 což není mnoho lidí uvidí. 228 00:15:41,280 --> 00:15:44,680 No, já jenom, jestli jste se dívali na zdrojovém kódu, nebo pokud tam je nějaký druh chyby. 229 00:15:44,680 --> 00:15:47,580 Komponenty zahrnují činnosti, takže musíme prohlásit, 230 00:15:47,580 --> 00:15:49,070 jakýkoli druh činnosti používáme. 231 00:15:49,070 --> 00:15:53,430 Jedná se o povolení věci. 232 00:15:53,460 --> 00:15:58,150 >> Protože Android nemá tento přísný proces aplikace 233 00:15:58,150 --> 00:16:02,210 pro předkládání aplikace místo toho jen, že to všechno vychází mimo oprávnění 234 00:16:02,210 --> 00:16:04,300 a prohlašuje věci v manifestu. 235 00:16:04,300 --> 00:16:06,380 Verze SDK je také důležité. 236 00:16:06,380 --> 00:16:10,330 Můžeme nastavit použití jako minimální verze SDK něco. 237 00:16:10,330 --> 00:16:16,010 Je zřejmé, že chcete vytvořit kód 238 00:16:16,010 --> 00:16:18,570 a design pro novější operační systémy. 239 00:16:18,570 --> 00:16:20,840 Možná, že není nejnovější, možná ne Jelly Bean. 240 00:16:20,840 --> 00:16:23,610 Možná, že chcete navrhnout především pro Ice Cream Sandwich, 241 00:16:23,610 --> 00:16:27,120 ačkoli oni jsou skoro stejné, pokud jde o rozhodnutí o návrhu 242 00:16:27,120 --> 00:16:30,550 a skutečné knihovny a API. 243 00:16:30,550 --> 00:16:36,250 Ale spíše než mít lidi 244 00:16:36,250 --> 00:16:40,050 z původní verzi Android-jako cesta zpátky, když Donut- 245 00:16:40,050 --> 00:16:43,420 kteří ještě stalo, že se pomocí které se snaží stahovat aplikace a pak vyslovte 246 00:16:43,420 --> 00:16:46,160 nefunguje na mém telefonu můžete nastavit minimální verze 247 00:16:46,160 --> 00:16:48,620 a mají být perník nebo Ice Cream Sandwich 248 00:16:48,620 --> 00:16:53,300 nebo co cítíte na předkládání. 249 00:16:53,300 --> 00:16:57,170 A to je příklad manifestu. Můžeme se podívat na skutečné jeden v trochu. 250 00:16:57,170 --> 00:17:00,900 >> Dobře, budeme prostě jít dopředu s demoverzi. 251 00:17:00,900 --> 00:17:08,900 Toto je demo, pokud Google Android postavit svůj první aplikaci nebo něco takového. 252 00:17:08,900 --> 00:17:12,089 Půjdeme přes všechno, co se děje tam, 253 00:17:12,089 --> 00:17:17,690 a omlouvám, jen s odkazem, který zde zná Java jakémkoliv rozsahu? 254 00:17:17,690 --> 00:17:28,310 Dobře, tak Java je nové kódování jazyka pro většinu lidí, kteří přicházejí z CS50. 255 00:17:28,310 --> 00:17:31,850 Stručně řečeno, jít znovu to, co říká tady, 256 00:17:31,850 --> 00:17:35,580 co chceme udělat, je spíše než přizpůsobit tuto aplikaci Hello World 257 00:17:35,580 --> 00:17:38,620 že vše, co dělá, je, že na trh a říká, že hello world 258 00:17:38,620 --> 00:17:43,580 a říká ahoj CS50 nahoře, protože to je činnost, název 259 00:17:43,580 --> 00:17:47,190 budeme se snažit, aby se textové pole a tlačítko 260 00:17:47,190 --> 00:17:50,680 tak, že když jsme se stisknutím tohoto tlačítka bude trvat text 261 00:17:50,680 --> 00:17:53,660 z textového pole a zahájit novou aktivitu, a to bude říkat 262 00:17:53,660 --> 00:17:58,380 bez ohledu na tento text uvedený v činnosti, a to je poměrně jednoduchý. 263 00:17:58,380 --> 00:18:00,650 Není to velmi zajímavé. Ty by nechtěl, aby se uvolnilo aplikace, jako je tento. 264 00:18:00,650 --> 00:18:03,880 Ale ukazuje některé důležité věci návrhu. 265 00:18:03,880 --> 00:18:07,030 >> Budeme muset spolupracovat s manifestu, s uspořádáním souborů, 266 00:18:07,030 --> 00:18:12,440 se zdrojovým kódem, a můžete vidět, jak spustit jednu činnost od druhého. 267 00:18:19,740 --> 00:18:23,060 Začneme s rozložením pro naše první činnosti, 268 00:18:23,060 --> 00:18:27,320 o němž vím, že je to taková malá, 269 00:18:27,320 --> 00:18:32,660 ale jak můžete vidět právě teď, vše, co je je, že má své logo, které jsme vytvořili, 270 00:18:32,660 --> 00:18:36,310 Název aktivity, a říká, že hello world v centru. 271 00:18:36,310 --> 00:18:40,400 Místo toho jsem jako první jít, aby se to na lineární uspořádání, 272 00:18:40,400 --> 00:18:42,350 relativní rozložení a to všechno jsou věci, 273 00:18:42,350 --> 00:18:45,870 byste se mohli podívat a stojí jít přes na nějakém místě, pokud jde o rozvržení. 274 00:18:45,870 --> 00:18:47,310 Je to hodně podobný HTML. 275 00:18:47,310 --> 00:18:52,640 Řekli jsme, že to opravdu není dobré znát, pokud jde o programové smyslu, 276 00:18:52,640 --> 00:18:55,840 ale tam je tak mnoho různých rozvržení můžete ovládat, 277 00:18:55,840 --> 00:18:57,970 a je to jako CSS, pokud jde o styly. 278 00:18:57,970 --> 00:19:01,590 >> Je tu hodně děje jen z hlediska estetiky zde, 279 00:19:01,590 --> 00:19:08,930 a jo, je to stojí za to učení, ale je to jedna z těch věcí, měli byste vyhledat 280 00:19:08,930 --> 00:19:11,810 jak jdete a máte pocit, že musíte něco nového. 281 00:19:11,810 --> 00:19:17,030 Mohu využít některé z ADT nástrojů zde alespoň začít s. 282 00:19:17,030 --> 00:19:21,930 Udělám textové pole, a učiním tlačítko. 283 00:19:21,930 --> 00:19:24,100 Dejte je hned vedle sebe. 284 00:19:24,100 --> 00:19:28,200 Už velikost odpovídajícím způsobem. 285 00:19:28,200 --> 00:19:31,320 Omlouváme se, ale opět vrací na rozdíl mezi lineární uspořádání a relativní uspořádání, 286 00:19:31,320 --> 00:19:34,830 lineární uspořádání dává trochu více funkcí 287 00:19:34,830 --> 00:19:38,720 pokud jde o plnění místo a ujistěte se, 288 00:19:38,720 --> 00:19:42,790 Umístíme věci vodorovně nebo svisle. 289 00:19:42,790 --> 00:19:46,130 Velký rozdíl mezi lineární uspořádání a rozložení relativní 290 00:19:46,130 --> 00:19:50,250 je relativní rozložení pozic vše ve srovnání s jinými názory, 291 00:19:50,250 --> 00:19:52,630 a dobrá věc na tom je, že to trvá kratší dobu k tomu 292 00:19:52,630 --> 00:19:56,120 protože operační systém se dívá na všechny kódu a říká, že to jde 293 00:19:56,120 --> 00:19:58,270 vzhledem k tomu zde, zde. 294 00:19:58,270 --> 00:20:03,170 To znamená, že je méně než měření spoustu vnořených lineární uspořádání, 295 00:20:03,170 --> 00:20:06,840 které jsem musel udělat, kdybych chtěl věci jít vertikálně zde. 296 00:20:06,840 --> 00:20:10,510 >> Už jsem některé věci jít vodorovně, takže bych potřeboval jiný lineární uspořádání 297 00:20:10,510 --> 00:20:14,560 hnízdit svisle, ale když jsem dělal relativní rozložení bych mohl říct, 298 00:20:14,560 --> 00:20:18,140 si to na levé straně, to napravo a tyto věci níže. 299 00:20:18,140 --> 00:20:21,850 Ale protože chci, aby vyplnit teď budu používat lineární uspořádání, 300 00:20:21,850 --> 00:20:24,510 a můžete vidět, že už má spoustu těchto věcí pro nás. 301 00:20:24,510 --> 00:20:28,890 Všechny pohledy musí mít vlastnost šířky a výšky, 302 00:20:28,890 --> 00:20:33,410 a to se stane, že hmotnost 1, a to má váhu 1 303 00:20:33,410 --> 00:20:36,050 tak, aby vyplnil celý prostor. 304 00:20:36,050 --> 00:20:38,460 Ale šířka a výška jsou nejdůležitější. 305 00:20:38,460 --> 00:20:45,880 Toto pole ID tady není důležité ve skutečném rozložení 306 00:20:45,880 --> 00:20:49,060 pokud budeme pomocí relativní rozložení a mluvy, můžeme odkazovat 307 00:20:49,060 --> 00:20:52,990 jeden pohled pozici ve vztahu k jinému. 308 00:20:52,990 --> 00:20:56,170 Pokud bychom měli relativní uspořádání by se dalo říci toto postavení pod tento 309 00:20:56,170 --> 00:20:59,390 nebo nad tímto ID, ale ID bude důležité 310 00:20:59,390 --> 00:21:01,660 když jsme použili v našem kódu, protože se můžeme odkazovat 311 00:21:01,660 --> 00:21:05,610 Tyto jednotlivé pohledy tímto způsobem. 312 00:21:05,610 --> 00:21:10,350 >> A pak můžete vidět requestFocus tag, což je něco, co jste pravděpodobně viděli v Pset 7. 313 00:21:10,350 --> 00:21:15,370 Tam byl automatické zaostřování tag nebo něco v tomto směru za jednoho z polí. 314 00:21:15,370 --> 00:21:22,100 A ještě jedna věc, samozřejmě, můžeme to udělat stejně jako v HTML, 315 00:21:22,100 --> 00:21:25,660 a všimněte si, jedna z krásných věcí, o ADT je ​​to, že autocompletes zde. 316 00:21:25,660 --> 00:21:29,930 Možná ne tak pěkně, jak tomu bylo v XCode, ale to přesto, 317 00:21:29,930 --> 00:21:32,860 a tak bychom mohli říci, radu a dát mu nějaký řetězec 318 00:21:32,860 --> 00:21:37,070 Líbí napsat zprávu, 319 00:21:37,070 --> 00:21:41,300 a když jsem dát chvilku, také všimnout, že jsem si trochu chyba zde 320 00:21:41,300 --> 00:21:44,610 říká, že bychom měli použít řetězec prostředku za to, 321 00:21:44,610 --> 00:21:48,820 takže když jsem nechat ji dělat některé tvrdé práce pro mě 322 00:21:48,820 --> 00:21:57,320 Umím zvolit tento řetězec, proveďte refractor Android a extrakt Android řetězec. 323 00:21:57,320 --> 00:22:00,570 Můžu dát toto jméno, napsat zprávu, 324 00:22:00,570 --> 00:22:04,180 a co to teď je nahrazen že pevně řetězec 325 00:22:04,180 --> 00:22:07,980 s odkazem na řetězec v řetězci v souboru XML., 326 00:22:07,980 --> 00:22:10,200 což znamená, že teď je to tady. 327 00:22:10,200 --> 00:22:15,560 >> A vím, že vypadá trochu triviální a stejně jako práce navíc v tomto bodě, 328 00:22:15,560 --> 00:22:17,840 ale když máte spoustu věcí, spoustu řetězců, 329 00:22:17,840 --> 00:22:20,750 to je opravdu důležité, a to zejména pro lokalizaci 330 00:22:20,750 --> 00:22:26,920 protože jak jsem již zmínil, Android je velmi celosvětově používá operační systém 331 00:22:26,920 --> 00:22:35,950 že můžete jednoduše udělat hodnot-en nebo hodnoty-SP 332 00:22:35,950 --> 00:22:44,320 nebo něco pro anglicky nebo španělsky nebo jiné jazyky. 333 00:22:44,320 --> 00:22:50,210 A pak jste pravděpodobně měli tuto zkušenost ještě 334 00:22:50,210 --> 00:22:53,030 protože jsme neměli dělat hodně JavaScript ve smyslu programování pro web, 335 00:22:53,030 --> 00:22:56,850 ale můžeme i to pole s názvem onClick pro tlačítka, 336 00:22:56,850 --> 00:23:02,350 a toto je způsob odkazování v našem uspořádání 337 00:23:02,350 --> 00:23:06,570 že chceme určitou funkci, která se nazývá v našem zdrojovém kódu. 338 00:23:06,570 --> 00:23:09,420 Budu volat tento SendMessage, 339 00:23:09,420 --> 00:23:13,390 a aby tuto práci to znamená, že v hlavní činnosti zde 340 00:23:13,390 --> 00:23:19,180 Budu muset vytvořit funkci, která je veřejnosti 341 00:23:19,180 --> 00:23:22,250 tak, aby mohl být přístupné uspořádání. 342 00:23:22,250 --> 00:23:25,930 Je to neplatné, protože prostě nechtějí, že se vrátí nic. 343 00:23:25,930 --> 00:23:37,760 Nazveme to sendMessage, a to trvá nějaký názor 344 00:23:37,760 --> 00:23:43,690 který je jakýmsi kontextu můžeme ukotvit tuto metodu 345 00:23:43,690 --> 00:23:47,160 se daného pohledu, když jsme spuštěním. 346 00:23:47,160 --> 00:23:50,090 >> A já nevím, jestli jste si všimli, tak by jste si toho nevšimli, 347 00:23:50,090 --> 00:24:02,370 ale v tuto chvíli tady 348 00:24:02,370 --> 00:24:06,930 Tento pohled je typ, který nebyl dosud, 349 00:24:06,930 --> 00:24:10,630 a samozřejmě, že všichni víte, od CS50 o nezahrnuje typy. 350 00:24:10,630 --> 00:24:13,120 Krásná věc na tom jako Eclipse IDE je, že 351 00:24:13,120 --> 00:24:17,520 Pokud zapomenete-li nějaký typ bude zdůraznit s malou červenou klikatou 352 00:24:17,520 --> 00:24:19,680 a pak vám možnost importovat názor. 353 00:24:19,680 --> 00:24:23,130 Rychlý způsob, jak toho dosáhnout, je řízen posun O, a to bude importovat 354 00:24:23,130 --> 00:24:27,070 všechny soubory, které potřebuje k. 355 00:24:27,070 --> 00:24:33,670 Nyní, když máme tuto funkci SendMessage, 356 00:24:33,670 --> 00:24:46,560 který pošle zprávu z MainActivity do nové činnosti, 357 00:24:46,560 --> 00:24:55,230 budeme muset použít úmysl zahájit novou činnost z tohoto jednoho, 358 00:24:55,230 --> 00:25:02,240 takže budeme pravděpodobně chtít vytvořit globální konstanty nebo také zvláště veřejné konstanty 359 00:25:02,240 --> 00:25:06,240 že nám pomůže vědět, jak budeme odkazovat na řetězec 360 00:25:06,240 --> 00:25:09,090 protože když jsme se vytvořit úmysl, že nejsme jen volat novou aktivitu, 361 00:25:09,090 --> 00:25:11,520 ale můžeme také dát balík informací. 362 00:25:11,520 --> 00:25:14,720 Svazek je vlastně termín, který používá Android, 363 00:25:14,720 --> 00:25:21,470 a je to způsob, jak říct, aby to další údaje, které nemohou být z velmi sofistikovaný datový typ, 364 00:25:21,470 --> 00:25:24,510 ale rozhodně můžeme zahrnout pravdivostní nebo řetězce nebo INT. 365 00:25:24,510 --> 00:25:29,750 Taková věc. 366 00:25:29,750 --> 00:25:34,230 >> Neváhejte se zeptat na některý z těchto kvalifikačních zde, 367 00:25:34,230 --> 00:25:36,900 veřejnosti, v konečném znění, statické. 368 00:25:36,900 --> 00:25:38,610 Veřejnost je důležitá. 369 00:25:38,610 --> 00:25:47,090 To znamená, že můžeme přistupovat k této proměnné z jiných souborů zdrojového kódu 370 00:25:47,090 --> 00:25:49,590 například když se vytvoří nové aktivity. 371 00:25:49,590 --> 00:25:52,190 Můžeme odkazovat na řetězec v rámci tohoto souboru. 372 00:25:52,190 --> 00:25:57,160 Pokud je to soukromý, to znamená, že je omezena na tomto jednotlivých souborů zde. 373 00:25:57,160 --> 00:26:02,430 Ale my jsme mu říkat něco jako další zprávy. 374 00:26:16,260 --> 00:26:23,300 Nyní jsme udělali tuto funkci, a pokud klepnete na tlačítko, bude tato funkce nazývá. 375 00:26:23,300 --> 00:26:27,970 Ale my jsme nic neudělali, samozřejmě, s funkcí. 376 00:26:27,970 --> 00:26:33,130 To, co chceme udělat, je vytvořit novou aktivitu, 377 00:26:33,130 --> 00:26:35,350 činnost, která bude skutečně zahájena. 378 00:26:35,350 --> 00:26:44,330 V Eclipse můžeme říci nový, Android činnost, prázdné činnost. 379 00:26:44,330 --> 00:26:46,530 Můžeme dát mu jméno. 380 00:26:46,530 --> 00:26:57,050 Říkejme tomu náš výsledek činnosti. 381 00:26:57,050 --> 00:27:04,430 A pak hierarchické rodič pole je možnost specifikovat 382 00:27:04,430 --> 00:27:08,180 jak jsou činnosti související s sebou. 383 00:27:08,180 --> 00:27:11,020 Protože tohle bude spuštěna z jiné činnosti 384 00:27:11,020 --> 00:27:27,520 bychom měli stanovit, že se má nadřazený hlavní činnost. 385 00:27:27,520 --> 00:27:31,220 >> A mohl jsem kliknul na další pole tam, který by nám řekl, 386 00:27:31,220 --> 00:27:33,830 Některé volitelné pole, které bylo také, včetně, 387 00:27:33,830 --> 00:27:38,800 ale pěkná věc, o ADT, opět je, že když jsem přejděte sem 388 00:27:38,800 --> 00:27:45,740 V manifestu si uvědomit, že to všechno byla skutečně implicitně zahrnuta 389 00:27:45,740 --> 00:27:48,930 když jsme původně vytvořen projekt, 390 00:27:48,930 --> 00:27:53,090 a teď, protože jsme to vytvořit novou aktivitu, nikoli jen 391 00:27:53,090 --> 00:27:58,610 přidat vlastní soubor třídy, protože jsme prošli jejich GUI pro dělání toto 392 00:27:58,610 --> 00:28:01,930 to už zní všechno na manifestu pro nás, 393 00:28:01,930 --> 00:28:06,020 což prostě znamená, že se operační systém nebude stěžovat 394 00:28:06,020 --> 00:28:09,400 když se snažíme zahájit tuto činnost. 395 00:28:09,400 --> 00:28:14,620 A také, samozřejmě, dal označení, což se projevuje i v řetězcích. 396 00:28:14,620 --> 00:28:17,340 To dělá spoustu věcí na zadním konci pro nás. 397 00:28:17,340 --> 00:28:20,140 Každopádně, teď máme tuto činnost i výsledek, 398 00:28:20,140 --> 00:28:23,810 skutečný zdrojový kód soubor ve zdrojové složce, 399 00:28:23,810 --> 00:28:33,540 a můžete vidět, se krátce dotknout this- 400 00:28:33,540 --> 00:28:37,790 protože jsme si řekli, že o této hierarchické rodiče 401 00:28:37,790 --> 00:28:46,640 to dalo toto pole android.r.ide.home v tomto onOption vybrané věci. 402 00:28:46,640 --> 00:28:49,020 >> Co to v podstatě říká, je tam tlačítko menu nyní 403 00:28:49,020 --> 00:28:53,110 že v levém horním rohu obrazovky 404 00:28:53,110 --> 00:29:02,220 když jsem se vrátit do aplikace PowerPoint, kde jsme se poprvé mluvili o panelu akcí 405 00:29:02,220 --> 00:29:05,380 z důvodu hierarchického rodiče teď je tu trochu šipka sem 406 00:29:05,380 --> 00:29:10,610 a to je klikací, takže bychom měli být schopni, poté, co jsme vlastně spustit tuto aplikaci, 407 00:29:10,610 --> 00:29:15,360 vrátit se, a to je způsob, jak ušetřit nám trochu kódu tam. 408 00:29:26,220 --> 00:29:40,180 Právě v rámci této No, zdá se, že si stěžují, že na chvíli. 409 00:29:40,180 --> 00:29:43,910 Pojďme komentovat, že ven. 410 00:29:43,910 --> 00:29:48,260 Nyní, aby se skutečně interakci s těmito činnostmi 2, 411 00:29:48,260 --> 00:29:55,020 musíme vytvořit záměr, který obsahuje všechny tyto údaje. 412 00:29:55,020 --> 00:29:58,950 V SendMessage teď budu pro plavbu přes některé kousky kódu 413 00:29:58,950 --> 00:30:00,700 a vysvětlit, že, jak jsem jít. 414 00:30:00,700 --> 00:30:06,280 Záměr, jak jsem řekl, je způsob, jak zahájit činnost jeden od druhého. 415 00:30:06,280 --> 00:30:10,000 Záměr je ten typ. Budeme vytvářet variabilní myIntent. 416 00:30:10,000 --> 00:30:13,980 >> A to je vlastně objekt, což je důvod, proč máme zavolat nový. 417 00:30:13,980 --> 00:30:18,500 Je běžné, že Java použití tam, což může trvat trochu zvykat. 418 00:30:18,500 --> 00:30:23,900 To znamená, že používáte činnost nebo třídní MainActivity, 419 00:30:23,900 --> 00:30:28,630 a záměr tímto způsobem se činnost, že to bude od 420 00:30:28,630 --> 00:30:36,060 a aktivita bude to, které nazýváme ResultActivity, 421 00:30:36,060 --> 00:30:38,170 a to je vlastní třída. 422 00:30:38,170 --> 00:30:41,720 Zahrnout to. 423 00:30:41,720 --> 00:30:47,370 A pak, když jsem se zmínil dříve, dali jsme, že ID do textového pole pro úpravy 424 00:30:47,370 --> 00:30:53,710 a text pohled, tak aby programově zachytit 425 00:30:53,710 --> 00:31:01,860 text, který existuje v EDITTEXT 426 00:31:01,860 --> 00:31:06,710 budeme používat tuto funkci s názvem findViewByID, 427 00:31:06,710 --> 00:31:13,660 který je podobný něčemu, co budete používat, když se snaží dostat z polí DOM. 428 00:31:13,660 --> 00:31:17,560 Možná, že David mluví o tom v přednášce. 429 00:31:17,560 --> 00:31:26,600 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. 430 00:31:26,600 --> 00:31:31,110 Id.editText1. 431 00:31:31,110 --> 00:31:35,220 Už autocompleting tam na mě. 432 00:31:35,220 --> 00:31:42,010 >> A pak budeme patří-to EDITTEXT nyní, že máme pole 433 00:31:42,010 --> 00:31:47,640 v rámci našeho programu, to vše findViewByID to byl v podstatě 434 00:31:47,640 --> 00:31:50,870 si mohl myslet na to, jak nám dát odkaz na tento EDITTEXT. 435 00:31:50,870 --> 00:31:54,570 Nyní chceme, aby se řetězec nebo zprávu 436 00:31:54,570 --> 00:32:00,670 v tomto EDITTEXT, které můžeme udělat pomocí- 437 00:32:00,670 --> 00:32:03,360 si mohl myslet EDITTEXT jako struct- 438 00:32:03,360 --> 00:32:07,600 říkáme, že objekt v Javě, s celou bandou různých metod 439 00:32:07,600 --> 00:32:10,650 nebo pole a atributy k ní připojeny. 440 00:32:10,650 --> 00:32:15,510 Když řeknu, že EDITTEXT. to mi dává možnost přístupu 441 00:32:15,510 --> 00:32:19,770 metoda jako gettext, který bude získat aktuální znění 442 00:32:19,770 --> 00:32:23,990 v tomto EDITTEXT a pak převést že výslovně 443 00:32:23,990 --> 00:32:26,520 na řetězec, a my jsme uložili zprávu. 444 00:32:26,520 --> 00:32:32,730 Teď jsme vlastně chcete udělat něco s tím záměrem, který jsme vytvořili jen před chvílí. 445 00:32:32,730 --> 00:32:40,250 Dám navíc, jak se tomu říká v úmyslu, 446 00:32:40,250 --> 00:32:43,330 která opět, stejně jako jsem řekl dříve, je to způsob, jak vytvořit svazek 447 00:32:43,330 --> 00:32:45,980 s celou partou dat. 448 00:32:45,980 --> 00:32:50,920 Extra zpráva je naše značka, takže víme, co to schovával pod, 449 00:32:50,920 --> 00:32:56,700 a pak jsem včetně zprávy. 450 00:32:56,700 --> 00:33:04,870 >> A pak můžeme skutečně začít aktivitu tím, že mu parametru myIntent. 451 00:33:04,870 --> 00:33:10,630 A to bude skutečně zahájí činnost, tak teď, protože jsem se upgradovat na Windows 8 452 00:33:10,630 --> 00:33:15,870 tam by mohlo být nějaké chyby, které se objevují krátce, ale snažte se je ignorovat. 453 00:33:28,010 --> 00:33:30,310 A to je Android emulátor. 454 00:33:30,310 --> 00:33:33,540 Doufejme, že kód bude skutečně vyskočí za chvíli. 455 00:33:33,540 --> 00:33:36,680 Opět platí, že ignorovat všechny ty maličkosti. 456 00:33:36,680 --> 00:33:42,290 Ale emulátor Android můžete napodobit jakoukoli verzi operačního systému 457 00:33:42,290 --> 00:33:45,180 od nejčasnějších ty, Donut, Gingerbread. 458 00:33:45,180 --> 00:33:49,640 To je Jelly Bean 4.1. 459 00:33:49,640 --> 00:33:53,150 Ale jak můžete vidět právě teď, je to něco, co jsme udělali. 460 00:33:53,150 --> 00:33:55,780 To má MainActivity, EDITTEXT, tlačítko. 461 00:33:55,780 --> 00:34:01,550 Mohu něco psát zde, ale co jsme chybí na tomto místě? 462 00:34:01,550 --> 00:34:05,190 Udělali jsme pole v MainActivity, že se to poslat zprávu 463 00:34:05,190 --> 00:34:08,570 na jiné činnosti, ale v tuto chvíli 464 00:34:08,570 --> 00:34:12,330 neudělali jsme nic jiné činnosti, takže to nebude něco dostane. 465 00:34:12,330 --> 00:34:18,800 Pojďme dokončit tuto část dříve, než budeme pokračovat. 466 00:34:18,800 --> 00:34:25,760 >> Tento výsledek činnosti, co budete muset udělat, je, že budete muset udělat, je, že budete muset- 467 00:34:25,760 --> 00:34:30,070 můžeme také odkazovat na záměr v rámci této aktivity, 468 00:34:30,070 --> 00:34:33,580 takže musíme zachytit záměr, který je opravdu jednoduché. 469 00:34:33,580 --> 00:34:40,780 Je to funkce zařazena do třídy činnosti, 470 00:34:40,780 --> 00:34:47,610 takže můžeme jen říct "Získat zprávu od záměru." 471 00:34:47,610 --> 00:34:56,260 "Záměr myIntent = getIntent." 472 00:34:56,260 --> 00:35:00,030 A to nám dá-myIntent nyní je objekt, 473 00:35:00,030 --> 00:35:05,380 což je odkaz na záměru, které nás vedly k této činnosti. 474 00:35:05,380 --> 00:35:10,130 MainActivity volá a dává další informace vést činnost. 475 00:35:10,130 --> 00:35:14,070 Výsledek činnost se zaměřuje na záměru, který vedl to tady, 476 00:35:14,070 --> 00:35:23,540 a můžeme přistupovat k, který jsme vytvořili v druhém, 477 00:35:23,540 --> 00:35:26,370 getStringExtra, a to autocomplete pro mě. 478 00:35:26,370 --> 00:35:31,190 A pak si vzpomeňte, jak jsme označili, že bit dat 479 00:35:31,190 --> 00:35:38,400 bylo tím, že mu toto pole tady, to public String, 480 00:35:38,400 --> 00:35:42,080 což je značka pro řetězec jsme vlastně v ceně. 481 00:35:42,080 --> 00:35:48,450 >> Když řeknu, že MainActivity.Extra_Message 482 00:35:48,450 --> 00:35:52,200 je to tady, a to je něco jako název parametru 483 00:35:52,200 --> 00:35:55,330 když jsme míjeli kód z regulátoru do šablony, 484 00:35:55,330 --> 00:35:57,680 když bych řekl, že titul šipky něco. 485 00:35:57,680 --> 00:36:01,140 Je to stejný druh myšlenky zde. 486 00:36:01,140 --> 00:36:07,130 Nyní si pamatuju. 487 00:36:07,130 --> 00:36:12,230 Také jsme si to auto vytvořené nebo automatické generován kód 488 00:36:12,230 --> 00:36:16,410 pro výsledek činnosti, který obsahuje text zobrazení uprostřed 489 00:36:16,410 --> 00:36:19,690 , který říká, hello world. 490 00:36:19,690 --> 00:36:27,510 Mohli bychom mohly dělat, že větší. 491 00:36:27,510 --> 00:36:33,980 Pojďme to udělat jako první. 492 00:36:33,980 --> 00:36:39,550 Mohli bychom dělat to hustota 40 nezávislých pixelů. 493 00:36:39,550 --> 00:36:42,670 Pojďme se podívat, to je výborný obrovský. To bude v pořádku. 494 00:36:42,670 --> 00:36:48,180 A pak, aby se odkazovat na tento samostatný textový pohled do našeho kódu 495 00:36:48,180 --> 00:36:53,890 budeme muset dát identifikátor, 496 00:36:53,890 --> 00:36:58,350 a aby k tomu, že říkáme @ + id, což znamená, že jí přiřadit ID. 497 00:36:58,350 --> 00:37:02,480 Pokud se právě řekl @ id by předpokládat jsme odkazování na ID, který již existuje, 498 00:37:02,480 --> 00:37:07,760 a nazvěme to naše resultTextView. 499 00:37:07,760 --> 00:37:10,570 A zjistíte, že v XML není potřeba středníky nebo tak něco. 500 00:37:10,570 --> 00:37:12,380 Vše, co je v těchto značek. 501 00:37:12,380 --> 00:37:15,530 Je to velmi podobné HTML v mnoha smyslech. 502 00:37:15,530 --> 00:37:22,760 >> To trvá trochu zvyknout, ale nakonec se budete cítit docela pohodlně s ním. 503 00:37:22,760 --> 00:37:31,320 Pojďme aktualizovat text našeho názoru výsledek textu, 504 00:37:31,320 --> 00:37:35,650 a jak jsme dělali, když jsme se dostat, že textové pole pro úpravy v našem jiné činnosti 505 00:37:35,650 --> 00:37:46,630 v MainActivity zde budeme také podobně- 506 00:37:46,630 --> 00:37:54,890 najdeme zobrazení podle ID. 507 00:37:54,890 --> 00:37:59,640 A R, v případě, nezmínil jsem se o to dříve, je odkaz na naše zdroje složky, 508 00:37:59,640 --> 00:38:05,350 a pak ID je odkaz na vše, co v adresáři zdrojů, všechny IDS, 509 00:38:05,350 --> 00:38:10,060 a resultTextView. 510 00:38:10,060 --> 00:38:13,010 A stejně jako dříve, resultTextView je objekt, 511 00:38:13,010 --> 00:38:15,780 což znamená, že má všechny tyto vlastnosti, spojené s ním. 512 00:38:15,780 --> 00:38:20,610 Když používáme gettext pro úpravy textu pro toto textové pole nebo textového zobrazení 513 00:38:20,610 --> 00:38:23,980 můžeme skutečně využít SetText, 514 00:38:23,980 --> 00:38:26,960 a pak už jsme našli zprávu od záměru, 515 00:38:26,960 --> 00:38:35,760 takže mohu říci zprávu, a to bude skutečně nastavit zprávu. 516 00:38:35,760 --> 00:38:41,820 >> Je to chvíli trvat, než zahájit, a pak vidíme, zda je či není zhroucení, 517 00:38:41,820 --> 00:38:48,670 ale všechny otázky týkající se tohoto procesu přímo tam, takové interakce? 518 00:38:48,670 --> 00:38:51,490 V mnoha ohledech je to jednoduché. 519 00:38:51,490 --> 00:38:53,960 Důvod, proč jsem prochází něčím relativně jednoduché 520 00:38:53,960 --> 00:38:57,330 je, znovu, protože dostanete se na interakci mezi rozložení, 521 00:38:57,330 --> 00:38:59,520 zdrojového kódu, jak se věci referenční 522 00:38:59,520 --> 00:39:07,680 a možná si trochu expozici, jak Java tam pracuje. 523 00:39:07,680 --> 00:39:16,500 Pokud bych vlastně něco psát sem, jako Ohai, a pak jsem klepněte na tlačítko 524 00:39:16,500 --> 00:39:22,260 se uvádí na trh novou aktivitu, a tento text pohled říká Ohai. 525 00:39:22,260 --> 00:39:27,640 To je velmi jednoduché, ale doufejme, že po tomto příkladu 526 00:39:27,640 --> 00:39:32,310 jste trochu vidět, jak tato interakce funguje, a teď, když nepořádek souborů 527 00:39:32,310 --> 00:39:36,870 na levé straně všech těchto složek projektů, doufejme, že víte, kde hledat dnes. 528 00:39:36,870 --> 00:39:38,700 Toto je váš zdrojový kód oblasti. 529 00:39:38,700 --> 00:39:41,760 >> Layout je opravdu to jediné, co budete řešit, dokud jsou obrázky 530 00:39:41,760 --> 00:39:46,370 a obrazovkami nebo cokoliv, a hodnoty, bude, že patří řetězce, 531 00:39:46,370 --> 00:39:51,960 Jak jsme se zmínili, a pak stylů je něco, co to něco jako CSS. 532 00:39:51,960 --> 00:39:56,410 Adresa, když chceš, ale dokud se nebudete cítit pohodlně s přidáním zvláštní vkus 533 00:39:56,410 --> 00:40:02,520 pro vaši aplikaci není třeba se starat o to příliš mnoho. 534 00:40:02,520 --> 00:40:07,410 Stačí zabalit jednu další věc, kterou budete určitě chtít zahrnout- 535 00:40:07,410 --> 00:40:13,010 za předpokladu, že chcete integrovat skvělých funkcí a ušetřit nějaké extra kódování, 536 00:40:13,010 --> 00:40:16,460 bude zahrnovat třetí strany knihovny. 537 00:40:16,460 --> 00:40:19,840 Zde je malý kluk s Android Sherlocka Holmese klobouku. 538 00:40:19,840 --> 00:40:23,040 To je akční bar Sherlock knihovna, 539 00:40:23,040 --> 00:40:25,390 což v podstatě znamená, že akční bar jste viděli dříve, 540 00:40:25,390 --> 00:40:29,590 který je nyní standardem v Ice Cream Sandwich a Jelly Bean, 541 00:40:29,590 --> 00:40:33,100 Pokud chcete, aby tento druh uživatelského rozhraní pro uživatele na starší verze 542 00:40:33,100 --> 00:40:39,290 a zachránit se před starostí o tom, jak se uživatel bude pohybovat 543 00:40:39,290 --> 00:40:42,490 Na starších verzích, když ta věc není tam můžete zahrnout tuto knihovnu 544 00:40:42,490 --> 00:40:46,770 a pak stačí odkaz, spíše než výchozí Android 545 00:40:46,770 --> 00:40:50,250 knihovny pro akčním baru, abyste tento podporu knihovny. 546 00:40:50,250 --> 00:40:53,090 >> Věci jako Scoreloop, je to skvělé, pokud budete zahrnovat hru. 547 00:40:53,090 --> 00:40:57,280 To vám umožní přidat vůdce desek a úspěchy na hry. 548 00:40:57,280 --> 00:41:00,900 Admob je způsob, jak dát reklamy do aplikací 549 00:41:00,900 --> 00:41:02,900 v případě, že chcete, aby se trochu peněz z ní. 550 00:41:02,900 --> 00:41:05,730 Samozřejmě, že je Facebook a Twitter pro integraci se 551 00:41:05,730 --> 00:41:08,170 Chcete-li sdílet věci jednoduše, et cetera. 552 00:41:08,170 --> 00:41:15,120 Dropbox, podobně, a Google Analytics je, že graf vypadající tam. 553 00:41:15,120 --> 00:41:19,070 To bude velmi důležité, pokud skutečně chtějí vidět, kdo je interakce 554 00:41:19,070 --> 00:41:25,800 s vaší aplikace, nebo kdo to je, jak se vzájemně ovlivňují, et cetera. 555 00:41:25,800 --> 00:41:30,650 Google ve výchozím nastavení, vám řekne spoustu statistických údajů o tom, kdo má instalovali aplikaci 556 00:41:30,650 --> 00:41:35,020 a jaké telefony mají, co verze operačních systémů, které mají. 557 00:41:35,020 --> 00:41:38,080 Ale pokud chcete vidět, kdo ji používá na denní bázi, a jak používat 558 00:41:38,080 --> 00:41:42,860 pak budete chtít zahrnout nějaký sledovací systém, jako je to. 559 00:41:42,860 --> 00:41:44,990 >> Když jste připraveni k distribuci aplikace 560 00:41:44,990 --> 00:41:46,930 Nepotřebuji jít do toho příliš mnoho hloubky. 561 00:41:46,930 --> 00:41:49,090 Klikněte na odkaz zde, Google Play. 562 00:41:49,090 --> 00:41:51,080 Býval Android Marketu. 563 00:41:51,080 --> 00:41:53,470 Jsou přejmenované vše, co s Google Play, 564 00:41:53,470 --> 00:41:55,230 Takže teď, že předloží. 565 00:41:55,230 --> 00:41:57,140 Je to velmi jednoduché. 566 00:41:57,140 --> 00:42:01,070 Musíte obsahovat popis, několik snímků obrazovky. 567 00:42:01,070 --> 00:42:05,660 Jak jsem řekl, není schvalovací proces jako iOS. 568 00:42:05,660 --> 00:42:07,270 A kam jít teď? 569 00:42:07,270 --> 00:42:09,450 Ukázal jsem vám opravdu jednoduchý příklad. 570 00:42:09,450 --> 00:42:13,270 Doufejme, že pokud se to zdá strašně jednoduché 571 00:42:13,270 --> 00:42:15,740 pak je to asi dobré znamení. 572 00:42:15,740 --> 00:42:20,080 Pokud se vůbec cítil trochu zmatený, nebo si nejste jisti, co přesně jsem psát 573 00:42:20,080 --> 00:42:26,160 to je také v pořádku, ale odtud jděte na Google Guides. 574 00:42:26,160 --> 00:42:28,330 Je to skvělé místo pro start. 575 00:42:28,330 --> 00:42:31,460 Bude vás bavit, co očekávají z hlediska návrhu aplikace, 576 00:42:31,460 --> 00:42:33,380 jak uživatelé obvykle s ní pracovat. 577 00:42:33,380 --> 00:42:36,450 Je to mnohem volná forma než iOS, řekl bych, 578 00:42:36,450 --> 00:42:41,330 které vypadá to, že zobrazení tabulky jsou-Nevím, je to jejich chleba a máslo. 579 00:42:41,330 --> 00:42:44,690 Vše je zobrazení tabulky pohybu nahoru a dolů. 580 00:42:44,690 --> 00:42:48,160 S operačním systémem Android, které jistě motivovat lidi, aby se na to podívat z 581 00:42:48,160 --> 00:42:51,720 celá parta různých perspektiv. 582 00:42:51,720 --> 00:42:56,000 >> Pokud je Software Development Kit v této ADT 583 00:42:56,000 --> 00:43:03,010 Ve výchozím nastavení máte spoustu ukázkových projektů v Android. 584 00:43:03,010 --> 00:43:05,470 Tady, Android, Android ukázkový projekt. 585 00:43:05,470 --> 00:43:11,870 Když kliknu na to, pak si mohu vybrat verzi, pro kterou vzorku projektů požádat. 586 00:43:11,870 --> 00:43:13,300 Je tu celá parta různých věcí zde. 587 00:43:13,300 --> 00:43:16,690 Začíná s kompatibilitou panelu akcí 588 00:43:16,690 --> 00:43:24,610 akcelerometr hra, zálohování a obnovení, Bluetooth, gesto stavitel. 589 00:43:24,610 --> 00:43:28,930 JetBoy je ukázka hry, které vám, jak je LunarLander. 590 00:43:28,930 --> 00:43:31,250 Existuje celá parta ukázkové aplikace zde 591 00:43:31,250 --> 00:43:35,290 a všichni zaměřeny na různé aspekty API Androidu, 592 00:43:35,290 --> 00:43:41,520 a myšlenka je, že, jak si aplikaci 593 00:43:41,520 --> 00:43:44,110 nemusíte se učit vše o Androidu, aby android aplikace. 594 00:43:44,110 --> 00:43:47,300 Stačí se jen seznámit s díly, které jste vlastně jít použít. 595 00:43:47,300 --> 00:43:49,340 Podívejte se na těchto vzorových knihoven. 596 00:43:49,340 --> 00:43:51,510 Neváhejte a zkopírovat a vložit kód, a znovu ji. 597 00:43:51,510 --> 00:43:53,850 Je to skvělá věc, podívat se na složitější kód 598 00:43:53,850 --> 00:43:57,060 a pokusit se pochopit, což je samozřejmě důvod, proč v CS50 599 00:43:57,060 --> 00:44:01,510 často vám velké množství zdrojového kódu. 600 00:44:01,510 --> 00:44:04,620 Podívejte se na některé z nich, pokud se chystáte používat podobné knihovny 601 00:44:04,620 --> 00:44:08,630 a pak použít pro své vlastní kód. 602 00:44:08,630 --> 00:44:10,430 A samozřejmě, tam jsou návody. 603 00:44:10,430 --> 00:44:12,690 Hledat cvičení. 604 00:44:12,690 --> 00:44:17,020 Našel jsem mnoho dobrých on-line, které může přinést až do rychlosti 605 00:44:17,020 --> 00:44:20,080 s tím, co Fragmenty opravdu jsou a jak je můžete použít. 606 00:44:20,080 --> 00:44:22,240 >> Některé z těchto nových konstrukčních věci, jako fragmenty, 607 00:44:22,240 --> 00:44:26,840 Opravdu nemusíte se obávat, pokud děláte 608 00:44:26,840 --> 00:44:30,560 docela velký v rozsahu projektu. 609 00:44:30,560 --> 00:44:32,510 Jsou to věci, které Google se snaží postupně palců 610 00:44:32,510 --> 00:44:35,570 StackOverflow je samozřejmě váš přítel. 611 00:44:35,570 --> 00:44:37,930 Doufám, že ti prodal trochu na Android, 612 00:44:37,930 --> 00:44:41,640 si uvědomil, že je to mnohem jednodušší přistupovat z hlediska jen kódování jazyka. 613 00:44:41,640 --> 00:44:45,970 Java je řekl bych, že mnohem srozumitelnější než Objective-C. 614 00:44:45,970 --> 00:44:50,780 Android je stále myslím, že mnohem víc než iOS. 615 00:44:50,780 --> 00:44:54,890 Myslím, že data jsou tam taky, kromě toho, co si myslím. 616 00:44:54,890 --> 00:44:56,920 To bude asi na chvíli, 617 00:44:56,920 --> 00:45:00,880 a jsou několik let pozadu, pokud jde o jejich designu cyklů, 618 00:45:00,880 --> 00:45:04,690 takže je to trochu pochopitelné, že stále pracujeme přes některé z nich 619 00:45:04,690 --> 00:45:09,080 konzistence otázky, jako je tento panelu akcí je nová věc pro ně stále, 620 00:45:09,080 --> 00:45:16,010 druh vytvoření podobné zkušenosti uživatelů napříč všemi aplikacemi,. 621 00:45:16,010 --> 00:45:20,650 Doufejme, že můžete jít dopředu a nyní otevírají Eclipse 622 00:45:20,650 --> 00:45:22,870 a vyrobit si vlastní Android aplikace. 623 00:45:22,870 --> 00:45:30,240 >> Má někdo nějaké otázky, než se zabalit o něčem? 624 00:45:30,240 --> 00:45:34,410 Mohu vám říci, že odpověď je 42. 625 00:45:34,410 --> 00:45:41,990 No, šťastný kódování všem, a hodně štěstí. 626 00:45:41,990 --> 00:45:44,990 [CS50.TV]