1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Seminar] [Android Apps (Acum, cu fasole jeleu!)] 2 00:00:02,610 --> 00:00:04,210 [Iordania Jozwiak] [Universitatea Harvard] 3 00:00:04,210 --> 00:00:06,780 [Aceasta este CS50.] [CS50.TV] 4 00:00:06,780 --> 00:00:11,600 >> Bună ziua tuturor, și bun venit la Apps Android (acum cu fasole jeleu!) Seminar. 5 00:00:11,600 --> 00:00:14,530 Se numește acum cu Jelly Beans, desigur, pentru că 6 00:00:14,530 --> 00:00:17,310 cea mai recentă versiune a sistemului de operare este numit Jelly Bean. 7 00:00:17,310 --> 00:00:22,950 Când am vorbit despre Android de anul trecut și a făcut acest lucru în esență același seminar 8 00:00:22,950 --> 00:00:29,150 Am fost prezentat de modele de design și opțiunile stilistice de Turtă dulce, 9 00:00:29,150 --> 00:00:31,250 chiar dacă Ice Cream Sandwich a ieșit la timp, 10 00:00:31,250 --> 00:00:33,680 și acest lucru este ceva vom vorbi despre merge mai departe un pic. 11 00:00:33,680 --> 00:00:35,720 Android, desigur, are unele probleme cu fragmentare, 12 00:00:35,720 --> 00:00:40,240 astfel încât cel mai recent sistem de operare Google este, de obicei, 13 00:00:40,240 --> 00:00:44,710 Nu cu adevărat de gând să devină comună în rândul utilizatorilor de potențial de până la un an, din păcate. 14 00:00:44,710 --> 00:00:49,960 >> Dar, indiferent care, vom vorbi despre o multime de motive 15 00:00:49,960 --> 00:00:53,000 Android este mult mai bună decât iOS. 16 00:00:53,000 --> 00:00:56,410 Bine, vom vorbi despre Android versus iOS, 17 00:00:56,410 --> 00:00:59,770 unele paradigme de design, cum vei fi stabilite într-un singur diapozitiv, 18 00:00:59,770 --> 00:01:03,410 și diferența mare dintre acesta și anul trecut este doar vreau să 19 00:01:03,410 --> 00:01:06,860 zoom prin unele lucruri conceptuale care lucrează cu 20 00:01:06,860 --> 00:01:09,950 sistemul de operare și apoi du-te într-un exemplu foarte de bază. 21 00:01:09,950 --> 00:01:13,730 De fapt, doar un exemplu care Google descrie pentru construirea prima aplicatie, 22 00:01:13,730 --> 00:01:17,070 și vom trece prin asta împreună și doar descrie. 23 00:01:17,070 --> 00:01:22,100 >> Știu că mulți dintre voi ați codificate doar în C, așa Java este deja va fi 24 00:01:22,100 --> 00:01:27,220 o perspectivă diferită, și în acest fel veți obține picioarele ude 25 00:01:27,220 --> 00:01:31,540 și se simt un pic mai confortabil cu el, sperăm. 26 00:01:31,540 --> 00:01:35,330 Un rezumat rapid, Android versus iOS. 27 00:01:35,330 --> 00:01:39,200 În Android există această taxă dezvoltator o singură dată de $ 25, 28 00:01:39,200 --> 00:01:42,390 nimic din chestia asta 100 de dolari pe an. 29 00:01:42,390 --> 00:01:45,440 Nu există restricții, ceea ce înseamnă că, dacă doresc să depună o aplicație, 30 00:01:45,440 --> 00:01:51,560 Eu doar îl prezintă, și nu există nici un proces de aprobare ca nu este pentru iOS. 31 00:01:51,560 --> 00:01:53,890 Ai de a dezvolta cu Java folosind Eclipse, 32 00:01:53,890 --> 00:01:57,090 care este platforma de cruce, așa că nu contează dacă aveți un Mac, 33 00:01:57,090 --> 00:01:59,600 Ferestre, sau o mașină de Linux. 34 00:01:59,600 --> 00:02:03,730 Desigur, cu iOS va trebui să utilizați XCode pe un Mac, 35 00:02:03,730 --> 00:02:06,930 și Android este folosit de mai multe persoane, 36 00:02:06,930 --> 00:02:11,580 Deci, dacă doriți aplicația să aibă un fel de vizibilitate sau poate 37 00:02:11,580 --> 00:02:14,110 a face un pic de bani de la reclame 38 00:02:14,110 --> 00:02:17,450 esti, probabil, mai multe sanse de a beneficia de Android. 39 00:02:17,450 --> 00:02:20,630 >> Și un lucru care a fost întotdeauna cunoscute despre Android 40 00:02:20,630 --> 00:02:25,100 este suma extrem de personalizare, în timp ce iOS este foarte fixată în căile lor 41 00:02:25,100 --> 00:02:29,380 astfel încât să poată menține securitatea și controlul asupra fiecarui aspect mic 42 00:02:29,380 --> 00:02:34,180 de proiectare în sistemul lor de operare și aplicații individuale. 43 00:02:34,180 --> 00:02:40,180 Android este forma foarte liber, și nu există atât de mult mai multe posibilități. 44 00:02:40,180 --> 00:02:42,530 Bine, unele paradigme de design. 45 00:02:42,530 --> 00:02:49,600 Observați aici, la fel ca iOS are tablete și iPhone și iPod Touches 46 00:02:49,600 --> 00:02:53,840 ei trebuie să sprijine, să zicem, ca o duzină de dispozitive dacă doriți să sprijine 47 00:02:53,840 --> 00:02:55,450 lucrurile istorice, precum și. 48 00:02:55,450 --> 00:02:58,410 Cu Android va trebui să susțină sute de dispozitive, 49 00:02:58,410 --> 00:03:01,240 astfel încât există unele lucruri pe care Google a fost încercarea de a pune în aplicare 50 00:03:01,240 --> 00:03:04,970 pentru a face experiența utilizatorului un pic mai consistent, 51 00:03:04,970 --> 00:03:08,560 dar vom vorbi de asemenea despre modul în care acest lucru înseamnă că există probleme de fragmentare 52 00:03:08,560 --> 00:03:11,700 care în mod constant trebuie să fie conștienți de susținere. 53 00:03:11,700 --> 00:03:16,140 Fragmentarea înseamnă că există mai multe sisteme de operare diferite, 54 00:03:16,140 --> 00:03:20,330 multe telefoane diferite, cu diferite configuratii hardware care rulează Android toate în același timp, 55 00:03:20,330 --> 00:03:29,680 astfel încât acest grafic aici datează de aproximativ 6 luni. 56 00:03:29,680 --> 00:03:36,460 Da, de 6 luni, și puteți vedea cum cele mai întunecate banda 57 00:03:36,460 --> 00:03:39,330 pe partea de jos este Jelly Bean, care a ieșit de peste vara, 58 00:03:39,330 --> 00:03:42,970 și puteți vedea chiar acum, probabil, aproximativ 2% din telefoanele au. 59 00:03:42,970 --> 00:03:45,520 >> Ice Cream Sandwich a ieșit mai mult de un an în urmă, 60 00:03:45,520 --> 00:03:47,770 și un sfert de telefoane o au. 61 00:03:47,770 --> 00:03:53,910 Există încă o mulțime de telefoane care folosesc versiunea sistemului de operare de ani în urmă. 62 00:03:53,910 --> 00:03:57,820 Un lucru pe care Google a încercat să facă pentru a face experiența utilizatorului 63 00:03:57,820 --> 00:04:01,400 o mult mai consistentă în aplicații începe cu Honeycomb, 64 00:04:01,400 --> 00:04:04,320 care este versiunea comprimat, apoi Ice Cream Sandwich si Jelly Bean, 65 00:04:04,320 --> 00:04:06,750 acestea sunt într-adevăr încearcă să accentueze utilizarea acestui bara de acțiuni, 66 00:04:06,750 --> 00:04:10,430 care este ceea ce se poate vedea în partea de sus aici, 67 00:04:10,430 --> 00:04:14,730 totul chiar aici, inclusiv acest buton setările mic. 68 00:04:14,730 --> 00:04:16,079 Este o alegere de design. 69 00:04:16,079 --> 00:04:18,000 Acum, ori de câte ori vedea cele 3 puncte înseamnă faceți clic pe acest lucru, 70 00:04:18,000 --> 00:04:21,880 și va exista un meniu drop-down, care are un fel de setări. 71 00:04:21,880 --> 00:04:28,900 Acest lucru arată doar pentru că am făcut clic pe acest buton. 72 00:04:28,900 --> 00:04:32,040 Acest lucru este ceva ce ei încearcă să folosească pentru a face aplicații un pic mai consistent 73 00:04:32,040 --> 00:04:39,210 peste bord și, astfel utilizatorul are un sentiment mai bun de experiență uniform. 74 00:04:39,210 --> 00:04:42,640 >> Ok, deci în cazul în care nu au făcut deja acest lucru sau dacă te uiți la domiciliu 75 00:04:42,640 --> 00:04:50,210 atunci aveți posibilitatea să urmați acești pași pentru a configura mediul de codificare. 76 00:04:50,210 --> 00:04:52,630 Aceasta va implica merge la site-ul aici. 77 00:04:52,630 --> 00:04:56,260 Puteți Google de a instala Android SDK 78 00:04:56,260 --> 00:04:59,130 și să urmeze unele descrieri acolo. 79 00:04:59,130 --> 00:05:01,310 Ei vă spun totul. 80 00:05:01,310 --> 00:05:05,160 Ei au de a instala, descărca Eclipse SDK versiunea Classic, 81 00:05:05,160 --> 00:05:07,450 chiar dacă, desigur, suntem de codificare în Java. 82 00:05:07,450 --> 00:05:12,190 Ei recomanda acest una, iar apoi acest ADT, instrumente de dezvoltare Android, 83 00:05:12,190 --> 00:05:17,300 este un plug-in care vă instalați în Eclipse care vă permite să 84 00:05:17,300 --> 00:05:20,550 au o experiență mult mai raționalizate cu Android în Eclipse. 85 00:05:20,550 --> 00:05:24,070 Acesta vă va oferi unele interfețe grafice cu utilizatorul 86 00:05:24,070 --> 00:05:29,610 pentru proiectarea de vedere, și vă va oferi mult mai mult sprijin 87 00:05:29,610 --> 00:05:34,840 și capacitatea de a lansa cu emulator și tot ce fel de lucruri. 88 00:05:34,840 --> 00:05:36,090 Cadru de aplicare. 89 00:05:36,090 --> 00:05:41,590 >> Vreau să vorbesc despre modul în care sunt structurate proiectele din cadrul Android, 90 00:05:41,590 --> 00:05:44,830 și apoi vom merge într-un exemplu rapid, și, sperăm, 91 00:05:44,830 --> 00:05:48,820 puteți pune întrebări în orice moment și se simt confortabil de la sfârșitul anului acesta. 92 00:05:48,820 --> 00:05:50,090 Avem în primul rând un jargon. 93 00:05:50,090 --> 00:05:55,330 O activitate este ca a ecranului puteți vedea atunci când lansa o aplicație. 94 00:05:55,330 --> 00:05:57,840 Întreaga experiență este activitatea în sine, 95 00:05:57,840 --> 00:06:00,790 așa că ai putea gândi la ea ca un ecran sau o imagine, 96 00:06:00,790 --> 00:06:04,540 dar este de fapt partea de codul sursă de ea. 97 00:06:04,540 --> 00:06:12,680 Noi încă numim parte efectiv interfața de o vedere. 98 00:06:12,680 --> 00:06:17,230 Este un fel de modul în PSET 7 am avut de comandă și apoi punctul de vedere. 99 00:06:17,230 --> 00:06:20,690 Activitatea este mai mult sau mai puțin controler, 100 00:06:20,690 --> 00:06:23,360 și punctul de vedere este ceea ce facem în termeni de XML 101 00:06:23,360 --> 00:06:25,260 care este asociat cu această activitate. 102 00:06:25,260 --> 00:06:29,340 Fragmente sunt ceva care este pus în aplicare în Ice Cream Sandwich merge înainte. 103 00:06:29,340 --> 00:06:36,380 E doar o idee de a lua părți din punctul de vedere sau de activitate 104 00:06:36,380 --> 00:06:39,990 și împărțindu-le în zone separate, astfel încât să putem 105 00:06:39,990 --> 00:06:45,030 face codul nostru mai usor de utilizat pentru aceste multe dispozitive diferite 106 00:06:45,030 --> 00:06:51,890 pe care le avem pentru a sprijini, și este doar o modalitate de a încerca să 107 00:06:51,890 --> 00:06:54,290 De asemenea, factorul de mult cod. 108 00:06:54,290 --> 00:07:01,090 Serviciile sunt lucruri de fond, cum ar fi redarea de muzică sau directii de navigare potențial. 109 00:07:01,090 --> 00:07:05,640 Furnizorii de conținut, acestea sunt API-uri în sistemul de operare 110 00:07:05,640 --> 00:07:09,070 care permit accesul la date comune, cum ar fi informații de contact, 111 00:07:09,070 --> 00:07:12,790 și apoi o intenție este ceva ce vom folosi atunci când vrem să lanseze 112 00:07:12,790 --> 00:07:17,210 o nouă activitate din activitatea noastră curentă. 113 00:07:17,210 --> 00:07:20,980 >> Bună Android, acest lucru va fi un proiect pe care vom vorbi despre. 114 00:07:20,980 --> 00:07:25,410 Voi face de fapt pentru tine, iar apoi vom face un lucru care ne faceți clic pe un buton 115 00:07:25,410 --> 00:07:27,650 cu un text și de a lansa o noua activitate. 116 00:07:27,650 --> 00:07:30,110 Foarte simplu, dar vreau să merg prin 117 00:07:30,110 --> 00:07:34,480 ceea ce va merge într-un proiect ca acesta. 118 00:07:34,480 --> 00:07:39,260 Când face noul proiect veți vedea în Eclipse 119 00:07:39,260 --> 00:07:41,900 există acest proiect numit Hello Android. 120 00:07:41,900 --> 00:07:43,470 Apoi, există o grămadă de dosare aici. 121 00:07:43,470 --> 00:07:46,760 Cei sunteți cu adevărat în cauză sunt cu dosarul sursă, 122 00:07:46,760 --> 00:07:54,540 directorul de resurse, de res, și într-o anumită măsură, în dosarul libs pentru biblioteci. 123 00:07:54,540 --> 00:08:00,070 Și așa suntem pe aceeași pagină cu care 124 00:08:00,070 --> 00:08:03,240 dacă ați fost de a crea un nou proiect, 125 00:08:03,240 --> 00:08:08,270 puteți face acest lucru chiar aici, așa că, dacă vreau să numesc HelloAndroid, 126 00:08:08,270 --> 00:08:11,100 și apoi se face în mod automat o grămadă de informații pentru noi. 127 00:08:11,100 --> 00:08:14,110 Numele pachetului se presupune a fi un identificator unic 128 00:08:14,110 --> 00:08:16,710 care ar fi în mod normal asociat cu site-ul, dacă ați avut o. 129 00:08:16,710 --> 00:08:24,430 >> De exemplu, eu voi numi net.cs50.helloandroid. 130 00:08:24,430 --> 00:08:30,070 Și eu deja am făcut acest proiect dată. 131 00:08:30,070 --> 00:08:40,059 Bine, îmi pare rău. Să-l numim HelloCS50. 132 00:08:40,059 --> 00:08:42,929 Și atunci se va cere lucruri cum ar fi ce fel de icoană nu vrem să facem. 133 00:08:42,929 --> 00:08:48,840 Acest lucru este din cauza interfeței Android Developer Tools, 134 00:08:48,840 --> 00:08:53,350 plugin-ul pe care am adăugat la Eclipse, astfel încât să putem alege lucruri, cum ar fi 135 00:08:53,350 --> 00:08:58,320 ce pictograma ne dorim, și care ar putea intra în această adâncime, dacă vrem. 136 00:08:58,320 --> 00:09:04,360 Dar în cele din urmă, face doar proiectul, 137 00:09:04,360 --> 00:09:07,040 și tot ceea ce apare chiar aici. 138 00:09:07,040 --> 00:09:10,030 Așa cum am arătat, pe de altă ecran, 139 00:09:10,030 --> 00:09:14,070 avem dosarul sursă, și voi vorbi despre ceea ce înseamnă toate astea curând, 140 00:09:14,070 --> 00:09:19,090 dar puteți vedea că imediat ne duce pe ecranul HelloCS50. 141 00:09:19,090 --> 00:09:24,690 Există unele butoane de aici pentru adăugarea de text și text machete de teren. 142 00:09:24,690 --> 00:09:28,910 Este un fel de XCode, dar, din păcate, nu la fel de simplificat. 143 00:09:28,910 --> 00:09:37,790 Dar clipurile va fi prietenul tău și ADT, în special pentru a face acest lucru. 144 00:09:37,790 --> 00:09:40,920 >> Bine, directorul sursă este cazul 145 00:09:40,920 --> 00:09:43,820 fișierele Java sunt deținute, iar acest lucru este de fapt lansarea programului. 146 00:09:43,820 --> 00:09:45,990 Este practic ca controlorilor. 147 00:09:45,990 --> 00:09:49,020 Director de resurse sau res este locul unde vom ține machete de ecran, 148 00:09:49,020 --> 00:09:54,110 imagini, sunete, text, animație și orice altceva, libs, evident, biblioteci. 149 00:09:54,110 --> 00:10:01,700 Și Manifest, este modul în care sistemul Android știe 150 00:10:01,700 --> 00:10:03,130 cum să interacționeze cu aplicația. 151 00:10:03,130 --> 00:10:07,980 Acesta se spune despre permisiunile și ce activități vor fi rula de fapt. 152 00:10:07,980 --> 00:10:12,350 Este toate informațiile esențiale care este necesar pentru a rula aplicația. 153 00:10:12,350 --> 00:10:17,990 Dosarul sursă este, dacă am extinde după cum puteți vedea aici. 154 00:10:17,990 --> 00:10:23,920 Și un exemplu care un cod ar arata-Acesta este codul implicit. 155 00:10:23,920 --> 00:10:27,930 Așa cum l-am numit, MainActivity. 156 00:10:27,930 --> 00:10:33,230 În mod implicit, ne onCreate, care este o funcție care se numește atunci când sarcini această activitate, 157 00:10:33,230 --> 00:10:37,150 astfel încât să doriți pentru a apela onCreate (savedInstanceState). 158 00:10:37,150 --> 00:10:40,440 Acest lucru va restabili orice biți de informații 159 00:10:40,440 --> 00:10:44,910 în cazul în care a fost oprit aplicația. 160 00:10:44,910 --> 00:10:48,790 >> Exista o intreaga activitate de viață diagramă ciclu pe care poti sa te uiti la 161 00:10:48,790 --> 00:10:50,380 atunci când vei ajunge un pic mai mult în profunzime în ea, 162 00:10:50,380 --> 00:10:56,210 dar cea mai importantă linie de cod există această funcție setContentView 163 00:10:56,210 --> 00:11:00,290 care va încărca fișierul de resurse pentru aspectul. 164 00:11:00,290 --> 00:11:03,590 Apoi, ceea ce onCreate aici este, în principiu face este se spune 165 00:11:03,590 --> 00:11:07,010 când am crea această activitate vreau să se încarce acest aspect. 166 00:11:07,010 --> 00:11:12,030 Și vom vorbi despre ceea ce că aspectul este într-o secundă. 167 00:11:12,030 --> 00:11:16,230 Dacă ar fi să lanseze că aici se arată exact ca aceasta, 168 00:11:16,230 --> 00:11:22,880 și, implicit, pentru că am Eclipse face acest lucru și ADT face-o pentru noi 169 00:11:22,880 --> 00:11:28,210 aceasta este tot codul șabloane care a creat pentru noi, 170 00:11:28,210 --> 00:11:34,630 și putem merge pe și de a schimba lucrurile așa cum ne place. 171 00:11:34,630 --> 00:11:38,190 Directorul de resurse, cum am spus, acest lucru este în cazul în care vom organiza toate aspectele, 172 00:11:38,190 --> 00:11:41,150 drawables în ceea ce privește orice fel de imagini- 173 00:11:41,150 --> 00:11:46,360 acestea sunt numite drawables-și apoi fișierele de sunet, meniuri. 174 00:11:46,360 --> 00:11:51,170 Este o modalitate de o grămadă de XML într-un mod frumos sortate. 175 00:11:51,170 --> 00:11:58,030 După cum puteți vedea, există. HDPI, ldpi, MDPI și foldere xhdpi pentru drawables. 176 00:11:58,030 --> 00:12:02,220 Acestea sunt diferite densitati ecran, pixel densitate atât de mare pe inch, 177 00:12:02,220 --> 00:12:05,710 de joasă densitate, densitate medie, densitate foarte mare. 178 00:12:05,710 --> 00:12:08,900 >> Acest lucru este, din nou, astfel încât să putem sprijini toate aceste dispozitive diferite, 179 00:12:08,900 --> 00:12:15,100 și în mod ideal, veți avea imagini diferite pentru fiecare altă rezoluție. 180 00:12:15,100 --> 00:12:20,740 Machete sunt unde sunt toate aspecte diferite, care vor fi folosite în diferite activități. 181 00:12:20,740 --> 00:12:24,150 Acestea ar putea include, de asemenea, machete de fragmente, 182 00:12:24,150 --> 00:12:26,670 ceea ce înseamnă activități parțiale în esență. 183 00:12:26,670 --> 00:12:29,610 Dacă vrei să faci ceva cool ca de fiecare dată când rotiți telefonul 184 00:12:29,610 --> 00:12:33,900 doriți să aibă un aspect diferit poți face aspect, peisaj ca un alt dosar, 185 00:12:33,900 --> 00:12:39,000 și Android are în mod automat o grămadă de aceste reguli în dosarul de resurse, 186 00:12:39,000 --> 00:12:44,690 așa că va ști să se uite la diferite dosare în funcție de configurarea actuală a telefonului, 187 00:12:44,690 --> 00:12:46,740 ce fel de hardware-ul pe care îl utilizați. 188 00:12:46,740 --> 00:12:52,350 De asemenea, aceste valori-V11 aici și valorile-V14 189 00:12:52,350 --> 00:12:55,460 și valorile folderul implicit acest lucru este de- 190 00:12:55,460 --> 00:13:01,730 bine, valori de la sine, acest lucru va fi valorile implicite pentru toate versiunile sistemului de operare. 191 00:13:01,730 --> 00:13:06,390 Pe de altă parte, V11 și V14 corespund cu fagure 192 00:13:06,390 --> 00:13:08,780 și Ice Cream Sandwich, respectiv. 193 00:13:08,780 --> 00:13:12,800 Din nou, acestea sunt moduri care-în aceste dosare sunt diferite siruri de caractere 194 00:13:12,800 --> 00:13:17,550 și stiluri, astfel încât să puteți personaliza aspectul de aplicația 195 00:13:17,550 --> 00:13:22,660 sau ar putea chiar funcționalitatea, deși ar fi, probabil, o idee rea, 196 00:13:22,660 --> 00:13:25,890 bazat pe versiunea sistemului de operare. 197 00:13:25,890 --> 00:13:28,760 >> Și am vorbit despre toate astea aici. 198 00:13:28,760 --> 00:13:35,870 Din nou, încasabile, prime, aspect, valorile. 199 00:13:35,870 --> 00:13:41,380 Setările implicite, dacă mergem în ziua Android sau Hello CS50 chiar acum 200 00:13:41,380 --> 00:13:43,310 se va arata exact ca aceasta. 201 00:13:43,310 --> 00:13:45,800 Acesta va salut lume. 202 00:13:45,800 --> 00:13:58,430 După cum puteți vedea aici cu textul Android 203 00:13:58,430 --> 00:14:04,420 textul pentru acest punct de vedere textul, care este de fapt doar o etichetă, 204 00:14:04,420 --> 00:14:06,900 este ceea ce am numi în iOS. 205 00:14:06,900 --> 00:14:11,580 Ea are această notație amuzant @ string / hello_world. 206 00:14:11,580 --> 00:14:16,200 Acest lucru este atât putem, vom încerca să extrage toate siruri de caractere, 207 00:14:16,200 --> 00:14:19,740 toate siruri de caractere greu codificate în Android într-un folder separat, 208 00:14:19,740 --> 00:14:23,610 care se întâmplă să fie în values.strings. 209 00:14:23,610 --> 00:14:29,300 Dacă ne uităm aici, putem vedea că avem un șir de hard-coded salvat aici 210 00:14:29,300 --> 00:14:33,910 pentru Bună ziua lume, și se numește Salut lume, iar acest lucru este un fel de 211 00:14:33,910 --> 00:14:39,230 decizie de design comun pe mai multe platforme pe care doriți să- 212 00:14:39,230 --> 00:14:41,780 siruri de caractere sunt genul de lucruri pe care le doresc să fie posibil să se schimbe. 213 00:14:41,780 --> 00:14:48,050 Noi nu vrem să controleze F în fișierul nostru de cod sursă în XML noastră. 214 00:14:48,050 --> 00:14:50,760 Vrem să fie în măsură de a schimba acest lucru ori de câte ori am ocazia. 215 00:14:50,760 --> 00:14:53,640 >> Acest fișier XML, strings.xml, este o modalitate de a extrage 216 00:14:53,640 --> 00:14:56,710 siruri de caractere greu codificate, care altfel ar fi în resursele noastre aspect 217 00:14:56,710 --> 00:15:03,530 sau în codul nostru sursă. 218 00:15:03,530 --> 00:15:08,190 Manifestul este unde vom păstra aceste informații esențiale despre aplicație. 219 00:15:08,190 --> 00:15:11,050 Acesta include numele pachetului. Care trebuie să fie un identificator unic. 220 00:15:11,050 --> 00:15:16,020 Spre deosebire de App Store pentru iOS numele aplicații 221 00:15:16,020 --> 00:15:19,980 nu trebuie să fie unic, și aveți posibilitatea de fapt, schimba numele aplicației 222 00:15:19,980 --> 00:15:23,570 după ce îl prezintă, deci, dacă am începe cu Angry Birds, 223 00:15:23,570 --> 00:15:26,840 și apoi am face o actualizare, iar eu nu vreau să-i elibereze o nouă versiune 224 00:15:26,840 --> 00:15:34,230 Cred că aș putea Angry Birds numi 2 în timp ce eu sunt pe aceeași ciclu de lansare. 225 00:15:34,230 --> 00:15:36,780 Aceasta ar arăta la fel ca o actualizare. 226 00:15:36,780 --> 00:15:39,790 Singurul lucru pe care trebuie să fie unic este acest nume pachet, 227 00:15:39,790 --> 00:15:41,280 care nu mulți oameni vor vedea. 228 00:15:41,280 --> 00:15:44,680 Ei bine, ai vedea doar dacă te uitai la codul sursă sau dacă există un fel de eroare. 229 00:15:44,680 --> 00:15:47,580 Componentele includ activități, așa că trebuie să declare 230 00:15:47,580 --> 00:15:49,070 orice fel de activitate care le folosim. 231 00:15:49,070 --> 00:15:53,430 Aceasta este un fel permisiunea de lucru. 232 00:15:53,460 --> 00:15:58,150 >> Pentru ca Android nu are acest proces de aplicarea riguroasă 233 00:15:58,150 --> 00:16:02,210 pentru depunerea Apps În schimb, ei doar fac totul pe jos de permisiuni 234 00:16:02,210 --> 00:16:04,300 și declara lucruri în manifest. 235 00:16:04,300 --> 00:16:06,380 Versiunea SDK este, de asemenea, importantă. 236 00:16:06,380 --> 00:16:10,330 Putem stabili utilizarea ca SDK versiunea minim ceva. 237 00:16:10,330 --> 00:16:16,010 Evident, doriți să creați cod 238 00:16:16,010 --> 00:16:18,570 și de proiectare pentru sistemele de operare mai noi. 239 00:16:18,570 --> 00:16:20,840 Poate nu cel mai nou, poate nu Jelly Bean. 240 00:16:20,840 --> 00:16:23,610 Poate vrei să proiecteze primul rând pentru Ice Cream Sandwich, 241 00:16:23,610 --> 00:16:27,120 deși acestea sunt destul de mult la fel în ceea ce privește deciziile de proiectare 242 00:16:27,120 --> 00:16:30,550 și bibliotecile reale și API-uri. 243 00:16:30,550 --> 00:16:36,250 Dar, mai degrabă decât au oameni 244 00:16:36,250 --> 00:16:40,050 de original, versiunea Android, cum ar fi gogoasa drumul înapoi atunci când, 245 00:16:40,050 --> 00:16:43,420 care se întâmplă încă să fie cu care încercați să descărcați aplicația dumneavoastră și apoi spune 246 00:16:43,420 --> 00:16:46,160 nu funcționează pe telefonul meu puteți seta versiunea minim 247 00:16:46,160 --> 00:16:48,620 și l-au fi Gingerbread sau Ice Cream Sandwich 248 00:16:48,620 --> 00:16:53,300 sau orice te simti depunere confortabil. 249 00:16:53,300 --> 00:16:57,170 Și acesta este un exemplu de Manifest. Ne putem uita la un efectiv într-un pic. 250 00:16:57,170 --> 00:17:00,900 >> Bine, vom merge chiar mai departe cu demo-ul acum. 251 00:17:00,900 --> 00:17:08,900 Acest lucru este demo, dacă Google Android construi prima ta app sau ceva de genul asta. 252 00:17:08,900 --> 00:17:12,089 Vom merge prin tot ceea ce se întâmplă acolo, 253 00:17:12,089 --> 00:17:17,690 și îmi pare rău, doar pentru o referință care aici stie Java într-o măsură? 254 00:17:17,690 --> 00:17:28,310 Ok, deci Java este nou limbaj de codificare pentru cei mai mulți oameni care vin din CS50. 255 00:17:28,310 --> 00:17:31,850 Pe scurt, pentru a trece peste din nou, ceea ce se spune aici, 256 00:17:31,850 --> 00:17:35,580 ceea ce vrem să facem este, mai degrabă decât a regla această aplicație Salut lume 257 00:17:35,580 --> 00:17:38,620 că tot ce face este o lansează și se spune Bună ziua lume 258 00:17:38,620 --> 00:17:43,580 și se spune salut CS50 în partea de sus, pentru că e numele activitatea 259 00:17:43,580 --> 00:17:47,190 vom încerca să facă un câmp de text și un buton 260 00:17:47,190 --> 00:17:50,680 astfel că atunci când apăsați acest buton se va lua textul 261 00:17:50,680 --> 00:17:53,660 de la câmpul de text și să lanseze o nouă activitate, și-l va spune 262 00:17:53,660 --> 00:17:58,380 indiferent de faptul că textul a declarat în activitatea, iar acest lucru este relativ simplu. 263 00:17:58,380 --> 00:18:00,650 Nu e foarte interesant. Tu nu ar vrea să elibereze orice aplicatie ca aceasta. 264 00:18:00,650 --> 00:18:03,880 Dar demonstrează câteva lucruri importante de design. 265 00:18:03,880 --> 00:18:07,030 >> Va trebui să interacționeze cu Manifest, cu fișiere de aspect, 266 00:18:07,030 --> 00:18:12,440 cu codul sursă, și puteți vedea cum pentru a lansa o activitate la alta. 267 00:18:19,740 --> 00:18:23,060 Vom incepe cu layout-ul pentru primul nostru de activitate, 268 00:18:23,060 --> 00:18:27,320 care știu că e un fel de mic, 269 00:18:27,320 --> 00:18:32,660 dar după cum puteți vedea acum, tot ce este este că are logo-ul nostru pe care am creat, 270 00:18:32,660 --> 00:18:36,310 numele activității, și se spune Bună ziua lume în centru. 271 00:18:36,310 --> 00:18:40,400 În schimb, eu în primul rând de gând să facă acest lucru într-un aspect liniar, 272 00:18:40,400 --> 00:18:42,350 un aspect relativ, și toate acestea sunt lucruri 273 00:18:42,350 --> 00:18:45,870 ai putea privi în sus și sunt în valoare de merge pe la un moment dat în ceea ce privește aspectele. 274 00:18:45,870 --> 00:18:47,310 E mult ca HTML. 275 00:18:47,310 --> 00:18:52,640 Am spus că nu e adevărat în valoare de știind în ceea ce privește un sens programatic, 276 00:18:52,640 --> 00:18:55,840 dar există atât de multe aspecte diferite pe care le poate controla, 277 00:18:55,840 --> 00:18:57,970 și e la fel ca CSS în termeni de stiluri. 278 00:18:57,970 --> 00:19:01,590 >> Există o mulțime întâmplă doar în ceea ce privește estetica aici, 279 00:19:01,590 --> 00:19:08,930 Și da, este în valoare de învățare, dar e genul de lucru pe care ar trebui să arate în sus 280 00:19:08,930 --> 00:19:11,810 ca te duci si sa te simti ca ai nevoie de ceva nou. 281 00:19:11,810 --> 00:19:17,030 Eu pot profita de unele dintre instrumentele de ADT aici cel puțin pentru a începe cu. 282 00:19:17,030 --> 00:19:21,930 Voi face un câmp de text, și voi face un buton. 283 00:19:21,930 --> 00:19:24,100 Pune-le chiar lângă altul. 284 00:19:24,100 --> 00:19:28,200 Ei redimensiona deja corespunzător. 285 00:19:28,200 --> 00:19:31,320 Ne pare rău, din nou, revenind la diferența dintre aspectul liniar și aspect relativ, 286 00:19:31,320 --> 00:19:34,830 un aspect liniar dă un pic mai mult funcționalitate 287 00:19:34,830 --> 00:19:38,720 în ceea ce privește umple spațiul și de a face sigur 288 00:19:38,720 --> 00:19:42,790 poziția pe care am lucruri orizontal sau vertical. 289 00:19:42,790 --> 00:19:46,130 Mare diferenta intre un aspect liniar și un aspect relativ 290 00:19:46,130 --> 00:19:50,250 este relativ aspectul poziții totul în raport cu alte puncte de vedere, 291 00:19:50,250 --> 00:19:52,630 și un lucru bun despre ea este că este nevoie de mai puțin timp pentru a trage 292 00:19:52,630 --> 00:19:56,120 deoarece sistemul de operare se uită la toate codul și spune că acest lucru se 293 00:19:56,120 --> 00:19:58,270 raportate la acest aici, aici. 294 00:19:58,270 --> 00:20:03,170 Aceasta înseamnă că face mai puține măsurări decât o grămadă de aspecte liniare imbricate, 295 00:20:03,170 --> 00:20:06,840 ceea ce mi-ar trebui să fac dacă mi-am dorit ca lucrurile sa mearga vertical aici. 296 00:20:06,840 --> 00:20:10,510 >> Am deja unele lucruri merg pe orizontală, așa că am avea nevoie de un aspect liniar diferit 297 00:20:10,510 --> 00:20:14,560 la cuib le vertical, dar dacă am fost a face un aspect relativ aș putea spune 298 00:20:14,560 --> 00:20:18,140 păstra acest lucru la stânga, acest lucru la dreapta și aceste lucruri de mai jos. 299 00:20:18,140 --> 00:20:21,850 Dar, pentru că vreau să umple chiar acum am de gând să utilizați un aspect liniar, 300 00:20:21,850 --> 00:20:24,510 și puteți vedea că are deja o mulțime de aceste lucruri pentru noi. 301 00:20:24,510 --> 00:20:28,890 Toate punctele de vedere trebuie să aibă o proprietate de lățime și înălțime, 302 00:20:28,890 --> 00:20:33,410 și acest lucru se întâmplă să aibă o greutate de 1, iar aceasta are o greutate de 1 303 00:20:33,410 --> 00:20:36,050 astfel încât să umple întregul spațiu. 304 00:20:36,050 --> 00:20:38,460 Dar lățimea și înălțimea sunt cele mai importante. 305 00:20:38,460 --> 00:20:45,880 Acest câmp ID-ul de aici nu este important în aspectul real 306 00:20:45,880 --> 00:20:49,060 dacă nu utilizați un aspect relativ și spunând putem referință 307 00:20:49,060 --> 00:20:52,990 o singură poziție în vederea referință la altul. 308 00:20:52,990 --> 00:20:56,170 Dacă am avea un aspect relativ am putea spune poziția aceasta de mai jos aceasta 309 00:20:56,170 --> 00:20:59,390 sau peste această identitate, dar acest ID va fi important 310 00:20:59,390 --> 00:21:01,660 atunci când îl utilizați în codul nostru că ne putem referi 311 00:21:01,660 --> 00:21:05,610 aceste puncte de vedere individuale în acest mod. 312 00:21:05,610 --> 00:21:10,350 >> Și apoi puteți vedea requestFocus tag-ul, care este ceva ce, probabil, ați văzut în PSET 7. 313 00:21:10,350 --> 00:21:15,370 Nu a fost o etichetă de auto-focus sau ceva de-a lungul acestor linii pentru unul dintre domeniile. 314 00:21:15,370 --> 00:21:22,100 Și un singur lucru, desigur, putem face la fel ca in HTML, 315 00:21:22,100 --> 00:21:25,660 și observați unul dintre lucrurile frumoase despre ADT este că autocompletes aici. 316 00:21:25,660 --> 00:21:29,930 Poate nu la fel de frumos cum a făcut-o în XCode, dar nu cu toate acestea, 317 00:21:29,930 --> 00:21:32,860 și am putea spune sugestie și apoi da-l un fel de șir 318 00:21:32,860 --> 00:21:37,070 ca scrie un mesaj, 319 00:21:37,070 --> 00:21:41,300 și dacă am da o clipă, observa, de asemenea, că am obține o eroare puțin aici 320 00:21:41,300 --> 00:21:44,610 spunând că ar trebui să folosim o resursă șir pentru aceasta, 321 00:21:44,610 --> 00:21:48,820 Deci, dacă am să-l fac parte din munca grea pentru mine 322 00:21:48,820 --> 00:21:57,320 Eu pot selecta acest șir, nu refractor Android și extract de coarde Android. 323 00:21:57,320 --> 00:22:00,570 Eu pot da acest nume, scrie un mesaj, 324 00:22:00,570 --> 00:22:04,180 și ceea ce a făcut acum este înlocuit ca șir hard-coded 325 00:22:04,180 --> 00:22:07,980 cu o trimitere la șir în fișierul XML. șirul lui, 326 00:22:07,980 --> 00:22:10,200 ceea ce înseamnă că acum este aici. 327 00:22:10,200 --> 00:22:15,560 >> Și știu că pare un pic de lucru suplimentar banale si ca la acest moment, 328 00:22:15,560 --> 00:22:17,840 dar atunci când aveți o grămadă de lucruri, o mulțime de siruri de caractere, 329 00:22:17,840 --> 00:22:20,750 care este foarte important, și în special pentru localizarea 330 00:22:20,750 --> 00:22:26,920 pentru că așa cum am menționat mai devreme, Android este un sistem de operare folosit foarte la nivel global 331 00:22:26,920 --> 00:22:35,950 pe care le puteți face pur și simplu valori-ro sau valori-SP 332 00:22:35,950 --> 00:22:44,320 sau ceva de limba engleză sau spaniolă sau alte limbi. 333 00:22:44,320 --> 00:22:50,210 Și atunci probabil că nu au avut această experiență încă 334 00:22:50,210 --> 00:22:53,030 din moment ce nu a făcut mult JavaScript în termeni de programare web, 335 00:22:53,030 --> 00:22:56,850 dar putem face, de asemenea, acest domeniu numit onClick pentru butonul, 336 00:22:56,850 --> 00:23:02,350 și aceasta este o modalitate de referință în structura noastră 337 00:23:02,350 --> 00:23:06,570 pe care ne-o dorim o anumită funcție să fie numit în codul nostru sursă. 338 00:23:06,570 --> 00:23:09,420 Am de gând să numim această SendMessage, 339 00:23:09,420 --> 00:23:13,390 și în scopul de a face acest lucru înseamnă că, în domeniul principal de activitate aici 340 00:23:13,390 --> 00:23:19,180 Va trebui să creeze o funcție care este public 341 00:23:19,180 --> 00:23:22,250 astfel încât să poată fi accesate prin aspectul. 342 00:23:22,250 --> 00:23:25,930 Este gol pentru că tu chiar nu vreau să se întoarcă nimic. 343 00:23:25,930 --> 00:23:37,760 Vom SendMessage numesc, și este nevoie de un punct de vedere, 344 00:23:37,760 --> 00:23:43,690 care este un fel de context pe care le poate ancora această metodă 345 00:23:43,690 --> 00:23:47,160 la acest punct de vedere individuale atunci când suntem o execută. 346 00:23:47,160 --> 00:23:50,090 >> Și nu știu dacă ai observat-bine, nu s-ar fi observat, 347 00:23:50,090 --> 00:24:02,370 dar în acest moment, chiar aici 348 00:24:02,370 --> 00:24:06,930 acest punct de vedere este un tip care nu a fost încă inclus, 349 00:24:06,930 --> 00:24:10,630 și, desigur, știți totul de la CS50 despre care nu include tipuri. 350 00:24:10,630 --> 00:24:13,120 Cel mai frumos lucru despre IDE ca Eclipse este că 351 00:24:13,120 --> 00:24:17,520 dacă vă uitați să includeți un tip se va sublinia cu un pic de rosu greu de descifrat 352 00:24:17,520 --> 00:24:19,680 și apoi vă oferă opțiunea de a importa punctul de vedere. 353 00:24:19,680 --> 00:24:23,130 O modalitate rapidă de a face asta este controlul schimbare O, și-l va importa 354 00:24:23,130 --> 00:24:27,070 toate fișierele de care are nevoie pentru a. 355 00:24:27,070 --> 00:24:33,670 Acum, că avem această funcție SendMessage, 356 00:24:33,670 --> 00:24:46,560 care se va trimite un mesaj de la MainActivity la o noua activitate, 357 00:24:46,560 --> 00:24:55,230 am de gând să aibă de a utiliza o intenția de a lansa noua activitate din acesta, 358 00:24:55,230 --> 00:25:02,240 așa că veți dori, probabil, pentru a crea o constantă global sau, de asemenea, deosebit de o constantă publică 359 00:25:02,240 --> 00:25:06,240 care ne va ajuta să știm cum vom face referire la șirul 360 00:25:06,240 --> 00:25:09,090 pentru că atunci când vom crea o intenție nu ne cheamă doar o noua activitate, 361 00:25:09,090 --> 00:25:11,520 dar putem oferi, de asemenea, un pachet de informații. 362 00:25:11,520 --> 00:25:14,720 Un pachet este de fapt termenul care foloseste Android, 363 00:25:14,720 --> 00:25:21,470 și este un fel de a spune da date suplimentare, care nu pot fi de un tip de date foarte sofisticate, 364 00:25:21,470 --> 00:25:24,510 dar putem include cu siguranta Booleans sau siruri de caractere sau int. 365 00:25:24,510 --> 00:25:29,750 Că fel de lucru. 366 00:25:29,750 --> 00:25:34,230 >> Nu ezitați să întrebați cu privire la oricare dintre aceste calificări aici, 367 00:25:34,230 --> 00:25:36,900 publice, finala, static. 368 00:25:36,900 --> 00:25:38,610 Publice este unul important. 369 00:25:38,610 --> 00:25:47,090 Aceasta inseamna ca putem accesa această variabilă de alte fișiere de cod sursă 370 00:25:47,090 --> 00:25:49,590 cum ar fi atunci când vom crea o nouă activitate. 371 00:25:49,590 --> 00:25:52,190 Putem referire la șir în acest fișier. 372 00:25:52,190 --> 00:25:57,160 Dacă este privat, aceasta înseamnă că este limitat la acest fișier individual aici. 373 00:25:57,160 --> 00:26:02,430 Dar vom numi acest ceva de genul mesaj suplimentar. 374 00:26:16,260 --> 00:26:23,300 Acum am făcut această funcție, iar dacă ne faceți clic pe butonul, această funcție va fi numit. 375 00:26:23,300 --> 00:26:27,970 Dar nu am făcut nimic, în mod evident, cu funcția. 376 00:26:27,970 --> 00:26:33,130 Ceea ce vrem să facem acum este de a crea o nouă activitate, 377 00:26:33,130 --> 00:26:35,350 activitate care va fi lansat efectiv. 378 00:26:35,350 --> 00:26:44,330 În Eclipse, putem spune, activitatea Android nou, activitatea gol. 379 00:26:44,330 --> 00:26:46,530 Ne putem da un nume. 380 00:26:46,530 --> 00:26:57,050 Să-l activitatea rezultat apel. 381 00:26:57,050 --> 00:27:04,430 Și apoi acest domeniu părinte ierarhic este un mod de specifying 382 00:27:04,430 --> 00:27:08,180 modul în care activitățile sunt legate unele de altele. 383 00:27:08,180 --> 00:27:11,020 Deoarece acesta va fi lansat de la altă activitate 384 00:27:11,020 --> 00:27:27,520 noi ar trebui să precizeze că acesta are domeniul principal de activitate părinte. 385 00:27:27,520 --> 00:27:31,220 >> Și am fi putut apasat pe teren următoarea acolo, care ne-ar fi spus 386 00:27:31,220 --> 00:27:33,830 unele câmpuri opționale care a fost, de asemenea, inclusiv, 387 00:27:33,830 --> 00:27:38,800 dar un lucru frumos despre ADT, din nou, este că, dacă am defila în jos aici 388 00:27:38,800 --> 00:27:45,740 în Manifest amintiți-vă că toate acestea într-adevăr a fost inclus în mod implicit 389 00:27:45,740 --> 00:27:48,930 când am creat inițial al proiectului, 390 00:27:48,930 --> 00:27:53,090 și acum că am folosit acest crea o nouă activitate, mai degrabă decât doar 391 00:27:53,090 --> 00:27:58,610 adăugând propria noastră fișier de clasă pentru că am trecut prin GUI lor pentru a face acest lucru 392 00:27:58,610 --> 00:28:01,930 a adăugat deja toate astea pentru Manifest pentru noi, 393 00:28:01,930 --> 00:28:06,020 ceea ce înseamnă doar că acum sistemul de operare nu va plânge 394 00:28:06,020 --> 00:28:09,400 atunci când încercăm să lanseze această activitate. 395 00:28:09,400 --> 00:28:14,620 Și, de asemenea, desigur, dat o etichetă, care, de asemenea, apare în șiruri. 396 00:28:14,620 --> 00:28:17,340 Ea are o mulțime de lucruri pe partea din spate pentru noi. 397 00:28:17,340 --> 00:28:20,140 Oricum, acum că avem această activitate rezultat, de asemenea, 398 00:28:20,140 --> 00:28:23,810 fișierul în sine codul sursă în folderul sursă, 399 00:28:23,810 --> 00:28:33,540 și puteți vedea, atinge pe scurt la această- 400 00:28:33,540 --> 00:28:37,790 pentru că l-am spus despre acest părinte ierarhică 401 00:28:37,790 --> 00:28:46,640 le-a dat acest domeniu android.r.ide.home în acest onOption lucru selectat. 402 00:28:46,640 --> 00:28:49,020 >> Ce este acest lucru este, în principiu spune e că există un buton de meniu acum 403 00:28:49,020 --> 00:28:53,110 că, în colțul din stânga sus al ecranului 404 00:28:53,110 --> 00:29:02,220 dacă mă duc înapoi la PowerPoint care am vorbit prima data despre bara de acțiuni 405 00:29:02,220 --> 00:29:05,380 din cauza părinte ierarhic acum există o săgeată puțin aici 406 00:29:05,380 --> 00:29:10,610 iar acest lucru se poate face clic, astfel că ar trebui să fie în măsură să-după ce vom rula de fapt, această aplicație, 407 00:29:10,610 --> 00:29:15,360 du-te înapoi, și este o modalitate de a economisi ne un pic de cod aici. 408 00:29:26,220 --> 00:29:40,180 Acum, în acest-ei bine, se pare să se plâng că pentru un moment. 409 00:29:40,180 --> 00:29:43,910 Să comenta asta. 410 00:29:43,910 --> 00:29:48,260 Acum, în scopul de a interacționa efectiv cu aceste 2 activități, 411 00:29:48,260 --> 00:29:55,020 trebuie să creăm o intenție, care include toate aceste date. 412 00:29:55,020 --> 00:29:58,950 În SendMessage acum am de gând să croazieră prin unele biți de cod 413 00:29:58,950 --> 00:30:00,700 și explică faptul că așa cum am merge. 414 00:30:00,700 --> 00:30:06,280 O intenție, așa cum am spus, este un mod de a lansa o activitate de altul. 415 00:30:06,280 --> 00:30:10,000 Intenția este de tip. Vom crea un myIntent variabilă. 416 00:30:10,000 --> 00:30:13,980 >> Și aceasta este de fapt un obiect, care este de ce trebuie să ne numim noi. 417 00:30:13,980 --> 00:30:18,500 Este utilizarea comună Java acolo, care ar putea să ia un pic de a obține utilizate pentru. 418 00:30:18,500 --> 00:30:23,900 Acest lucru înseamnă că suntem folosind activitate sau MainActivity de clasă, 419 00:30:23,900 --> 00:30:28,630 și intenția în acest fel se activitatea sa mergi la 420 00:30:28,630 --> 00:30:36,060 și activitatea sa mergi la, pe care o numim ResultActivity, 421 00:30:36,060 --> 00:30:38,170 și că este propria sa clasă. 422 00:30:38,170 --> 00:30:41,720 Includeți asta. 423 00:30:41,720 --> 00:30:47,370 Și atunci cum am menționat mai înainte, ne-a dat ID-ul în câmpul text 424 00:30:47,370 --> 00:30:53,710 și punctul de vedere textul, astfel încât, în scopul de a captura programatic 425 00:30:53,710 --> 00:31:01,860 textul care există în EditText 426 00:31:01,860 --> 00:31:06,710 vom folosi aceasta functie numita findViewByID, 427 00:31:06,710 --> 00:31:13,660 care este similar cu ceva ce vei folosi atunci când încercarea de a obține câmpuri din DOM. 428 00:31:13,660 --> 00:31:17,560 Poate că David vorbește despre acest lucru în curs. 429 00:31:17,560 --> 00:31:26,600 Dar e doar o modalitate de a obține cele, de aceea am eticheta aceste lucruri cu aceste domenii. 430 00:31:26,600 --> 00:31:31,110 Id.editText1. 431 00:31:31,110 --> 00:31:35,220 Este deja autocompleting pentru mine acolo. 432 00:31:35,220 --> 00:31:42,010 >> Și apoi vom includ, de asemenea, acest EditText acum că avem teren 433 00:31:42,010 --> 00:31:47,640 în programul nostru, tot ce findViewByID a fost practic 434 00:31:47,640 --> 00:31:50,870 ai putea gândi la ea ca să ne dea o trimitere la EditText. 435 00:31:50,870 --> 00:31:54,570 Acum vrem să ajungem șir sau un mesaj 436 00:31:54,570 --> 00:32:00,670 în care EditText pe care le putem face prin utilizarea- 437 00:32:00,670 --> 00:32:03,360 ați putea gândi de EditText ca o struct- 438 00:32:03,360 --> 00:32:07,600 am un obiect în Java, cu o grămadă de metode diferite de apel 439 00:32:07,600 --> 00:32:10,650 sau câmpurile și atributele atașat la acesta. 440 00:32:10,650 --> 00:32:15,510 Când spun EditText. dă-mi șansa de a accesa 441 00:32:15,510 --> 00:32:19,770 o metodă cum getText, care va primi textul curent 442 00:32:19,770 --> 00:32:23,990 în care EditText și apoi conversia că în mod explicit 443 00:32:23,990 --> 00:32:26,520 la un șir, și ne-am salvat mesajul. 444 00:32:26,520 --> 00:32:32,730 Acum, am de fapt, vrei să faci ceva cu ce scop am creat câteva momente în urmă. 445 00:32:32,730 --> 00:32:40,250 Voi pune in plus, cum e numit în intenție, 446 00:32:40,250 --> 00:32:43,330 care, din nou, așa cum am spus mai înainte, aceasta este o modalitate de a crea pachet 447 00:32:43,330 --> 00:32:45,980 cu o grămadă de date. 448 00:32:45,980 --> 00:32:50,920 Mesajul suplimentar este tag-ul nostru astfel încât să știm ce vom salva acest sub, 449 00:32:50,920 --> 00:32:56,700 și apoi mă, inclusiv un mesaj. 450 00:32:56,700 --> 00:33:04,870 >> Și apoi putem începe efectiv activitatea, oferindu-i myIntent parametru. 451 00:33:04,870 --> 00:33:10,630 Și acest lucru va lansa de fapt activitatea, asa ca acum când am upgrade la Windows 8 452 00:33:10,630 --> 00:33:15,870 ar putea exista unele erori care apar pentru scurt timp, dar încercați să le ignore. 453 00:33:28,010 --> 00:33:30,310 Și aceasta este emulator Android. 454 00:33:30,310 --> 00:33:33,540 Sperăm că codul va apărea de fapt, într-o clipă. 455 00:33:33,540 --> 00:33:36,680 Din nou, ignorând toate aceste lucruri mici. 456 00:33:36,680 --> 00:33:42,290 Dar emulator Android vă pot emula orice versiune a sistemului de operare 457 00:33:42,290 --> 00:33:45,180 de la cele mai vechi cele, Donut, Gingerbread. 458 00:33:45,180 --> 00:33:49,640 Acest lucru este Jelly Bean 4.1. 459 00:33:49,640 --> 00:33:53,150 Dar, după cum puteți vedea acum, acest lucru este ceva ce am făcut. 460 00:33:53,150 --> 00:33:55,780 Aceasta are MainActivity, EditText, butonul. 461 00:33:55,780 --> 00:34:01,550 Eu pot scrie ceva aici, dar ceea ce ne lipsește în acest moment? 462 00:34:01,550 --> 00:34:05,190 Am făcut domeniu în MainActivity care va trimite mesajul 463 00:34:05,190 --> 00:34:08,570 a altă activitate, dar în acest moment 464 00:34:08,570 --> 00:34:12,330 nu am făcut nimic în altă activitate, așa că nu va primi nimic. 465 00:34:12,330 --> 00:34:18,800 Să terminăm acea parte înainte de a trece mai departe. 466 00:34:18,800 --> 00:34:25,760 >> Această activitate urmare, ceea ce va trebui să faceți este să avem nevoie să faceți este să avem nevoie să- 467 00:34:25,760 --> 00:34:30,070 putem referire, de asemenea, scopul in cadrul acestei activități, 468 00:34:30,070 --> 00:34:33,580 așa că avem de a capta intenție, care este foarte simplu. 469 00:34:33,580 --> 00:34:40,780 Este o funcție inclusă în clase de activitate, 470 00:34:40,780 --> 00:34:47,610 astfel încât să putem spune doar "Ia mesajul de intenție." 471 00:34:47,610 --> 00:34:56,260 "MyIntent Intenție = getIntent." 472 00:34:56,260 --> 00:35:00,030 Și acest lucru va da-ne-acum myIntent este un obiect, 473 00:35:00,030 --> 00:35:05,380 care este o referință cu scopul ca ne-au condus la această activitate. 474 00:35:05,380 --> 00:35:10,130 MainActivity cheamă și oferă informații suplimentare pentru a duce activitatea. 475 00:35:10,130 --> 00:35:14,070 Activitatea rezultat se uită acum la intenția care a dus aici, 476 00:35:14,070 --> 00:35:23,540 și putem accesa mesajul pe care am creat în cealaltă, 477 00:35:23,540 --> 00:35:26,370 getStringExtra, iar acest lucru va Completare automată pentru mine. 478 00:35:26,370 --> 00:35:31,190 Și amintiți-vă apoi, modul în care ne etichetat ca bit de date 479 00:35:31,190 --> 00:35:38,400 a fost oferindu-i acest domeniu chiar aici, acest șir publice, 480 00:35:38,400 --> 00:35:42,080 care este eticheta pentru șirul am inclus, de fapt. 481 00:35:42,080 --> 00:35:48,450 >> Dacă spun MainActivity.Extra_Message 482 00:35:48,450 --> 00:35:52,200 E chiar acolo, iar acest lucru este un fel de numele parametrului 483 00:35:52,200 --> 00:35:55,330 când am trecut cod de la operator la șablon, 484 00:35:55,330 --> 00:35:57,680 când am spune titlul săgeată ceva. 485 00:35:57,680 --> 00:36:01,140 Este același fel de idei acolo. 486 00:36:01,140 --> 00:36:07,130 Acum, amintiți-vă acest lucru. 487 00:36:07,130 --> 00:36:12,230 Am, de asemenea, au această auto creat sau generat automat codul 488 00:36:12,230 --> 00:36:16,410 pentru activitatea rezultat, care include vedere textul în mijloc 489 00:36:16,410 --> 00:36:19,690 care spune Bună ziua lume. 490 00:36:19,690 --> 00:36:27,510 Am putea face potențial că mai mare. 491 00:36:27,510 --> 00:36:33,980 Să facem asta în primul rând. 492 00:36:33,980 --> 00:36:39,550 Am putea face 40 de densitate de pixeli independente. 493 00:36:39,550 --> 00:36:42,670 Să vedem, care e foarte mare. Că va fi bine. 494 00:36:42,670 --> 00:36:48,180 Și apoi, în scopul de a face referire acest punct de vedere textul specială în codul nostru 495 00:36:48,180 --> 00:36:53,890 va trebui să-i dea o identitate, 496 00:36:53,890 --> 00:36:58,350 și în scopul de a face ceea ce spunem @ + ID, ceea ce înseamnă că atribuie o identitate. 497 00:36:58,350 --> 00:37:02,480 Dacă doar am spus @ id-ar asuma vom referire la o identitate care există deja, 498 00:37:02,480 --> 00:37:07,760 și să numim acest resultTextView nostru. 499 00:37:07,760 --> 00:37:10,570 Și observă că, în XML nu este nevoie de virgulă sau ceva. 500 00:37:10,570 --> 00:37:12,380 Totul este în aceste tag-uri. 501 00:37:12,380 --> 00:37:15,530 Este foarte similar cu HTML într-o mulțime de sensuri. 502 00:37:15,530 --> 00:37:22,760 >> Este nevoie de un pic de Noțiuni de bază utilizate pentru a, dar în cele din urmă te vei simti destul de confortabil cu ea. 503 00:37:22,760 --> 00:37:31,320 Să actualizeze textul de punctul nostru de vedere textul rezultat, 504 00:37:31,320 --> 00:37:35,650 și așa cum am făcut atunci când am fost obtinerea că câmp text din alte activitatea noastră 505 00:37:35,650 --> 00:37:46,630 în MainActivity Aici vom, de asemenea, de asemenea, 506 00:37:46,630 --> 00:37:54,890 vom găsi punctul de vedere de identitate. 507 00:37:54,890 --> 00:37:59,640 Și R, în cazul în care nu am menționat acest lucru înainte, este referința la dosar resursele noastre, 508 00:37:59,640 --> 00:38:05,350 și apoi ID-ul este o referință la totul în folderul resurse, toate buletinele de identitate, 509 00:38:05,350 --> 00:38:10,060 și resultTextView. 510 00:38:10,060 --> 00:38:13,010 Și, la fel ca și mai înainte, resultTextView este un obiect, 511 00:38:13,010 --> 00:38:15,780 ceea ce înseamnă că are toate aceste proprietăți asociate cu aceasta. 512 00:38:15,780 --> 00:38:20,610 Când ne-am folosi getText de text pentru acest câmp de text sau de vedere textul 513 00:38:20,610 --> 00:38:23,980 putem folosi de fapt setText, 514 00:38:23,980 --> 00:38:26,960 și apoi am găsit deja mesajul de intenție, 515 00:38:26,960 --> 00:38:35,760 asa ca pot spune mesaj, iar acest lucru se va stabili de fapt mesajul. 516 00:38:35,760 --> 00:38:41,820 >> Se ia un moment pentru a lansa, iar apoi putem vedea dacă este sau nu blochează, 517 00:38:41,820 --> 00:38:48,670 dar orice întrebări cu privire la acest proces chiar acolo, ca un fel de interacțiune? 518 00:38:48,670 --> 00:38:51,490 In multe feluri este simplu. 519 00:38:51,490 --> 00:38:53,960 Motivul pentru care am de gând prin ceva relativ simplu, 520 00:38:53,960 --> 00:38:57,330 este, din nou, pentru că veți obține pentru a vedea interacțiunea dintre structura, 521 00:38:57,330 --> 00:38:59,520 codul sursă, modul în care lucrurile de referință 522 00:38:59,520 --> 00:39:07,680 și poate obține o expunere mica la modul Java lucrează acolo. 523 00:39:07,680 --> 00:39:16,500 Dacă scriu de fapt, ceva aici, cum ar fi Ohai, iar apoi fac clic pe butonul, 524 00:39:16,500 --> 00:39:22,260 se lansează o nouă activitate, iar acest punct de vedere textul spune Ohai. 525 00:39:22,260 --> 00:39:27,640 Asta e foarte simplu, dar sperăm că după exemplul 526 00:39:27,640 --> 00:39:32,310 ce fel de a vedea cum funcționează această interacțiune, iar acum că mizerie de fișiere 527 00:39:32,310 --> 00:39:36,870 pe partea stângă pentru toate aceste dosare de proiect, sperăm știi unde să te uiți acum. 528 00:39:36,870 --> 00:39:38,700 Aceasta este zona de cod sursă. 529 00:39:38,700 --> 00:39:41,760 >> Layout-ul este într-adevăr singurul lucru pe care îl vei face cu până ce includ imagini 530 00:39:41,760 --> 00:39:46,370 și drawables sau orice altceva, și valori, care va include siruri de caractere, 531 00:39:46,370 --> 00:39:51,960 așa cum am menționat, iar apoi stilurile este ceva care este un fel de CSS. 532 00:39:51,960 --> 00:39:56,410 Adresa este atunci când doriți, dar până când vă simțiți confortabil cu adăugarea de fler suplimentare 533 00:39:56,410 --> 00:40:02,520 la cererea dumneavoastră nu este nevoie să vă faceți griji despre asta prea mult. 534 00:40:02,520 --> 00:40:07,410 Doar pentru a încheia un alt lucru pe care îl va dori în mod sigur să includă, 535 00:40:07,410 --> 00:40:13,010 Presupunând că doriți să integreze caracteristici interesante și salvați-vă unele suplimentare de codificare- 536 00:40:13,010 --> 00:40:16,460 ar fi pentru a include biblioteci 3rd party. 537 00:40:16,460 --> 00:40:19,840 Aici e un tip mic Android cu Sherlock Holmes palarie. 538 00:40:19,840 --> 00:40:23,040 Aceasta este o bara de acțiuni Sherlock bibliotecă, 539 00:40:23,040 --> 00:40:25,390 ceea ce înseamnă în esență că bara de acțiuni ați văzut mai devreme, 540 00:40:25,390 --> 00:40:29,590 care este standard în Ice Cream Sandwich si Jelly Bean, 541 00:40:29,590 --> 00:40:33,100 dacă vrei să aduci un fel de experiență de utilizator pentru utilizatorii de pe versiuni mai vechi 542 00:40:33,100 --> 00:40:39,290 și salvați-vă de griji cu privire la modul în care utilizatorul va naviga 543 00:40:39,290 --> 00:40:42,490 pe versiuni mai vechi atunci când acel lucru nu este acolo puteți include această bibliotecă 544 00:40:42,490 --> 00:40:46,770 și atunci va trebui doar să-trimitere mai degrabă decât implicit Android 545 00:40:46,770 --> 00:40:50,250 biblioteci pentru bara de acțiuni, ce face referire această bibliotecă de sprijin. 546 00:40:50,250 --> 00:40:53,090 >> Lucruri cum ar fi Scoreloop, e minunat, dacă ai de gând să includă un joc. 547 00:40:53,090 --> 00:40:57,280 Acesta vă permite să adăugați placi de lider și realizări de jocuri. 548 00:40:57,280 --> 00:41:00,900 AdMob este o modalitate de a pune anunțuri în aplicațiile dvs. 549 00:41:00,900 --> 00:41:02,900 în cazul în care doriți să faceți un pic de bani de pe ea. 550 00:41:02,900 --> 00:41:05,730 Desigur, există Facebook și Twitter pentru integrarea acolo 551 00:41:05,730 --> 00:41:08,170 dacă doriți să partajați lucrurile ușor, et cetera. 552 00:41:08,170 --> 00:41:15,120 Dropbox, de asemenea, și Google Analytics este că graficul cauta o acolo. 553 00:41:15,120 --> 00:41:19,070 Asta va fi foarte important dacă vrei sa vezi care interacționează 554 00:41:19,070 --> 00:41:25,800 cu aplicația sau care este, modul în care acestea interacționează, et cetera. 555 00:41:25,800 --> 00:41:30,650 Google, în mod implicit, va spune o mulțime de statistici despre care a instalat aplicația 556 00:41:30,650 --> 00:41:35,020 și ceea ce telefoane au, versiunile sistemului de operare ce au. 557 00:41:35,020 --> 00:41:38,080 Dar dacă doriți să vedeți cine îl utilizează într-o bază de zi cu zi și modul în care se utilizează 558 00:41:38,080 --> 00:41:42,860 atunci veți dori să includă un fel de sistem de monitorizare de genul asta. 559 00:41:42,860 --> 00:41:44,990 >> Când sunteți gata pentru a distribui aplicația 560 00:41:44,990 --> 00:41:46,930 Nu am nevoie pentru a merge în care, în prea mult profunzime. 561 00:41:46,930 --> 00:41:49,090 Click pe link-ul de aici, Google Play. 562 00:41:49,090 --> 00:41:51,080 Este folosit pentru a fi pe piața Android. 563 00:41:51,080 --> 00:41:53,470 Ei rebranding totul cu Google Play, 564 00:41:53,470 --> 00:41:55,230 Deci, acum vă prezinte la asta. 565 00:41:55,230 --> 00:41:57,140 Este foarte simplu. 566 00:41:57,140 --> 00:42:01,070 Trebuie să includă o descriere, unele capturi de ecran. 567 00:42:01,070 --> 00:42:05,660 Cum am spus, nu există nici un proces de aprobare ca iOS. 568 00:42:05,660 --> 00:42:07,270 Și unde să mă duc de aici? 569 00:42:07,270 --> 00:42:09,450 Ți-am arătat un exemplu foarte simplu. 570 00:42:09,450 --> 00:42:13,270 Sperăm că în cazul în care se pare teribil de simplu 571 00:42:13,270 --> 00:42:15,740 atunci asta e, probabil, un semn bun. 572 00:42:15,740 --> 00:42:20,080 Dacă te la toate simțit un pic confuz sau nesigur cu privire la exact ceea ce am scris 573 00:42:20,080 --> 00:42:26,160 care este, de asemenea, bine, dar de aici merg la Ghiduri de Google. 574 00:42:26,160 --> 00:42:28,330 Acesta este un loc minunat pentru a începe. 575 00:42:28,330 --> 00:42:31,460 Acesta vă va vorbi prin ceea ce se așteaptă în ceea ce privește design-ului aplicatiei, 576 00:42:31,460 --> 00:42:33,380 cum utilizatorii interacționează în mod normal cu ea. 577 00:42:33,380 --> 00:42:36,450 Este mult mai mult formă liberă decât iOS, aș spune, 578 00:42:36,450 --> 00:42:41,330 care se pare ca vizualizări tabel sunt-eu nu știu, că e pâinea și untul. 579 00:42:41,330 --> 00:42:44,690 Totul este o vizualizare tabel alunecare în sus și în jos. 580 00:42:44,690 --> 00:42:48,160 Cu Android au încuraja cu siguranță oamenii să se uite la ea din 581 00:42:48,160 --> 00:42:51,720 o grămadă de perspective diferite. 582 00:42:51,720 --> 00:42:56,000 >> Când includ kit de dezvoltare software în acest ADT 583 00:42:56,000 --> 00:43:03,010 implicit aveți o grămadă de proiecte de probă în Android. 584 00:43:03,010 --> 00:43:05,470 Chiar aici, Android, exemplu de proiect Android. 585 00:43:05,470 --> 00:43:11,870 Dacă am faceți clic pe asta, atunci eu pot alege o versiune pentru care a probei se aplică proiectelor. 586 00:43:11,870 --> 00:43:13,300 Există o grămadă de lucruri diferite aici. 587 00:43:13,300 --> 00:43:16,690 Se incepe cu compatibilitate bara de acțiuni, 588 00:43:16,690 --> 00:43:24,610 joc accelerometru, de backup și restaurare, Bluetooth, constructor gest. 589 00:43:24,610 --> 00:43:28,930 JetBoy este un joc de probă se va da, cum este LunarLander. 590 00:43:28,930 --> 00:43:31,250 Există o grămadă de exemple de aplicatii aici, 591 00:43:31,250 --> 00:43:35,290 și toate acestea sunt orientate la diferite aspecte ale API Android, 592 00:43:35,290 --> 00:43:41,520 iar ideea este că pe măsură ce face cererea dvs. 593 00:43:41,520 --> 00:43:44,110 nu aveți nevoie pentru a afla totul despre Android pentru a face o aplicatie Android. 594 00:43:44,110 --> 00:43:47,300 Trebuie doar să învețe despre piesele pe care sunteți de fapt de gând să utilizeze. 595 00:43:47,300 --> 00:43:49,340 Uită-te la aceste biblioteci probă. 596 00:43:49,340 --> 00:43:51,510 Simțiți-vă liber să copiați și inserați codul și reaplicați. 597 00:43:51,510 --> 00:43:53,850 Este un lucru mare să se uite la codul mult mai dificil 598 00:43:53,850 --> 00:43:57,060 și să încerce să-l înțeleagă, care este, desigur, de ce în CS50 599 00:43:57,060 --> 00:44:01,510 de multe ori am da cantități mari de cod sursă. 600 00:44:01,510 --> 00:44:04,620 Uită-te la unele dintre acestea, dacă ai de gând să utilizeze bibliotecile similare 601 00:44:04,620 --> 00:44:08,630 și apoi aplica-l la propriul cod. 602 00:44:08,630 --> 00:44:10,430 Și, desigur, există tutoriale. 603 00:44:10,430 --> 00:44:12,690 Caută tutoriale. 604 00:44:12,690 --> 00:44:17,020 Am găsit o mulțime de cele bune online, care vă poate aduce până la viteza 605 00:44:17,020 --> 00:44:20,080 cu ceea ce fragmente sunt cu adevărat și cum le puteți folosi. 606 00:44:20,080 --> 00:44:22,240 >> Unele dintre aceste noi lucruri de design, cum ar fi fragmente, 607 00:44:22,240 --> 00:44:26,840 tu chiar nu trebuie să fie îngrijorat dacă nu faci o 608 00:44:26,840 --> 00:44:30,560 destul de mare în proiectul domeniul de aplicare. 609 00:44:30,560 --> 00:44:32,510 Acestea sunt lucruri pe care Google încearcă să elimine inch 610 00:44:32,510 --> 00:44:35,570 StackOverflow este, desigur, prietenul tău. 611 00:44:35,570 --> 00:44:37,930 Sperăm că v-am vândut un pic pe Android, 612 00:44:37,930 --> 00:44:41,640 și dea seama că e mult mai ușor să se apropie din punct de vedere doar în limba de codificare. 613 00:44:41,640 --> 00:44:45,970 Java este aș spune mult mai ușor de înțeles decât Objective-C. 614 00:44:45,970 --> 00:44:50,780 Android este în creștere Cred mult mai mult decât iOS. 615 00:44:50,780 --> 00:44:54,890 Adică, datele sunt acolo, în afară de ceea ce cred. 616 00:44:54,890 --> 00:44:56,920 Acesta va fi în jurul valorii pentru un timp, 617 00:44:56,920 --> 00:45:00,880 și ele sunt cu câțiva ani în urmă în ceea ce privește ciclurile de proiectare, 618 00:45:00,880 --> 00:45:04,690 deci e un fel de înțeles că acestea sunt încă de lucru prin unele dintre acestea 619 00:45:04,690 --> 00:45:09,080 întrebări de coerență, ca aceasta bara de acțiuni este un lucru nou pentru ei încă, 620 00:45:09,080 --> 00:45:16,010 un fel de a crea o experiență de utilizare similară în toate aplicațiile lor. 621 00:45:16,010 --> 00:45:20,650 Sperăm că puteți merge mai departe acum și deschide Eclipse 622 00:45:20,650 --> 00:45:22,870 și face propriile aplicații Android. 623 00:45:22,870 --> 00:45:30,240 >> Are cineva vreo întrebare înainte de a încheia despre nimic? 624 00:45:30,240 --> 00:45:34,410 Pot să vă spun că răspunsul este 42. 625 00:45:34,410 --> 00:45:41,990 Ei bine, de codificare toată lumea, și de noroc fericit. 626 00:45:41,990 --> 00:45:44,990 [CS50.TV]