1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Seminari] [Aplicacions Android (Ara amb Jelly Beans!)] 2 00:00:02,610 --> 00:00:04,210 [Jordània Jozwiak] [Universitat de Harvard] 3 00:00:04,210 --> 00:00:06,780 [Aquest és CS50.] [CS50.TV] 4 00:00:06,780 --> 00:00:11,600 >> Hola a tots, i benvinguts a Apps Android (Ara amb Jelly Beans!) Seminari. 5 00:00:11,600 --> 00:00:14,530 Es diu Ara amb Jelly Beans, per descomptat, perquè 6 00:00:14,530 --> 00:00:17,310 l'última versió del sistema operatiu es diu Jelly Bean. 7 00:00:17,310 --> 00:00:22,950 Quan vaig parlar d'Android l'any passat i ho vaig fer bàsicament mateix seminari 8 00:00:22,950 --> 00:00:29,150 Jo estava presentant els patrons de disseny i opcions d'estil de pa de gingebre, 9 00:00:29,150 --> 00:00:31,250 tot i que Ice Cream Sandwich havia sortit en aquest moment, 10 00:00:31,250 --> 00:00:33,680 i això és una cosa del que parlarem en el futur una mica. 11 00:00:33,680 --> 00:00:35,720 Android, per descomptat, té alguns problemes amb la fragmentació, 12 00:00:35,720 --> 00:00:40,240 pel que l'últim sistema operatiu de Google és en general 13 00:00:40,240 --> 00:00:44,710 en realitat no serà comú entre els usuaris potencials de fins a un any, per desgràcia. 14 00:00:44,710 --> 00:00:49,960 >> Però sense tenir en compte que, anem a parlar d'un munt de raons per les quals 15 00:00:49,960 --> 00:00:53,000 Android és molt millor que iOS. 16 00:00:53,000 --> 00:00:56,410 Bé, anem a parlar d'Android enfront de iOS, 17 00:00:56,410 --> 00:00:59,770 alguns paradigmes de disseny, com va a posar-se en marxa en una sola diapositiva, 18 00:00:59,770 --> 00:01:03,410 i la gran diferència entre aquest i l'any passat és només vull 19 00:01:03,410 --> 00:01:06,860 zoom a través d'algunes coses conceptuals que treballen amb 20 00:01:06,860 --> 00:01:09,950 el sistema operatiu i, a continuació entra en un exemple molt bàsic. 21 00:01:09,950 --> 00:01:13,730 De fet, només l'exemple que Google descriu per a la construcció de la seva primera aplicació, 22 00:01:13,730 --> 00:01:17,070 i anirem a través d'ell junts i simplement descrivim. 23 00:01:17,070 --> 00:01:22,100 >> Sé que molts de vostès només han codificat en C, de manera que Java ja serà 24 00:01:22,100 --> 00:01:27,220 una perspectiva diferent, i d'aquesta manera podràs aconseguir els seus peus mullats 25 00:01:27,220 --> 00:01:31,540 i sentir-se una mica més còmode amb ell esperem. 26 00:01:31,540 --> 00:01:35,330 Un resum ràpid, Android enfront de iOS. 27 00:01:35,330 --> 00:01:39,200 En Android hi ha aquesta tarifa desenvolupador d'una sola vegada de $ 25, 28 00:01:39,200 --> 00:01:42,390 res d'això $ 100 per any. 29 00:01:42,390 --> 00:01:45,440 No hi ha restriccions, el que significa que si vull presentar una aplicació, 30 00:01:45,440 --> 00:01:51,560 Em presento, i no hi ha procés d'aprovació com n'hi ha per iOS. 31 00:01:51,560 --> 00:01:53,890 Tens l'oportunitat de desenvolupar en Java usant Eclipsi, 32 00:01:53,890 --> 00:01:57,090 que és multiplataforma, de manera que no importa si vostè té un Mac, 33 00:01:57,090 --> 00:01:59,600 Windows o una màquina Linux. 34 00:01:59,600 --> 00:02:03,730 Per descomptat, amb iOS ha d'utilitzar XCode en un Mac, 35 00:02:03,730 --> 00:02:06,930 i Android és utilitzat per moltes més persones, 36 00:02:06,930 --> 00:02:11,580 així que si vostè vol que la seva aplicació s'executi algun tipus de visibilitat o potser 37 00:02:11,580 --> 00:02:14,110 fer una mica de diners dels anuncis 38 00:02:14,110 --> 00:02:17,450 vostè està probablement més probabilitats de beneficiar d'Android. 39 00:02:17,450 --> 00:02:20,630 >> I una cosa que sempre s'ha conegut sobre Android 40 00:02:20,630 --> 00:02:25,100 és la quantitat de personalització extrema, mentre que iOS és molt fixa en les seves formes 41 00:02:25,100 --> 00:02:29,380 de manera que puguin mantenir la seguretat i el control sobre cada petit aspecte 42 00:02:29,380 --> 00:02:34,180 del disseny dins del seu sistema operatiu i les aplicacions individuals. 43 00:02:34,180 --> 00:02:40,180 Android és la forma molt lliure, i hi ha tantes més possibilitats. 44 00:02:40,180 --> 00:02:42,530 Bé, alguns paradigmes de disseny. 45 00:02:42,530 --> 00:02:49,600 Noteu aquí igual que iOS té tauletes i telèfons iPhone i iPod Touch 46 00:02:49,600 --> 00:02:53,840 que han de suportar, per exemple, com una dotzena de dispositius si vols donar suport 47 00:02:53,840 --> 00:02:55,450 coses històriques també. 48 00:02:55,450 --> 00:02:58,410 Amb Android que ha de suportar centenars de dispositius, 49 00:02:58,410 --> 00:03:01,240 així que hi ha algunes coses que Google ha estat tractant de posar en pràctica 50 00:03:01,240 --> 00:03:04,970 perquè l'usuari experimenti una mica més consistent, 51 00:03:04,970 --> 00:03:08,560 però també parlarem de com això vol dir que hi ha problemes de fragmentació 52 00:03:08,560 --> 00:03:11,700 que constantment han de ser conscients de suport. 53 00:03:11,700 --> 00:03:16,140 La fragmentació significa que hi ha molts sistemes operatius diferents, 54 00:03:16,140 --> 00:03:20,330 molts telèfons diferents amb diferent maquinari amb Android, tot al mateix temps, 55 00:03:20,330 --> 00:03:29,680 pel que aquest gràfic aquí es remunta a prop de 6 mesos. 56 00:03:29,680 --> 00:03:36,460 Sí, de 6 mesos, i es pot veure com la banda més fosca 57 00:03:36,460 --> 00:03:39,330 en el fons és Jelly Bean, que va sortir a l'estiu, 58 00:03:39,330 --> 00:03:42,970 i es pot veure en aquests moments probablement al voltant de 2% dels telèfons que ho tinguem. 59 00:03:42,970 --> 00:03:45,520 >> Ice Cream Sandwich sortir fa més d'un any, 60 00:03:45,520 --> 00:03:47,770 i una quarta part dels telèfons que ho tinguem. 61 00:03:47,770 --> 00:03:53,910 Encara hi ha un munt de telèfons que fan servir la versió del sistema operatiu des de fa anys. 62 00:03:53,910 --> 00:03:57,820 Una cosa que Google ha tractat de fer perquè l'experiència de l'usuari 63 00:03:57,820 --> 00:04:01,400 molt més consistent a través d'aplicacions s'inicia amb Honeycomb, 64 00:04:01,400 --> 00:04:04,320 que és la versió tablet, a continuació, Ice Cream Sandwich i Jelly Bean, 65 00:04:04,320 --> 00:04:06,750 que realment estan tractant de posar l'accent en l'ús d'aquesta barra d'accions, 66 00:04:06,750 --> 00:04:10,430 que és el que es pot veure a la part superior aquí, 67 00:04:10,430 --> 00:04:14,730 tot bé aquí, incloent aquest petit botó de configuració. 68 00:04:14,730 --> 00:04:16,079 És l'opció de disseny. 69 00:04:16,079 --> 00:04:18,000 Ara, cada vegada que vegi els 3 punts que significa fer clic a aquest, 70 00:04:18,000 --> 00:04:21,880 i hi haurà un menú desplegable, que té algun tipus de configuració. 71 00:04:21,880 --> 00:04:28,900 Això només apareix perquè vaig fer clic en aquest botó. 72 00:04:28,900 --> 00:04:32,040 Això és una cosa que ells estan tractant d'utilitzar per fer que les aplicacions una mica més consistent 73 00:04:32,040 --> 00:04:39,210 en tots els àmbits i perquè l'usuari tingui una millor idea de l'experiència uniforme. 74 00:04:39,210 --> 00:04:42,640 >> Bé, pel que en cas que no s'hagi fet ja, o si vostè està veient a casa 75 00:04:42,640 --> 00:04:50,210 llavors vostè pot seguir aquests passos per configurar l'entorn de codificació. 76 00:04:50,210 --> 00:04:52,630 Això implicarà anar a la pàgina web aquí. 77 00:04:52,630 --> 00:04:56,260 Vostè pot buscar a Google instal · lar SDK Android 78 00:04:56,260 --> 00:04:59,130 i segueixi les descripcions allà. 79 00:04:59,130 --> 00:05:01,310 Et diuen tot. 80 00:05:01,310 --> 00:05:05,160 Han d'instal · lar la, descàrrega Eclipsi SDK versió Classic, 81 00:05:05,160 --> 00:05:07,450 encara que, per descomptat, estem codificació en Java. 82 00:05:07,450 --> 00:05:12,190 Recomanen aquest, i llavors aquest ADT, les eines de desenvolupament d'Android, 83 00:05:12,190 --> 00:05:17,300 és un plugin que s'instal · la en Eclipse que permet 84 00:05:17,300 --> 00:05:20,550 tenir una experiència molt més àgil amb Android a Eclipse. 85 00:05:20,550 --> 00:05:24,070 Li donarà algunes interfícies gràfiques d'usuari 86 00:05:24,070 --> 00:05:29,610 per al disseny dels punts de vista, i que li donarà molt més suport 87 00:05:29,610 --> 00:05:34,840 i la capacitat per posar en marxa amb l'emulador i tot aquest tipus de coses. 88 00:05:34,840 --> 00:05:36,090 Marc d'aplicació. 89 00:05:36,090 --> 00:05:41,590 >> Vull parlar sobre com s'estructuren els projectes dins d'Android, 90 00:05:41,590 --> 00:05:44,830 i després entrarem en un exemple ràpid, i és d'esperar 91 00:05:44,830 --> 00:05:48,820 vostè pot fer preguntes en qualsevol moment i sentir-se còmode al final de la mateixa. 92 00:05:48,820 --> 00:05:50,090 Tenim primer l'argot. 93 00:05:50,090 --> 00:05:55,330 Una activitat és com la pantalla que apareix en iniciar una aplicació. 94 00:05:55,330 --> 00:05:57,840 Tota l'experiència és la mateixa activitat, 95 00:05:57,840 --> 00:06:00,790 pel que podria pensar en ell com una pantalla o una vista, 96 00:06:00,790 --> 00:06:04,540 però en realitat és la part del codi font de la mateixa. 97 00:06:04,540 --> 00:06:12,680 Encara anomenem la part real de la mateixa interfície d'una vista. 98 00:06:12,680 --> 00:06:17,230 És una cosa així com la forma en PSET juliol vam tenir el controlador i la vista. 99 00:06:17,230 --> 00:06:20,690 L'activitat és més o menys el controlador, 100 00:06:20,690 --> 00:06:23,360 i la vista és el que estem fent en termes de XML 101 00:06:23,360 --> 00:06:25,260 que s'associa amb aquesta activitat. 102 00:06:25,260 --> 00:06:29,340 Els fragments són una cosa que està implementat en Ice Cream Sandwich en el futur. 103 00:06:29,340 --> 00:06:36,380 És només una idea de prendre part de la vista o de l'activitat 104 00:06:36,380 --> 00:06:39,990 i dividir-los en àrees separades perquè puguem 105 00:06:39,990 --> 00:06:45,030 fer el nostre codi més útil per a aquests diferents dispositius 106 00:06:45,030 --> 00:06:51,890 que hem de donar suport, i és només una manera de tractar de 107 00:06:51,890 --> 00:06:54,290 També factoritzar més codi. 108 00:06:54,290 --> 00:07:01,090 Els serveis són de fons coses com reproduir música o adreces de navegació potencialment. 109 00:07:01,090 --> 00:07:05,640 Els proveïdors de contingut, aquestes són les API dins del sistema operatiu 110 00:07:05,640 --> 00:07:09,070 que li permeten accedir a les dades compartides, com ara informació de contacte, 111 00:07:09,070 --> 00:07:12,790 i la intenció és quelcom que utilitzarem quan es vol posar en marxa 112 00:07:12,790 --> 00:07:17,210 una nova activitat de la nostra activitat actual. 113 00:07:17,210 --> 00:07:20,980 >> Hola Android, això serà un projecte que parlarem. 114 00:07:20,980 --> 00:07:25,410 Jo en realitat ho faci per tu, i després faré una cosa en què feu clic a un botó 115 00:07:25,410 --> 00:07:27,650 amb una mica de text i posar en marxa una nova activitat. 116 00:07:27,650 --> 00:07:30,110 Molt senzill, però vull passar per 117 00:07:30,110 --> 00:07:34,480 el que vaig a entrar en un projecte com aquest. 118 00:07:34,480 --> 00:07:39,260 En realitzar el nou projecte veurà dins d'Eclipse 119 00:07:39,260 --> 00:07:41,900 hi ha aquest projecte anomenat Hola Android. 120 00:07:41,900 --> 00:07:43,470 Després hi ha un munt de carpetes aquí. 121 00:07:43,470 --> 00:07:46,760 Els que vostè està realment preocupat amb són la carpeta d'origen, 122 00:07:46,760 --> 00:07:54,540 la carpeta de recursos, l'animal, i en certa mesura la carpeta libs per a les biblioteques. 123 00:07:54,540 --> 00:08:00,070 I perquè quedi a la mateixa pàgina amb la 124 00:08:00,070 --> 00:08:03,240 si fos a crear un nou projecte, 125 00:08:03,240 --> 00:08:08,270 vostè pot fer això aquí, així que si jo vull cridar HelloAndroid, 126 00:08:08,270 --> 00:08:11,100 i després ho fa automàticament un munt d'informació per a nosaltres. 127 00:08:11,100 --> 00:08:14,110 El nom del paquet se suposa que és un identificador únic 128 00:08:14,110 --> 00:08:16,710 que normalment s'associa amb el lloc web, si vostè tingués un. 129 00:08:16,710 --> 00:08:24,430 >> Per exemple, vaig a trucar a aquest net.cs50.helloandroid. 130 00:08:24,430 --> 00:08:30,070 I ja he fet aquest projecte una vegada. 131 00:08:30,070 --> 00:08:40,059 Val, ho sento. Diguem-HelloCS50. 132 00:08:40,059 --> 00:08:42,929 I llavors se us demanarà coses com quin tipus d'icona de què volem fer. 133 00:08:42,929 --> 00:08:48,840 Tot això és degut a la interfície Eines Desenvolupadors d'Android, 134 00:08:48,840 --> 00:08:53,350 el connector que hem afegit a Eclipse, pel que pot triar coses com 135 00:08:53,350 --> 00:08:58,320 el que la icona que volem, i que anàvem a aquesta profunditat si volem. 136 00:08:58,320 --> 00:09:04,360 Però al final, acaba de fer el projecte, 137 00:09:04,360 --> 00:09:07,040 i tot el que es presenta aquí. 138 00:09:07,040 --> 00:09:10,030 Com vaig mostrar en l'altra pantalla, 139 00:09:10,030 --> 00:09:14,070 tenim la carpeta d'origen, i vaig a parlar del que tot això significa poc, 140 00:09:14,070 --> 00:09:19,090 però es pot veure que immediatament ens porta a la pantalla HelloCS50. 141 00:09:19,090 --> 00:09:24,690 Hi ha alguns botons d'aquí per afegir text i dissenys de camp de text. 142 00:09:24,690 --> 00:09:28,910 És com XCode, però per desgràcia no és tan eficient. 143 00:09:28,910 --> 00:09:37,790 No obstant això, els clips seran el seu amic i ADT, en particular, per fer això. 144 00:09:37,790 --> 00:09:40,920 >> Bé, la carpeta d'origen és on 145 00:09:40,920 --> 00:09:43,820 els arxius Java es duen a terme, i això és en realitat el llançament del seu programa. 146 00:09:43,820 --> 00:09:45,990 És bàsicament com els controladors. 147 00:09:45,990 --> 00:09:49,020 La carpeta de recursos o de la res és on anem a mantenir dissenys de pantalla, 148 00:09:49,020 --> 00:09:54,110 imatges, sons, text, animació i tota la resta, libs, òbviament, biblioteques. 149 00:09:54,110 --> 00:10:01,700 I el Manifest, és la forma en què el sistema Android sap 150 00:10:01,700 --> 00:10:03,130 com interactuar amb l'aplicació. 151 00:10:03,130 --> 00:10:07,980 Es diu que sobre els permisos i les activitats que en realitat es pot executar. 152 00:10:07,980 --> 00:10:12,350 És tota la informació essencial que cal per executar l'aplicació. 153 00:10:12,350 --> 00:10:17,990 La carpeta d'origen és-si ampliem com es pot veure aquí. 154 00:10:17,990 --> 00:10:23,920 I un exemple que un codi seria-aquest és el codi predeterminat. 155 00:10:23,920 --> 00:10:27,930 Com ho diem, MainActivity. 156 00:10:27,930 --> 00:10:33,230 Per defecte, s'obté onCreate, que és una funció que es crida quan es carrega aquesta activitat, 157 00:10:33,230 --> 00:10:37,150 pel qual voleu trucar onCreate (savedInstanceState). 158 00:10:37,150 --> 00:10:40,440 Això restaurarà els bits d'informació 159 00:10:40,440 --> 00:10:44,910 en cas que es va aturar l'aplicació. 160 00:10:44,910 --> 00:10:48,790 >> Hi ha una activitat gràfica cicle de vida que es pot veure a 161 00:10:48,790 --> 00:10:50,380 quan vostè aconsegueix una mica més en profunditat en ella, 162 00:10:50,380 --> 00:10:56,210 però la més important línia de codi hi ha aquesta funció setContentView 163 00:10:56,210 --> 00:11:00,290 que es carregui el fitxer de recursos per al disseny. 164 00:11:00,290 --> 00:11:03,590 Llavors, què onCreate aquí està fent bàsicament és que està dient 165 00:11:03,590 --> 00:11:07,010 quan crec aquesta activitat vull carregar aquesta disposició. 166 00:11:07,010 --> 00:11:12,030 I parlarem del que el disseny és d'un segon. 167 00:11:12,030 --> 00:11:16,230 Si ens posarem en marxa que aquí es veu exactament com aquesta, 168 00:11:16,230 --> 00:11:22,880 i per defecte perquè hem Eclipsi fent això i ADT fent per nosaltres 169 00:11:22,880 --> 00:11:28,210 Aquest és tot el codi repetitiu que es crea per a nosaltres, 170 00:11:28,210 --> 00:11:34,630 i podem seguir endavant i canviar les coses que ens agrada. 171 00:11:34,630 --> 00:11:38,190 La carpeta de recursos, com he dit, aquí és on tenim tots els dissenys, 172 00:11:38,190 --> 00:11:41,150 dibuixables en termes de qualsevol tipus d'imatges- 173 00:11:41,150 --> 00:11:46,360 se'ls anomena dibuixables-i després els arxius de so, menús. 174 00:11:46,360 --> 00:11:51,170 És una forma d'un munt de XML en una bona manera ordenada. 175 00:11:51,170 --> 00:11:58,030 Com pots veure, hi ha. IPAP, LDPI, MDPI i carpetes xhdpi per als dibuixables. 176 00:11:58,030 --> 00:12:02,220 Aquestes són les diferents densitats de pantalla, els píxels tan alta densitat per polzada, 177 00:12:02,220 --> 00:12:05,710 baixa densitat, mitja densitat, alta densitat addicional. 178 00:12:05,710 --> 00:12:08,900 >> Això és, de nou, pel que pot suportar tots aquests diferents dispositius, 179 00:12:08,900 --> 00:12:15,100 i idealment, tindrà diferents imatges per a cada resolució diferent. 180 00:12:15,100 --> 00:12:20,740 Els dissenys són on incloem tots els diferents dissenys que s'utilitzaran en les diferents activitats. 181 00:12:20,740 --> 00:12:24,150 També podrien incloure disposicions per fragments, 182 00:12:24,150 --> 00:12:26,670 el que significa bàsicament activitats parcials. 183 00:12:26,670 --> 00:12:29,610 Si vols fer alguna cosa fresc com quan gira el telèfon 184 00:12:29,610 --> 00:12:33,900 vostè desitja que tingui un disseny diferent que vostè pot fer disseny-paisatge com una carpeta diferent, 185 00:12:33,900 --> 00:12:39,000 Android i automàticament té un munt d'aquestes normes dins de la carpeta de recursos, 186 00:12:39,000 --> 00:12:44,690 pel que saber cercar en diferents carpetes en funció de la configuració actual del telèfon, 187 00:12:44,690 --> 00:12:46,740 quin tipus de maquinari que utilitzeu. 188 00:12:46,740 --> 00:12:52,350 De la mateixa manera, aquest valor-v11 aquí i valors-v14 189 00:12:52,350 --> 00:12:55,460 i els valors per defecte carpeta d'això és per- 190 00:12:55,460 --> 00:13:01,730 així, els valors per si mateix, això seran els valors per defecte a través de totes les versions del sistema operatiu. 191 00:13:01,730 --> 00:13:06,390 D'altra banda, v11 i v14 corresponen amb Honeycomb 192 00:13:06,390 --> 00:13:08,780 i Ice Cream Sandwich, respectivament. 193 00:13:08,780 --> 00:13:12,800 Una vegada més, es tracta de formes que-dins d'aquestes carpetes són diferents cadenes 194 00:13:12,800 --> 00:13:17,550 i estils, perquè pugui personalitzar l'aspecte de la seva aplicació 195 00:13:17,550 --> 00:13:22,660 o possiblement fins i tot la seva funcionalitat, tot i que probablement seria una mala idea, 196 00:13:22,660 --> 00:13:25,890 sobre la base de la versió del sistema operatiu. 197 00:13:25,890 --> 00:13:28,760 >> I vaig parlar de tot això aquí. 198 00:13:28,760 --> 00:13:35,870 Un cop més, poden dibuixar, primeres, el disseny, els valors. 199 00:13:35,870 --> 00:13:41,380 Els valors per defecte, si entrem a Hola Hola Android o CS50 ara 200 00:13:41,380 --> 00:13:43,310 serà un aspecte com aquest. 201 00:13:43,310 --> 00:13:45,800 Es dirà hola món. 202 00:13:45,800 --> 00:13:58,430 Com es pot veure aquí amb el text Android 203 00:13:58,430 --> 00:14:04,420 el text d'aquest punt de vista el text, que és bàsicament només una etiqueta, 204 00:14:04,420 --> 00:14:06,900 és el que diríem en iOS. 205 00:14:06,900 --> 00:14:11,580 Té aquesta notació divertit @ string / hello_world. 206 00:14:11,580 --> 00:14:16,200 Això és el que pot-d'intentar extreure totes les cadenes, 207 00:14:16,200 --> 00:14:19,740 totes les cadenes fixes en Android en una carpeta separada, 208 00:14:19,740 --> 00:14:23,610 que passa a ser en values.strings. 209 00:14:23,610 --> 00:14:29,300 Si mirem aquí, podem veure que tenim una cadena fixa guardada aquí 210 00:14:29,300 --> 00:14:33,910 per hola món, i es diu hola món, i això és una espècie de 211 00:14:33,910 --> 00:14:39,230 decisió de disseny comú en moltes plataformes que desitja- 212 00:14:39,230 --> 00:14:41,780 cadenes són el tipus de coses que volem ser potencialment capaç de canviar. 213 00:14:41,780 --> 00:14:48,050 No volem controlar F al nostre arxiu de codi font en el nostre XML. 214 00:14:48,050 --> 00:14:50,760 Volem ser capaços de canviar això quan tenim l'oportunitat. 215 00:14:50,760 --> 00:14:53,640 >> Aquest fitxer XML, strings.xml, és una manera d'extreure 216 00:14:53,640 --> 00:14:56,710 cadenes fixes que d'una altra manera, en els nostres recursos de disseny 217 00:14:56,710 --> 00:15:03,530 o en el nostre codi font. 218 00:15:03,530 --> 00:15:08,190 El Manifest és on guardem la informació essencial sobre l'aplicació. 219 00:15:08,190 --> 00:15:11,050 Inclou el nom del paquet. Això ha de ser un identificador únic. 220 00:15:11,050 --> 00:15:16,020 A diferència de l'App Store per iOS els noms de les aplicacions 221 00:15:16,020 --> 00:15:19,980 no ha de ser únic, i vostè pot de fet canviar el nom de l'aplicació 222 00:15:19,980 --> 00:15:23,570 després d'enviar, així que si començo amb Angry Birds, 223 00:15:23,570 --> 00:15:26,840 i després faig una actualització, i jo no vull llançar una nova versió 224 00:15:26,840 --> 00:15:34,230 Suposo que podria dir-Angry Birds 2 mentre sóc al mateix cicle de llançament. 225 00:15:34,230 --> 00:15:36,780 S'acaba d'aparèixer com una actualització. 226 00:15:36,780 --> 00:15:39,790 L'únic que ha de ser únic és el nom del paquet, 227 00:15:39,790 --> 00:15:41,280 que no molta gent va a veure. 228 00:15:41,280 --> 00:15:44,680 Bé, només veuries si estiguessis mirant el codi font o si hi ha algun tipus d'error. 229 00:15:44,680 --> 00:15:47,580 Els components inclouran activitats, així que hem de declarar 230 00:15:47,580 --> 00:15:49,070 qualsevol tipus d'activitat que utilitzem. 231 00:15:49,070 --> 00:15:53,430 Es tracta d'un permís tipus de coses. 232 00:15:53,460 --> 00:15:58,150 >> Perquè Android no té aquest rigorós procés d'aplicació 233 00:15:58,150 --> 00:16:02,210 per a la presentació de les aplicacions sinó que simplement tot ho basen fora dels permisos 234 00:16:02,210 --> 00:16:04,300 i declarant les coses en el Manifest. 235 00:16:04,300 --> 00:16:06,380 La versió SDK també és important. 236 00:16:06,380 --> 00:16:10,330 Podem establir el seu ús com SDK versió mínima alguna cosa. 237 00:16:10,330 --> 00:16:16,010 Òbviament, vostè vol crear codi 238 00:16:16,010 --> 00:16:18,570 i el disseny dels sistemes operatius més recents. 239 00:16:18,570 --> 00:16:20,840 Potser no és el més nou, potser no Jelly Bean. 240 00:16:20,840 --> 00:16:23,610 Potser vostè vol dissenyar tot per Ice Cream Sandwich, 241 00:16:23,610 --> 00:16:27,120 tot i que són més o menys el mateix quant a les decisions de disseny 242 00:16:27,120 --> 00:16:30,550 i les biblioteques reals i API. 243 00:16:30,550 --> 00:16:36,250 Però en lloc que la gent 244 00:16:36,250 --> 00:16:40,050 de l'original versió d'Android-com Donut camí de tornada quan- 245 00:16:40,050 --> 00:16:43,420 que encara s'estigui utilitzant que intenten descarregar l'aplicació i després dir 246 00:16:43,420 --> 00:16:46,160 no funciona en el meu telèfon pot establir la versió mínima 247 00:16:46,160 --> 00:16:48,620 i han de ser Gingerbread o Ice Cream Sandwich 248 00:16:48,620 --> 00:16:53,300 o el que vostè se senti còmode presentant. 249 00:16:53,300 --> 00:16:57,170 I aquest és un exemple del Manifest. Podem mirar a la real en un moment. 250 00:16:57,170 --> 00:17:00,900 >> Bé, seguirem endavant amb la demo. 251 00:17:00,900 --> 00:17:08,900 Aquesta és la demostració si Google Android construir la seva primera aplicació o alguna cosa per l'estil. 252 00:17:08,900 --> 00:17:12,089 Anem a passar per tot el que està passant aquí, 253 00:17:12,089 --> 00:17:17,690 i ho sento, només per una referència que aquí sap Java en un grau? 254 00:17:17,690 --> 00:17:28,310 Bé, Java és nou llenguatge de codificació per a la majoria de la gent que surt de CS50. 255 00:17:28,310 --> 00:17:31,850 En poques paraules, per anar de nou el que diu aquí, 256 00:17:31,850 --> 00:17:35,580 el que volem fer és en lloc d'ajustar aquesta aplicació hola món 257 00:17:35,580 --> 00:17:38,620 que l'únic que fa és que llança i diu hola món 258 00:17:38,620 --> 00:17:43,580 i diu hola CS50 a la part superior, perquè aquest és el nom de l'activitat 259 00:17:43,580 --> 00:17:47,190 tractarem de fer un camp de text i un botó 260 00:17:47,190 --> 00:17:50,680 de manera que quan premem aquest botó prendrà el text 261 00:17:50,680 --> 00:17:53,660 des del camp de text i posar en marxa una nova activitat, i dirà: 262 00:17:53,660 --> 00:17:58,380 el que sigui que el text va dir en l'activitat, i això és relativament simple. 263 00:17:58,380 --> 00:18:00,650 No és molt interessant. No vol llançar qualsevol aplicació com aquesta. 264 00:18:00,650 --> 00:18:03,880 Però demostra algunes coses importants de disseny. 265 00:18:03,880 --> 00:18:07,030 >> Haurem de interactuar amb el Manifest, amb els arxius de disseny, 266 00:18:07,030 --> 00:18:12,440 amb el codi font, i es pot veure com posar en marxa una activitat d'un altre. 267 00:18:19,740 --> 00:18:23,060 Anem a començar amb el disseny de la nostra primera activitat, 268 00:18:23,060 --> 00:18:27,320 que jo sé que és una mica petita, 269 00:18:27,320 --> 00:18:32,660 però com es pot veure en aquest moment, tot el que és és que té el nostre logotip que vam crear, 270 00:18:32,660 --> 00:18:36,310 el nom de l'activitat, i diu hola món en el centre. 271 00:18:36,310 --> 00:18:40,400 En canvi, jo estic primer va a convertir això en un disseny lineal, 272 00:18:40,400 --> 00:18:42,350 una disposició relativa, i aquestes són totes les coses 273 00:18:42,350 --> 00:18:45,870 vostè podria mirar cap amunt i valen passar-se en algun moment, en termes dels dissenys. 274 00:18:45,870 --> 00:18:47,310 És molt semblant a HTML. 275 00:18:47,310 --> 00:18:52,640 Vam dir que no és realment val la pena conèixer, en termes d'un sentit programàtic, 276 00:18:52,640 --> 00:18:55,840 però hi ha tants dissenys diferents que es poden controlar, 277 00:18:55,840 --> 00:18:57,970 i és com CSS en termes d'estils. 278 00:18:57,970 --> 00:19:01,590 >> Hi ha molt per fer només en termes de l'estètica aquí, 279 00:19:01,590 --> 00:19:08,930 i sí, és val la pena aprendre, però és el tipus de cosa que vostè ha de mirar cap amunt 280 00:19:08,930 --> 00:19:11,810 mentre que vostè va i vostè sent que necessita alguna cosa nova. 281 00:19:11,810 --> 00:19:17,030 Puc prendre avantatge d'algunes de les eines ADT aquí almenys per començar. 282 00:19:17,030 --> 00:19:21,930 Vaig a fer un camp de text, i faré un botó. 283 00:19:21,930 --> 00:19:24,100 Posa'ls just al costat de l'altra. 284 00:19:24,100 --> 00:19:28,200 Ja redimensionar adequadament. 285 00:19:28,200 --> 00:19:31,320 Ho sentim, un cop més, tornant a la diferència entre el disseny i el disseny lineal relativa, 286 00:19:31,320 --> 00:19:34,830 un disseny lineal fa una mica més de funcionalitat 287 00:19:34,830 --> 00:19:38,720 en termes d'espai de farciment i d'assegurar 288 00:19:38,720 --> 00:19:42,790 Ens posicionem coses horitzontal o verticalment. 289 00:19:42,790 --> 00:19:46,130 La gran diferència entre un disseny lineal i una disposició relativa 290 00:19:46,130 --> 00:19:50,250 és la disposició relativa llocs sobretot en relació amb altres punts de vista, 291 00:19:50,250 --> 00:19:52,630 i el bo d'això és que es necessita menys temps per dibuixar 292 00:19:52,630 --> 00:19:56,120 perquè el sistema operatiu mira tot el codi i diu que això va 293 00:19:56,120 --> 00:19:58,270 en relació amb això aquí, aquí. 294 00:19:58,270 --> 00:20:03,170 Això vol dir que té un menor nombre de mesuraments que un munt de dissenys lineals niats, 295 00:20:03,170 --> 00:20:06,840 el que hauria de fer si volia que les coses van verticalment aquí. 296 00:20:06,840 --> 00:20:10,510 >> Ja he algunes coses que van en horitzontal, de manera que necessitaria una disposició lineal diferent 297 00:20:10,510 --> 00:20:14,560 per niar de forma vertical, però si jo estigués fent una presentació relativa podria dir 298 00:20:14,560 --> 00:20:18,140 mantenir aquest a l'esquerra, aquesta a la dreta i per sota d'aquestes coses. 299 00:20:18,140 --> 00:20:21,850 Però perquè jo vull que omplen ara vaig a utilitzar un disseny lineal, 300 00:20:21,850 --> 00:20:24,510 i es pot veure que ja fa un munt d'aquestes coses per a nosaltres. 301 00:20:24,510 --> 00:20:28,890 Totes les visites han de tenir una propietat d'ample i alt, 302 00:20:28,890 --> 00:20:33,410 i aquest passa a tenir un pes d'1, i això té un pes d'1 303 00:20:33,410 --> 00:20:36,050 perquè ocupi tot l'espai. 304 00:20:36,050 --> 00:20:38,460 No obstant això, l'amplada i l'alçada són les més importants. 305 00:20:38,460 --> 00:20:45,880 Aquest camp ID aquí no és important en el disseny actual 306 00:20:45,880 --> 00:20:49,060 llevat que estiguem usant un disseny relativa i dir que podem referenciar 307 00:20:49,060 --> 00:20:52,990 una posició vista en referència a un altre. 308 00:20:52,990 --> 00:20:56,170 Si tinguéssim una disposició relativa podríem dir aquesta posició per sota d'aquest 309 00:20:56,170 --> 00:20:59,390 o per sobre d'aquest ID, però aquesta ID serà important 310 00:20:59,390 --> 00:21:01,660 quan estem utilitzant en el nostre codi, ja que podem referenciar 311 00:21:01,660 --> 00:21:05,610 aquests punts de vista individuals d'aquesta manera. 312 00:21:05,610 --> 00:21:10,350 >> I llavors vostè pot veure el requestFocus etiqueta, que és una cosa que probablement vas veure en PSET juliol. 313 00:21:10,350 --> 00:21:15,370 Hi va haver una etiqueta enfocament automàtic o alguna cosa per l'estil d'un dels camps. 314 00:21:15,370 --> 00:21:22,100 I una cosa, per descomptat, podem fer el mateix que en HTML, 315 00:21:22,100 --> 00:21:25,660 i observi una de les coses bones d'ADT és que autocompletes aquí. 316 00:21:25,660 --> 00:21:29,930 Potser no tan bé com ho va fer en XCode, però ho fa, però, 317 00:21:29,930 --> 00:21:32,860 i podríem dir indirecta i després donar-li algun tipus de cadena 318 00:21:32,860 --> 00:21:37,070 vol escriure un missatge, 319 00:21:37,070 --> 00:21:41,300 i si li dono un moment, també adonar que tinc un petit error aquí 320 00:21:41,300 --> 00:21:44,610 dient que hem d'utilitzar un recurs de cadena per això, 321 00:21:44,610 --> 00:21:48,820 pel que si el deixo fer alguna cosa del treball dur per a mi 322 00:21:48,820 --> 00:21:57,320 Puc seleccionar aquesta cadena, feu refractor Android i l'extracte de cadena Android. 323 00:21:57,320 --> 00:22:00,570 Puc donar-li un nom, escriure un missatge, 324 00:22:00,570 --> 00:22:04,180 i el que va fer ara és reemplaçat aquesta cadena codificada 325 00:22:04,180 --> 00:22:07,980 amb una referència a la cadena a. xml de la corda, 326 00:22:07,980 --> 00:22:10,200 el que significa que ara es tracta aquí. 327 00:22:10,200 --> 00:22:15,560 >> I sé que sembla una mica trivial i, com a treball extra en aquest punt, 328 00:22:15,560 --> 00:22:17,840 però quan vostè té un munt de coses, un munt de cordes, 329 00:22:17,840 --> 00:22:20,750 això és molt important, i en particular per a la localització 330 00:22:20,750 --> 00:22:26,920 ja que com he esmentat abans, Android és un sistema operatiu molt utilitzat a nivell mundial 331 00:22:26,920 --> 00:22:35,950 que només ha de fer-en els valors o els valors-sp 332 00:22:35,950 --> 00:22:44,320 o alguna cosa d'anglès o espanyol o en altres idiomes. 333 00:22:44,320 --> 00:22:50,210 I llavors és probable que no hagi tingut aquesta experiència encara 334 00:22:50,210 --> 00:22:53,030 ja que no vam fer molt JavaScript en termes de programació web, 335 00:22:53,030 --> 00:22:56,850 però també podem fer això camp denominat onClick del botó, 336 00:22:56,850 --> 00:23:02,350 i aquesta és una manera de referència dins el nostre disseny 337 00:23:02,350 --> 00:23:06,570 que volem una determinada funció que es dirà en el nostre codi font. 338 00:23:06,570 --> 00:23:09,420 Vaig a trucar a aquest sendmessage, 339 00:23:09,420 --> 00:23:13,390 i per tal de fer aquest treball que significa en l'activitat principal aquí 340 00:23:13,390 --> 00:23:19,180 Vaig a haver de crear una funció que és públic 341 00:23:19,180 --> 00:23:22,250 de manera que es pot accedir pel disseny. 342 00:23:22,250 --> 00:23:25,930 És nul · la perquè simplement no vol que es retorna res. 343 00:23:25,930 --> 00:23:37,760 El anomenarem sendmessage, i es necessita un punt de vista, 344 00:23:37,760 --> 00:23:43,690 que és una mena de context que podem ancorar aquest mètode 345 00:23:43,690 --> 00:23:47,160 a la vista individual quan estem executant. 346 00:23:47,160 --> 00:23:50,090 >> I jo no sé si t'has adonat, bé, vostè no ha notat, 347 00:23:50,090 --> 00:24:02,370 però en aquest moment aquí 348 00:24:02,370 --> 00:24:06,930 aquest punt de vista és un tipus que encara no s'ha inclòs, 349 00:24:06,930 --> 00:24:10,630 i per descomptat, tots vostès saben sobre CS50 sense incloure els tipus. 350 00:24:10,630 --> 00:24:13,120 El millor de com Eclipse IDE és que 351 00:24:13,120 --> 00:24:17,520 si s'oblida d'incloure un tipus que subratllarà amb una mica de vermell squiggly 352 00:24:17,520 --> 00:24:19,680 i després li donen l'opció d'importar la vista. 353 00:24:19,680 --> 00:24:23,130 Una manera ràpida de fer-ho és control de canvis O, i s'importarà 354 00:24:23,130 --> 00:24:27,070 tots els arxius que necessita per. 355 00:24:27,070 --> 00:24:33,670 Ara que tenim aquesta funció sendmessage, 356 00:24:33,670 --> 00:24:46,560 que va a enviar el missatge de la MainActivity a una nova activitat, 357 00:24:46,560 --> 00:24:55,230 haurem de fer servir la intenció de posar en marxa la nova activitat d'aquest, 358 00:24:55,230 --> 00:25:02,240 així que probablement volem crear una constant global o també en particular una constant pública 359 00:25:02,240 --> 00:25:06,240 que l'ajudarà a saber com farem referència a la cadena de 360 00:25:06,240 --> 00:25:09,090 perquè quan creem un intent no només estem cridant a una nova activitat, 361 00:25:09,090 --> 00:25:11,520 però també podem donar-li un paquet d'informació. 362 00:25:11,520 --> 00:25:14,720 Un paquet és realment el terme que utilitza Android, 363 00:25:14,720 --> 00:25:21,470 i és una manera de dir li donen dades addicionals, que no pot ser d'un tipus de dades molt sofisticada, 364 00:25:21,470 --> 00:25:24,510 però definitivament podem incloure booleans o cadenes o ints. 365 00:25:24,510 --> 00:25:29,750 Aquest tipus de coses. 366 00:25:29,750 --> 00:25:34,230 >> No dubti a preguntar sobre qualsevol d'aquests qualificatius aquí, 367 00:25:34,230 --> 00:25:36,900 pública, final, estàtica. 368 00:25:36,900 --> 00:25:38,610 Públic és l'important. 369 00:25:38,610 --> 00:25:47,090 Això significa que podem accedir a aquesta variable d'altres arxius de codi font 370 00:25:47,090 --> 00:25:49,590 per exemple, quan es crea una nova activitat. 371 00:25:49,590 --> 00:25:52,190 Podem fer referència a la cadena dins d'aquest arxiu. 372 00:25:52,190 --> 00:25:57,160 Si és privat, vol dir que està limitat a aquesta imatge individual aquí. 373 00:25:57,160 --> 00:26:02,430 Però anem a trucar a aquesta cosa com a missatge addicional. 374 00:26:16,260 --> 00:26:23,300 Ara hem fet aquesta funció, i si fem clic al botó, es dirà a aquesta funció. 375 00:26:23,300 --> 00:26:27,970 Però no hem fet res, òbviament, amb la funció. 376 00:26:27,970 --> 00:26:33,130 El que volem fer ara és crear una nova activitat, 377 00:26:33,130 --> 00:26:35,350 en realitat es va posar en marxa l'activitat. 378 00:26:35,350 --> 00:26:44,330 En Eclipse podem dir nova, l'activitat d'Android, l'activitat en blanc. 379 00:26:44,330 --> 00:26:46,530 Podem donar-li un nom. 380 00:26:46,530 --> 00:26:57,050 Diguem que és la nostra activitat resultat. 381 00:26:57,050 --> 00:27:04,430 I a continuació, aquest camp matriu jeràrquica és una forma d'especificar 382 00:27:04,430 --> 00:27:08,180 com les activitats estan relacionades entre si. 383 00:27:08,180 --> 00:27:11,020 Perquè aquest es posarà en marxa a partir de l'altra activitat 384 00:27:11,020 --> 00:27:27,520 hem d'especificar que té l'activitat principal. 385 00:27:27,520 --> 00:27:31,220 >> I jo podria haver fet clic al següent camp existeix, el que ens han dit 386 00:27:31,220 --> 00:27:33,830 alguns camps opcionals que també va ser inclòs, 387 00:27:33,830 --> 00:27:38,800 però el bo d'ADT, un cop més, és que si em desplaço fins aquí 388 00:27:38,800 --> 00:27:45,740 en el Manifest de recordar que tot això realment va ser inclòs per defecte 389 00:27:45,740 --> 00:27:48,930 quan es va crear originalment el projecte, 390 00:27:48,930 --> 00:27:53,090 i ara ja hem utilitzat aquest crea una nova activitat i no només 391 00:27:53,090 --> 00:27:58,610 afegint el nostre propi arxiu de classe perquè ens vam anar a través de la seva interfície gràfica d'usuari per fer això 392 00:27:58,610 --> 00:28:01,930 ia tot això s'afegeix al manifest per a nosaltres, 393 00:28:01,930 --> 00:28:06,020 que només vol dir que ara el sistema operatiu no es queixarà 394 00:28:06,020 --> 00:28:09,400 quan tractem de posar en marxa aquesta activitat. 395 00:28:09,400 --> 00:28:14,620 I també, per descomptat, que va donar una etiqueta, que també es mostra en les cadenes. 396 00:28:14,620 --> 00:28:17,340 Fa un munt de coses a la part de darrere per a nosaltres. 397 00:28:17,340 --> 00:28:20,140 De totes maneres, ara que tenim aquesta activitat resultat així, 398 00:28:20,140 --> 00:28:23,810 l'arxiu de codi font real de la carpeta d'origen, 399 00:28:23,810 --> 00:28:33,540 i es pot veure a referir-me breument a aquesta- 400 00:28:33,540 --> 00:28:37,790 perquè ens van dir que sobre aquesta matriu jeràrquica 401 00:28:37,790 --> 00:28:46,640 donar aquest camp android.r.ide.home en aquest onOption el seleccionat. 402 00:28:46,640 --> 00:28:49,020 >> El que està dient bàsicament és que hi ha un botó de menú ara 403 00:28:49,020 --> 00:28:53,110 que a la cantonada superior esquerra de la pantalla 404 00:28:53,110 --> 00:29:02,220 si torno a anar a la presentació de PowerPoint que parlem per primera vegada sobre la barra d'acció 405 00:29:02,220 --> 00:29:05,380 causa que el pare jeràrquica ara hi ha una petita fletxa de tornada aquí 406 00:29:05,380 --> 00:29:10,610 i això es pot fer clic, així que hauríem de ser capaços, després que en realitat corre aquesta aplicació- 407 00:29:10,610 --> 00:29:15,360 tornar, i és una manera de salvar-nos una mica de codi allà. 408 00:29:26,220 --> 00:29:40,180 Ara, dins d'aquest, bé, sembla que es queixen que per un moment. 409 00:29:40,180 --> 00:29:43,910 Anem a comentar això. 410 00:29:43,910 --> 00:29:48,260 Ara, per tal d'interactuar efectivament amb aquestes activitats 2, 411 00:29:48,260 --> 00:29:55,020 hem de crear una intenció que inclou totes aquestes dades. 412 00:29:55,020 --> 00:29:58,950 En sendmessage ara em vaig a navegar a través d'alguns trossos de codi 413 00:29:58,950 --> 00:30:00,700 i explico que com vaig. 414 00:30:00,700 --> 00:30:06,280 La intenció, com he dit, és una manera de posar en marxa una activitat d'un altre. 415 00:30:06,280 --> 00:30:10,000 Intenció és el tipus. Estem creant un myIntent variable. 416 00:30:10,000 --> 00:30:13,980 >> I això és en realitat un objecte, de manera que hem de trucar a nova. 417 00:30:13,980 --> 00:30:18,500 És comú l'ús de Java no, el que podria prendre una mica de temps per acostumar. 418 00:30:18,500 --> 00:30:23,900 Això vol dir que estem utilitzant l'activitat o la MainActivity classe, 419 00:30:23,900 --> 00:30:28,630 i la intenció d'aquesta manera pren l'activitat que va a 420 00:30:28,630 --> 00:30:36,060 i l'activitat que va a, el que anomenem ResultActivity, 421 00:30:36,060 --> 00:30:38,170 i que és la seva pròpia classe. 422 00:30:38,170 --> 00:30:41,720 Inclogui això. 423 00:30:41,720 --> 00:30:47,370 I llavors, com he esmentat abans, li vam donar aquest ID en el camp d'edició de text 424 00:30:47,370 --> 00:30:53,710 i la vista de text, pel que amb la finalitat de capturar mitjançant programació 425 00:30:53,710 --> 00:31:01,860 el text que hi ha al EDITTEXT 426 00:31:01,860 --> 00:31:06,710 fem servir aquesta funció anomenada findViewById, 427 00:31:06,710 --> 00:31:13,660 que és similar a alguna cosa que va a utilitzar quan es tracta d'obtenir els camps de la DOM. 428 00:31:13,660 --> 00:31:17,560 Potser David parla d'això en conferència. 429 00:31:17,560 --> 00:31:26,600 Però és només una manera d'aconseguir els-per això ens vam marcar aquestes coses amb aquests camps. 430 00:31:26,600 --> 00:31:31,110 Id.editText1. 431 00:31:31,110 --> 00:31:35,220 Ja està autocompletar per a mi. 432 00:31:35,220 --> 00:31:42,010 >> I llavors també inclourem-aquest EDITTEXT ara que tenim el camp 433 00:31:42,010 --> 00:31:47,640 dins del nostre programa, l'únic que va fer va ser bàsicament findViewById 434 00:31:47,640 --> 00:31:50,870 vostè podria pensar en ell com ens donen una referència a aquesta EDITTEXT. 435 00:31:50,870 --> 00:31:54,570 Ara volem que la cadena o el missatge 436 00:31:54,570 --> 00:32:00,670 dins d'aquest EDITTEXT que podem fer mitjançant l'ús de la 437 00:32:00,670 --> 00:32:03,360 vostè podria pensar EDITTEXT com una estructura- 438 00:32:03,360 --> 00:32:07,600 en diem un objecte en Java, amb un munt de diferents mètodes 439 00:32:07,600 --> 00:32:10,650 o dels camps i els atributs que se li atribueix. 440 00:32:10,650 --> 00:32:15,510 Quan dic EDITTEXT. em dóna l'oportunitat d'accedir a 441 00:32:15,510 --> 00:32:19,770 un mètode com gettext, que aconseguirà el text actual 442 00:32:19,770 --> 00:32:23,990 en aquest EDITTEXT i després convertir aquesta explícitament 443 00:32:23,990 --> 00:32:26,520 en una cadena, i hem guardat el missatge. 444 00:32:26,520 --> 00:32:32,730 Ara que realment volem fer alguna cosa amb aquesta intenció es va crear fa uns moments. 445 00:32:32,730 --> 00:32:40,250 Posaré addicional com se l'anomena en l'intent, 446 00:32:40,250 --> 00:32:43,330 que, de nou, com he dit abans, aquesta és una manera de crear el paquet 447 00:32:43,330 --> 00:32:45,980 amb un munt de dades. 448 00:32:45,980 --> 00:32:50,920 Missatge Extra és la nostra etiqueta, així que sabem el que estem estalviant aquest baix, 449 00:32:50,920 --> 00:32:56,700 i estic incloent el missatge. 450 00:32:56,700 --> 00:33:04,870 >> I llavors podem realment començar l'activitat donant-li el myIntent paràmetre. 451 00:33:04,870 --> 00:33:10,630 I això posarà en marxa l'activitat, de manera que ara ja he actualitzat a Windows 8 452 00:33:10,630 --> 00:33:15,870 pot haver alguns errors que apareixen breument, però intentar ignorar-los. 453 00:33:28,010 --> 00:33:30,310 I aquest és l'emulador d'Android. 454 00:33:30,310 --> 00:33:33,540 Esperem que el codi serà fet esclatar per amunt en un moment. 455 00:33:33,540 --> 00:33:36,680 Un cop més, fent cas omís de totes aquestes petites coses. 456 00:33:36,680 --> 00:33:42,290 Però l'emulador d'Android que pot emular qualsevol versió del sistema operatiu 457 00:33:42,290 --> 00:33:45,180 dels més antics, bunyol, pa de gingebre. 458 00:33:45,180 --> 00:33:49,640 Es tracta de Jelly Bean 4.1. 459 00:33:49,640 --> 00:33:53,150 Però com es pot veure en aquest moment, això és una cosa que prenem. 460 00:33:53,150 --> 00:33:55,780 Això té la MainActivity, la EDITTEXT, el botó. 461 00:33:55,780 --> 00:34:01,550 Puc escriure alguna cosa aquí, però el que ens falta en aquest moment? 462 00:34:01,550 --> 00:34:05,190 Vam fer el camp en el MainActivity que va a enviar el missatge 463 00:34:05,190 --> 00:34:08,570 a l'altra activitat, però en aquest moment 464 00:34:08,570 --> 00:34:12,330 no hem fet res en l'altra activitat, pel que no va a rebre res. 465 00:34:12,330 --> 00:34:18,800 Anem a acabar fins que la part abans de seguir endavant. 466 00:34:18,800 --> 00:34:25,760 >> Aquesta activitat resultat, el que haurem de fer és que haurem de fer és que necessitarem- 467 00:34:25,760 --> 00:34:30,070 també podem fer referència a la intenció dins d'aquesta activitat, 468 00:34:30,070 --> 00:34:33,580 així que hem de captar la intenció, que és molt simple. 469 00:34:33,580 --> 00:34:40,780 És una funció inclosa en la classe d'activitat, 470 00:34:40,780 --> 00:34:47,610 així que només podem dir "aconseguir el missatge de la intenció." 471 00:34:47,610 --> 00:34:56,260 "MyIntent Intento = getIntent." 472 00:34:56,260 --> 00:35:00,030 I això ens donarà, ara myIntent és un objecte, 473 00:35:00,030 --> 00:35:05,380 que és una referència a la intenció que ens va conduir a aquesta activitat. 474 00:35:05,380 --> 00:35:10,130 MainActivity flama i dóna la informació addicional que resulti activitat. 475 00:35:10,130 --> 00:35:14,070 Resultat de l'activitat ara es veu en la intenció que va portar aquí, 476 00:35:14,070 --> 00:35:23,540 i podem accedir al missatge que hem creat en l'altre, 477 00:35:23,540 --> 00:35:26,370 getStringExtra, i això es autocomplete per a mi. 478 00:35:26,370 --> 00:35:31,190 I a continuació, recordar, la manera en què etiquetem aquesta mica de dades 479 00:35:31,190 --> 00:35:38,400 estava donant aquest camp aquí, aquesta cadena pública, 480 00:35:38,400 --> 00:35:42,080 que és l'etiqueta de la cadena que realment inclòs. 481 00:35:42,080 --> 00:35:48,450 >> Si dic MainActivity.Extra_Message 482 00:35:48,450 --> 00:35:52,200 és just aquí, i això és una cosa així com el nom del paràmetre 483 00:35:52,200 --> 00:35:55,330 quan passem codi al controlador a la plantilla, 484 00:35:55,330 --> 00:35:57,680 quan dèiem títol arrow alguna cosa. 485 00:35:57,680 --> 00:36:01,140 És el mateix tipus d'idea allà. 486 00:36:01,140 --> 00:36:07,130 Ara, recordeu això. 487 00:36:07,130 --> 00:36:12,230 També vam tenir l'acte creats o generats de codi acte 488 00:36:12,230 --> 00:36:16,410 per a l'activitat de resultat, que inclou la vista de text en el medi 489 00:36:16,410 --> 00:36:19,690 que diu hola món. 490 00:36:19,690 --> 00:36:27,510 Potencialment Podríem fer que més gran. 491 00:36:27,510 --> 00:36:33,980 Farem això primer. 492 00:36:33,980 --> 00:36:39,550 Podríem fer-ho densitat 40 píxels independents. 493 00:36:39,550 --> 00:36:42,670 Anem a veure, que és super enorme. Això estarà bé. 494 00:36:42,670 --> 00:36:48,180 I després per fer referència a aquesta vista de text individual dins del nostre codi 495 00:36:48,180 --> 00:36:53,890 haurem de donar-li una identificació, 496 00:36:53,890 --> 00:36:58,350 i per tal de fer això diem @ + d, el que significa que assignem ID. 497 00:36:58,350 --> 00:37:02,480 Si simplement vam dir @ id assumiria estem referència a un ID que ja existeix, 498 00:37:02,480 --> 00:37:07,760 i anem a trucar a aquest nostre resultTextView. 499 00:37:07,760 --> 00:37:10,570 I observi que en XML que no hi ha necessitat d'un punt i coma, ni res. 500 00:37:10,570 --> 00:37:12,380 Tot està dins d'aquestes etiquetes. 501 00:37:12,380 --> 00:37:15,530 És molt similar a l'HTML en molts sentits. 502 00:37:15,530 --> 00:37:22,760 >> Pren una mica de temps per acostumar-se, però amb el temps se sentirà molt còmode amb ell. 503 00:37:22,760 --> 00:37:31,320 Anem a actualitzar el text del nostre text veure resultat, 504 00:37:31,320 --> 00:37:35,650 i com ho vam fer quan ens anàvem a aquest camp d'edició de text en la nostra altra activitat 505 00:37:35,650 --> 00:37:46,630 en MainActivity Aquí també likewise- 506 00:37:46,630 --> 00:37:54,890 trobarem el punt de vista de la identificació. 507 00:37:54,890 --> 00:37:59,640 I, R, en cas que no ho he esmentat abans, és la referència a la nostra carpeta de recursos, 508 00:37:59,640 --> 00:38:05,350 i després ID és una referència per a tot el que a la carpeta de recursos, tots els identificadors de, 509 00:38:05,350 --> 00:38:10,060 i resultTextView. 510 00:38:10,060 --> 00:38:13,010 I igual que abans, resultTextView és un objecte, 511 00:38:13,010 --> 00:38:15,780 el que significa que té totes aquestes propietats associats. 512 00:38:15,780 --> 00:38:20,610 Quan fem servir gettext per a l'edició de text en aquest camp de text oa la vista de text 513 00:38:20,610 --> 00:38:23,980 que puguem usar setText, 514 00:38:23,980 --> 00:38:26,960 i després ja ens trobem el missatge de la intenció, 515 00:38:26,960 --> 00:38:35,760 pel que puc dir el missatge, i això va a configurar el missatge. 516 00:38:35,760 --> 00:38:41,820 >> Es pren un moment per posar en marxa, i llavors podem veure si es bloqueja, 517 00:38:41,820 --> 00:38:48,670 però alguna pregunta sobre aquest procés just aquí, aquest tipus d'interacció? 518 00:38:48,670 --> 00:38:51,490 En molts sentits, és senzill. 519 00:38:51,490 --> 00:38:53,960 La raó per la qual estic passant per una cosa relativament senzilla 520 00:38:53,960 --> 00:38:57,330 és, de nou, perquè s'arriba a veure la interacció entre el disseny, 521 00:38:57,330 --> 00:38:59,520 El codi font, la forma en què les coses referència 522 00:38:59,520 --> 00:39:07,680 i potser una mica de l'exposició a la forma en Java treballa. 523 00:39:07,680 --> 00:39:16,500 Si jo en realitat escric alguna cosa aquí, com ohai, i després fer clic al botó, 524 00:39:16,500 --> 00:39:22,260 posa en marxa una nova activitat, i que vista de text diu ohai. 525 00:39:22,260 --> 00:39:27,640 Això és molt simple, però espero que després que l'exemple 526 00:39:27,640 --> 00:39:32,310 que sort de veure com funciona aquesta interacció, i ara aquest embolic d'arxius 527 00:39:32,310 --> 00:39:36,870 a la part esquerra d'aquestes carpetes de projecte, amb sort vostè sap on mirar. 528 00:39:36,870 --> 00:39:38,700 Aquesta és la seva àrea de codi font. 529 00:39:38,700 --> 00:39:41,760 >> El disseny és realment l'única cosa que va a lluitar amb fins a incloure imatges 530 00:39:41,760 --> 00:39:46,370 i els dibuixables o el que sigui, i els valors, que inclouran cadenes, 531 00:39:46,370 --> 00:39:51,960 com hem esmentat, i estils és una cosa que és una cosa així com CSS. 532 00:39:51,960 --> 00:39:56,410 Direcció quan vulgui, però fins que se senti còmode amb l'addició de toc extra 533 00:39:56,410 --> 00:40:02,520 a la seva sol.licitud, no hi ha necessitat de preocupar-se massa. 534 00:40:02,520 --> 00:40:07,410 Només per concloure altra cosa que sens dubte vol incloure- 535 00:40:07,410 --> 00:40:13,010 suposant que es vol integrar funcions interessants i estalviar alguns extres coding- 536 00:40:13,010 --> 00:40:16,460 seria incloure biblioteques tercera part. 537 00:40:16,460 --> 00:40:19,840 Aquí està el petit androide amb el barret de Sherlock Holmes. 538 00:40:19,840 --> 00:40:23,040 Es tracta d'una barra d'accions biblioteca Sherlock, 539 00:40:23,040 --> 00:40:25,390 el que bàsicament vol dir que la barra d'acció que hem vist abans, 540 00:40:25,390 --> 00:40:29,590 que ara és estàndard en Ice Cream Sandwich i Jelly Bean, 541 00:40:29,590 --> 00:40:33,100 si vostè vol portar aquest tipus d'experiència d'usuari per als usuaris de versions anteriors 542 00:40:33,100 --> 00:40:39,290 i estalviar d'haver de preocupar sobre com l'usuari va a navegar 543 00:40:39,290 --> 00:40:42,490 en versions anteriors, quan això no és allà pot incloure aquesta biblioteca 544 00:40:42,490 --> 00:40:46,770 i després només has de referència en lloc de l'Android per defecte 545 00:40:46,770 --> 00:40:50,250 biblioteques de la barra d'accions, que fan referència a aquesta biblioteca de suport. 546 00:40:50,250 --> 00:40:53,090 >> Coses com Scoreloop, és gran si vostè va a incloure una partida. 547 00:40:53,090 --> 00:40:57,280 Permet afegir taules de classificació i èxits als jocs. 548 00:40:57,280 --> 00:41:00,900 AdMob és una forma de posar anuncis a les seves aplicacions 549 00:41:00,900 --> 00:41:02,900 en cas que vulgui fer una mica de diners amb ell. 550 00:41:02,900 --> 00:41:05,730 Per descomptat, no és Facebook i Twitter per a la integració no 551 00:41:05,730 --> 00:41:08,170 si vostè vol compartir coses amb facilitat, et cetera. 552 00:41:08,170 --> 00:41:15,120 Dropbox, de la mateixa manera, i Google Analytics és aquesta carta busca ningú. 553 00:41:15,120 --> 00:41:19,070 Això serà molt important si vostè realment vol veure qui està interactuant 554 00:41:19,070 --> 00:41:25,800 amb la seva aplicació o qui és, com interactuen, et cetera. 555 00:41:25,800 --> 00:41:30,650 Google, per defecte, li diu un munt d'estadístiques sobre qui ha instal · lat la seva aplicació 556 00:41:30,650 --> 00:41:35,020 i el que els telèfons que tenen, quines versions del sistema operatiu que tingui. 557 00:41:35,020 --> 00:41:38,080 Però si vostè vol veure que ho està utilitzant diàriament i com l'utilitzen 558 00:41:38,080 --> 00:41:42,860 llavors vostè voldrà incloure algun tipus de sistema de seguiment d'aquesta manera. 559 00:41:42,860 --> 00:41:44,990 >> Quan estigui llest per distribuir la seva aplicació 560 00:41:44,990 --> 00:41:46,930 No necessito entrar en això en massa profunditat. 561 00:41:46,930 --> 00:41:49,090 Fes clic a l'enllaç d'aquí, Google Play. 562 00:41:49,090 --> 00:41:51,080 El que solia ser el mercat Android. 563 00:41:51,080 --> 00:41:53,470 Ells van marcar de nou tot amb Google Play, 564 00:41:53,470 --> 00:41:55,230 pel que ara se sotmet a això. 565 00:41:55,230 --> 00:41:57,140 És molt senzill. 566 00:41:57,140 --> 00:42:01,070 Vostè ha d'incloure una descripció, algunes captures de pantalla. 567 00:42:01,070 --> 00:42:05,660 Com he dit, no hi ha procés d'aprovació com iOS. 568 00:42:05,660 --> 00:42:07,270 ¿I on anar des d'aquí? 569 00:42:07,270 --> 00:42:09,450 Els vaig mostrar un exemple molt simple. 570 00:42:09,450 --> 00:42:13,270 Esperem que si sembla terriblement senzilla 571 00:42:13,270 --> 00:42:15,740 llavors això és probablement un bon senyal. 572 00:42:15,740 --> 00:42:20,080 Si en tot sentit una mica confús o insegur sobre exactament el que estava escrivint 573 00:42:20,080 --> 00:42:26,160 això és també molt bé, però a partir d'aquí anar a Guies de Google. 574 00:42:26,160 --> 00:42:28,330 Aquest és un gran lloc per començar. 575 00:42:28,330 --> 00:42:31,460 Es va a parlar a través del que esperen en termes del disseny de l'aplicació, 576 00:42:31,460 --> 00:42:33,380 com els usuaris interactuen normalment amb ella. 577 00:42:33,380 --> 00:42:36,450 És molt més de forma lliure que iOS, jo diria, 578 00:42:36,450 --> 00:42:41,330 que sembla que les vistes de taula són-no ho sé, aquest és el seu pa i mantega. 579 00:42:41,330 --> 00:42:44,690 Tot és una vista de taula llisqui cap amunt i cap avall. 580 00:42:44,690 --> 00:42:48,160 Amb Android definitivament animar la gent a mirar les coses des 581 00:42:48,160 --> 00:42:51,720 un munt de diferents perspectives. 582 00:42:51,720 --> 00:42:56,000 >> Quan inclou el kit de desenvolupament de programari en aquest ADT 583 00:42:56,000 --> 00:43:03,010 per defecte té un munt de projectes d'exemple en Android. 584 00:43:03,010 --> 00:43:05,470 Aquí, Android, Android projecte d'exemple. 585 00:43:05,470 --> 00:43:11,870 Si faig clic a això, llavors puc triar una versió perquè la mostra s'apliquen els projectes. 586 00:43:11,870 --> 00:43:13,300 Hi ha un munt de coses diferents aquí. 587 00:43:13,300 --> 00:43:16,690 Es comença amb l'acció de compatibilitat bar, 588 00:43:16,690 --> 00:43:24,610 joc acceleròmetre, còpia de seguretat i restauració, Bluetooth, constructor gest. 589 00:43:24,610 --> 00:43:28,930 Jetboy és un joc de mostres que et donen, com és LunarLander. 590 00:43:28,930 --> 00:43:31,250 Hi ha un munt d'aplicacions d'exemple aquí, 591 00:43:31,250 --> 00:43:35,290 i tots ells estan dirigits a diferents aspectes de l'API d'Android, 592 00:43:35,290 --> 00:43:41,520 i la idea és que mentre fa la seva aplicació 593 00:43:41,520 --> 00:43:44,110 vostè no ha d'aprendre tot sobre Android per fer una aplicació per Android. 594 00:43:44,110 --> 00:43:47,300 Només has d'aprendre sobre les parts que en realitat està passant a utilitzar. 595 00:43:47,300 --> 00:43:49,340 Mira aquestes biblioteques de la mostra. 596 00:43:49,340 --> 00:43:51,510 Siéntase lliure de copiar i enganxar el codi i torni a aplicar-lo. 597 00:43:51,510 --> 00:43:53,850 És una gran cosa per mirar el codi més difícil 598 00:43:53,850 --> 00:43:57,060 i tractar d'entendre el que és, per descomptat, per què en CS50 599 00:43:57,060 --> 00:44:01,510 que sovint li donen una gran quantitat de codi font. 600 00:44:01,510 --> 00:44:04,620 Mira alguns d'aquests si vas a utilitzar les biblioteques similars 601 00:44:04,620 --> 00:44:08,630 i després aplicar al seu propi codi. 602 00:44:08,630 --> 00:44:10,430 I per descomptat, hi ha tutorials. 603 00:44:10,430 --> 00:44:12,690 Cerca de tutorials. 604 00:44:12,690 --> 00:44:17,020 Em vaig trobar amb un munt de bons en línia que li pot portar a la velocitat 605 00:44:17,020 --> 00:44:20,080 amb el que en realitat són fragments i com pot utilitzar-los. 606 00:44:20,080 --> 00:44:22,240 >> Algunes d'aquestes noves coses de disseny, com fragments, 607 00:44:22,240 --> 00:44:26,840 vostè realment no ha de preocupar a menys que vostè està fent una 608 00:44:26,840 --> 00:44:30,560 molt important en l'abast del projecte. 609 00:44:30,560 --> 00:44:32,510 Són coses que Google està tractant d'eliminar polz 610 00:44:32,510 --> 00:44:35,570 Stackoverflow és, per descomptat, el seu amic. 611 00:44:35,570 --> 00:44:37,930 Espero que vaig vendre una mica en Android, 612 00:44:37,930 --> 00:44:41,640 adonar-se que és molt més fàcil d'abordar en termes de només el llenguatge de codificació. 613 00:44:41,640 --> 00:44:45,970 Java és jo diria que molt més fàcil d'entendre que Objective-C. 614 00:44:45,970 --> 00:44:50,780 Android està creixent crec que molt més que iOS. 615 00:44:50,780 --> 00:44:54,890 És a dir, les dades hi són també, al marge del que penso. 616 00:44:54,890 --> 00:44:56,920 Tot va a ser-hi per un temps, 617 00:44:56,920 --> 00:45:00,880 i són un parell d'anys enrere en termes dels seus cicles de disseny, 618 00:45:00,880 --> 00:45:04,690 pel que és una mena de comprensible que encara estan treballant a través d'alguns d'aquests 619 00:45:04,690 --> 00:45:09,080 qüestions de coherència, d'aquesta barra d'accions és una cosa nova per a ells encara, 620 00:45:09,080 --> 00:45:16,010 espècie de la creació d'experiència d'usuari similar a través de totes les seves aplicacions. 621 00:45:16,010 --> 00:45:20,650 Esperem que es pot anar cap endavant ara i obrir Eclipse 622 00:45:20,650 --> 00:45:22,870 i fer les seves pròpies aplicacions d'Android. 623 00:45:22,870 --> 00:45:30,240 >> Algú té alguna pregunta abans de que ens emboliquem en res? 624 00:45:30,240 --> 00:45:34,410 Et puc dir que la resposta és 42. 625 00:45:34,410 --> 00:45:41,990 Bé, feliç de codificació a tots, i bona sort. 626 00:45:41,990 --> 00:45:44,990 [CS50.TV]