1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Seminar] [Android Apps (Zdaj z žele bonboni!)] 2 00:00:02,610 --> 00:00:04,210 [Jordan Jóźwiak] [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 >> Pozdravljeni vsi in dobrodošli na Android Apps (Zdaj z žele bonboni!) Seminarja. 5 00:00:11,600 --> 00:00:14,530 To je imenovano Zdaj z žele bonboni, seveda, saj 6 00:00:14,530 --> 00:00:17,310 Najnovejša različica OS se imenuje Jelly Bean. 7 00:00:17,310 --> 00:00:22,950 Ko sem govoril o Androidu lani in se je to v bistvu isti seminar 8 00:00:22,950 --> 00:00:29,150 Sem bila predstavitev načrtovalskih vzorcev in slogovne usmeritve za Gingerbread, 9 00:00:29,150 --> 00:00:31,250 čeprav Ice Cream Sandwich pridejo ven takrat, 10 00:00:31,250 --> 00:00:33,680 in to je nekaj, kar bomo govorili o gredo naprej malo. 11 00:00:33,680 --> 00:00:35,720 Android, seveda, ima nekaj težav z drobljenjem, 12 00:00:35,720 --> 00:00:40,240 Tako najnovejši operacijski sistem Google je običajno 13 00:00:40,240 --> 00:00:44,710 ni res dogaja, da postane pogost med uporabniki potencialno do enega leta, žal. 14 00:00:44,710 --> 00:00:49,960 >> Brez upoštevanja, da bomo govorili o veliko razlogov, zakaj 15 00:00:49,960 --> 00:00:53,000 Android je veliko boljši od iOS. 16 00:00:53,000 --> 00:00:56,410 Ok, bomo govorili o Android primerjavi iOS, 17 00:00:56,410 --> 00:00:59,770 nekateri oblikovanja paradigme, kako se boš ustanovljeni v samo en diapozitiv, 18 00:00:59,770 --> 00:01:03,410 in velika razlika med tem in preteklem letu je samo želim 19 00:01:03,410 --> 00:01:06,860 zoom skozi nekaj konceptualnih stvari delajo z 20 00:01:06,860 --> 00:01:09,950 operacijski sistem in nato šel v resnici osnovni primer. 21 00:01:09,950 --> 00:01:13,730 V resnici, samo primer, ki opisuje Google za gradnjo vaše prvo aplikacijo, 22 00:01:13,730 --> 00:01:17,070 in bova šla skupaj skozi in samo opisati. 23 00:01:17,070 --> 00:01:22,100 >> Vem, da mnogi od vas so kodirani samo v C, tako da je Java že bo 24 00:01:22,100 --> 00:01:27,220 drugačen pogled, in na ta način boste dobili noge mokre 25 00:01:27,220 --> 00:01:31,540 in se počutim malo bolj udobno z njim upam. 26 00:01:31,540 --> 00:01:35,330 Hiter povzetek, Android v primerjavi z iOS. 27 00:01:35,330 --> 00:01:39,200 V Android tam je to enkratna razvijalec pristojbino v višini $ 25, 28 00:01:39,200 --> 00:01:42,390 nič od tega 100 $ na leto stvar. 29 00:01:42,390 --> 00:01:45,440 Ni nobenih omejitev, kar pomeni, da če želim, da predloži app, 30 00:01:45,440 --> 00:01:51,560 Pravkar sem ga predložiti, in ni postopek odobritve, kot je za iOS. 31 00:01:51,560 --> 00:01:53,890 Dobiš za razvoj z uporabo Eclipse Java, 32 00:01:53,890 --> 00:01:57,090 ki je navzkrižno platformo, tako da ni važno, če imate Mac, 33 00:01:57,090 --> 00:01:59,600 Windows ali Linux nekateri stroj. 34 00:01:59,600 --> 00:02:03,730 Seveda, z iOS boste morali uporabiti Xcode na Mac, 35 00:02:03,730 --> 00:02:06,930 in Android uporablja veliko več ljudi, 36 00:02:06,930 --> 00:02:11,580 tako da, če želite, da vaš app, da so neke vrste vidljivosti ali morda 37 00:02:11,580 --> 00:02:14,110 da bi nekaj denarja od oglasov 38 00:02:14,110 --> 00:02:17,450 ste bolj verjetno, da izkoristijo Android. 39 00:02:17,450 --> 00:02:20,630 >> In še ena stvar, ki je že od nekdaj znano o Androidu 40 00:02:20,630 --> 00:02:25,100 je skrajni znesek prilagoditev, medtem ko je iOS zelo določen v svojih pogledih 41 00:02:25,100 --> 00:02:29,380 tako da lahko ohranijo varnost in nadzor nad vsako malo vidik 42 00:02:29,380 --> 00:02:34,180 oblikovanja v njihovi OS in posamezne aplikacije. 43 00:02:34,180 --> 00:02:40,180 Android je zelo prosti obliki, in tam je toliko več možnosti. 44 00:02:40,180 --> 00:02:42,530 Ok, nekateri oblikovanja paradigme. 45 00:02:42,530 --> 00:02:49,600 Obvestilo tu tako kot iOS ima tablete in iPhone in iPod Dotiki 46 00:02:49,600 --> 00:02:53,840 imajo podporo, recimo, kot ducat napravami, če želite, da podprejo 47 00:02:53,840 --> 00:02:55,450 zgodovinskih stvari, kot dobro. 48 00:02:55,450 --> 00:02:58,410 Z Androidom lahko podprete stotine naprav, 49 00:02:58,410 --> 00:03:01,240 tako da obstaja nekaj stvari, ki je bil Google poskuša izvajati 50 00:03:01,240 --> 00:03:04,970 da uporabnik pride malo bolj dosledno, 51 00:03:04,970 --> 00:03:08,560 ampak bomo govorili tudi o tem, kako to pomeni, da so vprašanja fragmentacije 52 00:03:08,560 --> 00:03:11,700 da ste nenehno morali zavedati podporo. 53 00:03:11,700 --> 00:03:16,140 Razdrobljenost pomeni, da obstaja veliko različnih operacijskih sistemov, 54 00:03:16,140 --> 00:03:20,330 veliko različnih telefonov z različno strojno opremo teče Android vse ob istem času 55 00:03:20,330 --> 00:03:29,680 tako da je ta graf tukaj gre spet za približno 6 mesecev. 56 00:03:29,680 --> 00:03:36,460 Ja, 6 mesecev, in si lahko ogledate, kako najtemnejšo pas 57 00:03:36,460 --> 00:03:39,330 na dnu je Jelly Bean, ki je prišel ven čez poletje, 58 00:03:39,330 --> 00:03:42,970 in lahko vidite, zdaj verjetno okoli 2% od telefonov ga imate. 59 00:03:42,970 --> 00:03:45,520 >> Ice Cream Sandwich je prišel ven pred letom dni, 60 00:03:45,520 --> 00:03:47,770 in četrtina telefonov ga imate. 61 00:03:47,770 --> 00:03:53,910 Obstaja še veliko telefonov, ki uporabljajo različico OS od pred leti. 62 00:03:53,910 --> 00:03:57,820 Ena stvar, ki jo je Google poskušal narediti, da bi uporabniško izkušnjo 63 00:03:57,820 --> 00:04:01,400 Veliko bolj dosleden apps se začne s Honeycomb, 64 00:04:01,400 --> 00:04:04,320 ki je različica tableta, nato Ice Cream Sandwich in Jelly Bean, 65 00:04:04,320 --> 00:04:06,750 oni so res poskušali poudariti uporabo tega akcijskega bar, 66 00:04:06,750 --> 00:04:10,430 , ki je tisto, kar lahko vidite na vrhu tukaj, 67 00:04:10,430 --> 00:04:14,730 Vse tukaj, vključno s tem gumbom malo nastavitve. 68 00:04:14,730 --> 00:04:16,079 To je izbira oblikovanja. 69 00:04:16,079 --> 00:04:18,000 Zdaj, ko ste videli 3 pike, to pomeni, kliknite na to, 70 00:04:18,000 --> 00:04:21,880 in bo spustnem meniju, ki ima neke vrste nastavitev. 71 00:04:21,880 --> 00:04:28,900 To samo kaže gor, ker sem kliknil na ta gumb. 72 00:04:28,900 --> 00:04:32,040 To je nekaj, kar poskušajo uporabiti, da bi aplikacije malo bolj dosledno 73 00:04:32,040 --> 00:04:39,210 čez krov in tako ima uporabnik boljši občutek za enotno izkušnjo. 74 00:04:39,210 --> 00:04:42,640 >> Ok, tako da v primeru, da niso storili že prej, ali če ste gledal doma 75 00:04:42,640 --> 00:04:50,210 potem lahko sledite tem korakom, da nastavite kodiranje okolja. 76 00:04:50,210 --> 00:04:52,630 To bo vključevalo bo na spletni strani tukaj. 77 00:04:52,630 --> 00:04:56,260 Lahko Google namestitvijo Android SDK 78 00:04:56,260 --> 00:04:59,130 in sledite nekaj opisov tam. 79 00:04:59,130 --> 00:05:01,310 So vam povem vse. 80 00:05:01,310 --> 00:05:05,160 Imajo namestite SDK prenos Eclipse Classic različico, 81 00:05:05,160 --> 00:05:07,450 čeprav, seveda, smo kodiranja v Javi. 82 00:05:07,450 --> 00:05:12,190 Ti priporočam tole, potem pa to ADT, razvojna orodja Android, 83 00:05:12,190 --> 00:05:17,300 je plugin, ki ga namestite v Eclipse, ki vam omogoča, da 84 00:05:17,300 --> 00:05:20,550 imajo precej bolj usmerjeno izkušnjo z Android v Eclipse. 85 00:05:20,550 --> 00:05:24,070 To vam bo dala nekaj grafičnih uporabniških vmesnikov 86 00:05:24,070 --> 00:05:29,610 za oblikovanje stališča, in to vam bo dala veliko več podpore 87 00:05:29,610 --> 00:05:34,840 in sposobnost, da začnejo z emulatorjem in vse te stvari. 88 00:05:34,840 --> 00:05:36,090 Programski okvir. 89 00:05:36,090 --> 00:05:41,590 >> Rad bi govoril o tem, kako so strukturirani projekti v Android, 90 00:05:41,590 --> 00:05:44,830 in potem bomo šli v hiter primer, in upajmo 91 00:05:44,830 --> 00:05:48,820 lahko postavljajo vprašanja na kateri koli točki in se dobro počutil do konca tega. 92 00:05:48,820 --> 00:05:50,090 Prva imamo nekaj žargonu. 93 00:05:50,090 --> 00:05:55,330 Dejavnost je kot zaslona vidite, ko zaženete aplikacijo. 94 00:05:55,330 --> 00:05:57,840 Celotna izkušnja je sama dejavnost, 95 00:05:57,840 --> 00:06:00,790 tako da bi lahko o njej mislijo kot zaslon ali pogled, 96 00:06:00,790 --> 00:06:04,540 ampak to je dejansko kodo strani vir njo. 97 00:06:04,540 --> 00:06:12,680 Še vedno pokličete dejansko vmesnika del tega pogleda. 98 00:06:12,680 --> 00:06:17,230 To je nekaj podobnega, kako smo v pset 7 imel krmilnik in nato pogled. 99 00:06:17,230 --> 00:06:20,690 Aktivnost je bolj ali manj krmilnik, 100 00:06:20,690 --> 00:06:23,360 in pogled je tisto, kar počnemo v smislu XML 101 00:06:23,360 --> 00:06:25,260 , ki je povezana s to dejavnostjo. 102 00:06:25,260 --> 00:06:29,340 Fragmenti so nekaj, kar se izvaja na Ice Cream Sandwich, gredo naprej. 103 00:06:29,340 --> 00:06:36,380 To je samo ideja o čemer dele pogledu ali dejavnost 104 00:06:36,380 --> 00:06:39,990 in jih razvrstili v ločenih prostorih, tako da smo lahko 105 00:06:39,990 --> 00:06:45,030 bo naša koda bolj uporaben za te različne naprave 106 00:06:45,030 --> 00:06:51,890 da moramo podpreti, in to je samo način, da poskuša 107 00:06:51,890 --> 00:06:54,290 tudi dejavnik izvedeti več kode. 108 00:06:54,290 --> 00:07:01,090 Storitve so v ozadju stvari, kot so predvajanje glasbe ali navigacijske napotke potencialno. 109 00:07:01,090 --> 00:07:05,640 Ponudniki vsebin, so API znotraj operacijskega sistema 110 00:07:05,640 --> 00:07:09,070 , ki vam omogoča dostop do skupnih podatkov, kot so kontaktni podatki, 111 00:07:09,070 --> 00:07:12,790 in potem namen je nekaj, kar bomo uporabili, ko smo želeli začeti 112 00:07:12,790 --> 00:07:17,210 nova dejavnost od naše trenutne aktivnosti. 113 00:07:17,210 --> 00:07:20,980 >> Pozdravljeni Android, to se bo projekt, ki ga bomo govorili o tem. 114 00:07:20,980 --> 00:07:25,410 Jaz bom dejansko stori za vas, in potem bomo nekaj narediti, kjer kliknite na gumb 115 00:07:25,410 --> 00:07:27,650 z nekaj besedila in začne z novo dejavnostjo. 116 00:07:27,650 --> 00:07:30,110 Zelo enostavna, ampak želim, da gredo skozi 117 00:07:30,110 --> 00:07:34,480 kaj bo šel v projekt, kot je ta. 118 00:07:34,480 --> 00:07:39,260 Ko bo nov projekt, boste videli v Eclipse 119 00:07:39,260 --> 00:07:41,900 da je to projekt, imenovan Hello Android. 120 00:07:41,900 --> 00:07:43,470 Potem so tu še cel kup map tukaj. 121 00:07:43,470 --> 00:07:46,760 Tiste, ki ste res zaskrbljeni nad mapo vir, 122 00:07:46,760 --> 00:07:54,540 mapa vir, RES, in do neke mere mapo libs za knjižnice. 123 00:07:54,540 --> 00:08:00,070 In samo zato, da smo na isti strani, da z 124 00:08:00,070 --> 00:08:03,240 če ste bili, da ustvarite nov projekt, 125 00:08:03,240 --> 00:08:08,270 lahko storite to pravico tukaj, tako da, če hočem, da ga pokličete HelloAndroid, 126 00:08:08,270 --> 00:08:11,100 in ga nato samodejno naredi cel kup informacij za nas. 127 00:08:11,100 --> 00:08:14,110 Ime Paket naj bi posebni identifikator 128 00:08:14,110 --> 00:08:16,710 ki bi se običajno povezana s spletno stranjo, če bi imeli eno. 129 00:08:16,710 --> 00:08:24,430 >> Na primer, bom poklical ta net.cs50.helloandroid. 130 00:08:24,430 --> 00:08:30,070 In sem že ta projekt enkrat. 131 00:08:30,070 --> 00:08:40,059 Ok, oprosti. Recimo, da HelloCS50 pokličite. 132 00:08:40,059 --> 00:08:42,929 In potem se bo vprašati stvari, kot kakšno ikone ne želimo, da bi. 133 00:08:42,929 --> 00:08:48,840 To je vse zaradi razvijalce vmesnika Android Orodja 134 00:08:48,840 --> 00:08:53,350 plugin, da smo dodali Eclipse, tako da bomo lahko izberete stvari, kot so 135 00:08:53,350 --> 00:08:58,320 kakšna ikona želimo, in da bo šel v tej globini, če želimo. 136 00:08:58,320 --> 00:09:04,360 Toda na koncu, samo da projekt, 137 00:09:04,360 --> 00:09:07,040 in vse kaže, tukaj gor. 138 00:09:07,040 --> 00:09:10,030 Kot sem pokazal na drugi zaslon, 139 00:09:10,030 --> 00:09:14,070 imamo mapo vir, in bom govoril o tem, kaj vse to prej pomeni, 140 00:09:14,070 --> 00:09:19,090 vendar pa lahko vidite, da takoj nas popelje v HelloCS50 zaslonu. 141 00:09:19,090 --> 00:09:24,690 Obstaja nekaj gumbov več tukaj za dodajanje besedila in besedila postavitve polj. 142 00:09:24,690 --> 00:09:28,910 To je nekako tako kot Xcode, vendar na žalost ni tako zelo poenostavljeno. 143 00:09:28,910 --> 00:09:37,790 Vendar bo izrezki biti tvoj prijatelj in ADT zlasti za to. 144 00:09:37,790 --> 00:09:40,920 >> Ok, mapa vir, kjer 145 00:09:40,920 --> 00:09:43,820 datoteke Java potekajo, in to je pravzaprav začetek vašega programa. 146 00:09:43,820 --> 00:09:45,990 To je v bistvu kot kontrolorji. 147 00:09:45,990 --> 00:09:49,020 Mapa vir ali res je, če bomo še naprej postavitve zaslona, 148 00:09:49,020 --> 00:09:54,110 slike, zvok, besedilo, animacije in vse ostalo, libs, seveda, knjižnice. 149 00:09:54,110 --> 00:10:01,700 In Manifest, to je način, da sistem Android ve 150 00:10:01,700 --> 00:10:03,130 kako za interakcijo z vašega app. 151 00:10:03,130 --> 00:10:07,980 Jo pripoveduje o dovoljenjih in katere dejavnosti bodo dejansko deluje. 152 00:10:07,980 --> 00:10:12,350 To je vse bistvene informacije, ki jih je potrebno zagnati vaš app. 153 00:10:12,350 --> 00:10:17,990 Mapa vir, če smo ga razširili, kot lahko vidite tukaj. 154 00:10:17,990 --> 00:10:23,920 In primer, ki bi koda poglej-to je privzeta koda. 155 00:10:23,920 --> 00:10:27,930 Kot smo jo imenovali, MainActivity. 156 00:10:27,930 --> 00:10:33,230 Privzeto je, da smo dobili onCreate, ki je funkcija, ki se sproži ob obremenitve to dejavnost, 157 00:10:33,230 --> 00:10:37,150 tako da boste želeli poklicati onCreate (savedInstanceState). 158 00:10:37,150 --> 00:10:40,440 To bo ponovno vse bitov informacij 159 00:10:40,440 --> 00:10:44,910 v primeru, je app prekinjeno. 160 00:10:44,910 --> 00:10:48,790 >> Tam je vsa dejavnost diagram življenjskega cikla, ki si lahko ogledate 161 00:10:48,790 --> 00:10:50,380 ko boš dobil malo bolj poglobljeno v njej, 162 00:10:50,380 --> 00:10:56,210 vendar pa je najpomembnejše vrstica kode je ta funkcija setContentView 163 00:10:56,210 --> 00:11:00,290 ki bo obremenitev datoteko virov za postavitev. 164 00:11:00,290 --> 00:11:03,590 Kaj onCreate tukaj je v bistvu delaš, potem je to govori 165 00:11:03,590 --> 00:11:07,010 ko sem ustvariti to dejavnost hočem naložiti to postavitev. 166 00:11:07,010 --> 00:11:12,030 In bomo govorili o tem, kaj da je postavitev v drugi. 167 00:11:12,030 --> 00:11:16,230 Če smo bili začeti, da tukaj je videti natanko tako kot je ta, 168 00:11:16,230 --> 00:11:22,880 in privzeto, ker smo Eclipse tem in ADT to počne za nas 169 00:11:22,880 --> 00:11:28,210 to je vse boilerplate kodo, ki je ustvarjena za nas, 170 00:11:28,210 --> 00:11:34,630 in gremo lahko naprej in spremeniti stvari, kot smo želeli. 171 00:11:34,630 --> 00:11:38,190 Mapa virov, kot sem rekel, to je, če imamo vse postavitve, 172 00:11:38,190 --> 00:11:41,150 drawables glede na kakršno koli podob- 173 00:11:41,150 --> 00:11:46,360 oni imenujejo drawables-in nato zvočne datoteke, menije. 174 00:11:46,360 --> 00:11:51,170 To je način cel kup XML v lepo sortirane način. 175 00:11:51,170 --> 00:11:58,030 Kot lahko vidite, obstajajo. Hdpi, ldpi, mdpi in xhdpi mape za drawables. 176 00:11:58,030 --> 00:12:02,220 To so različni zaslon gostote, tako visoko gostoto pik na palec, 177 00:12:02,220 --> 00:12:05,710 nizke gostote, srednje gostote, ekstra visoke gostote. 178 00:12:05,710 --> 00:12:08,900 >> To je, še enkrat, tako da bomo lahko podpre vse te različne naprave, 179 00:12:08,900 --> 00:12:15,100 in v najboljšem primeru, boste imeli različne slike za vsako različno ločljivostjo. 180 00:12:15,100 --> 00:12:20,740 Postavitve so kje smo vključiti vse različne postavitve, ki bodo uporabljene v različnih dejavnostih. 181 00:12:20,740 --> 00:12:24,150 Zajemajo lahko tudi postavitve za fragmentov, 182 00:12:24,150 --> 00:12:26,670 kar pomeni, delne aktivnosti v bistvu. 183 00:12:26,670 --> 00:12:29,610 Če želite narediti nekaj kul kot vedno, ko zavrtite telefon 184 00:12:29,610 --> 00:12:33,900 si želim, da bi imela drugačno postavitev lahko storite postavitve-pokrajine kot drugo mapo 185 00:12:33,900 --> 00:12:39,000 in Android avtomatično ima cel kup teh pravil v mapi virov, 186 00:12:39,000 --> 00:12:44,690 tako da bo vedel, da pogled na različne mape, ki temeljijo na trenutnem nastavitev telefona, 187 00:12:44,690 --> 00:12:46,740 kakšno strojno opremo, ki jo uporabljate. 188 00:12:46,740 --> 00:12:52,350 Prav tako ta vrednote-v11 tukaj in vrednote-v14 189 00:12:52,350 --> 00:12:55,460 in privzete vrednosti mapo, to je za- 190 00:12:55,460 --> 00:13:01,730 Tudi vrednosti sama po sebi, to bodo privzete vrednosti v vseh različicah operacijskega sistema. 191 00:13:01,730 --> 00:13:06,390 Po drugi strani, V11 in V14 ustrezajo Honeycomb 192 00:13:06,390 --> 00:13:08,780 in Ice Cream Sandwich, respectively. 193 00:13:08,780 --> 00:13:12,800 Še enkrat, to so načini, da se-v teh mapah so različni nizi 194 00:13:12,800 --> 00:13:17,550 in stilov, tako da lahko prilagodite videz vašega app 195 00:13:17,550 --> 00:13:22,660 ali morda celo njegova funkcionalnost, čeprav bi bilo to verjetno slaba ideja, 196 00:13:22,660 --> 00:13:25,890 temelji na različici operacijskega sistema. 197 00:13:25,890 --> 00:13:28,760 >> In jaz sem govoril o vsem tem tukaj. 198 00:13:28,760 --> 00:13:35,870 Še enkrat, vlek, surove, postavitev, vrednote. 199 00:13:35,870 --> 00:13:41,380 Neplačil, če gremo v Hello Hello Android ali CS50 prav zdaj 200 00:13:41,380 --> 00:13:43,310 bo videti tako, kot je ta. 201 00:13:43,310 --> 00:13:45,800 To bo pozdravit svet. 202 00:13:45,800 --> 00:13:58,430 Kot lahko vidite tukaj z besedilom Android 203 00:13:58,430 --> 00:14:04,420 Besedilo za tem pogledu besedilo, ki je v bistvu samo nalepka, 204 00:14:04,420 --> 00:14:06,900 je tisto, kar bi mu pravimo v iOS. 205 00:14:06,900 --> 00:14:11,580 To je to smešno zapis @ niza / hello_world. 206 00:14:11,580 --> 00:14:16,200 To je tako, bomo lahko, bomo poskušali izločiti vse strune, 207 00:14:16,200 --> 00:14:19,740 vse trdo kodiranih nizov v Android v posebno mapo, 208 00:14:19,740 --> 00:14:23,610 ki se zgodi, da se v values.strings. 209 00:14:23,610 --> 00:14:29,300 Če pogledamo tukaj, lahko vidimo, da imamo močno kodirano niz tu shranjeno 210 00:14:29,300 --> 00:14:33,910 za zdravo svet, in to se imenuje zdravo svet, in to je neke vrste 211 00:14:33,910 --> 00:14:39,230 skupna odločitev oblikovanje v številnih platformah, ki jih želite, 212 00:14:39,230 --> 00:14:41,780 strune so vrste stvari, ki jih želimo potencialno lahko spremenili. 213 00:14:41,780 --> 00:14:48,050 Nočemo, da bi za nadzor F v naši kode datoteki vira v naši XML. 214 00:14:48,050 --> 00:14:50,760 Želimo, da bi lahko to spremenilo, ko smo dobili priložnost. 215 00:14:50,760 --> 00:14:53,640 >> Ta datoteka XML, strings.xml, je način pridobivanja 216 00:14:53,640 --> 00:14:56,710 težko kodirane strune ki bi sicer bili v naših postavitve virov 217 00:14:56,710 --> 00:15:03,530 ali pa v naši izvorni kodi. 218 00:15:03,530 --> 00:15:08,190 Očitna je, če se držimo te bistvene informacije o aplikaciji. 219 00:15:08,190 --> 00:15:11,050 To vključuje ime paketa. Da mora biti enotni identifikator. 220 00:15:11,050 --> 00:15:16,020 Za razliko od App Store za iOS imeni aplikacij 221 00:15:16,020 --> 00:15:19,980 ne bi bilo treba biti edinstven, in lahko dejansko spremeniti ime svoje vloge 222 00:15:19,980 --> 00:15:23,570 po tem, ko ga predloži, tako da, če začnem ven z Angry Birds, 223 00:15:23,570 --> 00:15:26,840 in potem sem naredimo posodobitev in ne želim, da izdamo novo različico 224 00:15:26,840 --> 00:15:34,230 Mislim, da bi to lahko Angry Birds pokličite 2, ko sem na istem javnost cikel. 225 00:15:34,230 --> 00:15:36,780 To bi le prikazal kot posodobitev. 226 00:15:36,780 --> 00:15:39,790 Edina stvar, ki mora biti edinstvena, je to ime paketa, 227 00:15:39,790 --> 00:15:41,280 ki bo veliko ljudi ne vidim. 228 00:15:41,280 --> 00:15:44,680 No, boš videl le, če ste iskali na izvorno kodo, ali če obstaja neke vrste napake. 229 00:15:44,680 --> 00:15:47,580 Sestavni deli vključujejo dejavnosti, zato smo morali prijaviti 230 00:15:47,580 --> 00:15:49,070 kakršno koli dejavnost, ki jih uporabljamo. 231 00:15:49,070 --> 00:15:53,430 Ta je dovoljenje reč. 232 00:15:53,460 --> 00:15:58,150 >> Ker Android nima tega strogega postopka prijave 233 00:15:58,150 --> 00:16:02,210 za oddajo aplikacij, namesto ti pač vse, kar temelji off z dovoljenji 234 00:16:02,210 --> 00:16:04,300 in izjavlja stvari v manifestu. 235 00:16:04,300 --> 00:16:06,380 SDK različica je prav tako pomembna. 236 00:16:06,380 --> 00:16:10,330 Mi lahko nastavite z uporabo kot SDK minimalno nekaj različic. 237 00:16:10,330 --> 00:16:16,010 Očitno je, da želite ustvariti kodo 238 00:16:16,010 --> 00:16:18,570 in oblikovanje za novejše operacijske sisteme. 239 00:16:18,570 --> 00:16:20,840 Morda ni najnovejši, morda ne Jelly Bean. 240 00:16:20,840 --> 00:16:23,610 Morda želite oblikovati predvsem za Ice Cream Sandwich, 241 00:16:23,610 --> 00:16:27,120 čeprav so precej enake v smislu konstrukcijskih odločitev 242 00:16:27,120 --> 00:16:30,550 in dejanske knjižnice in API. 243 00:16:30,550 --> 00:16:36,250 Toda namesto da bi imeli ljudi 244 00:16:36,250 --> 00:16:40,050 v prvotni različici Android-všeč Donut poti nazaj, ko- 245 00:16:40,050 --> 00:16:43,420 ki se še vedno zgodi, da se z uporabo, ki poskušajo prenesti aplikacijo in potem reči 246 00:16:43,420 --> 00:16:46,160 ne deluje na mojem telefonu lahko nastavite minimalno različico 247 00:16:46,160 --> 00:16:48,620 in je bilo Gingerbread ali Ice Cream Sandwich 248 00:16:48,620 --> 00:16:53,300 ali karkoli boste počutili udobno posredovanje izjave. 249 00:16:53,300 --> 00:16:57,170 In to je primer manifesta. Mi lahko ogledate na dejansko ena v bit. 250 00:16:57,170 --> 00:17:00,900 >> Ok, bomo šele iti naprej z demo zdaj. 251 00:17:00,900 --> 00:17:08,900 To je demo, če Google Android graditi svojo prvo aplikacijo ali kaj podobnega. 252 00:17:08,900 --> 00:17:12,089 Šli bomo skozi vse, kar se dogaja tam, 253 00:17:12,089 --> 00:17:17,690 in žal, samo za referenco, ki tukaj pozna Java do take mere? 254 00:17:17,690 --> 00:17:28,310 Ok, tako da Java je novo kodiranje jezik za večino ljudi, ki prihajajo iz CS50. 255 00:17:28,310 --> 00:17:31,850 Na kratko, da gredo spet kaj piše tukaj, 256 00:17:31,850 --> 00:17:35,580 tisto, kar smo želeli storiti, je, namesto prilagoditev te Hello World aplikacijo 257 00:17:35,580 --> 00:17:38,620 da vse kar naredi je, da začenja in pravi, zdravo svet 258 00:17:38,620 --> 00:17:43,580 in ga pozdravi CS50 na vrhu, ker to je ime dejavnost 259 00:17:43,580 --> 00:17:47,190 bomo poskušali narediti polje z besedilom in gumb 260 00:17:47,190 --> 00:17:50,680 tako da, ko smo na ta gumb bo trajalo besedilo 261 00:17:50,680 --> 00:17:53,660 iz polja z besedilom in začeti novo dejavnost, in to bodo rekli 262 00:17:53,660 --> 00:17:58,380 ne glede na to besedilo omenjeni v aktivnosti, kar je razmeroma preprost. 263 00:17:58,380 --> 00:18:00,650 To ni zelo zanimivo. Si ne bi želel, da izpustijo vse aplikacije, kot je ta. 264 00:18:00,650 --> 00:18:03,880 Ampak to kaže nekatere pomembne oblikovne stvari. 265 00:18:03,880 --> 00:18:07,030 >> Bomo morali za interakcijo z manifesta, s postavitvijo datotek, 266 00:18:07,030 --> 00:18:12,440 z izvorno kodo, in si lahko ogledate, kako začeti eno dejavnost od drugega. 267 00:18:19,740 --> 00:18:23,060 Bomo začeli z načrtom za našega prvega dejavnosti, 268 00:18:23,060 --> 00:18:27,320 kar vem, da je vrsta majhnih, 269 00:18:27,320 --> 00:18:32,660 ampak kot lahko vidite zdaj, vse, kar je, je, da ima naš logotip, da smo ustvarili, 270 00:18:32,660 --> 00:18:36,310 ime dejavnost, in pravi Zdravo svet v centru. 271 00:18:36,310 --> 00:18:40,400 Namesto tega sem prvič dogaja, da bi to v linearno obliko, 272 00:18:40,400 --> 00:18:42,350 relativna postavitev, in to so vse stvari 273 00:18:42,350 --> 00:18:45,870 si lahko pogledate in so vredni šli čez na neki točki v smislu postavitve. 274 00:18:45,870 --> 00:18:47,310 To je zelo podobna HTML. 275 00:18:47,310 --> 00:18:52,640 Rekli smo, da to ni res vredno vedeti glede na programski smislu, 276 00:18:52,640 --> 00:18:55,840 vendar obstaja toliko različnih postavitvah lahko nadzor, 277 00:18:55,840 --> 00:18:57,970 in to je tako kot CSS v smislu stilov. 278 00:18:57,970 --> 00:19:01,590 >> Obstaja veliko dogaja samo v smislu estetike tukaj, 279 00:19:01,590 --> 00:19:08,930 in ja, to je vredno učenja, vendar je reč, ki jo je treba poiskati 280 00:19:08,930 --> 00:19:11,810 kot greš in čutite, da potrebujete nekaj novega. 281 00:19:11,810 --> 00:19:17,030 Jaz lahko izkoristite nekaj ADT orodij tu vsaj, da začnete s. 282 00:19:17,030 --> 00:19:21,930 Poskrbel bom, polje z besedilom, in mi bo gumb. 283 00:19:21,930 --> 00:19:24,100 Jih dal zraven drugega. 284 00:19:24,100 --> 00:19:28,200 So že ustrezno velikost. 285 00:19:28,200 --> 00:19:31,320 Oprostite, spet vrača na razliko med linearno postavitev in relativno postavitev, 286 00:19:31,320 --> 00:19:34,830 linearna postavitev daje malo več funkcionalnosti 287 00:19:34,830 --> 00:19:38,720 glede na polnjenje prostora in zagotoviti 288 00:19:38,720 --> 00:19:42,790 smo naravnani stvari, vodoravno ali navpično. 289 00:19:42,790 --> 00:19:46,130 Velika razlika med linearno postavitev in relativno postavitev 290 00:19:46,130 --> 00:19:50,250 je relativna postavitev pozicije vse glede drugih pogledov 291 00:19:50,250 --> 00:19:52,630 in dobra stvar je, da je potrebno manj časa za pripravo 292 00:19:52,630 --> 00:19:56,120 ker operacijski sistem obravnava vse kodo in pravi, da to gre 293 00:19:56,120 --> 00:19:58,270 glede na to tukaj, tukaj. 294 00:19:58,270 --> 00:20:03,170 To pomeni, da naredi manj meritve, kot cel kup ugnezdenih linearnih postavitvah, 295 00:20:03,170 --> 00:20:06,840 kar bi morali storiti, če sem hotel stvari gredo vertikalno tukaj. 296 00:20:06,840 --> 00:20:10,510 >> Sem že nekatere stvari gredo vodoravno, tako da bi potreboval drugačno linearno postavitev 297 00:20:10,510 --> 00:20:14,560 Da bi jih gnezdo navpično, ampak če sem delal relativno postavitev lahko rečem 298 00:20:14,560 --> 00:20:18,140 da je to v levo, to pravico in teh stvari spodaj. 299 00:20:18,140 --> 00:20:21,850 Ampak zato, ker želim, da izpolnite zdaj bom uporabiti linearno postavitev, 300 00:20:21,850 --> 00:20:24,510 in lahko vidite, to že počne veliko teh stvari za nas. 301 00:20:24,510 --> 00:20:28,890 Vsi pogledi morajo imeti lastnost širino in višino, 302 00:20:28,890 --> 00:20:33,410 in se to zgodi, utež 1, kar ima težo 1 303 00:20:33,410 --> 00:20:36,050 tako da zapolnjuje celoten prostor. 304 00:20:36,050 --> 00:20:38,460 Ampak širina in višina sta najbolj pomembna. 305 00:20:38,460 --> 00:20:45,880 Ta ID polje tukaj ni pomembno v dejanske razporeditve 306 00:20:45,880 --> 00:20:49,060 če smo z relativno postavitev in rekel, da se lahko sklicuje 307 00:20:49,060 --> 00:20:52,990 en pogled na položaj v zvezi z drugo. 308 00:20:52,990 --> 00:20:56,170 Če bi imeli relativno postavitev lahko rečemo, položaj to pod tole 309 00:20:56,170 --> 00:20:59,390 ali nad to ID, vendar bo ta ID pomembno 310 00:20:59,390 --> 00:21:01,660 ko smo ga uporabljate v naši kodi, ker smo lahko sklicujete 311 00:21:01,660 --> 00:21:05,610 ti posamezni pogledi na ta način. 312 00:21:05,610 --> 00:21:10,350 >> In potem si lahko ogledate tag requestFocus, kar je nekaj, kar si verjetno videl v pset 7. 313 00:21:10,350 --> 00:21:15,370 Tam je bil samodejno ostrenje tag ali kaj podobnega za eno od polj. 314 00:21:15,370 --> 00:21:22,100 In še ena stvar, seveda, lahko naredimo tako kot v HTML, 315 00:21:22,100 --> 00:21:25,660 in obvestilo eden od lepih stvari o ADT je, da autocompletes tukaj. 316 00:21:25,660 --> 00:21:29,930 Morda ni tako lepo, kot je to storila v Xcode, vendar pa kljub temu, 317 00:21:29,930 --> 00:21:32,860 in lahko rečemo namig, nato pa ji dati neko niz 318 00:21:32,860 --> 00:21:37,070 rad bi napisal sporočilo, 319 00:21:37,070 --> 00:21:41,300 in če sem ji dati trenutek, prav tako opazili, da dobim malo napako tukaj 320 00:21:41,300 --> 00:21:44,610 pravijo, da bi morali uporabiti niz vir za to, 321 00:21:44,610 --> 00:21:48,820 tako da, če mi dovolite, da naredite nekaj trdega dela za mene 322 00:21:48,820 --> 00:21:57,320 Lahko izberete ta niz, naredite refraktorski teleskop Android in ekstrakt Android niz. 323 00:21:57,320 --> 00:22:00,570 Lahko ji to ime, napišite sporočilo 324 00:22:00,570 --> 00:22:04,180 in kaj je zdaj to, da je težko nadomestiti kodirano niz 325 00:22:04,180 --> 00:22:07,980 s sklicevanjem niza v niz je. xml datoteko, 326 00:22:07,980 --> 00:22:10,200 kar pomeni, zdaj je to tukaj. 327 00:22:10,200 --> 00:22:15,560 >> In vem, da se zdi malo nepomembno in kot dodatno delo na tej točki, 328 00:22:15,560 --> 00:22:17,840 ko pa imate cel kup stvari, cel kup strun, 329 00:22:17,840 --> 00:22:20,750 da je res pomembno, zlasti za lokalizacijo 330 00:22:20,750 --> 00:22:26,920 ker kot sem že prej omenil, Android, je zelo splošno uporablja operacijski sistem 331 00:22:26,920 --> 00:22:35,950 da lahko preprosto storite vrednote-en ali vrednote-SP 332 00:22:35,950 --> 00:22:44,320 ali nekaj za angleščino ali španščino ali drugih jezikih. 333 00:22:44,320 --> 00:22:50,210 In potem si verjetno niso imeli to izkušnjo še 334 00:22:50,210 --> 00:22:53,030 saj nismo naredili toliko JavaScript v zvezi z web programiranje, 335 00:22:53,030 --> 00:22:56,850 vendar ne moremo storiti prav to področje, imenovano OnClick za gumb, 336 00:22:56,850 --> 00:23:02,350 in to je način za navajanje v naši postavitvi 337 00:23:02,350 --> 00:23:06,570 da želimo neko funkcijo, ki se imenuje v naši izvorni kodi. 338 00:23:06,570 --> 00:23:09,420 Bom poklical ta sendMessage, 339 00:23:09,420 --> 00:23:13,390 in da bi to delo, ki pomeni v glavno dejavnost tukaj 340 00:23:13,390 --> 00:23:19,180 Bom moral ustvariti funkcijo, ki je javno 341 00:23:19,180 --> 00:23:22,250 tako da se doseže lahko po postavitvi. 342 00:23:22,250 --> 00:23:25,930 To je ničen, ker si ne želim, da bi vrnil ničesar. 343 00:23:25,930 --> 00:23:37,760 Mi bomo sendMessage poklical, in zastopa stališče, 344 00:23:37,760 --> 00:23:43,690 ki je nekakšen kontekst, da bomo lahko zasidra to metodo 345 00:23:43,690 --> 00:23:47,160 za posamezen da ko smo jo izvaja. 346 00:23:47,160 --> 00:23:50,090 >> In ne vem, če ste opazili, dobro, da ne bi opazil, 347 00:23:50,090 --> 00:24:02,370 vendar v tem trenutku tukaj 348 00:24:02,370 --> 00:24:06,930 Ta pogled je tip, ki še niso bili vključeni še 349 00:24:06,930 --> 00:24:10,630 in seveda, vsi veste, od CS50 pa ne vključuje vrste. 350 00:24:10,630 --> 00:24:13,120 Lepo stvar o IDE Eclipse, kot je to 351 00:24:13,120 --> 00:24:17,520 če ste pozabili, da vključuje vrsto bo podčrtano z malo rdečo vijugasto 352 00:24:17,520 --> 00:24:19,680 in potem vam možnost, da uvoz pogled. 353 00:24:19,680 --> 00:24:23,130 Hiter način za to, da je nadzor premik O, in da bo uvoz 354 00:24:23,130 --> 00:24:27,070 vse datoteke, ki jih potrebuje za. 355 00:24:27,070 --> 00:24:33,670 Zdaj, ko imamo to funkcijo sendMessage, 356 00:24:33,670 --> 00:24:46,560 ki bo poslal sporočilo v MainActivity na novo dejavnost 357 00:24:46,560 --> 00:24:55,230 bomo morali uporabiti namero o uvedbi nove dejavnosti, od tega enega, 358 00:24:55,230 --> 00:25:02,240 tako da bomo verjetno želeli ustvariti globalno konstanta ali tudi posebno javno konstanta 359 00:25:02,240 --> 00:25:06,240 ki nam bo pomagalo vedeti, kako bomo za navajanje niz 360 00:25:06,240 --> 00:25:09,090 ker ko smo ustvarili namen smo ne samo kliče novo dejavnost, 361 00:25:09,090 --> 00:25:11,520 vendar smo lahko podelili tudi skupek informacij. 362 00:25:11,520 --> 00:25:14,720 Sveženj je pravzaprav izraz, ki se uporablja Android, 363 00:25:14,720 --> 00:25:21,470 in to je način rekel, da ima dodatne podatke, ki jih ne more biti na zelo prefinjen vrsto podatkov, 364 00:25:21,470 --> 00:25:24,510 vendar pa lahko zagotovo tudi booleans ali nize ali Ints. 365 00:25:24,510 --> 00:25:29,750 Ta reč. 366 00:25:29,750 --> 00:25:34,230 >> Vas prosimo, da vprašati o kateri koli od teh kvalifikatorjev tukaj, 367 00:25:34,230 --> 00:25:36,900 javnosti, končna, statična. 368 00:25:36,900 --> 00:25:38,610 Javnosti je pomembna. 369 00:25:38,610 --> 00:25:47,090 To pomeni, da lahko dostopate do te spremenljivke od drugih datotek izvorne kode 370 00:25:47,090 --> 00:25:49,590 na primer, ko smo ustvariti novo aktivnost. 371 00:25:49,590 --> 00:25:52,190 Mi lahko sklicujete niz v tej datoteki. 372 00:25:52,190 --> 00:25:57,160 Če je zasebno, to pomeni, da je omejena na to posamezno datoteko tukaj. 373 00:25:57,160 --> 00:26:02,430 Ampak bomo to imenujemo nekaj podobnega dodatno sporočilo. 374 00:26:16,260 --> 00:26:23,300 Zdaj smo naredili to funkcijo, in če kliknete gumb, se bo ta funkcija se imenuje. 375 00:26:23,300 --> 00:26:27,970 Vendar nismo naredili ničesar, seveda, s funkcijo. 376 00:26:27,970 --> 00:26:33,130 Kaj želimo storiti zdaj, je ustvariti novo dejavnost, 377 00:26:33,130 --> 00:26:35,350 dejavnost, ki se bo dejansko začelo. 378 00:26:35,350 --> 00:26:44,330 V Eclipse lahko rečemo nov, Android dejavnost, prazno dejavnosti. 379 00:26:44,330 --> 00:26:46,530 Mi lahko ji dati ime. 380 00:26:46,530 --> 00:26:57,050 Oglejmo je naša dejavnost rezultat pokličite. 381 00:26:57,050 --> 00:27:04,430 In potem je ta hierarhično nadrejena polja je način določajo 382 00:27:04,430 --> 00:27:08,180 kako so z njim povezane med seboj. 383 00:27:08,180 --> 00:27:11,020 Ker bo ta začel z drugo dejavnostjo 384 00:27:11,020 --> 00:27:27,520 moramo navesti, da ima matično glavno dejavnost. 385 00:27:27,520 --> 00:27:31,220 >> In lahko sem kliknil na naslednji terenu, ki bi nam povedali, 386 00:27:31,220 --> 00:27:33,830 nekateri neobvezni polja, ki je bilo prav tako tudi, 387 00:27:33,830 --> 00:27:38,800 ampak lepo stvar o ADT, še enkrat, da če sem se pomaknite tukaj 388 00:27:38,800 --> 00:27:45,740 V manifestu ne pozabite, da je vse to res bila vključena privzeto 389 00:27:45,740 --> 00:27:48,930 ko smo prvotno ustvaril projekt, 390 00:27:48,930 --> 00:27:53,090 in zdaj, ker smo to ustvarili novo dejavnost, in ne samo 391 00:27:53,090 --> 00:27:58,610 dodajanje lastnega razreda datoteke, ker smo šli skozi GUI za tem 392 00:27:58,610 --> 00:28:01,930 je že dodali vse to v manifestu za nas, 393 00:28:01,930 --> 00:28:06,020 kar samo pomeni, da je zdaj operacijski sistem ne bo pritoževal 394 00:28:06,020 --> 00:28:09,400 ko smo poskušali začeti s to dejavnostjo. 395 00:28:09,400 --> 00:28:14,620 In tudi, seveda, to je z nalepko, ki tudi kaže v nizih. 396 00:28:14,620 --> 00:28:17,340 To počne veliko stvari na zadnji konec za nas. 397 00:28:17,340 --> 00:28:20,140 Kakorkoli že, zdaj ko imamo ta rezultat dejavnosti, kot tudi, 398 00:28:20,140 --> 00:28:23,810 Dejanska izvorno kodo datoteke v mapo vir, 399 00:28:23,810 --> 00:28:33,540 in lahko vidite, da se na kratko dotaknem te- 400 00:28:33,540 --> 00:28:37,790 ker smo povedali o tem hierarhično staršev 401 00:28:37,790 --> 00:28:46,640 je dal to polje android.r.ide.home v tem onOption izbrani stvar. 402 00:28:46,640 --> 00:28:49,020 >> Kaj to je v bistvu rekel je, da je gumb za meni zdaj 403 00:28:49,020 --> 00:28:53,110 da je v zgornjem levem kotu zaslona 404 00:28:53,110 --> 00:29:02,220 če grem nazaj v PowerPointu, kjer smo najprej govorili o akcijskem baru 405 00:29:02,220 --> 00:29:05,380 ker hierarhične staršev zdaj pa je malo puščico nazaj 406 00:29:05,380 --> 00:29:10,610 in to je mogoče klikniti, da bi morali biti sposobni, potem ko smo dejansko vodijo to app- 407 00:29:10,610 --> 00:29:15,360 pojdi nazaj, in to je način nam prihrani malo kode tam. 408 00:29:26,220 --> 00:29:40,180 Zdaj v to-no, zdi se pritožujejo, da za trenutek. 409 00:29:40,180 --> 00:29:43,910 Oglejmo komentar, ki ven. 410 00:29:43,910 --> 00:29:48,260 Zdaj, da dejansko interakcijo s temi 2 dejavnosti 411 00:29:48,260 --> 00:29:55,020 moramo ustvariti namere, ki vključuje vse od teh podatkov. 412 00:29:55,020 --> 00:29:58,950 V sendMessage zdaj bom križarjenje skozi nekaj bitov kode 413 00:29:58,950 --> 00:30:00,700 in pojasni, da je, kot sem šel. 414 00:30:00,700 --> 00:30:06,280 Namen, kot sem rekel, je način za zagon ene dejavnosti v drugo. 415 00:30:06,280 --> 00:30:10,000 Namen je tip. Smo ustvariti spremenljivo myIntent. 416 00:30:10,000 --> 00:30:13,980 >> In to je pravzaprav cilj, zato smo morali poklicati novega. 417 00:30:13,980 --> 00:30:18,500 To je skupna uporaba Java tam, ki lahko traja malo privajanje. 418 00:30:18,500 --> 00:30:23,900 To pomeni, da smo s pomočjo dejavnosti ali razred MainActivity, 419 00:30:23,900 --> 00:30:28,630 in namen na ta način prevzame dejavnost se dogaja z 420 00:30:28,630 --> 00:30:36,060 in dejavnosti, ki se dogaja, da, ki smo jih poimenovali ResultActivity, 421 00:30:36,060 --> 00:30:38,170 in da je sama razred. 422 00:30:38,170 --> 00:30:41,720 Vključi to. 423 00:30:41,720 --> 00:30:47,370 In potem, kot sem že omenil, mi je dal ta ID v polje za urejanje besedila 424 00:30:47,370 --> 00:30:53,710 in pogled na besedilo, tako da se zajame programsko 425 00:30:53,710 --> 00:31:01,860 Besedilo, ki obstaja v editText 426 00:31:01,860 --> 00:31:06,710 bomo uporabili to funkcijo imenovan findViewByID, 427 00:31:06,710 --> 00:31:13,660 ki je podoben nekaj, kar boste uporabljali, ko poskuša priti polja iz DOM. 428 00:31:13,660 --> 00:31:17,560 Morda David govori o tem v predavanju. 429 00:31:17,560 --> 00:31:26,600 Ampak to je samo način, kako tiste, ki je zato označil te stvari s temi področji. 430 00:31:26,600 --> 00:31:31,110 Id.editText1. 431 00:31:31,110 --> 00:31:35,220 To je že autocompleting me tam. 432 00:31:35,220 --> 00:31:42,010 >> In potem bomo vključujejo-ta tudi editText zdaj, ko imamo polje 433 00:31:42,010 --> 00:31:47,640 v našem programu, ni bilo vse, kar v bistvu findViewByID 434 00:31:47,640 --> 00:31:50,870 si lahko misliš, da nam kot da sklicevanje na to editText. 435 00:31:50,870 --> 00:31:54,570 Zdaj želimo, da bi dobili niz ali sporočila 436 00:31:54,570 --> 00:32:00,670 v tem editText kar lahko storimo z uporabo- 437 00:32:00,670 --> 00:32:03,360 si lahko zamislite editText kot struct- 438 00:32:03,360 --> 00:32:07,600 smo se objekt v Java, z cel kup različnih metod pokličite 439 00:32:07,600 --> 00:32:10,650 ali polja in atributi v zvezi z njo. 440 00:32:10,650 --> 00:32:15,510 Ko rečem editText. to mi daje možnost dostopa do 441 00:32:15,510 --> 00:32:19,770 Metoda kot gettext, ki bodo dobili sedanji besedilo 442 00:32:19,770 --> 00:32:23,990 V tem editText in potem pretvarjanja, da izrecno 443 00:32:23,990 --> 00:32:26,520 v niz in smo jih shranili sporočila. 444 00:32:26,520 --> 00:32:32,730 Zdaj smo dejansko želijo nekaj narediti s tem namenom smo ustvarili pred nekaj trenutki. 445 00:32:32,730 --> 00:32:40,250 Bom dal ekstra, kot se imenuje v nameri, 446 00:32:40,250 --> 00:32:43,330 ki je, še enkrat, kot sem rekel prej, to je način ustvarjanja snop 447 00:32:43,330 --> 00:32:45,980 s kopico podatkov. 448 00:32:45,980 --> 00:32:50,920 Dodatno sporočilo je naš tag, tako vemo, kaj bomo to varčevanje pod, 449 00:32:50,920 --> 00:32:56,700 in potem sem tudi sporočilo. 450 00:32:56,700 --> 00:33:04,870 >> In potem bomo lahko dejansko začeli aktivnosti, ki jih ji daje parametrov myIntent. 451 00:33:04,870 --> 00:33:10,630 In se bo to dejansko začela dejavnost, tako da sedaj odkar sem nadgradil na Windows 8 452 00:33:10,630 --> 00:33:15,870 lahko pride do nekaj napak, ki kažejo na kratko, vendar jih poskušati ignorirati. 453 00:33:28,010 --> 00:33:30,310 In to je Android emulator. 454 00:33:30,310 --> 00:33:33,540 Upam, da bo kodeks dejansko pop up v trenutku. 455 00:33:33,540 --> 00:33:36,680 Spet ignorira vse tiste majhne stvari. 456 00:33:36,680 --> 00:33:42,290 Toda Android emulator lahko posnemati koli različico operacijskega sistema 457 00:33:42,290 --> 00:33:45,180 od najzgodnejših tiste, krof, 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 Toda, kot lahko vidite zdaj, to je nekaj, kar smo naredili. 460 00:33:53,150 --> 00:33:55,780 Ta ima MainActivity, se editText, gumb. 461 00:33:55,780 --> 00:34:01,550 Lahko vnesete nekaj tukaj, ampak kaj nam manjka v tem trenutku? 462 00:34:01,550 --> 00:34:05,190 Naredili smo polje na MainActivity, da se dogaja, da pošljete sporočilo 463 00:34:05,190 --> 00:34:08,570 za drugo dejavnost, vendar v tem trenutku 464 00:34:08,570 --> 00:34:12,330 nismo naredili ničesar v drugi dejavnosti, tako da je ne bodo prejeli ničesar. 465 00:34:12,330 --> 00:34:18,800 Končajmo do tistega dela, preden gremo naprej. 466 00:34:18,800 --> 00:34:25,760 >> Ta dejavnost je rezultat, kar boste morali storiti, je, da bomo morali storiti, je, da bomo morali za- 467 00:34:25,760 --> 00:34:30,070 bomo lahko tudi navajanje namena v tej dejavnosti, 468 00:34:30,070 --> 00:34:33,580 zato moramo ujeti namero, ki je zelo enostavna. 469 00:34:33,580 --> 00:34:40,780 To je funkcija vključena v razred aktivnosti, 470 00:34:40,780 --> 00:34:47,610 tako da lahko samo povem, "je sporočilo od namere." 471 00:34:47,610 --> 00:34:56,260 "Namera myIntent = getIntent." 472 00:34:56,260 --> 00:35:00,030 In to nam daje, zdaj myIntent je objekt, 473 00:35:00,030 --> 00:35:05,380 kar je sklic namenom, da nas je pripeljala do te dejavnosti. 474 00:35:05,380 --> 00:35:10,130 MainActivity klice in daje dodatne informacije za posledico dejavnost. 475 00:35:10,130 --> 00:35:14,070 Dejavnost Rezultat je zdaj videti na nameri, ki ga je vodil tukaj, 476 00:35:14,070 --> 00:35:23,540 in bomo lahko dostopate sporočilo, ki smo ga ustvarili v drugem dokumentu 477 00:35:23,540 --> 00:35:26,370 getStringExtra, in to bo autocomplete za mene. 478 00:35:26,370 --> 00:35:31,190 In potem ne pozabite, pot smo označili, da je bit podatkov 479 00:35:31,190 --> 00:35:38,400 je bilo tako, da mu to področje prav tukaj, na tej javni niz, 480 00:35:38,400 --> 00:35:42,080 ki je oznaka za niz smo dejansko vključeni. 481 00:35:42,080 --> 00:35:48,450 >> Če rečem MainActivity.Extra_Message 482 00:35:48,450 --> 00:35:52,200 to je tam, in to je nekaj podobnega imena parametrov 483 00:35:52,200 --> 00:35:55,330 ko smo opravili kodo iz krmilnika s predlogo, 484 00:35:55,330 --> 00:35:57,680 ko bi rekel, da naslovno puščico nekaj. 485 00:35:57,680 --> 00:36:01,140 To je ista vrsta idejo tam. 486 00:36:01,140 --> 00:36:07,130 Zdaj, zapomni si to. 487 00:36:07,130 --> 00:36:12,230 Imeli smo tudi ta auto ustvari ali samodejno ustvari kodo 488 00:36:12,230 --> 00:36:16,410 za dejavnosti rezultatov, ki vključuje pogled besedila v sredini 489 00:36:16,410 --> 00:36:19,690 ki pravi, da zdravo svet. 490 00:36:19,690 --> 00:36:27,510 Mi bi potencialno lahko da večji. 491 00:36:27,510 --> 00:36:33,980 Kaj je to prvič. 492 00:36:33,980 --> 00:36:39,550 Lahko bi bilo 40 neodvisnih gostoto pik. 493 00:36:39,550 --> 00:36:42,670 Poglejmo, to je zelo velik. To bo v redu. 494 00:36:42,670 --> 00:36:48,180 In potem, da bi povezali te individualne pogled besedila v našem zakoniku 495 00:36:48,180 --> 00:36:53,890 bomo morali dati osebni dokument, 496 00:36:53,890 --> 00:36:58,350 in za to, da rečemo @ + id, kar pomeni, da ji dodelite ID. 497 00:36:58,350 --> 00:37:02,480 Če smo pravkar rekel @ id bi bilo domnevati, da smo navajanje ID, ki že obstaja, 498 00:37:02,480 --> 00:37:07,760 in recimo to naš resultTextView. 499 00:37:07,760 --> 00:37:10,570 In opazili, da v XML ni potrebe za podpičjem ali karkoli. 500 00:37:10,570 --> 00:37:12,380 Vse, kar je znotraj teh oznak. 501 00:37:12,380 --> 00:37:15,530 To je zelo podobna HTML v veliko čutov. 502 00:37:15,530 --> 00:37:22,760 >> To traja malo navaditi, ampak sčasoma se boste počutili zelo udobno z njim. 503 00:37:22,760 --> 00:37:31,320 Oglejmo posodobiti tudi besedilo za naš rezultat besedilnem pogledu 504 00:37:31,320 --> 00:37:35,650 in kot smo to storili, ko smo se dobili, da je polje za urejanje besedila v drugih naših aktivnosti 505 00:37:35,650 --> 00:37:46,630 V MainActivity tukaj bomo tudi prav- 506 00:37:46,630 --> 00:37:54,890 bomo našli stališčem ID. 507 00:37:54,890 --> 00:37:59,640 In R, v primeru, da nisem prej omenil to, ali je sklicevanje na mapi naši viri, 508 00:37:59,640 --> 00:38:05,350 in potem ID je sklicevanje na vse v mapi virov, vse IDS, 509 00:38:05,350 --> 00:38:10,060 in resultTextView. 510 00:38:10,060 --> 00:38:13,010 In tako kot prej, resultTextView je predmet, 511 00:38:13,010 --> 00:38:15,780 kar pomeni, da ima vse te lastnosti povezane z njo. 512 00:38:15,780 --> 00:38:20,610 Ko smo uporabiti gettext za urejanje besedila za to polje z besedilom ali v pogledu besedila 513 00:38:20,610 --> 00:38:23,980 bomo lahko dejansko uporabljajo setText, 514 00:38:23,980 --> 00:38:26,960 in potem bomo že našli sporočilo od namere, 515 00:38:26,960 --> 00:38:35,760 tako da lahko rečem, sporočilo, in to bo dejansko nastavljena sporočilo. 516 00:38:35,760 --> 00:38:41,820 >> To bo pravi trenutek za začetek, potem pa bomo lahko videli, ali se sesuje, 517 00:38:41,820 --> 00:38:48,670 ampak vsa vprašanja o tem procesu prav tam, da nekako interakcije? 518 00:38:48,670 --> 00:38:51,490 V mnogih pogledih je enostavna. 519 00:38:51,490 --> 00:38:53,960 Razlog, da sem šel skozi nekaj razmeroma preprost 520 00:38:53,960 --> 00:38:57,330 je, še enkrat, ker ste dobili za prikaz interakcije med postavitve, 521 00:38:57,330 --> 00:38:59,520 izvorno kodo, kako si referenčne stvari 522 00:38:59,520 --> 00:39:07,680 in morda dobili malo izpostavljenost kako Java deluje tam. 523 00:39:07,680 --> 00:39:16,500 Če sem dejansko vnesite nekaj v tukaj, kot ohai, potem pa sem kliknite gumb, 524 00:39:16,500 --> 00:39:22,260 se začenja novo dejavnost, in da je pogled pravi besedilo ohai. 525 00:39:22,260 --> 00:39:27,640 To je zelo preprosta, vendar upam, da po tem primer 526 00:39:27,640 --> 00:39:32,310 si nekako videli, kako ta interakcija deluje, in zdaj, da nered datotek 527 00:39:32,310 --> 00:39:36,870 na levi strani, za vse te projektne mape, upam, da boste vedeli, kje iskati zdaj. 528 00:39:36,870 --> 00:39:38,700 To je tvoja koda območje vir. 529 00:39:38,700 --> 00:39:41,760 >> Postavitev je res edina stvar, ki jo obravnava, dokler ne vključujejo slike 530 00:39:41,760 --> 00:39:46,370 in drawables ali karkoli, in vrednote, ki bo vključeval nize, 531 00:39:46,370 --> 00:39:51,960 kot smo že omenili, nato pa slogi je nekaj, kar je nekako kot CSS. 532 00:39:51,960 --> 00:39:56,410 Njegovo obravnavo, če želite, ampak dokler ne boste počutili udobno z dodajanjem dodaten pridih 533 00:39:56,410 --> 00:40:02,520 v svoji vlogi ni treba skrbeti za to preveč. 534 00:40:02,520 --> 00:40:07,410 Samo, da zaključimo eno stvar, boste zagotovo želeli, da se vključi- 535 00:40:07,410 --> 00:40:13,010 ob predpostavki želite vključiti kul funkcij in si prihranite nekaj dodatnih kodiranje- 536 00:40:13,010 --> 00:40:16,460 bi bila vključitev knjižnice 3. stranka. 537 00:40:16,460 --> 00:40:19,840 Tukaj je malo Android tip z Sherlock Holmes klobuk. 538 00:40:19,840 --> 00:40:23,040 To je dejanje bar Sherlock knjižnica 539 00:40:23,040 --> 00:40:25,390 kar v bistvu pomeni, da akcijski bar, da ste videli že prej, 540 00:40:25,390 --> 00:40:29,590 ki je zdaj standard Ice Cream Sandwich in Jelly Bean, 541 00:40:29,590 --> 00:40:33,100 če želite, da bi te vrste uporabniško izkušnjo za uporabnike na starejše različice 542 00:40:33,100 --> 00:40:39,290 in shranite sami od skrbi, kako si se dogaja za navigacijo 543 00:40:39,290 --> 00:40:42,490 na starejše različice, če ta stvar ni tam lahko vključi to knjižnico 544 00:40:42,490 --> 00:40:46,770 in potem boste morali reference, namesto privzete Android 545 00:40:46,770 --> 00:40:50,250 knjižnice za vrstico dejanj boste povezali te podporne knjižnice. 546 00:40:50,250 --> 00:40:53,090 >> Stvari, kot Scoreloop, to je super, če boš tudi igro. 547 00:40:53,090 --> 00:40:57,280 To vam omogoča dodati vodilne plošče in dosežke na igrah. 548 00:40:57,280 --> 00:41:00,900 AdMob je način dajanja oglasov v aplikacijah 549 00:41:00,900 --> 00:41:02,900 V primeru, da želite, da bi malo denarja off od tega. 550 00:41:02,900 --> 00:41:05,730 Seveda, tam je Facebook in Twitter za integracijo tam 551 00:41:05,730 --> 00:41:08,170 Če želite deliti stvari enostavno, et cetera. 552 00:41:08,170 --> 00:41:15,120 Dropbox, prav, in Google Analytics je, da je graf videti eno tam. 553 00:41:15,120 --> 00:41:19,070 To bo zelo pomembno, če si dejansko želite videti, kdo je vzajemno 554 00:41:19,070 --> 00:41:25,800 s svojo aplikacijo ali kdo je to, kako komunicirajo, in tako naprej. 555 00:41:25,800 --> 00:41:30,650 Google, ki ga privzeto, vam pove veliko statističnih podatkov o tem, kdo je nameščen vaš app 556 00:41:30,650 --> 00:41:35,020 in kaj telefoni imajo, kakšna različice operacijskega sistema imajo. 557 00:41:35,020 --> 00:41:38,080 Toda, če želite videti, kdo ga uporablja vsak dan in kako jih uporabljati 558 00:41:38,080 --> 00:41:42,860 potem boste želeli vključiti neke vrste sistem za sledenje, kot je ta. 559 00:41:42,860 --> 00:41:44,990 >> Ko ste pripravljeni za distribucijo vaš app 560 00:41:44,990 --> 00:41:46,930 Ne rabim iti v to, v preveč globino. 561 00:41:46,930 --> 00:41:49,090 Kliknite na povezavo tukaj, Google Predvajaj. 562 00:41:49,090 --> 00:41:51,080 Včasih je bilo na trgu Android. 563 00:41:51,080 --> 00:41:53,470 So preimenovali vse z Google Play, 564 00:41:53,470 --> 00:41:55,230 tako da zdaj oddate na to. 565 00:41:55,230 --> 00:41:57,140 To je zelo preprost. 566 00:41:57,140 --> 00:42:01,070 Moraš vsebuje opis, nekateri galerija. 567 00:42:01,070 --> 00:42:05,660 Kot sem rekel, ni postopek odobritve, kot iOS. 568 00:42:05,660 --> 00:42:07,270 In kam naj gredo od tu? 569 00:42:07,270 --> 00:42:09,450 Pokazala sem vam res preprost primer. 570 00:42:09,450 --> 00:42:13,270 Upajmo, da če se zdi strašno preprosta 571 00:42:13,270 --> 00:42:15,740 potem je verjetno dober znak. 572 00:42:15,740 --> 00:42:20,080 Če sploh počutil malo zmedeni ali negotovi, kaj sem bil tipkanje 573 00:42:20,080 --> 00:42:26,160 tudi to je v redu, ampak od tu šel na Google vodniki. 574 00:42:26,160 --> 00:42:28,330 To je odličen kraj za začetek. 575 00:42:28,330 --> 00:42:31,460 To vam bo predstavil, kaj pričakujejo v smislu oblikovanja aplikacij, 576 00:42:31,460 --> 00:42:33,380 kako uporabniki običajno interakcijo z njim. 577 00:42:33,380 --> 00:42:36,450 To je veliko bolj proste oblike kot iOS, bi rekel, 578 00:42:36,450 --> 00:42:41,330 kar se zdi, kot pogledi v tabeli so, ne vem, to je njihov kruh in maslo. 579 00:42:41,330 --> 00:42:44,690 Vse je pogled tabele drsenje gor in dol. 580 00:42:44,690 --> 00:42:48,160 Z Androidom zagotovo spodbuditi ljudi, da pogled na to iz 581 00:42:48,160 --> 00:42:51,720 cel kup različnih perspektiv. 582 00:42:51,720 --> 00:42:56,000 >> Ko so komplet za razvoj programske opreme v tem ADT 583 00:42:56,000 --> 00:43:03,010 privzeto imate cel kup vzorčnih projektov na Androidu. 584 00:43:03,010 --> 00:43:05,470 Tukaj, Android, Android Vzorec projekta. 585 00:43:05,470 --> 00:43:11,870 Če sem kliknite na to, potem lahko izberete različico, za katero vzorca uporabi projekti. 586 00:43:11,870 --> 00:43:13,300 Obstaja cel kup različnih stvari tukaj. 587 00:43:13,300 --> 00:43:16,690 Začne se z akcijskim bar združljivosti, 588 00:43:16,690 --> 00:43:24,610 pospeška igre, varnostno kopiranje in obnovitev, Bluetooth, gesta graditelja. 589 00:43:24,610 --> 00:43:28,930 JetBoy je vzorec igre so ti dali, saj je LunarLander. 590 00:43:28,930 --> 00:43:31,250 Obstaja cel kup vzorčnih aplikacij tukaj 591 00:43:31,250 --> 00:43:35,290 in oni so vsi usmerjeni na različne vidike Android je API, 592 00:43:35,290 --> 00:43:41,520 in ideja je, da, ko bo svojo vlogo 593 00:43:41,520 --> 00:43:44,110 vam ni treba naučiti vse o Android narediti Android. 594 00:43:44,110 --> 00:43:47,300 Saj je le, da se učijo o delih, ki ste dejansko uporabljali. 595 00:43:47,300 --> 00:43:49,340 Pogled na teh vzorčnih knjižnic. 596 00:43:49,340 --> 00:43:51,510 Vas prosimo, da kopirate in prilepite kodo in jo znova. 597 00:43:51,510 --> 00:43:53,850 To je velika stvar, da pogled na več težkih kodo 598 00:43:53,850 --> 00:43:57,060 in poskusite razumeti, kar je seveda, zakaj v CS50 599 00:43:57,060 --> 00:44:01,510 vam pogosto dajejo velike količine izvorne kode. 600 00:44:01,510 --> 00:44:04,620 Pogled na nekatere od njih, če ste tekoč, da uporabljajo podobne knjižnice 601 00:44:04,620 --> 00:44:08,630 nato pa ga uporablja za svojo lastno kodo. 602 00:44:08,630 --> 00:44:10,430 In seveda, obstajajo vaje. 603 00:44:10,430 --> 00:44:12,690 Išči vaj. 604 00:44:12,690 --> 00:44:17,020 Našel sem veliko dobrih spletu, ki vam lahko prinese do hitrosti 605 00:44:17,020 --> 00:44:20,080 s kakšnimi delci resnici so in kako jih lahko uporabite. 606 00:44:20,080 --> 00:44:22,240 >> Nekatere od teh novih konstrukcijskih stvari, kot fragmentov, 607 00:44:22,240 --> 00:44:26,840 res ni treba biti zaskrbljeni, če delate 608 00:44:26,840 --> 00:44:30,560 zelo velika, v projektu področje. 609 00:44:30,560 --> 00:44:32,510 So stvari, ki jih je Google poskuša postopno noter 610 00:44:32,510 --> 00:44:35,570 Stackoverflow je seveda tvoj prijatelj. 611 00:44:35,570 --> 00:44:37,930 Upajmo, da sem prodal vam malo na Android, 612 00:44:37,930 --> 00:44:41,640 zavedali, da je veliko bolj enostaven pristop v smislu samo jezika kodiranja. 613 00:44:41,640 --> 00:44:45,970 Java je Rekel bi, da je veliko lažje razumeti kot Objective-C. 614 00:44:45,970 --> 00:44:50,780 Android narašča Mislim, da veliko več kot iOS. 615 00:44:50,780 --> 00:44:54,890 Mislim, da so podatki tudi tam, stran od tega, kar mislim. 616 00:44:54,890 --> 00:44:56,920 To se dogaja, da je približno za nekaj časa, 617 00:44:56,920 --> 00:45:00,880 in so nekaj let zadaj v smislu njihovih projektnih ciklov, 618 00:45:00,880 --> 00:45:04,690 tako da je nekako razumljivo, da se še vedno delaš prek nekaterih od teh 619 00:45:04,690 --> 00:45:09,080 Vprašanja doslednost, kot je ta ukrep baru je nova stvar za njih še vedno, 620 00:45:09,080 --> 00:45:16,010 nekako ustvarja podobno uporabniško izkušnjo na vseh njihovih aplikacij. 621 00:45:16,010 --> 00:45:20,650 Upajmo, da lahko greš naprej in zdaj odprli Eclipse 622 00:45:20,650 --> 00:45:22,870 in da svoje Android aplikacije. 623 00:45:22,870 --> 00:45:30,240 >> Ali ima kdo kakšna vprašanja, preden smo zavil o čemerkoli? 624 00:45:30,240 --> 00:45:34,410 Lahko vam povem, da je odgovor 42. 625 00:45:34,410 --> 00:45:41,990 No, srečno kodiranje vsem in srečno. 626 00:45:41,990 --> 00:45:44,990 [CS50.TV]