1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Seminar] [Android Apps (Sada s žele bonbona!)] 2 00:00:02,610 --> 00:00:04,210 [Jordan Jóźwiak] [Sveučilište Harvard] 3 00:00:04,210 --> 00:00:06,780 [Ovo je CS50.] [CS50.TV] 4 00:00:06,780 --> 00:00:11,600 >> Pozdrav svima i dobrodošli na Android Apps (Sada s žele bonbona!) Seminar. 5 00:00:11,600 --> 00:00:14,530 To se zove Sada s žele bonbona, naravno, jer je 6 00:00:14,530 --> 00:00:17,310 Najnovija verzija OS zove Jelly Bean. 7 00:00:17,310 --> 00:00:22,950 Kad sam govorio o Android prošle godine i učinio ovaj osnovi isti seminar 8 00:00:22,950 --> 00:00:29,150 Bio sam predstavljanja dizajn obrazaca i stilskih izbora za Gingerbread, 9 00:00:29,150 --> 00:00:31,250 iako Ice Cream Sandwich izišli na vrijeme, 10 00:00:31,250 --> 00:00:33,680 i to je nešto što ćemo govoriti o ide naprijed malo. 11 00:00:33,680 --> 00:00:35,720 Android, naravno, ima nekih problema s fragmentacijom, 12 00:00:35,720 --> 00:00:40,240 tako da najnoviji operativni sustav Google je obično 13 00:00:40,240 --> 00:00:44,710 stvarno ne ide kako bi postali uobičajena među korisnicima za potencijalno i do godinu dana, na žalost. 14 00:00:44,710 --> 00:00:49,960 >> No, bez obzira kako, mi ćemo govoriti o mnogo razloga zašto 15 00:00:49,960 --> 00:00:53,000 Android je puno bolje nego iOS. 16 00:00:53,000 --> 00:00:56,410 Ok, mi ćemo govoriti o Android odnosu na iOS, 17 00:00:56,410 --> 00:00:59,770 neki dizajn paradigme, kako ćete se postaviti u samo jedan slajd, 18 00:00:59,770 --> 00:01:03,410 i velika razlika između ove i prošle godine je samo želim 19 00:01:03,410 --> 00:01:06,860 zoom kroz neke konceptualne stvari koje rade s 20 00:01:06,860 --> 00:01:09,950 operativni sustav, a zatim ići u stvarno osnovni primjer. 21 00:01:09,950 --> 00:01:13,730 U stvari, samo primjer koji opisuje Google za izgradnju svoje prve aplikacije, 22 00:01:13,730 --> 00:01:17,070 a mi ćemo proći kroz njega zajedno i samo opisuju. 23 00:01:17,070 --> 00:01:22,100 >> Znam da mnogi od vas samo da su kodirane u C, tako da Java već će biti 24 00:01:22,100 --> 00:01:27,220 drugačije perspektive, i na taj način ćete dobiti svoje noge mokro 25 00:01:27,220 --> 00:01:31,540 i osjećam nešto više ugodno s njim nadamo. 26 00:01:31,540 --> 00:01:35,330 Kratki sažetak, u odnosu na Android iOS. 27 00:01:35,330 --> 00:01:39,200 U Android postoji ovaj jednokratni developer iznosu od 25 USD, 28 00:01:39,200 --> 00:01:42,390 nitko od ove 100 dolara godišnje stvar. 29 00:01:42,390 --> 00:01:45,440 Nema ograničenja, što znači da ako želim podnijeti aplikaciju, 30 00:01:45,440 --> 00:01:51,560 Upravo sam ga podnijeti, a nema odobrenje proces kao što je za iOS. 31 00:01:51,560 --> 00:01:53,890 Vi se razvijati s Java koristeći Eclipse, 32 00:01:53,890 --> 00:01:57,090 što je križ platforma, tako da ne smeta ako imate Mac, 33 00:01:57,090 --> 00:01:59,600 Windows, Linux ili neki stroj. 34 00:01:59,600 --> 00:02:03,730 Naravno, s iOS morate koristiti xcode na Macu, 35 00:02:03,730 --> 00:02:06,930 i Android koriste mnogo više ljudi, 36 00:02:06,930 --> 00:02:11,580 Dakle, ako želite da vaš app imati nekakvu vidljivosti ili možda 37 00:02:11,580 --> 00:02:14,110 napraviti nešto novca od reklama 38 00:02:14,110 --> 00:02:17,450 vjerojatno ste više vjerojatno da će imati koristi od Android. 39 00:02:17,450 --> 00:02:20,630 >> I jedna stvar koja je oduvijek bila poznato o Androidu 40 00:02:20,630 --> 00:02:25,100 je ekstremna količina prilagodbe, dok je iOS vrlo je fiksna u svojim putovima 41 00:02:25,100 --> 00:02:29,380 tako da oni mogu održavati sigurnost i kontrolu nad svakim aspektom malo 42 00:02:29,380 --> 00:02:34,180 od dizajna unutar svog OS-a i pojedinih aplikacije. 43 00:02:34,180 --> 00:02:40,180 Android je vrlo slobodni oblik, a tu je tako mnogo više mogućnosti. 44 00:02:40,180 --> 00:02:42,530 Ok, neki dizajn paradigmi. 45 00:02:42,530 --> 00:02:49,600 Obavijest ovdje baš kao i iOS ima tablete i iPhone i iPod dodiruje 46 00:02:49,600 --> 00:02:53,840 oni imaju za potporu, kažu, kao što je desetak uređaja, ako želite podržati 47 00:02:53,840 --> 00:02:55,450 povijesne stvari kao dobro. 48 00:02:55,450 --> 00:02:58,410 Uz Android morate podržavaju stotine uređaja, 49 00:02:58,410 --> 00:03:01,240 tako da postoje neke stvari koje je Google već pokušavali provesti 50 00:03:01,240 --> 00:03:04,970 kako bi korisničko iskustvo malo više dosljedan, 51 00:03:04,970 --> 00:03:08,560 , ali također ćemo razgovarati o tome kako to znači da postoje problemi rascjepkanosti 52 00:03:08,560 --> 00:03:11,700 da stalno moraju biti svjesni podržava. 53 00:03:11,700 --> 00:03:16,140 Fragmentacija znači da postoji mnogo različitih operativnih sustava, 54 00:03:16,140 --> 00:03:20,330 mnogo različitih telefone s različitim hardverom trčanje android sve u isto vrijeme, 55 00:03:20,330 --> 00:03:29,680 pa ovaj graf ovdje ide natrag za oko 6 mjeseci. 56 00:03:29,680 --> 00:03:36,460 Da, prije 6 mjeseci, i možete vidjeti kako najmračniji bend 57 00:03:36,460 --> 00:03:39,330 Na dnu je Jelly Bean, koji je izašao preko ljeta, 58 00:03:39,330 --> 00:03:42,970 i možete vidjeti upravo sada vjerojatno oko 2% od telefonima ga imati. 59 00:03:42,970 --> 00:03:45,520 >> Ice Cream Sandwich iziđe više od godinu dana, 60 00:03:45,520 --> 00:03:47,770 a četvrtina telefone ga imati. 61 00:03:47,770 --> 00:03:53,910 Ima još puno telefone koji koriste OS verzija od godina. 62 00:03:53,910 --> 00:03:57,820 Jedna stvar koja Google je pokušao učiniti kako bi korisničko iskustvo 63 00:03:57,820 --> 00:04:01,400 Puno dosljednija aplikacije počinje s Saće, 64 00:04:01,400 --> 00:04:04,320 što je tablet verziju, a zatim Ice Cream Sandwich, a Jelly Bean, 65 00:04:04,320 --> 00:04:06,750 oni zapravo pokušavaju istaknuti korištenje ove akcije baru, 66 00:04:06,750 --> 00:04:10,430 što je ono što možete vidjeti na vrhu ovog mjesta, 67 00:04:10,430 --> 00:04:14,730 sve što je upravo ovdje, uključujući i ovaj mali gumb postavki. 68 00:04:14,730 --> 00:04:16,079 To je dizajn izbor. 69 00:04:16,079 --> 00:04:18,000 Sada, kad ste vidjeli tri točkice to znači kliknite na ovaj, 70 00:04:18,000 --> 00:04:21,880 a tu će biti padajući izbornik, koji ima nekakvu postavkama. 71 00:04:21,880 --> 00:04:28,900 To samo pokazuje gore, jer sam kliknuo na ovaj gumb. 72 00:04:28,900 --> 00:04:32,040 To je nešto što oni pokušavaju koristiti kako bi aplikacije malo više dosljedan 73 00:04:32,040 --> 00:04:39,210 u cijeloj ploči i na taj način korisnik ima bolji osjećaj jedinstvenog iskustva. 74 00:04:39,210 --> 00:04:42,640 >> Ok, tako da u slučaju da niste to učinili već ili ako gledate kod kuće 75 00:04:42,640 --> 00:04:50,210 onda možete slijediti ove korake kako bi postavili svoje kodiranje okruženje. 76 00:04:50,210 --> 00:04:52,630 To će uključivati ​​odlazak na web stranici ovdje. 77 00:04:52,630 --> 00:04:56,260 Možete li Google Android SDK instalacije 78 00:04:56,260 --> 00:04:59,130 i slijediti neke opise tamo. 79 00:04:59,130 --> 00:05:01,310 Oni vam reći sve. 80 00:05:01,310 --> 00:05:05,160 Imaju li instalirati SDK, preuzimanje Eclipse Classic verzija, 81 00:05:05,160 --> 00:05:07,450 iako, naravno, mi smo kodiranje u Javi. 82 00:05:07,450 --> 00:05:12,190 Oni preporučuju ovu jednu, a zatim ovaj ADT, Android razvojnih alata, 83 00:05:12,190 --> 00:05:17,300 je plugin koji ste instalirali u Eclipse koji vam omogućava da 84 00:05:17,300 --> 00:05:20,550 imaju puno više iskustva s Android moderniji unutar Eclipse. 85 00:05:20,550 --> 00:05:24,070 To će vam dati neke Grafička korisnička sučelja 86 00:05:24,070 --> 00:05:29,610 za izradu stavove, i to će vam dati puno više podrške 87 00:05:29,610 --> 00:05:34,840 i sposobnost da se pokrenu s emulator i sve takve stvari. 88 00:05:34,840 --> 00:05:36,090 Primjena okvira. 89 00:05:36,090 --> 00:05:41,590 >> Želim govoriti o tome kako su projekti unutar Android strukturirani, 90 00:05:41,590 --> 00:05:44,830 , a onda ćemo ići u brzi primjer, i nadamo se 91 00:05:44,830 --> 00:05:48,820 možete postaviti pitanja u bilo kojem trenutku i osjećaju ugodno na kraju to. 92 00:05:48,820 --> 00:05:50,090 Imamo neke žargon prvi. 93 00:05:50,090 --> 00:05:55,330 Aktivnost poput zaslona možete vidjeti kada pokrenete aplikaciju. 94 00:05:55,330 --> 00:05:57,840 Cijeli doživljaj je aktivnost sama po sebi, 95 00:05:57,840 --> 00:06:00,790 tako da bi mogao misliti o njemu kao zaslon ili pogledom, 96 00:06:00,790 --> 00:06:04,540 , ali to je zapravo strana izvorni kod njega. 97 00:06:04,540 --> 00:06:12,680 Mi još uvijek nazivaju stvarni sučelja dio njega pogled. 98 00:06:12,680 --> 00:06:17,230 To je vrsta kao što su kako se u pset 7 smo imali kontroler i zatim pogled. 99 00:06:17,230 --> 00:06:20,690 Aktivnost je više ili manje kontroler, 100 00:06:20,690 --> 00:06:23,360 , a pogled je ono što mi radimo u pogledu XML 101 00:06:23,360 --> 00:06:25,260 koji je povezan s tom aktivnošću. 102 00:06:25,260 --> 00:06:29,340 Ulomci su nešto što se provodi u Ice Cream Sandwich ide naprijed. 103 00:06:29,340 --> 00:06:36,380 To je samo ideja uzimanja dijelova more ili djelatnost 104 00:06:36,380 --> 00:06:39,990 te ih dijeli u odvojenim prostorijama, tako da možemo 105 00:06:39,990 --> 00:06:45,030 bi naš broj više korisna za ove različite uređaje 106 00:06:45,030 --> 00:06:51,890 da moramo podržati, a to je samo način pokušava 107 00:06:51,890 --> 00:06:54,290 Također faktor iz više koda. 108 00:06:54,290 --> 00:07:01,090 Usluge su pozadinske stvari poput glazbe ili navigacijske pravce potencijalno. 109 00:07:01,090 --> 00:07:05,640 Davatelji sadržaja, to su API-ji unutar operativnog sustava 110 00:07:05,640 --> 00:07:09,070 koji vam omogućuju da pristup zajedničkim podacima kao što su kontakt informacije, 111 00:07:09,070 --> 00:07:12,790 a zatim namjera je nešto što ćemo koristiti kada želimo pokrenuti 112 00:07:12,790 --> 00:07:17,210 nova djelatnost iz naše trenutne aktivnosti. 113 00:07:17,210 --> 00:07:20,980 >> Pozdrav Android, ovo će biti projekt koji ćemo razgovarati o tome. 114 00:07:20,980 --> 00:07:25,410 Ja sam zapravo ću to učiniti za vas, a onda ćemo napraviti nešto gdje ćemo kliknuti na gumb 115 00:07:25,410 --> 00:07:27,650 s nekim tekstom i pokrenuti novu djelatnost. 116 00:07:27,650 --> 00:07:30,110 Vrlo jednostavan, ali želim ići kroz 117 00:07:30,110 --> 00:07:34,480 ono što će ići u projekt kao što je ovaj. 118 00:07:34,480 --> 00:07:39,260 Kada napravite novi projekt vidjet ćete okviru Eclipse 119 00:07:39,260 --> 00:07:41,900 Tu je ovaj projekt pod nazivom Pozdrav Android. 120 00:07:41,900 --> 00:07:43,470 Zatim tu su i cijela hrpa mapa ovdje. 121 00:07:43,470 --> 00:07:46,760 One koje ste stvarno bave se izvor mape, 122 00:07:46,760 --> 00:07:54,540 resursa mapu, res, a donekle libs mape za knjižnice. 123 00:07:54,540 --> 00:08:00,070 I samo da smo na istoj stranici s koje 124 00:08:00,070 --> 00:08:03,240 ako ste bili za stvaranje novog projekta, 125 00:08:03,240 --> 00:08:08,270 možete to učiniti upravo ovdje, pa ako želim ga zovu HelloAndroid, 126 00:08:08,270 --> 00:08:11,100 a zatim ga automatski čini cijela hrpa informacija za nas. 127 00:08:11,100 --> 00:08:14,110 Ime paketa je trebao biti jedinstveni identifikator 128 00:08:14,110 --> 00:08:16,710 koje bi inače biti povezana s web stranice, ako je jedan. 129 00:08:16,710 --> 00:08:24,430 >> Na primjer, ja ću nazvati ovu net.cs50.helloandroid. 130 00:08:24,430 --> 00:08:30,070 I već sam napravio ovaj projekt odjednom. 131 00:08:30,070 --> 00:08:40,059 Ok, ispričavam se. Nazovimo to HelloCS50. 132 00:08:40,059 --> 00:08:42,929 I onda će pitati stvari kao kakav ikone želimo napraviti. 133 00:08:42,929 --> 00:08:48,840 To je sve zbog Android Developer Tools sučelje, 134 00:08:48,840 --> 00:08:53,350 plugin koji smo dodan u Eclipse, tako da možemo birati stvari kao što su 135 00:08:53,350 --> 00:08:58,320 Ikona ono što želimo, a to će ići na toj dubini, ako želimo. 136 00:08:58,320 --> 00:09:04,360 Ali na kraju, samo bi projekt, 137 00:09:04,360 --> 00:09:07,040 i sve pokazuje se upravo ovdje. 138 00:09:07,040 --> 00:09:10,030 Kao što sam pokazao na drugom zaslonu, 139 00:09:10,030 --> 00:09:14,070 imamo izvornu mapu, a ja ću razgovarati o tome što sve to znači da je prije, 140 00:09:14,070 --> 00:09:19,090 ali se može vidjeti da je odmah to nas vodi do HelloCS50 zaslonu. 141 00:09:19,090 --> 00:09:24,690 Postoje neke tipke više ovdje za dodavanje teksta i tekst polja izgleda. 142 00:09:24,690 --> 00:09:28,910 To je vrsta kao što su Xcode, ali nažalost ne sasvim kao moderniji. 143 00:09:28,910 --> 00:09:37,790 No, isječci će biti vaš prijatelj i ADT posebno za to. 144 00:09:37,790 --> 00:09:40,920 >> Ok, izvor mapu gdje je 145 00:09:40,920 --> 00:09:43,820 su Java datoteka se održavaju, a to je zapravo početak vašeg programa. 146 00:09:43,820 --> 00:09:45,990 To je u osnovi kao kontrolora. 147 00:09:45,990 --> 00:09:49,020 Resource folder ili res je mjesto gdje ćemo držati zaslon izgleda, 148 00:09:49,020 --> 00:09:54,110 slike, zvukovi, tekst, animacije i sve ostalo, Libs, očito, knjižnice. 149 00:09:54,110 --> 00:10:01,700 I Manifest, to je način na koji sustav Android zna 150 00:10:01,700 --> 00:10:03,130 kako komunicirati s aplikacijom. 151 00:10:03,130 --> 00:10:07,980 Ona to govori o dozvolama i što će biti s njima zapravo pokrenuti. 152 00:10:07,980 --> 00:10:12,350 To je sve bitne informacije koje je potrebno pokrenuti aplikaciju. 153 00:10:12,350 --> 00:10:17,990 Izvor mapa-ako ga proširiti kao što možete vidjeti ovdje. 154 00:10:17,990 --> 00:10:23,920 A primjer koji kod bi izgledati-to je zadano broj. 155 00:10:23,920 --> 00:10:27,930 Kao što smo to zvali, MainActivity. 156 00:10:27,930 --> 00:10:33,230 Po defaultu, dobili smo onCreate, što je funkcija koja se zove kada je ova aktivnost opterećenja, 157 00:10:33,230 --> 00:10:37,150 kako god želite nazvati onCreate (savedInstanceState). 158 00:10:37,150 --> 00:10:40,440 Ovo će vratiti sve komadiće informacija 159 00:10:40,440 --> 00:10:44,910 u slučaju app je zastao. 160 00:10:44,910 --> 00:10:48,790 >> Tu je cijeli životni ciklus aktivnosti shema koje možete pogledati na 161 00:10:48,790 --> 00:10:50,380 kada se malo više u dubinu u njemu, 162 00:10:50,380 --> 00:10:56,210 ali najvažnija linija koda je to setContentView funkciju 163 00:10:56,210 --> 00:11:00,290 koji će učitati datoteku resurs za izgled. 164 00:11:00,290 --> 00:11:03,590 A što onCreate ovdje u osnovi radi se to govori 165 00:11:03,590 --> 00:11:07,010 kad sam napraviti ovu aktivnost želim učitati ovaj izgled. 166 00:11:07,010 --> 00:11:12,030 A mi ćemo govoriti o tome što izgleda da je u drugom. 167 00:11:12,030 --> 00:11:16,230 Ako smo pokrenuti da se ovdje to izgleda točno ovako, 168 00:11:16,230 --> 00:11:22,880 i po defaultu, jer smo to i Eclipse ADT radi za nas 169 00:11:22,880 --> 00:11:28,210 ovo je sve predloženi kôd koji se stvorio za nas, 170 00:11:28,210 --> 00:11:34,630 i možemo krenuti dalje i promijeniti stvari kao što smo željeli. 171 00:11:34,630 --> 00:11:38,190 Resursa mape, kao što sam rekao, ovo je mjesto gdje ćemo držati sve izgleda, 172 00:11:38,190 --> 00:11:41,150 drawables u smislu bilo kakve slike- 173 00:11:41,150 --> 00:11:46,360 oni nazivaju drawables-a onda zvučne datoteke, izbornici. 174 00:11:46,360 --> 00:11:51,170 To je način cijela hrpa XML-u lijepoj sortirani mode. 175 00:11:51,170 --> 00:11:58,030 Kao što možete vidjeti, postoje. Hdpi, ldpi, mdpi i xhdpi mapa za drawables. 176 00:11:58,030 --> 00:12:02,220 To su različite gustoće, tako da zaslon visoke gustoće piksela po inču, 177 00:12:02,220 --> 00:12:05,710 niske gustoće, srednje gustoće, iznimno visoke gustoće. 178 00:12:05,710 --> 00:12:08,900 >> To je, opet, tako da možemo podržati sve te različite uređaje, 179 00:12:08,900 --> 00:12:15,100 i idealno, imat ćete različite slike za svaku različite rezolucije. 180 00:12:15,100 --> 00:12:20,740 Izgledi smo gdje smo uključiti sve različite izglede da će se koristiti u različitim aktivnostima. 181 00:12:20,740 --> 00:12:24,150 Oni također mogu uključivati ​​izglede za fragmenata, 182 00:12:24,150 --> 00:12:26,670 što znači parcijalnih aktivnosti osnovi. 183 00:12:26,670 --> 00:12:29,610 Ako želite učiniti nešto cool kao i uvijek kada rotirati telefon 184 00:12:29,610 --> 00:12:33,900 ga želite imati drugačiji izgled možete učiniti izgled-krajolik kao drugu mapu, 185 00:12:33,900 --> 00:12:39,000 Android i automatski ima cijela hrpa tih pravila unutar resursa mapu, 186 00:12:39,000 --> 00:12:44,690 pa će znati gledati na različite mape na trenutnom postavkama telefona, 187 00:12:44,690 --> 00:12:46,740 kakav hardver koji koristite. 188 00:12:46,740 --> 00:12:52,350 Isto tako, ove vrijednosti-v11 ovdje i vrijednosti-V14 189 00:12:52,350 --> 00:12:55,460 i zadane vrijednosti mapu ovo je za- 190 00:12:55,460 --> 00:13:01,730 dobro, vrijednost sama po sebi, to će biti zadane vrijednosti u svim verzijama operacijskog sustava. 191 00:13:01,730 --> 00:13:06,390 S druge strane, V11 i V14 odgovaraju Saće 192 00:13:06,390 --> 00:13:08,780 i Ice Cream Sandwich, odnosno. 193 00:13:08,780 --> 00:13:12,800 Opet, to su načini na koje-u tim mapama su različiti nizovi 194 00:13:12,800 --> 00:13:17,550 i stilova, tako da možete prilagoditi izgled vašeg app 195 00:13:17,550 --> 00:13:22,660 ili potencijalno čak i njegova funkcionalnost, iako je to vjerojatno biti loša ideja, 196 00:13:22,660 --> 00:13:25,890 temelji se na verziji operativnog sustava. 197 00:13:25,890 --> 00:13:28,760 >> Razgovarao sam o svemu tome ovdje. 198 00:13:28,760 --> 00:13:35,870 Opet, crtanja, sirovi, izgleda, vrijednosti. 199 00:13:35,870 --> 00:13:41,380 U defaultno, ako idemo u Hello Hello Android ili CS50 upravo sada 200 00:13:41,380 --> 00:13:43,310 to će izgledati baš kao što je ovaj. 201 00:13:43,310 --> 00:13:45,800 To će pozdraviti svijet. 202 00:13:45,800 --> 00:13:58,430 Kao što možete vidjeti ovdje s Android teksta 203 00:13:58,430 --> 00:14:04,420 Tekst u ovom tekstualnom prikazu, što je zapravo samo oznaka, 204 00:14:04,420 --> 00:14:06,900 je ono što bi ga zvati u iOS. 205 00:14:06,900 --> 00:14:11,580 Ima tu smiješno zapis @ string / hello_world. 206 00:14:11,580 --> 00:14:16,200 To je tako možemo-možemo pokušati izvući sve žice, 207 00:14:16,200 --> 00:14:19,740 sve hard-kodirane žice u Androidu u zasebnu mapu, 208 00:14:19,740 --> 00:14:23,610 što će se dogoditi da se u values.strings. 209 00:14:23,610 --> 00:14:29,300 Ako gledamo ovdje, možemo vidjeti da imamo hard-kodirani niz spasio ovdje 210 00:14:29,300 --> 00:14:33,910 za Pozdrav svijetu, i to se zove halo svijet, a to je vrsta 211 00:14:33,910 --> 00:14:39,230 zajedničko dizajn odluka u mnogim platformama koje želite- 212 00:14:39,230 --> 00:14:41,780 žica vrsta stvari koje želimo potencijalno moći promijeniti. 213 00:14:41,780 --> 00:14:48,050 Mi ne želimo kontrolirati F u našoj datoteci izvornog koda u našem XML. 214 00:14:48,050 --> 00:14:50,760 Želimo biti u mogućnosti da se to promijeni kad smo dobili priliku. 215 00:14:50,760 --> 00:14:53,640 >> Ovaj XML datoteke, strings.xml, je način vađenja 216 00:14:53,640 --> 00:14:56,710 hard-coded žice koje bi se inače u našim rasporeda sredstava 217 00:14:56,710 --> 00:15:03,530 ili u našem izvornom kodu. 218 00:15:03,530 --> 00:15:08,190 Manifest je mjesto gdje ćemo držati ovo bitne informacije o programu. 219 00:15:08,190 --> 00:15:11,050 To uključuje paket ime. To mora biti jedinstveni identifikator. 220 00:15:11,050 --> 00:15:16,020 Za razliku od App Store za iOS i nazive programa 221 00:15:16,020 --> 00:15:19,980 ne moraju biti jedinstveni, a zapravo može promijeniti ime vaše aplikacije 222 00:15:19,980 --> 00:15:23,570 nakon što ga pošaljete, pa ako sam početi s Angry ptica, 223 00:15:23,570 --> 00:15:26,840 a onda sam napraviti update, a ja ne želim objaviti novu verziju 224 00:15:26,840 --> 00:15:34,230 Mislim da sam mogao nazvati Angry Birds 2 dok sam na istoj release ciklusa. 225 00:15:34,230 --> 00:15:36,780 To bi samo prikazati kao update. 226 00:15:36,780 --> 00:15:39,790 Jedina stvar koja mora biti jedinstven je to ime paketa, 227 00:15:39,790 --> 00:15:41,280 što mnogi ljudi ne će vidjeti. 228 00:15:41,280 --> 00:15:44,680 Pa, samo bih vidjeti ako ste bili u potrazi na izvorni kod ili ako postoji neka vrsta pogreške. 229 00:15:44,680 --> 00:15:47,580 Komponente uključuju aktivnosti, tako da ćemo morati proglasiti 230 00:15:47,580 --> 00:15:49,070 bilo kakve aktivnosti koje koristimo. 231 00:15:49,070 --> 00:15:53,430 Ovo je dopuštenje takve stvari. 232 00:15:53,460 --> 00:15:58,150 >> Budući da Android nema ovo rigorozan proces prijave 233 00:15:58,150 --> 00:16:02,210 za podnošenje aplikacije, umjesto da samo učiniti sve temelji off dozvolama 234 00:16:02,210 --> 00:16:04,300 i proglašenja stvari u manifestu. 235 00:16:04,300 --> 00:16:06,380 SDK verzija je također važna. 236 00:16:06,380 --> 00:16:10,330 Možemo postaviti koristiti kao SDK nešto minimalnu verziju. 237 00:16:10,330 --> 00:16:16,010 Očito, želite stvoriti kod 238 00:16:16,010 --> 00:16:18,570 i dizajn za novije operativne sustave. 239 00:16:18,570 --> 00:16:20,840 Možda nije najnoviji, možda ne Jelly Bean. 240 00:16:20,840 --> 00:16:23,610 Možda želite dizajn prvenstveno za Ice Cream Sandwich, 241 00:16:23,610 --> 00:16:27,120 iako su prilično mnogo isto u smislu dizajna odluka 242 00:16:27,120 --> 00:16:30,550 i stvarne knjižnice i API-ja. 243 00:16:30,550 --> 00:16:36,250 Ali prije nego su ljudi 244 00:16:36,250 --> 00:16:40,050 od izvorne verzije Android poput krafni povratku kad- 245 00:16:40,050 --> 00:16:43,420 koji još uvijek dogoditi da se koriste da pokušate preuzeti Vaš zahtjev i onda reći 246 00:16:43,420 --> 00:16:46,160 to ne radi na mom telefonu možete postaviti minimalnu verziju 247 00:16:46,160 --> 00:16:48,620 i to se Gingerbread ili Ice Cream Sandwich 248 00:16:48,620 --> 00:16:53,300 ili što god da se osjećate ugodno podnošenja. 249 00:16:53,300 --> 00:16:57,170 I ovo je primjer Manifest. Možemo pogledati na aktualnom jednom u malo. 250 00:16:57,170 --> 00:17:00,900 >> Ok, samo mi ćemo ići naprijed s demo sada. 251 00:17:00,900 --> 00:17:08,900 To je ogledni primjerak ako Google Android izgraditi svoju prvu aplikaciju ili nešto slično. 252 00:17:08,900 --> 00:17:12,089 Mi ćemo proći kroz sve što se događa tamo, 253 00:17:12,089 --> 00:17:17,690 i ispričavam se, samo za referencu Tko ovdje zna Javu na bilo koji mjeri? 254 00:17:17,690 --> 00:17:28,310 Ok, tako da je novi Java kodiranje jezik za većinu ljudi dolaze iz CS50. 255 00:17:28,310 --> 00:17:31,850 Ukratko, ići ispočetka ono što ovdje piše, 256 00:17:31,850 --> 00:17:35,580 ono što želimo učiniti je umjesto podešavanje ovaj Hello World aplikacija 257 00:17:35,580 --> 00:17:38,620 da je sve to ipak je to pokreće i kaže halo svijet 258 00:17:38,620 --> 00:17:43,580 i kaže halo CS50 na vrhu, jer to je djelatnost ime 259 00:17:43,580 --> 00:17:47,190 idemo pokušati napraviti tekst polje i gumb 260 00:17:47,190 --> 00:17:50,680 tako da kad smo pritisnuti ovu tipku da će se tekst 261 00:17:50,680 --> 00:17:53,660 iz tekstualnog polja i pokrenuti novu djelatnost, a to će reći: 262 00:17:53,660 --> 00:17:58,380 što god da je tekst u aktivnosti, a to je relativno jednostavna. 263 00:17:58,380 --> 00:18:00,650 To nije vrlo zanimljiv. Vi ne želite objaviti bilo koju aplikaciju kao što je ovaj. 264 00:18:00,650 --> 00:18:03,880 Ali to pokazuje neke važne stvari dizajn. 265 00:18:03,880 --> 00:18:07,030 >> Morat ćemo komunicirati s Manifest, s izgledom datoteka, 266 00:18:07,030 --> 00:18:12,440 s izvornog koda, i možete vidjeti kako pokrenuti jednu aktivnost na drugu. 267 00:18:19,740 --> 00:18:23,060 Počet ćemo s rasporedom za naš prvi aktivnosti, 268 00:18:23,060 --> 00:18:27,320 za koje znam da je vrsta malih, 269 00:18:27,320 --> 00:18:32,660 , ali kao što možete vidjeti upravo sada, sve je to je da ima našu logotip koji smo stvorili, 270 00:18:32,660 --> 00:18:36,310 Naziv aktivnosti, a to govori Pozdrav svijetu u centru. 271 00:18:36,310 --> 00:18:40,400 Umjesto toga, sam prvi put idem napraviti ovo u linearni raspored, 272 00:18:40,400 --> 00:18:42,350 relativna izgleda, a to su sve stvari 273 00:18:42,350 --> 00:18:45,870 možete pogledati i vrijedi ide preko u nekom trenutku u pogledu izgleda. 274 00:18:45,870 --> 00:18:47,310 To je puno poput HTML-a. 275 00:18:47,310 --> 00:18:52,640 Rekli smo da to nije stvarno vrijedno znati u smislu programatski smislu, 276 00:18:52,640 --> 00:18:55,840 ali postoji toliko različitih izgleda možete kontrolirati, 277 00:18:55,840 --> 00:18:57,970 i to je baš kao i CSS u smislu stilova. 278 00:18:57,970 --> 00:19:01,590 >> Postoji mnogo događa samo u smislu estetike ovdje, 279 00:19:01,590 --> 00:19:08,930 i da, to je vrijedno učenje, ali to je jedna od onih stvari trebali pogledati 280 00:19:08,930 --> 00:19:11,810 kao što ide, a vi se osjećate kao da vam je potrebno nešto novo. 281 00:19:11,810 --> 00:19:17,030 Ja mogu iskoristiti neke od alata ADT ovdje barem za početak sa. 282 00:19:17,030 --> 00:19:21,930 Ja ću napraviti polje za unos teksta, a ja ću napraviti gumb. 283 00:19:21,930 --> 00:19:24,100 Stavite ih tik jedni drugima. 284 00:19:24,100 --> 00:19:28,200 Oni su već veličinu odgovarajući način. 285 00:19:28,200 --> 00:19:31,320 Žao nam je, opet, vraća se na razliku između linearnog rasporeda i relativnog izgleda, 286 00:19:31,320 --> 00:19:34,830 linearno izgleda daje malo više funkcionalnosti 287 00:19:34,830 --> 00:19:38,720 u smislu ispunjavanja prostora i pazeći 288 00:19:38,720 --> 00:19:42,790 mi položaj stvari vodoravno ili okomito. 289 00:19:42,790 --> 00:19:46,130 Velika razlika između linearne izgledu i relativnom rasporeda 290 00:19:46,130 --> 00:19:50,250 je relativna izgleda sve pozicije u odnosu na druge prikaze, 291 00:19:50,250 --> 00:19:52,630 i dobra stvar o tome je da je potrebno manje vremena za crtanje 292 00:19:52,630 --> 00:19:56,120 jer operativni sustav gleda na sve koda i kaže to ide 293 00:19:56,120 --> 00:19:58,270 u odnosu na ovo ovdje, ovdje. 294 00:19:58,270 --> 00:20:03,170 To znači da ima manje mjerenja nego cijela hrpa smješteno linearnih izgleda, 295 00:20:03,170 --> 00:20:06,840 što ću morati učiniti ako sam htjela stvari ići vertikalno ovdje. 296 00:20:06,840 --> 00:20:10,510 >> Već sam neke stvari ide vodoravno, tako da ću morati neku drugu linearnu izgled 297 00:20:10,510 --> 00:20:14,560 da ih gnijezdo okomito, ali ako ja radili relativnu izgled sam mogao reći 298 00:20:14,560 --> 00:20:18,140 imajte to na lijevoj strani, ovaj s desne strane i ispod te stvari. 299 00:20:18,140 --> 00:20:21,850 Ali jer želim im da ispune sada ću koristiti linearni raspored, 300 00:20:21,850 --> 00:20:24,510 i možete ga vidjeti već se puno toga za nas. 301 00:20:24,510 --> 00:20:28,890 Svi prikazi moraju imati svojstvo širine i visine, 302 00:20:28,890 --> 00:20:33,410 i to se događa da imaju težinu od 1, a to ima težinu od 1 303 00:20:33,410 --> 00:20:36,050 tako da ispunjava cijeli prostor. 304 00:20:36,050 --> 00:20:38,460 No, širina i visina su najvažniji. 305 00:20:38,460 --> 00:20:45,880 Ovaj ID polje ovdje nije važno u aktualnom rasporedu 306 00:20:45,880 --> 00:20:49,060 osim ako se koristi relativnu izgled i govoreći možemo referencirati 307 00:20:49,060 --> 00:20:52,990 jedan pogled poziciju u odnosu na drugu. 308 00:20:52,990 --> 00:20:56,170 Ako smo imali relativnu izgled se može reći poziciju ovu nastavku ovoga 309 00:20:56,170 --> 00:20:59,390 ili iznad tog ID, ali to će biti važno ID 310 00:20:59,390 --> 00:21:01,660 kada smo ga koristite u našem kodu, jer smo uporedili 311 00:21:01,660 --> 00:21:05,610 pojedinačni prikazi na ovaj način. 312 00:21:05,610 --> 00:21:10,350 >> A onda možete vidjeti tag requestFocus, što je nešto što vjerojatno vidjeli u pset 7. 313 00:21:10,350 --> 00:21:15,370 Tu je oznaku auto fokus ili nešto uz one linije za jednu od polja. 314 00:21:15,370 --> 00:21:22,100 I jedna stvar, naravno, možemo učiniti baš kao u HTML-u, 315 00:21:22,100 --> 00:21:25,660 i obavijest jedna od lijepih stvari o ADT je ​​da autocompletes ovdje. 316 00:21:25,660 --> 00:21:29,930 Možda nije tako lijepo kao što je to u Xcode, ali to ipak ipak, 317 00:21:29,930 --> 00:21:32,860 i mogli bismo reći savjet i zatim mu nekakav string 318 00:21:32,860 --> 00:21:37,070 željeli napisati poruku, 319 00:21:37,070 --> 00:21:41,300 a ako sam mu dati trenutak, također primijetiti da sam se malo pogrešku ovdje 320 00:21:41,300 --> 00:21:44,610 rekavši da bismo trebali koristiti string resurs za to, 321 00:21:44,610 --> 00:21:48,820 pa ako mi neka to učini neki od teškog rada za mene 322 00:21:48,820 --> 00:21:57,320 Ja mogu odabrati ovaj niz, to lomljenje Android i ekstrakta Android string. 323 00:21:57,320 --> 00:22:00,570 Ja mogu dati to ime, napisati poruku, 324 00:22:00,570 --> 00:22:04,180 i što je to sada učinio je zamijeniti taj hard-kodirani niz 325 00:22:04,180 --> 00:22:07,980 s obzirom na niz u nizu-a. XML datoteke, 326 00:22:07,980 --> 00:22:10,200 što znači sada je to ovdje. 327 00:22:10,200 --> 00:22:15,560 >> I znam da se čini pomalo trivijalno, a kao dodatni posao u ovom trenutku, 328 00:22:15,560 --> 00:22:17,840 ali kad imate hrpu stvari, cijela hrpa žice, 329 00:22:17,840 --> 00:22:20,750 to je jako važno, a posebno za lokalizaciju 330 00:22:20,750 --> 00:22:26,920 jer kao što sam spomenuo ranije, Android je vrlo globalno koristi operativni sustav 331 00:22:26,920 --> 00:22:35,950 koje možete jednostavno napraviti-en vrijednosti ili vrijednosti-SP 332 00:22:35,950 --> 00:22:44,320 ili nešto za engleski ili španjolski ili druge jezike. 333 00:22:44,320 --> 00:22:50,210 A onda vjerojatno niste imali to iskustvo još 334 00:22:50,210 --> 00:22:53,030 jer nismo puno JavaScript u smislu web programiranja, 335 00:22:53,030 --> 00:22:56,850 ali možemo napraviti ovo polje s nazivom onClick za gumb, 336 00:22:56,850 --> 00:23:02,350 i to je način pozivom u našem izgledu 337 00:23:02,350 --> 00:23:06,570 da želimo određenu funkciju da se zove u našem izvornom kodu. 338 00:23:06,570 --> 00:23:09,420 Idem nazvati ovaj sendMessage, 339 00:23:09,420 --> 00:23:13,390 i kako bi ovaj posao to znači da je u glavnom aktivnost ovdje 340 00:23:13,390 --> 00:23:19,180 Ja ću morati napraviti funkciju koja je javnosti 341 00:23:19,180 --> 00:23:22,250 , tako da se može pristupiti u izgledu. 342 00:23:22,250 --> 00:23:25,930 To je nevažeće jer jednostavno ne žele da se vrate ništa. 343 00:23:25,930 --> 00:23:37,760 Zvat ćemo je sendMessage, a to traje pogled, 344 00:23:37,760 --> 00:23:43,690 što je svojevrstan kontekst da možemo usidriti ovu metodu 345 00:23:43,690 --> 00:23:47,160 na to individualno pogled kada smo ga radi. 346 00:23:47,160 --> 00:23:50,090 >> I ne znam jeste li primjetili-dobro, ne bi ni primijetio, 347 00:23:50,090 --> 00:24:02,370 ali u ovom trenutku ovdje 348 00:24:02,370 --> 00:24:06,930 ovo je pogled tipa koji još nije uključena, 349 00:24:06,930 --> 00:24:10,630 i naravno, što svi znamo iz CS50 o tome ne uključujući vrste. 350 00:24:10,630 --> 00:24:13,120 Lijepo je stvar o IDE-a poput Eclipse je da 351 00:24:13,120 --> 00:24:17,520 ako zaboravite uključiti tip će podcrtati s malo crvene valovite 352 00:24:17,520 --> 00:24:19,680 a zatim vam dati mogućnost za uvoz pogled. 353 00:24:19,680 --> 00:24:23,130 Brz način za to je kontrola pomak O, i to će uvesti 354 00:24:23,130 --> 00:24:27,070 sve datoteke koje je potrebno da. 355 00:24:27,070 --> 00:24:33,670 Sada kada imamo ovu funkciju sendMessage, 356 00:24:33,670 --> 00:24:46,560 koji će poslati poruku iz MainActivity na novu aktivnost, 357 00:24:46,560 --> 00:24:55,230 ćemo morati koristiti namjeru za pokretanje novih aktivnosti iz ovoga, 358 00:24:55,230 --> 00:25:02,240 tako da ćemo vjerojatno žele stvoriti globalni konstantan ili se također posebno javnog konstantna 359 00:25:02,240 --> 00:25:06,240 koji će nam pomoći da znate kako ćemo na referentni string 360 00:25:06,240 --> 00:25:09,090 jer kad smo stvoriti namjeru da nismo samo zove novu aktivnost, 361 00:25:09,090 --> 00:25:11,520 ali možemo dati mnogo podataka. 362 00:25:11,520 --> 00:25:14,720 Skup je zapravo pojam koji se koristi Android, 363 00:25:14,720 --> 00:25:21,470 i to je način da se kaže da je to dodatnih podataka, koji ne može biti na vrlo sofisticiran tip podataka, 364 00:25:21,470 --> 00:25:24,510 ali svakako može uključivati ​​logičke ili žice ili Ints. 365 00:25:24,510 --> 00:25:29,750 Takve stvari. 366 00:25:29,750 --> 00:25:34,230 >> Slobodno pitajte o bilo kojem od ovih kvalifikacija ovdje, 367 00:25:34,230 --> 00:25:36,900 javnosti, konačno, statična. 368 00:25:36,900 --> 00:25:38,610 Javna je važno. 369 00:25:38,610 --> 00:25:47,090 To znači da možemo pristupiti ovoj varijablu iz drugih datoteka izvornog koda 370 00:25:47,090 --> 00:25:49,590 kao kada smo stvorili novu aktivnost. 371 00:25:49,590 --> 00:25:52,190 Možemo referentne string unutar ove datoteke. 372 00:25:52,190 --> 00:25:57,160 Ako je privatno, to znači da je ograničen na ovom pojedinačne datoteke ovdje. 373 00:25:57,160 --> 00:26:02,430 No, mi ćemo nazvati ovo nešto kao dodatnu poruku. 374 00:26:16,260 --> 00:26:23,300 Sada smo napravili ovu funkciju, a ako kliknete na gumb, ova funkcija će biti pozvani. 375 00:26:23,300 --> 00:26:27,970 No, nismo učinili ništa, očito, u funkciji. 376 00:26:27,970 --> 00:26:33,130 Ono što želimo učiniti sada je stvoriti novu aktivnost, 377 00:26:33,130 --> 00:26:35,350 aktivnosti koje će zapravo biti pokrenut. 378 00:26:35,350 --> 00:26:44,330 U Eclipse, možemo reći, novi Android aktivnost, aktivnost prazna. 379 00:26:44,330 --> 00:26:46,530 Možemo mu dati ime. 380 00:26:46,530 --> 00:26:57,050 Nazovimo to rezultat naše aktivnosti. 381 00:26:57,050 --> 00:27:04,430 A onda je to hijerarhijska roditelj polje je način određivanja 382 00:27:04,430 --> 00:27:08,180 Kako su aktivnosti međusobno povezani. 383 00:27:08,180 --> 00:27:11,020 Jer ovo će biti lansiran iz druge aktivnosti 384 00:27:11,020 --> 00:27:27,520 treba navesti da je roditelj glavni aktivnost. 385 00:27:27,520 --> 00:27:31,220 >> A mogao sam kliknuo na sljedećem polju postoji, što bi rekli su nam 386 00:27:31,220 --> 00:27:33,830 neka dodatna polja koja je također, uključujući 387 00:27:33,830 --> 00:27:38,800 ali lijepa stvar o ADT, opet, je da ako sam se pomaknite prema dolje ovdje 388 00:27:38,800 --> 00:27:45,740 u manifestu zapamtite da je sve ovo stvarno bio uključen po defaultu 389 00:27:45,740 --> 00:27:48,930 kad smo izvorno izradili projekt, 390 00:27:48,930 --> 00:27:53,090 i sada, jer mi se ovo stvoriti novu aktivnost, a ne samo 391 00:27:53,090 --> 00:27:58,610 dodajući vlastite klase datoteku jer smo prošli kroz njihov GUI za to 392 00:27:58,610 --> 00:28:01,930 Već je dodao sve to na Manifest za nas, 393 00:28:01,930 --> 00:28:06,020 što samo znači da je sada operativni sustav neće žaliti 394 00:28:06,020 --> 00:28:09,400 kada pokušavamo pokrenuti ovu aktivnost. 395 00:28:09,400 --> 00:28:14,620 I to je također, naravno, dao mu oznaku, koja se također pojavljuje u nizovima. 396 00:28:14,620 --> 00:28:17,340 To čini puno stvari na stražnjem kraju za nas. 397 00:28:17,340 --> 00:28:20,140 U svakom slučaju, sada kada imamo ovaj rezultat aktivnosti, kao i, 398 00:28:20,140 --> 00:28:23,810 Stvarni izvorni kod u datoteku izvora mapu, 399 00:28:23,810 --> 00:28:33,540 i možete vidjeti za kratko dodiruju na to- 400 00:28:33,540 --> 00:28:37,790 jer mi je pričao o tom hijerarhijskom roditelja 401 00:28:37,790 --> 00:28:46,640 dao ovo polje android.r.ide.home u ovom odabranom onOption stvar. 402 00:28:46,640 --> 00:28:49,020 >> Što to zapravo govori je tu je gumb izbornika sada 403 00:28:49,020 --> 00:28:53,110 da je u gornjem lijevom kutu zaslona 404 00:28:53,110 --> 00:29:02,220 ako se vratim na PowerPoint, gdje smo prvi put razgovarali o akcijskom baru 405 00:29:02,220 --> 00:29:05,380 zbog hijerarhijske roditelja sada postoji mala strelica ovdje 406 00:29:05,380 --> 00:29:10,610 i to je kliknuti, tako bismo trebali biti u mogućnosti da-nakon što smo zapravo pokrenuti ovu aplikaciju- 407 00:29:10,610 --> 00:29:15,360 vratiti, i to je način uštede nam malo koda postoji. 408 00:29:26,220 --> 00:29:40,180 Sada je u njemu-i, čini se da se žale da je na trenutak. 409 00:29:40,180 --> 00:29:43,910 Idemo komentirati da van. 410 00:29:43,910 --> 00:29:48,260 Sada, kako se zapravo u interakciji s ovih dviju djelatnosti, 411 00:29:48,260 --> 00:29:55,020 moramo stvoriti namjeru koja uključuje svih tih podataka. 412 00:29:55,020 --> 00:29:58,950 U sendMessage sada idem na krstarenje kroz neke bitova koda 413 00:29:58,950 --> 00:30:00,700 i objasniti da kao idem. 414 00:30:00,700 --> 00:30:06,280 Namjera, kao što sam rekao, je način za pokretanje jedne aktivnosti na drugu. 415 00:30:06,280 --> 00:30:10,000 Namjera je tip. Mi smo stvaranje varijablu myIntent. 416 00:30:10,000 --> 00:30:13,980 >> A to je zapravo objekt, što je razlog zašto moramo zvati novi. 417 00:30:13,980 --> 00:30:18,500 To je uobičajena uporaba Java postoji, što bi moglo potrajati malo koristi za dobivanje. 418 00:30:18,500 --> 00:30:23,900 To znači da ćemo pomoću aktivnosti ili klase MainActivity, 419 00:30:23,900 --> 00:30:28,630 i namjera na taj način uzima aktivnost to ide od 420 00:30:28,630 --> 00:30:36,060 te aktivnosti da će, što nazivamo ResultActivity, 421 00:30:36,060 --> 00:30:38,170 i da je svoj razred. 422 00:30:38,170 --> 00:30:41,720 Uključi to. 423 00:30:41,720 --> 00:30:47,370 A onda, kao što sam spomenuo prije, dali smo taj ID na području uređivanje teksta 424 00:30:47,370 --> 00:30:53,710 i prikaz teksta, tako da bi za programsko snimanje 425 00:30:53,710 --> 00:31:01,860 Tekst koji postoji u editText 426 00:31:01,860 --> 00:31:06,710 mi koristimo ovu funkciju pod nazivom findViewByID, 427 00:31:06,710 --> 00:31:13,660 koji je sličan nešto što ćete koristiti prilikom pokušaja da se polja s DOM. 428 00:31:13,660 --> 00:31:17,560 Možda David govori o tome u predavanju. 429 00:31:17,560 --> 00:31:26,600 No, to je samo način dobivanja onih-to je razlog zašto smo označiti ove stvari s tim poljima. 430 00:31:26,600 --> 00:31:31,110 Id.editText1. 431 00:31:31,110 --> 00:31:35,220 To je već autocompleting za mene postoji. 432 00:31:35,220 --> 00:31:42,010 >> A onda ćemo također uključuju-ovu editText sada kada imamo na terenu 433 00:31:42,010 --> 00:31:47,640 u našem programu, sve što je bilo u osnovi findViewByID 434 00:31:47,640 --> 00:31:50,870 što bi mogao misliti o njemu kao da nam daju reference na taj editText. 435 00:31:50,870 --> 00:31:54,570 Sada želimo dobiti string ili poruka 436 00:31:54,570 --> 00:32:00,670 u tom editText što možemo učiniti pomoću- 437 00:32:00,670 --> 00:32:03,360 možete misliti editText kao struct- 438 00:32:03,360 --> 00:32:07,600 mi to zovemo objekt u Java-s cijela hrpa različitih metoda 439 00:32:07,600 --> 00:32:10,650 ili polja i osobine priključen na njega. 440 00:32:10,650 --> 00:32:15,510 Kad kažem editText. to mi daje priliku za pristup 441 00:32:15,510 --> 00:32:19,770 Metoda kao što Gettext, koji će se trenutni tekst 442 00:32:19,770 --> 00:32:23,990 u tom editText a zatim pretvaranje da je izrijekom 443 00:32:23,990 --> 00:32:26,520 u nizu, a mi smo spašeni poruku. 444 00:32:26,520 --> 00:32:32,730 Sada smo zapravo žele nešto učiniti s tom namjerom smo stvorili nekoliko trenutaka prije. 445 00:32:32,730 --> 00:32:40,250 Ja ću staviti dodatni kako se zove u namjeri, 446 00:32:40,250 --> 00:32:43,330 koji se, opet, kao što sam rekao prije, ovo je način stvaranja zamotuljak 447 00:32:43,330 --> 00:32:45,980 s cijelom gomilom podataka. 448 00:32:45,980 --> 00:32:50,920 Dodatni Poruka je naš tag tako da znamo što smo štedi ovaj pod, 449 00:32:50,920 --> 00:32:56,700 i onda ću uključujući poruke. 450 00:32:56,700 --> 00:33:04,870 >> I onda mi zapravo može pokrenuti aktivnosti dajući mu parametra myIntent. 451 00:33:04,870 --> 00:33:10,630 I to će zapravo lansirati aktivnost, tako da sada jer sam nadograditi na Windows 8 452 00:33:10,630 --> 00:33:15,870 Tu bi moglo biti neke pogreške koje se pojavljuju kratko, ali pokušati ih ignorirati. 453 00:33:28,010 --> 00:33:30,310 A to je Android emulator. 454 00:33:30,310 --> 00:33:33,540 Nadam broj zapravo će se pojaviti u trenutku. 455 00:33:33,540 --> 00:33:36,680 Opet, ignorirajući sve one male stvari. 456 00:33:36,680 --> 00:33:42,290 Ali Android emulator možete natjecati bilo koju verziju operativnog sustava 457 00:33:42,290 --> 00:33:45,180 od najranijih one, krafna, 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 Ali kao što možete vidjeti upravo sada, to je nešto što smo napravili. 460 00:33:53,150 --> 00:33:55,780 To ima MainActivity, editText, gumb. 461 00:33:55,780 --> 00:34:01,550 Ja mogu upisati nešto ovdje, ali ono što nam nedostaje u ovom trenutku? 462 00:34:01,550 --> 00:34:05,190 Napravili smo na terenu u MainActivity da će to poslati poruku 463 00:34:05,190 --> 00:34:08,570 za druge aktivnosti, ali u ovom trenutku 464 00:34:08,570 --> 00:34:12,330 nismo učinili ništa u druge djelatnosti, tako da to neće primiti ništa. 465 00:34:12,330 --> 00:34:18,800 Idemo završiti taj dio prije nego što smo ići dalje. 466 00:34:18,800 --> 00:34:25,760 >> Ovaj rezultat aktivnosti, ono što trebamo napraviti je da ćemo morati učiniti je da ćemo morati- 467 00:34:25,760 --> 00:34:30,070 možemo upućivanje namjeru u ovom djelatnošću, 468 00:34:30,070 --> 00:34:33,580 tako da moramo uhvatiti nakane, što je jako jednostavno. 469 00:34:33,580 --> 00:34:40,780 To je funkcija uključena u klasi djelatnosti, 470 00:34:40,780 --> 00:34:47,610 tako da mi samo može reći "dobiti poruku od namjere." 471 00:34:47,610 --> 00:34:56,260 "Namjera myIntent = getIntent." 472 00:34:56,260 --> 00:35:00,030 I to će nam dati-myIntent sada je objekt, 473 00:35:00,030 --> 00:35:05,380 što je referenca na namjere koje nas je dovelo do ove aktivnosti. 474 00:35:05,380 --> 00:35:10,130 MainActivity naziva i daje dodatne informacije kako bi rezultirati aktivnost. 475 00:35:10,130 --> 00:35:14,070 Rezultat aktivnosti sada izgleda u namjeri da ga je dovela ovdje, 476 00:35:14,070 --> 00:35:23,540 i možemo pristupiti poruku da smo stvorili u drugu, 477 00:35:23,540 --> 00:35:26,370 getStringExtra, a to će autocomplete za mene. 478 00:35:26,370 --> 00:35:31,190 I sjeti se tada, na način na koji smo označili da je malo podataka 479 00:35:31,190 --> 00:35:38,400 bio dajući mu ovo područje ovdje, ovaj javni string, 480 00:35:38,400 --> 00:35:42,080 što je oznaka za string smo zapravo uključeni. 481 00:35:42,080 --> 00:35:48,450 >> Ako kažem MainActivity.Extra_Message 482 00:35:48,450 --> 00:35:52,200 to pravo postoji, a to je nešto kao parametar ime 483 00:35:52,200 --> 00:35:55,330 kad smo prošli kod sa kontrolerom na predlošku, 484 00:35:55,330 --> 00:35:57,680 kad bih rekao nešto naslov strelica. 485 00:35:57,680 --> 00:36:01,140 To je ista vrsta ideja postoji. 486 00:36:01,140 --> 00:36:07,130 Sada, ne zaboravite to. 487 00:36:07,130 --> 00:36:12,230 Također nam je ovaj auto stvorio ili automatski generirani kod 488 00:36:12,230 --> 00:36:16,410 za rezultat aktivnosti, što uključuje tekst prikaz u sredini 489 00:36:16,410 --> 00:36:19,690 koji kaže Hello World. 490 00:36:19,690 --> 00:36:27,510 Mi bi potencijalno moglo bi da veći. 491 00:36:27,510 --> 00:36:33,980 Idemo to učiniti prvi. 492 00:36:33,980 --> 00:36:39,550 Mogli bi ga 40 gustoća piksela neovisni. 493 00:36:39,550 --> 00:36:42,670 Da vidimo, to je super ogromna. To će biti u redu. 494 00:36:42,670 --> 00:36:48,180 A onda, kako bi upućivanje ovaj individualni pogled teksta u našem kodu 495 00:36:48,180 --> 00:36:53,890 ćemo morati dati osobnu iskaznicu, 496 00:36:53,890 --> 00:36:58,350 i kako bi se to kažemo @ + id, što znači da dodijeliti ID. 497 00:36:58,350 --> 00:37:02,480 Ako mi samo rekao @ id da bi se pretpostaviti da smo pozivom iskaznicu koja već postoji, 498 00:37:02,480 --> 00:37:07,760 i nazovimo ovu našu resultTextView. 499 00:37:07,760 --> 00:37:10,570 I obavijest da je u XML nema potrebe za zarezom ili bilo što. 500 00:37:10,570 --> 00:37:12,380 Sve je unutar tih oznaka. 501 00:37:12,380 --> 00:37:15,530 To je vrlo sličan HTML-u puno osjetila. 502 00:37:15,530 --> 00:37:22,760 >> Potrebno je malo koristi za dobivanje, ali na kraju ćete se osjećati prilično ugodno s njom. 503 00:37:22,760 --> 00:37:31,320 Idemo ažurirati tekst za naše more rezultata teksta, 504 00:37:31,320 --> 00:37:35,650 i kao što smo učinili kad smo bili uzimajući to polje uređivati ​​tekst u druge djelatnosti 505 00:37:35,650 --> 00:37:46,630 u MainActivity ovdje ćemo i isto- 506 00:37:46,630 --> 00:37:54,890 pronaći ćemo stajalište pomoću ID. 507 00:37:54,890 --> 00:37:59,640 I R, u slučaju da nisam spomenuo ovaj prije, je referenca na naše resurse mapu, 508 00:37:59,640 --> 00:38:05,350 a zatim ID je referenca za sve u mapi resursa, sve iskaznice, 509 00:38:05,350 --> 00:38:10,060 i resultTextView. 510 00:38:10,060 --> 00:38:13,010 I baš kao i prije, resultTextView je objekt, 511 00:38:13,010 --> 00:38:15,780 što znači da ima sve te osobine povezane s njom. 512 00:38:15,780 --> 00:38:20,610 Kad smo iskoristili Gettext za uređivanje teksta za ovaj tekst polje ili tekstualni prikaz 513 00:38:20,610 --> 00:38:23,980 zapravo možemo koristiti setText, 514 00:38:23,980 --> 00:38:26,960 a onda smo već pronašli poruku od namjere, 515 00:38:26,960 --> 00:38:35,760 pa mogu reći poruku, a to će zapravo postaviti poruku. 516 00:38:35,760 --> 00:38:41,820 >> To je uzeti trenutak za pokretanje, a onda ćemo vidjeti hoće li ili ne to ruši, 517 00:38:41,820 --> 00:38:48,670 , ali bilo kakva pitanja o tom procesu upravo tamo, takva vrsta interakcije? 518 00:38:48,670 --> 00:38:51,490 U mnogočemu je jednostavan. 519 00:38:51,490 --> 00:38:53,960 Razlog ću kroz nešto relativno jednostavan 520 00:38:53,960 --> 00:38:57,330 je, opet, jer ste dobili da biste vidjeli u interakcije između izgledu, 521 00:38:57,330 --> 00:38:59,520 izvorni kod, kako ste referentni stvari 522 00:38:59,520 --> 00:39:07,680 a možda se malo izloženost kako Java tamo radi. 523 00:39:07,680 --> 00:39:16,500 Ako sam zapravo nešto tipa ovdje, kao što ohai, a onda sam pritisnite gumb, 524 00:39:16,500 --> 00:39:22,260 to pokreće novu aktivnost, a to tekstualni prikaz kaže ohai. 525 00:39:22,260 --> 00:39:27,640 To je vrlo jednostavan, ali nadamo se nakon tog primjer 526 00:39:27,640 --> 00:39:32,310 što vrsta vidjeti kako ta interakcija djeluje, a sada da je nered datoteka 527 00:39:32,310 --> 00:39:36,870 Na lijevoj strani, za svih tih projekata mape, nadam se da znate gdje se mogu pogledati danas. 528 00:39:36,870 --> 00:39:38,700 To je tvoj izvor broj područja. 529 00:39:38,700 --> 00:39:41,760 >> Izgled je zapravo jedina stvar koju ćete nositi sa sve dok ne uključuje slike 530 00:39:41,760 --> 00:39:46,370 a drawables ili što god, i vrijednosti, koje će uključivati ​​žice, 531 00:39:46,370 --> 00:39:51,960 kao što smo spomenuli, a zatim stilovi je nešto što je vrsta kao što su CSS. 532 00:39:51,960 --> 00:39:56,410 Adresa ga kad želite, ali sve dok ne osjetite ugodno s dodavanjem dodatni štih 533 00:39:56,410 --> 00:40:02,520 na svoj zahtjev da nema potrebe brinuti o tome previše. 534 00:40:02,520 --> 00:40:07,410 Samo završiti jednu drugu stvar koju svakako želite uključiti- 535 00:40:07,410 --> 00:40:13,010 uz pretpostavku da želite integrirati cool značajke i uštedjeti neke dodatne kodiranje- 536 00:40:13,010 --> 00:40:16,460 će se uključiti 3rd party knjižnice. 537 00:40:16,460 --> 00:40:19,840 Evo malo Android momak s Sherlock Holmes šešir. 538 00:40:19,840 --> 00:40:23,040 To je akcija bar Sherlock knjižnica, 539 00:40:23,040 --> 00:40:25,390 koji u osnovi znači da je akcijski bar ste vidjeli ranije, 540 00:40:25,390 --> 00:40:29,590 koji je sada standard u Ice Cream Sandwich i Jelly Bean, 541 00:40:29,590 --> 00:40:33,100 Ako želite donijeti takvu vrstu iskustva korisnika kako bi korisnicima na starijim verzijama 542 00:40:33,100 --> 00:40:39,290 i spasiti od brige o tome kako korisnik će se kretati 543 00:40:39,290 --> 00:40:42,490 na starijim verzijama ako ta stvar nije tamo možete uključiti ovu knjižnicu 544 00:40:42,490 --> 00:40:46,770 i onda samo trebate da referentna umjesto default Android 545 00:40:46,770 --> 00:40:50,250 knjižnice za akcijskom bara, što referentno ovu knjižnicu podršku. 546 00:40:50,250 --> 00:40:53,090 >> Stvari kao Scoreloop, to je velika, ako idete uključiti igru. 547 00:40:53,090 --> 00:40:57,280 To vam omogućuje da dodate vođa zajednice i postignuća u igrama. 548 00:40:57,280 --> 00:41:00,900 AdMob je način stavljanja oglasa u svoje aplikacije 549 00:41:00,900 --> 00:41:02,900 u slučaju da želite napraviti malo novca od njega. 550 00:41:02,900 --> 00:41:05,730 Naravno, tu je Facebook i Twitter za integriranje postoji 551 00:41:05,730 --> 00:41:08,170 ako želite dijeliti stvari jednostavno, et cetera. 552 00:41:08,170 --> 00:41:15,120 Dropbox, isto tako, i Google Analytics je da shema izgleda jedan postoji. 553 00:41:15,120 --> 00:41:19,070 To će biti vrlo važno ako stvarno želite vidjeti tko je u interakciji 554 00:41:19,070 --> 00:41:25,800 s aplikacijom ili tko je to, kako su u interakciji, i tako dalje. 555 00:41:25,800 --> 00:41:30,650 Google, po defaultu, govori puno o statistici koja je instalirala vaš app 556 00:41:30,650 --> 00:41:35,020 i što oni imaju telefone, što operativni sustav verzije imaju. 557 00:41:35,020 --> 00:41:38,080 No, ako želite vidjeti tko ga koristi na dnevnoj bazi i kako ga koristiti 558 00:41:38,080 --> 00:41:42,860 onda ćete želite uključiti neku vrstu sustava za praćenje kao što je to. 559 00:41:42,860 --> 00:41:44,990 >> Kada ste spremni za distribuciju svoju aplikaciju 560 00:41:44,990 --> 00:41:46,930 Ne treba ulaziti u to u previše dubine. 561 00:41:46,930 --> 00:41:49,090 Kliknite na link ovdje, Google igrati. 562 00:41:49,090 --> 00:41:51,080 Nekada je to bilo Android tržište. 563 00:41:51,080 --> 00:41:53,470 Oni preimenovan sve što je s Google Play, 564 00:41:53,470 --> 00:41:55,230 pa sad ti poslati na to. 565 00:41:55,230 --> 00:41:57,140 To je vrlo jednostavan. 566 00:41:57,140 --> 00:42:01,070 Morate uključiti opis, neki screenshotovi. 567 00:42:01,070 --> 00:42:05,660 Kao što sam rekao, ne postoji proces odobravanja poput iOS. 568 00:42:05,660 --> 00:42:07,270 A gdje otići odavde? 569 00:42:07,270 --> 00:42:09,450 Pokazao sam vam jako jednostavan primjer. 570 00:42:09,450 --> 00:42:13,270 Nadam se čini užasno jednostavna 571 00:42:13,270 --> 00:42:15,740 pa to je vjerojatno dobar znak. 572 00:42:15,740 --> 00:42:20,080 Ako ste uopće osjetili malo zbunjeni ili niste sigurni o točno ono što sam tipkati 573 00:42:20,080 --> 00:42:26,160 to je također u redu, ali od ovog ići na Google vodiče. 574 00:42:26,160 --> 00:42:28,330 Ovo je dobro mjesto za početak. 575 00:42:28,330 --> 00:42:31,460 To će vam govoriti kroz ono što oni očekuju u smislu primjene dizajna, 576 00:42:31,460 --> 00:42:33,380 Kako su korisnici normalno komunicirati s njim. 577 00:42:33,380 --> 00:42:36,450 To je puno više nego slobodni oblik iOS, rekao bih, 578 00:42:36,450 --> 00:42:41,330 koji se čini kao stol pogledi-Ne znam, to je njihov kruh i maslac. 579 00:42:41,330 --> 00:42:44,690 Sve je stol pogled klizna gore i dolje. 580 00:42:44,690 --> 00:42:48,160 Uz Android oni definitivno potaknuti ljude da na to gledate iz 581 00:42:48,160 --> 00:42:51,720 cijela hrpa različitih perspektiva. 582 00:42:51,720 --> 00:42:56,000 >> Kada su kit za razvoj softvera u ovom ADT 583 00:42:56,000 --> 00:43:03,010 po defaultu imate hrpu primjera projekata u Androidu. 584 00:43:03,010 --> 00:43:05,470 Upravo ovdje, Android, Android Uzorak projekta. 585 00:43:05,470 --> 00:43:11,870 Ako sam kliknite na to, onda mogu odabrati verziju za koju uzorka projekti primjenjivati. 586 00:43:11,870 --> 00:43:13,300 Postoji cijela hrpa različitih stvari ovdje. 587 00:43:13,300 --> 00:43:16,690 Ona započinje s akcijskom bar kompatibilnosti, 588 00:43:16,690 --> 00:43:24,610 brzinomjer igra, backup i restore, Bluetooth, gesta graditelj. 589 00:43:24,610 --> 00:43:28,930 JetBoy je primjer igre su ti dali, kao što je LunarLander. 590 00:43:28,930 --> 00:43:31,250 Postoji cijela hrpa uzoraka aplikacija ovdje, 591 00:43:31,250 --> 00:43:35,290 i svi su oni usmjereni na različite aspekte Androida API, 592 00:43:35,290 --> 00:43:41,520 , a ideja je da kao što bi vaš zahtjev 593 00:43:41,520 --> 00:43:44,110 ne morate naučiti sve o Android napraviti Android aplikaciju. 594 00:43:44,110 --> 00:43:47,300 Vi samo morate naučiti o dijelovima koje ste zapravo ćete koristiti. 595 00:43:47,300 --> 00:43:49,340 Pogledajte ovih primjera knjižnicama. 596 00:43:49,340 --> 00:43:51,510 Slobodno kopirajte i zalijepite kod i to ponovo. 597 00:43:51,510 --> 00:43:53,850 To je velika stvar za pogledati u težoj koda 598 00:43:53,850 --> 00:43:57,060 i pokušati ga shvatiti, što je, naravno, zašto u CS50 599 00:43:57,060 --> 00:44:01,510 Često smo vam dati velike količine izvornog koda. 600 00:44:01,510 --> 00:44:04,620 Pogledajte neke od njih, ako idete koristiti slične knjižnice 601 00:44:04,620 --> 00:44:08,630 , a zatim ga primijeniti na svoj vlastiti kod. 602 00:44:08,630 --> 00:44:10,430 I naravno, postoje tutoriali. 603 00:44:10,430 --> 00:44:12,690 Traži tutoriali. 604 00:44:12,690 --> 00:44:17,020 Našao sam puno dobrih online koji vam mogu ubaciti u brzinu 605 00:44:17,020 --> 00:44:20,080 s tim što stvarno fragmenti su i kako možete ih koristiti. 606 00:44:20,080 --> 00:44:22,240 >> Neki od tih novih dizajnerskih stvari, kao što su fragmenti, 607 00:44:22,240 --> 00:44:26,840 vi stvarno ne moraju biti zabrinuti ako ste izradu 608 00:44:26,840 --> 00:44:30,560 prilično velik u opsegu projekta. 609 00:44:30,560 --> 00:44:32,510 Ovo su riječi koje Google pokušava ukinuti u. 610 00:44:32,510 --> 00:44:35,570 Stackoverflow je, naravno, tvoj prijatelj. 611 00:44:35,570 --> 00:44:37,930 Nadam se da sam vam prodao malo na Android, 612 00:44:37,930 --> 00:44:41,640 shvativši da je puno lakše pristupiti u smislu samo na kodiranje jezika. 613 00:44:41,640 --> 00:44:45,970 Java je rekao bih da je mnogo lakše razumjeti nego Objective-C. 614 00:44:45,970 --> 00:44:50,780 Android raste mislim da puno više od iOS. 615 00:44:50,780 --> 00:44:54,890 Mislim, podaci su tamo, osim onoga što mislim. 616 00:44:54,890 --> 00:44:56,920 To će biti oko za neko vrijeme, 617 00:44:56,920 --> 00:45:00,880 i oni su nekoliko godina iza sebe u smislu njihov dizajn ciklusa, 618 00:45:00,880 --> 00:45:04,690 pa to je vrsta razumljivo da oni još uvijek rade kroz neke od tih 619 00:45:04,690 --> 00:45:09,080 konzistencije pitanja, kao što je ovoj akciji bar je nova stvar za njih još uvijek, 620 00:45:09,080 --> 00:45:16,010 svojevrsno stvaranje slično korisničko iskustvo na svim svojim aplikacijama. 621 00:45:16,010 --> 00:45:20,650 Nadam se da možete ići naprijed i sada se otvaraju Eclipse 622 00:45:20,650 --> 00:45:22,870 i napravite svoj vlastiti Android aplikacije. 623 00:45:22,870 --> 00:45:30,240 >> Se bilo tko imati bilo kakvih pitanja prije nego što smo završiti o bilo čemu? 624 00:45:30,240 --> 00:45:34,410 Mogu vam reći odgovor je 42. 625 00:45:34,410 --> 00:45:41,990 Pa, sretan kodiranja svima, i sretno. 626 00:45:41,990 --> 00:45:44,990 [CS50.TV]