1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Seminario] [Apps Android (agora con jujuba!)] 2 00:00:02,610 --> 00:00:04,210 [Jordan Jozwiak] [Harvard University] 3 00:00:04,210 --> 00:00:06,780 [É dicir CS50.] [CS50.TV] 4 00:00:06,780 --> 00:00:11,600 >> Hola a todos, e ben benvida ao Apps Android (agora con jujuba!) Seminario. 5 00:00:11,600 --> 00:00:14,530 Chama-se agora con Jelly Beans, claro, porque 6 00:00:14,530 --> 00:00:17,310 a última versión do sistema operativo chámase Jelly Bean. 7 00:00:17,310 --> 00:00:22,950 Cando eu falei sobre Android o ano pasado e fixo iso basicamente mesmo seminario 8 00:00:22,950 --> 00:00:29,150 Estaba presentando os patróns de deseño e opcións estilísticas a Gingerbread, 9 00:00:29,150 --> 00:00:31,250 a pesar de Ice Cream Sandwich saíra na época, 10 00:00:31,250 --> 00:00:33,680 e iso é algo que imos falar de ir para adiante un pouco. 11 00:00:33,680 --> 00:00:35,720 Android, por suposto, ten algúns problemas coa fragmentación, 12 00:00:35,720 --> 00:00:40,240 ao último sistema operativo de Google é normalmente 13 00:00:40,240 --> 00:00:44,710 realmente non vai facer común entre os usuarios para potencialmente ata un ano, por desgraza. 14 00:00:44,710 --> 00:00:49,960 >> Pero desconsiderando iso, imos falar de moitas razóns polas que 15 00:00:49,960 --> 00:00:53,000 Android é moito mellor que o IOS. 16 00:00:53,000 --> 00:00:56,410 Ok, imos falar de Android vs IOS, 17 00:00:56,410 --> 00:00:59,770 algúns paradigmas de deseño, como vai definir en só unha foto, 18 00:00:59,770 --> 00:01:03,410 ea gran diferenza entre este eo ano pasado é que eu só quero 19 00:01:03,410 --> 00:01:06,860 zoom a través de algunhas cousas conceptuais que traballan con 20 00:01:06,860 --> 00:01:09,950 o sistema operativo e, a continuación, poñerse en un exemplo moi básico. 21 00:01:09,950 --> 00:01:13,730 De feito, só o exemplo que Google describe para a construción da súa primeira aplicación, 22 00:01:13,730 --> 00:01:17,070 e nós imos pasar por iso xuntos e só describir. 23 00:01:17,070 --> 00:01:22,100 >> Sei que moitos de vostedes teñen só codificado en C, Java xa será 24 00:01:22,100 --> 00:01:27,220 unha perspectiva diferente, e deste xeito vai obter os seus pés húmidos 25 00:01:27,220 --> 00:01:31,540 e sentirse un pouco máis cómodo con el, esperanzas. 26 00:01:31,540 --> 00:01:35,330 Un resumo rápido, Android vs IOS. 27 00:01:35,330 --> 00:01:39,200 En Android non hai esa taxa creador único de US $ 25, 28 00:01:39,200 --> 00:01:42,390 nada desa cousa de $ 100 por ano. 29 00:01:42,390 --> 00:01:45,440 Non hai restricións, o que significa que se eu queira enviar unha aplicación, 30 00:01:45,440 --> 00:01:51,560 Acaba de envialo, e non hai ningún proceso de aprobación como existe para IOS. 31 00:01:51,560 --> 00:01:53,890 Comeza a desenvolverse con Java usando Eclipse, 32 00:01:53,890 --> 00:01:57,090 que é multiplataforma, polo que non importa se ten un Mac, 33 00:01:57,090 --> 00:01:59,600 Windows ou unha máquina Linux. 34 00:01:59,600 --> 00:02:03,730 Claro que, con IOS tes que usar o Xcode nun Mac, 35 00:02:03,730 --> 00:02:06,930 e Android é usado por moitas máis persoas, 36 00:02:06,930 --> 00:02:11,580 por iso, se quere que a súa aplicación para ter algún tipo de visibilidade, ou que 37 00:02:11,580 --> 00:02:14,110 facer un pouco de diñeiro a partir de anuncios 38 00:02:14,110 --> 00:02:17,450 vostede pode ser máis susceptibles de beneficiarse de Android. 39 00:02:17,450 --> 00:02:20,630 >> E unha cousa que sempre foi coñecido sobre Android 40 00:02:20,630 --> 00:02:25,100 é a cantidade extrema de personalización, mentres que o IOS é moi fixo nos seus camiños 41 00:02:25,100 --> 00:02:29,380 para que se poidan manter a seguridade eo control sobre todos os aspectos pouco 42 00:02:29,380 --> 00:02:34,180 do proxecto dentro do seu sistema operativo e as aplicacións individuais. 43 00:02:34,180 --> 00:02:40,180 Android é a forma moi libre, e non hai tantas posibilidades máis. 44 00:02:40,180 --> 00:02:42,530 Ok, algúns paradigmas de proxecto. 45 00:02:42,530 --> 00:02:49,600 Teña en conta aquí como iOS ten tabletas e iPhones e iPod Touches 46 00:02:49,600 --> 00:02:53,840 eles teñen que soportar, por exemplo, como unha ducia de dispositivos, se quere apoiar 47 00:02:53,840 --> 00:02:55,450 cousas históricas tamén. 48 00:02:55,450 --> 00:02:58,410 Con Android ten que soportar centos de dispositivos, 49 00:02:58,410 --> 00:03:01,240 polo que hai algunhas cousas que Google vén tentando aplicar 50 00:03:01,240 --> 00:03:04,970 para facer o usuario probar un pouco máis consistente, 51 00:03:04,970 --> 00:03:08,560 pero nós tamén imos falar sobre como isto significa que hai cuestións de fragmentación 52 00:03:08,560 --> 00:03:11,700 que sempre ten que ser consciente de apoio. 53 00:03:11,700 --> 00:03:16,140 Fragmentación significa que hai moitos sistemas operativos distintos, 54 00:03:16,140 --> 00:03:20,330 moitos teléfonos diferentes con hardware diferente rodando Android, todo ao mesmo tempo, 55 00:03:20,330 --> 00:03:29,680 de xeito que este gráfico aquí remonta hai preto de 6 meses. 56 00:03:29,680 --> 00:03:36,460 Si, 6 meses, e podes ver como a banda máis escura 57 00:03:36,460 --> 00:03:39,330 no fondo é Jelly Bean, que saíu durante o verán, 58 00:03:39,330 --> 00:03:42,970 e podes ver agora, probablemente, preto de 2% dos teléfonos telo. 59 00:03:42,970 --> 00:03:45,520 >> Ice Cream Sandwich foi lanzado máis de un ano, 60 00:03:45,520 --> 00:03:47,770 e un cuarto dos teléfonos telo. 61 00:03:47,770 --> 00:03:53,910 Hai aínda unha grande cantidade de teléfonos que están a usar a versión do SO de anos. 62 00:03:53,910 --> 00:03:57,820 Algo que Google intentou facer para facer a experiencia do usuario 63 00:03:57,820 --> 00:04:01,400 moito máis coherente entre aplicacións comeza con Honeycomb, 64 00:04:01,400 --> 00:04:04,320 que é a versión tablet, entón Ice Cream Sandwich e Jelly Bean, 65 00:04:04,320 --> 00:04:06,750 eles están realmente tentando salientar o uso desta barra de acción, 66 00:04:06,750 --> 00:04:10,430 que é o que se pode ver aquí enriba, 67 00:04:10,430 --> 00:04:14,730 todo aquí, incluíndo este botón opcións pouco. 68 00:04:14,730 --> 00:04:16,079 É a opción de deseño. 69 00:04:16,079 --> 00:04:18,000 Agora, cada vez que ve os tres puntos significa premer neste, 70 00:04:18,000 --> 00:04:21,880 e haberá un menú desplegable, que ten algún tipo de configuración. 71 00:04:21,880 --> 00:04:28,900 Isto só aparece porque prema no botón ao final. 72 00:04:28,900 --> 00:04:32,040 Isto é algo que eles están tentando usar para facer aplicacións algo máis consistente 73 00:04:32,040 --> 00:04:39,210 a través da tarxeta e así o usuario ten un mellor sentido de experiencia uniforme. 74 00:04:39,210 --> 00:04:42,640 >> Ok, entón no caso de non ter feito isto xa, ou se está a asistir na casa 75 00:04:42,640 --> 00:04:50,210 entón podes seguir estes pasos para configurar o ambiente de codificación. 76 00:04:50,210 --> 00:04:52,630 Vai implicar indo ao sitio. 77 00:04:52,630 --> 00:04:56,260 Pode instalar Google Android SDK 78 00:04:56,260 --> 00:04:59,130 e seguir algunhas descricións alí. 79 00:04:59,130 --> 00:05:01,310 Dinlle todo. 80 00:05:01,310 --> 00:05:05,160 Teñen de instalar o SDK, descarga de Eclipse versión Classic, 81 00:05:05,160 --> 00:05:07,450 aínda que, por suposto, que está programando en Java. 82 00:05:07,450 --> 00:05:12,190 Eles recomendan un presente, e entón este ADT, as ferramentas de desenvolvemento de Android, 83 00:05:12,190 --> 00:05:17,300 é un plugin que se instala en Eclipse que permite 84 00:05:17,300 --> 00:05:20,550 ter unha experiencia moito máis sinxelo con Android dentro do Eclipse. 85 00:05:20,550 --> 00:05:24,070 El lle vai dar algunhas interfaces gráficas de usuario 86 00:05:24,070 --> 00:05:29,610 para proxectar os puntos de vista, e el vai che dar máis apoio 87 00:05:29,610 --> 00:05:34,840 ea capacidade de lanzar co emulador e todo este tipo de cousas. 88 00:05:34,840 --> 00:05:36,090 Framework de aplicación. 89 00:05:36,090 --> 00:05:41,590 >> Quero falar de como os proxectos dentro Android son estruturados, 90 00:05:41,590 --> 00:05:44,830 e despois imos entrar nun exemplo rápido, e espera que 91 00:05:44,830 --> 00:05:48,820 podes facer preguntas en calquera momento e sentirse cómodo ata o final da mesma. 92 00:05:48,820 --> 00:05:50,090 Temos algún xerga primeiro. 93 00:05:50,090 --> 00:05:55,330 Unha actividade é como a pantalla que se ve cando se inicia unha aplicación. 94 00:05:55,330 --> 00:05:57,840 Toda a experiencia é a actividade en si, 95 00:05:57,840 --> 00:06:00,790 así que podería pensar niso como unha pantalla ou un punto de vista, 96 00:06:00,790 --> 00:06:04,540 pero en realidade é xunto a el o código fonte. 97 00:06:04,540 --> 00:06:12,680 Nós aínda chamar a parte de interfaz real do que un punto de vista. 98 00:06:12,680 --> 00:06:17,230 É unha especie de como como en pset 7 tivemos o controlador e, a continuación, a vista. 99 00:06:17,230 --> 00:06:20,690 A actividade é máis ou menos o controlador 100 00:06:20,690 --> 00:06:23,360 ea vista é o que estamos facendo en termos de XML 101 00:06:23,360 --> 00:06:25,260 que está asociada coa dita actividade. 102 00:06:25,260 --> 00:06:29,340 Rochas son algo que é aplicado en Ice Cream Sandwich vai para adiante. 103 00:06:29,340 --> 00:06:36,380 É só unha idea de tomar partes de vista ou a actividade 104 00:06:36,380 --> 00:06:39,990 e dividíndose os en áreas separadas, para que poidamos 105 00:06:39,990 --> 00:06:45,030 facer o código máis útil para estes moitos dispositivos diferentes 106 00:06:45,030 --> 00:06:51,890 que temos que apoiar, e é só unha forma de tratar 107 00:06:51,890 --> 00:06:54,290 tamén o factor máis código. 108 00:06:54,290 --> 00:07:01,090 Servizos son cousas de fondo como a reprodución de música ou direccións de navegación potencialmente. 109 00:07:01,090 --> 00:07:05,640 Os provedores de contido, estes son APIs dentro do sistema operativo 110 00:07:05,640 --> 00:07:09,070 que permiten acceder a datos compartidos, tales como información de contacto, 111 00:07:09,070 --> 00:07:12,790 e logo, a intención é algo que vai empregar cando queremos lanzar 112 00:07:12,790 --> 00:07:17,210 unha nova actividade da nosa actividade actual. 113 00:07:17,210 --> 00:07:20,980 >> Ola Android, este vai ser un proxecto que imos falar. 114 00:07:20,980 --> 00:07:25,410 Vou realmente facelo por vostede, e entón nós imos facer unha cousa en que premer no botón 115 00:07:25,410 --> 00:07:27,650 con algún texto e iniciar unha nova actividade. 116 00:07:27,650 --> 00:07:30,110 Moi sinxelo, pero quero pasar 117 00:07:30,110 --> 00:07:34,480 que vai entrar nun proxecto como este. 118 00:07:34,480 --> 00:07:39,260 Cando fai o novo proxecto verá dentro Eclipse 119 00:07:39,260 --> 00:07:41,900 hai este proxecto chamado Ola Android. 120 00:07:41,900 --> 00:07:43,470 Despois, hai unha morea de carpetas aquí. 121 00:07:43,470 --> 00:07:46,760 O que está realmente preocupado son o cartafol de orixe, 122 00:07:46,760 --> 00:07:54,540 o cartafol de recursos, os res, e en certa medida o cartafol libs para as bibliotecas. 123 00:07:54,540 --> 00:08:00,070 E só por iso estamos na mesma páxina co 124 00:08:00,070 --> 00:08:03,240 Se fose crear un novo proxecto, 125 00:08:03,240 --> 00:08:08,270 pode facelo aquí, entón se eu queira chamalo HelloAndroid, 126 00:08:08,270 --> 00:08:11,100 e logo, el automaticamente fai unha morea de información para nós. 127 00:08:11,100 --> 00:08:14,110 O nome do paquete é suposta ser un identificador único 128 00:08:14,110 --> 00:08:16,710 que normalmente sería asociado co sitio web, se tivese un. 129 00:08:16,710 --> 00:08:24,430 >> Por exemplo, eu vou chamar este net.cs50.helloandroid. 130 00:08:24,430 --> 00:08:30,070 E eu xa fixen este proxecto unha vez. 131 00:08:30,070 --> 00:08:40,059 Ok, me desculpe. Imos chamalo HelloCS50. 132 00:08:40,059 --> 00:08:42,929 E entón el vai preguntar cousas como o tipo de icona que queremos facer. 133 00:08:42,929 --> 00:08:48,840 Isto todo é debido á interface de Android Developer Tools, 134 00:08:48,840 --> 00:08:53,350 o plugin que nós engadimos a Eclipse, para que poidamos escoller cousas como 135 00:08:53,350 --> 00:08:58,320 a icona que queremos, e que entraría en que profundidade se quere. 136 00:08:58,320 --> 00:09:04,360 Pero ao final, só tes que facer o proxecto, 137 00:09:04,360 --> 00:09:07,040 e todo o que aparece aquí. 138 00:09:07,040 --> 00:09:10,030 Como mostre na outra pantalla, 139 00:09:10,030 --> 00:09:14,070 temos o cartafol de orixe, e eu vou falar sobre o que todo isto significa que en breve, 140 00:09:14,070 --> 00:09:19,090 pero podes ver que inmediatamente nos leva á pantalla HelloCS50. 141 00:09:19,090 --> 00:09:24,690 Hai algúns botóns máis aquí para engadir texto e texto esquemas de campo. 142 00:09:24,690 --> 00:09:28,910 É unha especie de como Xcode, pero por desgraza non é tan aerodinámico. 143 00:09:28,910 --> 00:09:37,790 Pero os clips será o seu amigo e ADT en particular para facelo. 144 00:09:37,790 --> 00:09:40,920 >> Vale, o cartafol de orixe é o lugar onde 145 00:09:40,920 --> 00:09:43,820 os ficheiros Java son realizadas, e iso é realmente o lanzamento do seu programa. 146 00:09:43,820 --> 00:09:45,990 É basicamente como os controladores. 147 00:09:45,990 --> 00:09:49,020 O cartafol de recursos ou a res é o lugar onde nós imos manter esquemas de pantalla, 148 00:09:49,020 --> 00:09:54,110 imaxes, sons, texto, animación e todo máis, libs obviamente bibliotecas. 149 00:09:54,110 --> 00:10:01,700 E o manifesto, é a forma que o sistema Android sabe 150 00:10:01,700 --> 00:10:03,130 como interactuar co seu programa. 151 00:10:03,130 --> 00:10:07,980 Di el sobre permisos e que actividades serán realmente executados. 152 00:10:07,980 --> 00:10:12,350 É toda a información esencial que é necesario para executar a aplicación. 153 00:10:12,350 --> 00:10:17,990 O cartafol de orixe é a expandir-lo como se pode ver aquí. 154 00:10:17,990 --> 00:10:23,920 E un exemplo de que un código ficaría, este é o código por defecto. 155 00:10:23,920 --> 00:10:27,930 Como nós o chamamos, MainActivity. 156 00:10:27,930 --> 00:10:33,230 Por defecto, temos onCreate, que é unha función que se chama cando as cargas esta actividade, 157 00:10:33,230 --> 00:10:37,150 así que quere chamar onCreate (savedInstanceState). 158 00:10:37,150 --> 00:10:40,440 Isto pode restaurar os bits de información 159 00:10:40,440 --> 00:10:44,910 no caso de que a aplicación foi detido. 160 00:10:44,910 --> 00:10:48,790 >> Hai unha actividade gráfico ciclo de vida que se pode ollar 161 00:10:48,790 --> 00:10:50,380 cando comeza un pouco máis en profundidade nel, 162 00:10:50,380 --> 00:10:56,210 pero o máis importante liña de código existe esta función setContentView 163 00:10:56,210 --> 00:11:00,290 que pode cargar o arquivo de recurso para o esquema. 164 00:11:00,290 --> 00:11:03,590 Entón, o que onCreate aquí é basicamente facer é que está dicindo 165 00:11:03,590 --> 00:11:07,010 cando crear esta actividade quero cargar este esquema. 166 00:11:07,010 --> 00:11:12,030 E imos falar sobre o que este esquema é nun segundo. 167 00:11:12,030 --> 00:11:16,230 Se tivésemos que lanzar iso aquí parece exactamente como este, 168 00:11:16,230 --> 00:11:22,880 e, por defecto, porque temos Eclipse ADT a facer iso e facelo por nós 169 00:11:22,880 --> 00:11:28,210 iso é todo código cliché que é creado por nós, 170 00:11:28,210 --> 00:11:34,630 e podemos seguir adiante e cambiar as cousas que nos gusta. 171 00:11:34,630 --> 00:11:38,190 O cartafol de recursos, como dixen, este é o lugar onde temos todo esquemas, 172 00:11:38,190 --> 00:11:41,150 drawables en termos de calquera tipo de imaxes- 173 00:11:41,150 --> 00:11:46,360 son chamados Drawables-e logo, arquivos de son, menús. 174 00:11:46,360 --> 00:11:51,170 É un xeito de unha chea de XML nun bo fashion clasificados. 175 00:11:51,170 --> 00:11:58,030 Como verás, hai. Hdpi, LDPI, MDPI e carpetas xhdpi aos drawables. 176 00:11:58,030 --> 00:12:02,220 Estes son diferentes densidades de pantalla, tan alta densidad de píxeles por polgada, 177 00:12:02,220 --> 00:12:05,710 baixa densidade, de media densidade, densidade moi alta. 178 00:12:05,710 --> 00:12:08,900 >> É dicir, unha vez máis, para que poidamos soportar todos eses distintos dispositivos, 179 00:12:08,900 --> 00:12:15,100 e, idealmente, terá imaxes diferentes para cada resolución diferente. 180 00:12:15,100 --> 00:12:20,740 Esquemas son onde se inclúen as diferentes esquemas que serán utilizados en actividades diferentes. 181 00:12:20,740 --> 00:12:24,150 Tamén figurarán esquemas para fragmentos, 182 00:12:24,150 --> 00:12:26,670 o que significa, basicamente, actividades parciais. 183 00:12:26,670 --> 00:12:29,610 Se queres facer algo legal como sempre que xira o teléfono 184 00:12:29,610 --> 00:12:33,900 quere ter un esquema diferente, pode facer esquema paisaxe como un cartafol diferente, 185 00:12:33,900 --> 00:12:39,000 Android e automaticamente ten unha morea desas regras dentro do cartafol de recursos, 186 00:12:39,000 --> 00:12:44,690 así que vai saber de ollar para carpetas diferentes con base na configuración actual do teléfono, 187 00:12:44,690 --> 00:12:46,740 que tipo de hardware que está a usar. 188 00:12:46,740 --> 00:12:52,350 Igualmente, este valores v11 aquí e os valores-v14 189 00:12:52,350 --> 00:12:55,460 e os valores por defecto esta carpeta e para- 190 00:12:55,460 --> 00:13:01,730 así, os valores de, por si só, este será os valores por defecto en todas as versións do sistema operativo. 191 00:13:01,730 --> 00:13:06,390 Por outra banda, e v11 v14 coincide con Honeycomb 192 00:13:06,390 --> 00:13:08,780 e Ice Cream Sandwich, respectivamente. 193 00:13:08,780 --> 00:13:12,800 De novo, estas son formas que, dentro desas carpetas son diferentes cadeas 194 00:13:12,800 --> 00:13:17,550 e estilos, para que poida personalizar o aspecto do seu programa 195 00:13:17,550 --> 00:13:22,660 ou potencialmente, incluso a súa funcionalidade, a pesar de que probablemente sería unha mala idea, 196 00:13:22,660 --> 00:13:25,890 dependendo da versión do sistema operativo. 197 00:13:25,890 --> 00:13:28,760 >> E eu falamos sobre todo isto aquí. 198 00:13:28,760 --> 00:13:35,870 De novo, resgatáveis, materias, esquema, valores. 199 00:13:35,870 --> 00:13:41,380 Os estándares, si entramos en Ola Android ou Ola CS50 agora 200 00:13:41,380 --> 00:13:43,310 se ve así. 201 00:13:43,310 --> 00:13:45,800 El vai dicir Ola mundo. 202 00:13:45,800 --> 00:13:58,430 Como podes ver aquí co texto Android 203 00:13:58,430 --> 00:14:04,420 o texto para este punto de vista do texto, que é basicamente só unha etiqueta, 204 00:14:04,420 --> 00:14:06,900 é o que chamamos en iOS. 205 00:14:06,900 --> 00:14:11,580 Ten esa notación divertido @ string / hello_world. 206 00:14:11,580 --> 00:14:16,200 Isto é así que podemos, imos tratar de extraer todas as cordas, 207 00:14:16,200 --> 00:14:19,740 todas as cadeas codificadas en Android nunha carpeta separada, 208 00:14:19,740 --> 00:14:23,610 que pasa a ser en values.strings. 209 00:14:23,610 --> 00:14:29,300 Mira aquí, podemos ver que temos unha serie hard-Coded gardado aquí 210 00:14:29,300 --> 00:14:33,910 en Ola mundo, e chámase Ola mundo, e iso é unha especie de 211 00:14:33,910 --> 00:14:39,230 decisión de proxecto común en varias plataformas que desexa- 212 00:14:39,230 --> 00:14:41,780 cordas son o tipo de cousas que queremos ser potencialmente capaz de cambiar. 213 00:14:41,780 --> 00:14:48,050 Non queremos controlar F no noso ficheiro de código fonte no noso XML. 214 00:14:48,050 --> 00:14:50,760 Queremos ser capaces de cambiar isto sempre que temos a oportunidade. 215 00:14:50,760 --> 00:14:53,640 >> Este ficheiro XML, strings.xml, é un xeito de extraer 216 00:14:53,640 --> 00:14:56,710 cadeas codificadas que serían dos nosos recursos de deseño 217 00:14:56,710 --> 00:15:03,530 ou no noso código fonte. 218 00:15:03,530 --> 00:15:08,190 O manifesto é onde gardamos a información esencial sobre a aplicación. 219 00:15:08,190 --> 00:15:11,050 Inclúe o nome do paquete. Isto ten que ser un identificador único. 220 00:15:11,050 --> 00:15:16,020 A diferenza da App Store para iOS os nomes das aplicacións 221 00:15:16,020 --> 00:15:19,980 Non ten que ser único, e pode de feito cambiar o nome do seu programa 222 00:15:19,980 --> 00:15:23,570 tras envialo, entón se eu comezar con Angry Birds, 223 00:15:23,570 --> 00:15:26,840 e entón eu facer unha actualización, e eu non quero lanzar unha nova versión 224 00:15:26,840 --> 00:15:34,230 Creo que eu podería chamalo de Angry Birds 2, mentres eu estou no mesmo ciclo de lanzamento. 225 00:15:34,230 --> 00:15:36,780 Sería só mostrar-se como unha actualización. 226 00:15:36,780 --> 00:15:39,790 O único que ten que ser único é este o nome do paquete, 227 00:15:39,790 --> 00:15:41,280 que moita xente non van ver. 228 00:15:41,280 --> 00:15:44,680 Ben, só vería se está mirando para o código fonte ou se existe algún tipo de erro. 229 00:15:44,680 --> 00:15:47,580 Os compoñentes inclúen actividades, polo que temos de declarar 230 00:15:47,580 --> 00:15:49,070 calquera tipo de actividade que usan. 231 00:15:49,070 --> 00:15:53,430 Este é un permiso tipo de cousas. 232 00:15:53,460 --> 00:15:58,150 >> Como Android non ten ese proceso de aplicación rigorosa 233 00:15:58,150 --> 00:16:02,210 para a presentación de aplicacións en vez diso, simplemente todo baseado fóra de permisos 234 00:16:02,210 --> 00:16:04,300 e declarando cousas no manifesto. 235 00:16:04,300 --> 00:16:06,380 A versión SDK tamén é importante. 236 00:16:06,380 --> 00:16:10,330 Podemos definir uso como SDK versión mínima cousa. 237 00:16:10,330 --> 00:16:16,010 Obviamente, quere crear un código 238 00:16:16,010 --> 00:16:18,570 e proxecto para os sistemas operativos máis recentes. 239 00:16:18,570 --> 00:16:20,840 Quizais non sexa o máis novo, quizais non Jelly Bean. 240 00:16:20,840 --> 00:16:23,610 Quizais queira proxectar sobre todo para Ice Cream Sandwich, 241 00:16:23,610 --> 00:16:27,120 aínda que sexan practicamente a mesma en canto a decisións de proxecto 242 00:16:27,120 --> 00:16:30,550 e as bibliotecas e APIs reais. 243 00:16:30,550 --> 00:16:36,250 Pero en vez de ter persoas 244 00:16:36,250 --> 00:16:40,050 do orixinal Android versión Donut como camiño de volta cando, 245 00:16:40,050 --> 00:16:43,420 que aínda acontecen estar a usar que tentar facer a descarga da aplicación e, a continuación, dicir 246 00:16:43,420 --> 00:16:46,160 non funciona no meu teléfono, pode definir a versión mínima 247 00:16:46,160 --> 00:16:48,620 e que sexa Gingerbread ou Ice Cream Sandwich 248 00:16:48,620 --> 00:16:53,300 ou o que sente Enviando cómodo. 249 00:16:53,300 --> 00:16:57,170 E este é un exemplo do Manifesto. Podemos ollar para o real nun bit. 250 00:16:57,170 --> 00:17:00,900 >> Ok, imos seguir adiante co demo agora. 251 00:17:00,900 --> 00:17:08,900 Este é o demo, se Google Android construír a súa primeira aplicación ou algo parecido. 252 00:17:08,900 --> 00:17:12,089 Nós imos pasar por todo o que está a suceder alí dentro, 253 00:17:12,089 --> 00:17:17,690 e moito, só para unha referencia que aquí sabe Java en calquera medida? 254 00:17:17,690 --> 00:17:28,310 Ok, entón Java é unha nova linguaxe de codificación para a maioría das persoas saíndo do CS50. 255 00:17:28,310 --> 00:17:31,850 Resumidamente, para ir unha vez máis o que di aquí, 256 00:17:31,850 --> 00:17:35,580 o que queremos facer é, en vez de axustar esta aplicación Ola Mundo 257 00:17:35,580 --> 00:17:38,620 que todo o que fai é se lanza e di Ola mundo 258 00:17:38,620 --> 00:17:43,580 e el di Ola CS50 na parte superior, porque ese é o nome da actividade 259 00:17:43,580 --> 00:17:47,190 imos tratar de facer un campo de texto e un botón 260 00:17:47,190 --> 00:17:50,680 para que, cando premer este botón levará o texto 261 00:17:50,680 --> 00:17:53,660 do campo de texto e comezar unha nova actividade, e só pode dicir 262 00:17:53,660 --> 00:17:58,380 Sexa o que sexa que o texto di na actividade, e iso é relativamente simple. 263 00:17:58,380 --> 00:18:00,650 Non é moi interesante. Non quere liberar calquera aplicación como esta. 264 00:18:00,650 --> 00:18:03,880 Pero demostra algunhas cousas importantes do proxecto. 265 00:18:03,880 --> 00:18:07,030 >> Nós imos ter que interactuar co manifesto, cos ficheiros de esquema, 266 00:18:07,030 --> 00:18:12,440 co código fonte, e podes ver como iniciar unha actividade da outra. 267 00:18:19,740 --> 00:18:23,060 Imos comezar co esquema para a nosa primeira actividade, 268 00:18:23,060 --> 00:18:27,320 que sei que é unha especie de pequeno, 269 00:18:27,320 --> 00:18:32,660 pero como podes ver, agora, todo isto é que ten o noso logotipo que creamos, 270 00:18:32,660 --> 00:18:36,310 o nome da actividade, e el di Ola mundo no centro. 271 00:18:36,310 --> 00:18:40,400 Pola contra, eu estou indo primeiro para facelo en un esquema lineal, 272 00:18:40,400 --> 00:18:42,350 un esquema familiar, e estas son todas as cousas 273 00:18:42,350 --> 00:18:45,870 pode mirar para arriba e paga a pena ir máis nalgún momento, en termos dos esquemas. 274 00:18:45,870 --> 00:18:47,310 É moi parecido a HTML. 275 00:18:47,310 --> 00:18:52,640 Dixemos que non é realmente paga a pena coñecer en termos dun sentido programático, 276 00:18:52,640 --> 00:18:55,840 pero hai tantos esquemas diferentes que pode controlar, 277 00:18:55,840 --> 00:18:57,970 e é como CSS en termos de estilos. 278 00:18:57,970 --> 00:19:01,590 >> Hai moita cousa a suceder só en termos de estética aquí, 279 00:19:01,590 --> 00:19:08,930 E si, paga a pena aprender, pero é o tipo de cousas que ten que mirar para arriba 280 00:19:08,930 --> 00:19:11,810 como vai e sente que precisa de algo novo. 281 00:19:11,810 --> 00:19:17,030 Podo sacar proveito dalgunhas das ferramentas ADT aquí, polo menos para comezar con. 282 00:19:17,030 --> 00:19:21,930 Vou facer un campo de texto, e eu vou facer un botón. 283 00:19:21,930 --> 00:19:24,100 Pon-os un ao lado do outro. 284 00:19:24,100 --> 00:19:28,200 Xa redimensionar adecuadamente. 285 00:19:28,200 --> 00:19:31,320 Sentímolo, unha vez máis, volvendo á diferenza entre o esquema lineal e disposición relativa, 286 00:19:31,320 --> 00:19:34,830 un esquema lineal dá un pouco máis de funcionalidade 287 00:19:34,830 --> 00:19:38,720 en termos de recheo de espazo e asegurarse 288 00:19:38,720 --> 00:19:42,790 Posicionamo cousas horizontal ou verticalmente. 289 00:19:42,790 --> 00:19:46,130 A gran diferenza entre un esquema lineal e un esquema respecto 290 00:19:46,130 --> 00:19:50,250 é a relativa disposición posicións todo en relación a outros puntos de vista, 291 00:19:50,250 --> 00:19:52,630 eo único bo disto é que leva menos tempo para deseñar 292 00:19:52,630 --> 00:19:56,120 xa que o sistema operativo mira a todo o código e di que iso vai 293 00:19:56,120 --> 00:19:58,270 en relación a este aquí, aquí. 294 00:19:58,270 --> 00:20:03,170 Isto significa que fai menos medidas do que unha morea de esquemas lineais noutras citas, 295 00:20:03,170 --> 00:20:06,840 que eu tería que facer se eu quería que as cousas van vertical aquí. 296 00:20:06,840 --> 00:20:10,510 >> Eu xa teño algunhas cousas suceder na horizontal, así que necesitará de un esquema lineal diferente 297 00:20:10,510 --> 00:20:14,560 para inserir-las en vertical, pero se eu estivese facendo un esquema parente eu podería dicir 298 00:20:14,560 --> 00:20:18,140 manter esta á dereita, é dicir cara á dereita e estas cousas continuación. 299 00:20:18,140 --> 00:20:21,850 Pero por que eu quero que enchen agora eu vou usar un esquema lineal, 300 00:20:21,850 --> 00:20:24,510 e pode velo xa fai unha morea desas cousas para nós. 301 00:20:24,510 --> 00:20:28,890 Todas as vistas que ter unha propiedade de ancho e alto, 302 00:20:28,890 --> 00:20:33,410 e iso pasa a ter un peso de 1, e esta ten un peso de 1 303 00:20:33,410 --> 00:20:36,050 de xeito que enche a totalidade do espazo. 304 00:20:36,050 --> 00:20:38,460 Pero o ancho ea altura son as máis importantes. 305 00:20:38,460 --> 00:20:45,880 Este campo ID aquí non é importante no esquema real 306 00:20:45,880 --> 00:20:49,060 a non ser que estamos usando un esquema relativo e dicir que podemos referenciar 307 00:20:49,060 --> 00:20:52,990 unha vista en posición de referencia para o outro. 308 00:20:52,990 --> 00:20:56,170 Se tivésemos un esquema respecto poderiamos dicir esta posición por baixo deste 309 00:20:56,170 --> 00:20:59,390 ou por riba deste ID, pero este ID será importante 310 00:20:59,390 --> 00:21:01,660 cando estamos a usalo no noso código, porque podemos referenciar 311 00:21:01,660 --> 00:21:05,610 estes puntos de vista individuais deste xeito. 312 00:21:05,610 --> 00:21:10,350 >> E entón podes ver o requestFocus etiqueta, que é algo que probablemente viu en pset 7. 313 00:21:10,350 --> 00:21:15,370 Houbo unha etiqueta enfoque automático ou algo nese sentido a un dos campos. 314 00:21:15,370 --> 00:21:22,100 E unha cousa, por suposto, non podemos facer como HTML, 315 00:21:22,100 --> 00:21:25,660 e teña en conta unha das cousas agradables sobre ADT é que autocompletes aquí. 316 00:21:25,660 --> 00:21:29,930 Quizais non tan ben como o fixo no Xcode, pero el fai, con todo, 317 00:21:29,930 --> 00:21:32,860 e poderiamos dicir información e, a continuación, darlle unha especie de corda 318 00:21:32,860 --> 00:21:37,070 como escribir unha mensaxe, 319 00:21:37,070 --> 00:21:41,300 e se eu darlle un momento, tamén en conta que eu teño un pequeno erro aquí 320 00:21:41,300 --> 00:21:44,610 dicindo que debemos usar un recurso de cadea para iso, 321 00:21:44,610 --> 00:21:48,820 entón se eu deixar lo facer un do traballo duro para min 322 00:21:48,820 --> 00:21:57,320 Podo seleccionar esa cadea, facer refrator Android e extracto de corda Android. 323 00:21:57,320 --> 00:22:00,570 Podo darlle ese nome, escriba unha mensaxe, 324 00:22:00,570 --> 00:22:04,180 eo que fixo agora é substituído esa secuencia hard-Coded 325 00:22:04,180 --> 00:22:07,980 cunha referencia á secuencia o ficheiro xml de cadea., 326 00:22:07,980 --> 00:22:10,200 o que significa que agora é aquí. 327 00:22:10,200 --> 00:22:15,560 >> E sei que parece un pouco máis de traballo trivial e como, neste punto, 328 00:22:15,560 --> 00:22:17,840 pero cando tes unha morea de cousas, unha morea de cordas, 329 00:22:17,840 --> 00:22:20,750 que é realmente importante, especialmente para a localización 330 00:22:20,750 --> 00:22:26,920 porque, como mencionei anteriormente, Android é un sistema operativo moi utilizado no mundo 331 00:22:26,920 --> 00:22:35,950 que pode simplemente facer-en valores ou valores sp 332 00:22:35,950 --> 00:22:44,320 ou algo para o inglés ou español ou outras linguas. 333 00:22:44,320 --> 00:22:50,210 E entón probablemente non ter esta experiencia aínda 334 00:22:50,210 --> 00:22:53,030 xa que non fixo moito JavaScript en termos de programación web, 335 00:22:53,030 --> 00:22:56,850 pero tamén podemos facer neste campo chamado onclick do botón, 336 00:22:56,850 --> 00:23:02,350 e esta é unha forma de facer referencia dentro do noso esquema 337 00:23:02,350 --> 00:23:06,570 que queremos que unha determinada función a ser chamado no noso código fonte. 338 00:23:06,570 --> 00:23:09,420 Vou chamar esa sendMessage, 339 00:23:09,420 --> 00:23:13,390 e, a fin de facer este traballo o que significa na actividade principal aquí 340 00:23:13,390 --> 00:23:19,180 Vou ter que crear unha función que é público 341 00:23:19,180 --> 00:23:22,250 de xeito que se pode acceder polo esquema. 342 00:23:22,250 --> 00:23:25,930 É branco porque simplemente non quere que volte nada. 343 00:23:25,930 --> 00:23:37,760 Imos chamar-lle sendMessage, e ten unha visión, 344 00:23:37,760 --> 00:23:43,690 , Que é un tipo de contexto que pode ancorar a rede 345 00:23:43,690 --> 00:23:47,160 este punto de vista individual cando estamos executando-o. 346 00:23:47,160 --> 00:23:50,090 >> E eu non sei se notou, ben, non teña notado, 347 00:23:50,090 --> 00:24:02,370 pero neste momento aquí 348 00:24:02,370 --> 00:24:06,930 este punto de vista é un tipo que aínda non foi incluído, 349 00:24:06,930 --> 00:24:10,630 e claro, todo o mundo sabe do CS50 sobre non incluíndo os tipos. 350 00:24:10,630 --> 00:24:13,120 A cousa agradable sobre como Eclipse IDE é que 351 00:24:13,120 --> 00:24:17,520 se esquecer de incluír un tipo que vai subliñar cun pouco de vermello rabiscada 352 00:24:17,520 --> 00:24:19,680 e logo, darlle a posibilidade de importar a vista. 353 00:24:19,680 --> 00:24:23,130 Unha forma rápida de facelo é control de cambio O, e vai importar 354 00:24:23,130 --> 00:24:27,070 todos os ficheiros que necesita. 355 00:24:27,070 --> 00:24:33,670 Agora que temos esa función sendMessage, 356 00:24:33,670 --> 00:24:46,560 que enviará mensaxe do MainActivity para unha nova actividade, 357 00:24:46,560 --> 00:24:55,230 teremos que usar a intención de lanzar a nova actividade desde un presente, 358 00:24:55,230 --> 00:25:02,240 entón probablemente imos querer crear unha constante global ou tamén especialmente unha constante pública 359 00:25:02,240 --> 00:25:06,240 que vai axudarnos a saber como imos facer referencia a cadea 360 00:25:06,240 --> 00:25:09,090 porque cando creamos unha intención que non estamos só chamando unha nova actividade, 361 00:25:09,090 --> 00:25:11,520 pero tamén podemos darlle un conxunto de información. 362 00:25:11,520 --> 00:25:14,720 Un paquete é en realidade o termo que usa Android, 363 00:25:14,720 --> 00:25:21,470 e é unha forma de dicir darlle datos adicionais, que non pode ser de un tipo de datos moi sofisticado, 364 00:25:21,470 --> 00:25:24,510 pero podemos definitivamente incluír booleanos ou cordas ou ints. 365 00:25:24,510 --> 00:25:29,750 Este tipo de cousas. 366 00:25:29,750 --> 00:25:34,230 >> Sinto-se libre para preguntar sobre calquera destas eliminatorias aquí, 367 00:25:34,230 --> 00:25:36,900 pública final, estático. 368 00:25:36,900 --> 00:25:38,610 Público é o importante. 369 00:25:38,610 --> 00:25:47,090 Isto significa que podemos acceder a esta variable doutros ficheiros de código fonte 370 00:25:47,090 --> 00:25:49,590 por exemplo, cando creamos unha nova actividade. 371 00:25:49,590 --> 00:25:52,190 Podemos referenciar a cadea dentro deste ficheiro. 372 00:25:52,190 --> 00:25:57,160 Se é privado, isto significa que está limitado a este ficheiro individual aquí. 373 00:25:57,160 --> 00:26:02,430 Pero nós imos chamar iso de algo así como mensaxe extra. 374 00:26:16,260 --> 00:26:23,300 Agora nós fixemos esta función e, se é premer o botón, esta función será chamada. 375 00:26:23,300 --> 00:26:27,970 Pero nós non fixemos nada, obviamente, coa función. 376 00:26:27,970 --> 00:26:33,130 O que queremos facer agora é crear unha nova actividade, 377 00:26:33,130 --> 00:26:35,350 a actividade que vai ser realmente lanzado. 378 00:26:35,350 --> 00:26:44,330 En Eclipse, podemos dicir, a actividade Android novo, actividade en branco. 379 00:26:44,330 --> 00:26:46,530 Podemos darlle un nome. 380 00:26:46,530 --> 00:26:57,050 Imos chamalo de nosa actividade resultado. 381 00:26:57,050 --> 00:27:04,430 E entón este campo pai xerárquico é unha forma de especificar 382 00:27:04,430 --> 00:27:08,180 forma as actividades están relacionados uns cos outros. 383 00:27:08,180 --> 00:27:11,020 Porque este iniciarase a partir da outra actividade 384 00:27:11,020 --> 00:27:27,520 debemos indicar que el ten a principal actividade pai. 385 00:27:27,520 --> 00:27:31,220 >> E eu podería premendo no seguinte campo alí, o que nos diría 386 00:27:31,220 --> 00:27:33,830 algúns campos opcionais que tamén se inclúen, 387 00:27:33,830 --> 00:27:38,800 pero a cousa agradable sobre ADT, unha vez máis, é que se eu rodar aquí 388 00:27:38,800 --> 00:27:45,740 o Manifesto lembre que todo iso realmente foi incluído por defecto 389 00:27:45,740 --> 00:27:48,930 cando creou o proxecto, 390 00:27:48,930 --> 00:27:53,090 e agora xa usan este crear unha nova actividade en lugar de só 391 00:27:53,090 --> 00:27:58,610 engadindo noso propio ficheiro de clase porque nós fomos a través da súa interface gráfica para facelo 392 00:27:58,610 --> 00:28:01,930 xa engadido todo isto ao manifesto para nós, 393 00:28:01,930 --> 00:28:06,020 o que só significa que agora o sistema operativo non vai reclamar 394 00:28:06,020 --> 00:28:09,400 cando intentamos publicar esta actividade. 395 00:28:09,400 --> 00:28:14,620 E tamén, claro, deulle unha etiqueta, que tamén aparece en cadeas. 396 00:28:14,620 --> 00:28:17,340 El fai unha morea de cousas no back-end para nós. 397 00:28:17,340 --> 00:28:20,140 En calquera caso, agora que temos esta actividade resultado, así como, 398 00:28:20,140 --> 00:28:23,810 o ficheiro de código fonte real no cartafol de orixe, 399 00:28:23,810 --> 00:28:33,540 e pode ver a abordar brevemente esta- 400 00:28:33,540 --> 00:28:37,790 porque dixo iso sobre a nai xerárquica 401 00:28:37,790 --> 00:28:46,640 deu ese android.r.ide.home campo neste onOption cousa seleccionado. 402 00:28:46,640 --> 00:28:49,020 >> O que isto está basicamente dicindo é que hai un botón de menú agora 403 00:28:49,020 --> 00:28:53,110 que na parte superior esquerda da pantalla 404 00:28:53,110 --> 00:29:02,220 se eu atrás para o PowerPoint na que falou por primeira vez sobre a barra de acción 405 00:29:02,220 --> 00:29:05,380 por mor do pai xerárquica agora hai unha pequena frecha de volta aquí 406 00:29:05,380 --> 00:29:10,610 e iso é previsión por iso, debemos ser capaces de, despois de executar esta app- 407 00:29:10,610 --> 00:29:15,360 atrás, e é un xeito de gardar-nos un pouco de código alí. 408 00:29:26,220 --> 00:29:40,180 Agora, dentro deste, así, parece estar reclamando sobre iso por un momento. 409 00:29:40,180 --> 00:29:43,910 Imos comentar isto. 410 00:29:43,910 --> 00:29:48,260 Agora, a fin de que realmente interactuar con estas dúas actividades, 411 00:29:48,260 --> 00:29:55,020 temos que crear unha intención que inclúe todos estes datos. 412 00:29:55,020 --> 00:29:58,950 En sendMessage agora vou cruzar con algúns anacos de código 413 00:29:58,950 --> 00:30:00,700 e explicar que como eu ir. 414 00:30:00,700 --> 00:30:06,280 Unha intención, como dixen, é un xeito de publicar unha actividade doutro. 415 00:30:06,280 --> 00:30:10,000 Intención é o tipo. Estamos creando un minhaIntencao variable. 416 00:30:10,000 --> 00:30:13,980 >> E iso é realmente un obxecto, é por iso que temos que chamar de novo. 417 00:30:13,980 --> 00:30:18,500 É común o uso de Java alí, o que pode levar un pouco de tempo para se acostumar. 418 00:30:18,500 --> 00:30:23,900 Isto significa que estamos usando a actividade ou o MainActivity clase, 419 00:30:23,900 --> 00:30:28,630 ea intención dese xeito ten a actividade que vai de 420 00:30:28,630 --> 00:30:36,060 ea actividade que vai, que chamamos ResultActivity, 421 00:30:36,060 --> 00:30:38,170 e que é a súa propia clase. 422 00:30:38,170 --> 00:30:41,720 Incluír iso. 423 00:30:41,720 --> 00:30:47,370 E entón, como eu mencionen antes, nós demos ese ID ao campo de texto de edición 424 00:30:47,370 --> 00:30:53,710 ea visualización de texto, polo que, a fin de capturar programaticamente 425 00:30:53,710 --> 00:31:01,860 o texto que hai no EDITTEXT 426 00:31:01,860 --> 00:31:06,710 usan esta función chamada findViewById, 427 00:31:06,710 --> 00:31:13,660 que é semellante a algo que vai usar ao tentar obter os campos do DOM. 428 00:31:13,660 --> 00:31:17,560 Quizais David fala sobre iso na charla. 429 00:31:17,560 --> 00:31:26,600 Pero é só unha forma de obter os-é por iso que marcar esas cousas con estes campos. 430 00:31:26,600 --> 00:31:31,110 Id.editText1. 431 00:31:31,110 --> 00:31:35,220 Xa está autocompleting para min alí. 432 00:31:35,220 --> 00:31:42,010 >> E entón imos tamén incluírse este EDITTEXT agora que temos o campo 433 00:31:42,010 --> 00:31:47,640 dentro do noso programa, o único que fixo foi basicamente findViewById 434 00:31:47,640 --> 00:31:50,870 Podes pensar niso como dar unha referencia a este EDITTEXT. 435 00:31:50,870 --> 00:31:54,570 Agora queremos obter a secuencia ou a mensaxe 436 00:31:54,570 --> 00:32:00,670 dentro dese EDITTEXT que podemos facer mediante o 437 00:32:00,670 --> 00:32:03,360 podería pensar EDITTEXT como un struct- 438 00:32:03,360 --> 00:32:07,600 chamamos iso dun obxecto en Java con unha morea de diferentes métodos 439 00:32:07,600 --> 00:32:10,650 ou campos e atributos vinculados a el. 440 00:32:10,650 --> 00:32:15,510 Cando digo EDITTEXT. dáme a oportunidade de acceso a 441 00:32:15,510 --> 00:32:19,770 un método como gettext, que recibirá o texto actual 442 00:32:19,770 --> 00:32:23,990 en que EDITTEXT e logo converter ese explicitamente 443 00:32:23,990 --> 00:32:26,520 a unha corda, e nós gardadas a mensaxe. 444 00:32:26,520 --> 00:32:32,730 Agora nós realmente queremos facer algo con esa intención que creamos hai uns momentos. 445 00:32:32,730 --> 00:32:40,250 Vou poñer extras, como se chama en intención, 446 00:32:40,250 --> 00:32:43,330 que, unha vez máis, como dixen antes, esta é unha forma de crear o paquete 447 00:32:43,330 --> 00:32:45,980 con unha morea de datos. 448 00:32:45,980 --> 00:32:50,920 Mensaxe adicional é a nosa marca, de xeito que sabemos o que estamos a aforrar este abaixo, 449 00:32:50,920 --> 00:32:56,700 e entón eu estou incluíndo a mensaxe. 450 00:32:56,700 --> 00:33:04,870 >> E entón podemos realmente comezar a actividade, dándolle o minhaIntencao parámetro. 451 00:33:04,870 --> 00:33:10,630 E iso vai realmente comezar a actividade, por iso dende que eu actualizado para o Windows 8 452 00:33:10,630 --> 00:33:15,870 pode haber algúns erros que aparecen momentáneamente, pero tentao ignore them. 453 00:33:28,010 --> 00:33:30,310 E este é o emulador Android. 454 00:33:30,310 --> 00:33:33,540 Esperemos que o código vai realmente aparecer nun momento. 455 00:33:33,540 --> 00:33:36,680 Unha vez máis, ignorando todas esas pequenas cousas. 456 00:33:36,680 --> 00:33:42,290 Pero o emulador Android podes emular calquera versión do sistema operativo 457 00:33:42,290 --> 00:33:45,180 desde os primeiros queridos, Donut, Gingerbread. 458 00:33:45,180 --> 00:33:49,640 Este é Jelly Bean 4.1. 459 00:33:49,640 --> 00:33:53,150 Pero como se pode ver agora, iso é algo que fixemos. 460 00:33:53,150 --> 00:33:55,780 Isto ten a MainActivity, o EDITTEXT, o botón. 461 00:33:55,780 --> 00:34:01,550 Podo escribir algo aquí, pero o que estamos perdendo neste momento? 462 00:34:01,550 --> 00:34:05,190 Fixemos a campo no MainActivity que enviará a mensaxe 463 00:34:05,190 --> 00:34:08,570 a outra actividade, pero neste momento 464 00:34:08,570 --> 00:34:12,330 non ter feito nada na outra actividade, de xeito que non vai recibir nada. 465 00:34:12,330 --> 00:34:18,800 Imos rematar esta parte antes de seguir adiante. 466 00:34:18,800 --> 00:34:25,760 >> Esta actividade de resultado, o que cómpre facer é o que precisa facer é precisaremos- 467 00:34:25,760 --> 00:34:30,070 Tamén podemos referenciar intención nesta actividade, 468 00:34:30,070 --> 00:34:33,580 polo que temos de captar a intención, que é moi sinxelo. 469 00:34:33,580 --> 00:34:40,780 É unha función incluída na clase de actividade, 470 00:34:40,780 --> 00:34:47,610 para que poidamos dicir "Get a mensaxe da intención". 471 00:34:47,610 --> 00:34:56,260 "Intención minhaIntencao = getIntent". 472 00:34:56,260 --> 00:35:00,030 E iso vai darnos-agora minhaIntencao é un obxecto, 473 00:35:00,030 --> 00:35:05,380 que é unha referencia á intención que nos levou a esta actividade. 474 00:35:05,380 --> 00:35:10,130 MainActivity chama e dá a información adicional para producir actividade. 475 00:35:10,130 --> 00:35:14,070 Actividade resultado agora mira para a intención que levou aquí, 476 00:35:14,070 --> 00:35:23,540 e podemos acceder a mensaxe de que creamos no outro, 477 00:35:23,540 --> 00:35:26,370 getStringExtra, e iso vai autocomplete para min. 478 00:35:26,370 --> 00:35:31,190 E entón lembre, do xeito que marcou aquel anaco de datos 479 00:35:31,190 --> 00:35:38,400 era, dándolle este campo aquí, esta cadea pública, 480 00:35:38,400 --> 00:35:42,080 que é a etiqueta para a cadea que realmente incluídos. 481 00:35:42,080 --> 00:35:48,450 >> Se eu digo MainActivity.Extra_Message 482 00:35:48,450 --> 00:35:52,200 é logo alí, e isto é máis ou menos como o nome do parámetro 483 00:35:52,200 --> 00:35:55,330 cando pasamos código do controlador para o modelo, 484 00:35:55,330 --> 00:35:57,680 cando nós diriamos Título frecha algo. 485 00:35:57,680 --> 00:36:01,140 É o mesmo tipo de idea alí. 486 00:36:01,140 --> 00:36:07,130 Agora, lembre-se diso. 487 00:36:07,130 --> 00:36:12,230 Tivemos tamén esta auto creado ou auto código xerado 488 00:36:12,230 --> 00:36:16,410 para a actividade resultado, que inclúe o punto de vista de texto no medio 489 00:36:16,410 --> 00:36:19,690 que di: Ola mundo. 490 00:36:19,690 --> 00:36:27,510 Que podería facer que maior. 491 00:36:27,510 --> 00:36:33,980 Imos facelo primeiro. 492 00:36:33,980 --> 00:36:39,550 Poderiamos facelo 40 densidade píxeles independentes. 493 00:36:39,550 --> 00:36:42,670 A ver, iso é super enorme. Isto vai estar ben. 494 00:36:42,670 --> 00:36:48,180 E, a continuación, a fin de referenciar este punto de vista de texto individuais dentro do noso código 495 00:36:48,180 --> 00:36:53,890 teremos que dar a el unha identificación, 496 00:36:53,890 --> 00:36:58,350 e, a fin de facer o que dicimos @ + id, o que significa que atribuílo la ID. 497 00:36:58,350 --> 00:37:02,480 Se nós só dixemos @ id sería asumir que estamos facendo referencia a un ID que xa existe, 498 00:37:02,480 --> 00:37:07,760 e imos chamar esa nosa resultTextView. 499 00:37:07,760 --> 00:37:10,570 E noten que, en XML, non hai necesidade de punto e coma ou algo. 500 00:37:10,570 --> 00:37:12,380 Todo está dentro desas etiquetas. 501 00:37:12,380 --> 00:37:15,530 É moi semellante ao HTML nunha serie de sentidos. 502 00:37:15,530 --> 00:37:22,760 >> Leva un pouco de tempo para acostumar, pero finalmente vai se sentir moi cómodo con el. 503 00:37:22,760 --> 00:37:31,320 Imos actualizar o texto para a nosa visión de texto resultado, 504 00:37:31,320 --> 00:37:35,650 e como fixemos cando estabamos a recibir ese campo de edición de texto na nosa outra actividade 505 00:37:35,650 --> 00:37:46,630 en MainActivity Aquí imos tamén do mesmo xeito- 506 00:37:46,630 --> 00:37:54,890 imos atopar o punto de vista polo ID. 507 00:37:54,890 --> 00:37:59,640 E N, en caso de que non mencionen iso antes, é a referencia para a nosa carpeta de recursos, 508 00:37:59,640 --> 00:38:05,350 e logo, ID é unha referencia para todo na carpeta de recursos, as IDs, 509 00:38:05,350 --> 00:38:10,060 e resultTextView. 510 00:38:10,060 --> 00:38:13,010 E así como antes, resultTextView é un obxecto, 511 00:38:13,010 --> 00:38:15,780 o que significa que ten todas estas propiedades asociados. 512 00:38:15,780 --> 00:38:20,610 Cando usamos gettext para a edición de texto para este campo de texto ou a visualización de texto 513 00:38:20,610 --> 00:38:23,980 podemos realmente usar setText, 514 00:38:23,980 --> 00:38:26,960 e entón xa atopou a mensaxe da intención, 515 00:38:26,960 --> 00:38:35,760 para que eu poida dicir a mensaxe, e iso vai realmente facer que a mensaxe. 516 00:38:35,760 --> 00:38:41,820 >> É un momento para lanzar, a continuación, podemos ver se é ou non cae, 517 00:38:41,820 --> 00:38:48,670 pero calquera dúbida sobre este proceso alí mesmo, este tipo de interacción? 518 00:38:48,670 --> 00:38:51,490 De moitas formas, é simple. 519 00:38:51,490 --> 00:38:53,960 A razón pola que eu estou pasando por algo relativamente sinxelo 520 00:38:53,960 --> 00:38:57,330 é, de novo, xa que comeza a ver a interacción entre o deseño, 521 00:38:57,330 --> 00:38:59,520 o código fonte, como é que as cousas referencia 522 00:38:59,520 --> 00:39:07,680 e quizais ter un pouco de exposición á forma como Java traballa alí. 523 00:39:07,680 --> 00:39:16,500 Se realmente escribir algo aquí, como ohai, e entón prema o botón, 524 00:39:16,500 --> 00:39:22,260 lanza unha nova actividade, e que a visión texto di ohai. 525 00:39:22,260 --> 00:39:27,640 Isto é moi sinxelo, pero espero que despois diso exemplo 526 00:39:27,640 --> 00:39:32,310 vostede medio que ver como esta interacción funciona, e agora que a desorde de arquivos 527 00:39:32,310 --> 00:39:36,870 na parte esquerda de todas esas carpetas do proxecto, esperamos que vostede sabe onde mirar agora. 528 00:39:36,870 --> 00:39:38,700 Esta é a súa área de código fonte. 529 00:39:38,700 --> 00:39:41,760 >> Esquema é realmente o único que enfrontará ata incluír imaxes 530 00:39:41,760 --> 00:39:46,370 e os drawables ou calquera outra cousa, e os valores, que inclúen cordas, 531 00:39:46,370 --> 00:39:51,960 como xa mencionamos, e logo, estilos é algo que é unha especie de como CSS. 532 00:39:51,960 --> 00:39:56,410 Aborda-la en calquera momento, pero ata que se sinta cómodo coa adición de toque extra 533 00:39:56,410 --> 00:40:02,520 para a súa aplicación, non hai necesidade de se preocupar moito con iso. 534 00:40:02,520 --> 00:40:07,410 Só pechar outra cousa que certamente vai querer incluír- 535 00:40:07,410 --> 00:40:13,010 supoñendo que quere integrar recursos legais e aforrar algúns extras codificación- 536 00:40:13,010 --> 00:40:16,460 sería incluír bibliotecas terceiro partido. 537 00:40:16,460 --> 00:40:19,840 Aquí é a cara Android pouco co sombreiro de Sherlock Holmes. 538 00:40:19,840 --> 00:40:23,040 Esta é unha barra de acción Sherlock biblioteca, 539 00:40:23,040 --> 00:40:25,390 o que significa, basicamente, que barra de acción que vimos, 540 00:40:25,390 --> 00:40:29,590 que agora é estándar en Ice Cream Sandwich e Jelly Bean, 541 00:40:29,590 --> 00:40:33,100 Se quere traer este tipo de experiencia do usuario para os usuarios en versións antigas 542 00:40:33,100 --> 00:40:39,290 e salvar-se de se preocupar coa forma na que o usuario vai navegar 543 00:40:39,290 --> 00:40:42,490 en versións máis antigas cando a cousa non queda aí pode incluír esta biblioteca 544 00:40:42,490 --> 00:40:46,770 e entón só ten que referencia no canto de Android por defecto 545 00:40:46,770 --> 00:40:50,250 bibliotecas á barra de acción, fai referencia a esta biblioteca de apoio. 546 00:40:50,250 --> 00:40:53,090 >> Cousas como Scoreloop, é óptimo se está indo a incluír un xogo. 547 00:40:53,090 --> 00:40:57,280 Permite que engade cadros de líderes e conquistas para videoxogos. 548 00:40:57,280 --> 00:41:00,900 A AdMob é un xeito de poñer anuncios en súas aplicacións 549 00:41:00,900 --> 00:41:02,900 no caso de querer facer un pouco de diñeiro con iso. 550 00:41:02,900 --> 00:41:05,730 Por suposto, existe Facebook e Twitter para integrar alí 551 00:41:05,730 --> 00:41:08,170 se quere compartir as cousas con facilidade, etcétera. 552 00:41:08,170 --> 00:41:15,120 Dropbox, do mesmo xeito, e Google Analytics é que a gráfica ollar alí. 553 00:41:15,120 --> 00:41:19,070 Isto vai ser moi importante se realmente quere ver quen está interactuando 554 00:41:19,070 --> 00:41:25,800 coa súa aplicación ou quen é, como interactúan, etcétera. 555 00:41:25,800 --> 00:41:30,650 Google, por defecto, dille unha morea de estatísticas que teña instalado o programa 556 00:41:30,650 --> 00:41:35,020 e que os teléfonos que teñen, as versións de sistemas operativos que eles teñen. 557 00:41:35,020 --> 00:41:38,080 Pero se quere ver quen está a usar-o nunha base diaria e como usalo 558 00:41:38,080 --> 00:41:42,860 entón vai querer incluír algún tipo de sistema de seguimento así. 559 00:41:42,860 --> 00:41:44,990 >> Cando estea listo para distribuír a súa aplicación 560 00:41:44,990 --> 00:41:46,930 Eu non teño de ir a que en moita profundidade. 561 00:41:46,930 --> 00:41:49,090 Prema na ligazón aquí, Google Play. 562 00:41:49,090 --> 00:41:51,080 Ela adoitaba ser o mercado Android. 563 00:41:51,080 --> 00:41:53,470 Eles rebatizada todo con Google Play, 564 00:41:53,470 --> 00:41:55,230 entón agora se somete a iso. 565 00:41:55,230 --> 00:41:57,140 É moi sinxelo. 566 00:41:57,140 --> 00:42:01,070 Ten que incluír unha descrición, algunhas capturas de pantalla. 567 00:42:01,070 --> 00:42:05,660 Como dixen, non hai ningún proceso de aprobación como iOS. 568 00:42:05,660 --> 00:42:07,270 E onde ir dende aquí? 569 00:42:07,270 --> 00:42:09,450 Eu mostre-lle un exemplo moi sinxelo. 570 00:42:09,450 --> 00:42:13,270 Esperemos que se parece terriblemente simple 571 00:42:13,270 --> 00:42:15,740 entón isto pode ser un bo sinal. 572 00:42:15,740 --> 00:42:20,080 Se en todo me sentín un pouco confuso ou inseguro sobre exactamente o que eu estaba escribindo 573 00:42:20,080 --> 00:42:26,160 que tamén é bo, pero a partir de aquí ir a Google Guide. 574 00:42:26,160 --> 00:42:28,330 Este é un gran lugar para comezar. 575 00:42:28,330 --> 00:42:31,460 El vai falar con vostede a través do que esperan en termos de deseño da aplicación, 576 00:42:31,460 --> 00:42:33,380 como os usuarios normalmente interactúan con ela. 577 00:42:33,380 --> 00:42:36,450 É moito máis de forma libre que IOS, eu diría, 578 00:42:36,450 --> 00:42:41,330 parecer vistas da táboa son-Non sei, iso é o seu pan e manteiga. 579 00:42:41,330 --> 00:42:44,690 Todo é unha exhibición de táboa deslizando cara arriba e para abaixo. 580 00:42:44,690 --> 00:42:48,160 Con Android eles definitivamente incentivar a xente a ollar para el dende 581 00:42:48,160 --> 00:42:51,720 unha morea de diferentes perspectivas. 582 00:42:51,720 --> 00:42:56,000 >> Cando inclúe o Kit de desenvolvemento de software neste ADT 583 00:42:56,000 --> 00:43:03,010 Por defecto, ten unha morea de exemplos de proxectos en Android. 584 00:43:03,010 --> 00:43:05,470 Aquí, Android, Android Sample Project. 585 00:43:05,470 --> 00:43:11,870 Se eu premer sobre iso, entón podo escoller a versión para a que a mostra de proxectos de aplicar. 586 00:43:11,870 --> 00:43:13,300 Hai unha morea de cousas distintas aquí. 587 00:43:13,300 --> 00:43:16,690 Ela comeza con compatibilidade barra de acción, 588 00:43:16,690 --> 00:43:24,610 xogo acelerómetro, copia de seguridade e restauración, Bluetooth, constructor xesto. 589 00:43:24,610 --> 00:43:28,930 Jetboy é un xogo de mostra que lle dan, como é LunarLander. 590 00:43:28,930 --> 00:43:31,250 Hai unha morea de programas de exemplo aquí, 591 00:43:31,250 --> 00:43:35,290 e todos eles están destinados a distintos aspectos da API de Android, 592 00:43:35,290 --> 00:43:41,520 ea idea é que, como fai a súa solicitude 593 00:43:41,520 --> 00:43:44,110 non necesita saber todo sobre Android para facer un app Android. 594 00:43:44,110 --> 00:43:47,300 Só ten que aprender sobre as partes que está realmente vai utilizar. 595 00:43:47,300 --> 00:43:49,340 Olle para estas bibliotecas de samples. 596 00:43:49,340 --> 00:43:51,510 Sinto-se a liberdade de copiar e pegar o código e reaplicá lo. 597 00:43:51,510 --> 00:43:53,850 É unha gran cousa para ollar o código máis difícil 598 00:43:53,850 --> 00:43:57,060 e tratar de comprende-lo, o que é, por suposto, xa que en CS50 599 00:43:57,060 --> 00:44:01,510 que moitas veces danlle grandes cantidades de código fonte. 600 00:44:01,510 --> 00:44:04,620 Véxanse algúns destes se está indo a usar bibliotecas semellantes 601 00:44:04,620 --> 00:44:08,630 e, a continuación, aplicala lo no seu propio código. 602 00:44:08,630 --> 00:44:10,430 E, por suposto, hai tutoriais. 603 00:44:10,430 --> 00:44:12,690 Buscar tutoriais. 604 00:44:12,690 --> 00:44:17,020 Eu atopei unha morea de bos en liña que pode leva-lo até a velocidade 605 00:44:17,020 --> 00:44:20,080 que fragmentos realmente son e como pode usalos. 606 00:44:20,080 --> 00:44:22,240 >> Algunhas destas novas cousas de deseño, como fragmentos, 607 00:44:22,240 --> 00:44:26,840 realmente non ten que estar preocupado a menos que está facendo unha 608 00:44:26,840 --> 00:44:30,560 moi grande no ámbito do proxecto. 609 00:44:30,560 --> 00:44:32,510 Son cousas que Google está intentando borrar dentro 610 00:44:32,510 --> 00:44:35,570 Stackoverflow é, por suposto, o seu amigo. 611 00:44:35,570 --> 00:44:37,930 Espero que eu vendi-lle un pouco sobre Android, 612 00:44:37,930 --> 00:44:41,640 entendendo que é moito máis fácil de achegarse en termos de só a linguaxe de codificación. 613 00:44:41,640 --> 00:44:45,970 Java é que eu diría moito máis doado de entender que Objective-C. 614 00:44:45,970 --> 00:44:50,780 Android está crecendo Penso que moito máis do que o IOS. 615 00:44:50,780 --> 00:44:54,890 É dicir, os datos están aí tamén, alén do que eu penso. 616 00:44:54,890 --> 00:44:56,920 Será en torno a un tempo, 617 00:44:56,920 --> 00:45:00,880 e son poucos anos en termos de seus ciclos de proxecto, 618 00:45:00,880 --> 00:45:04,690 polo que é unha especie de comprensible que eles aínda están a traballar a través de algúns destes 619 00:45:04,690 --> 00:45:09,080 cuestións de consistencia, como esta barra de acción é unha cousa nova para eles, aínda así, 620 00:45:09,080 --> 00:45:16,010 tipo de creación de experiencia de usuario similar en todos os seus apps. 621 00:45:16,010 --> 00:45:20,650 Espero que pode ir adiante agora e abrir Eclipse 622 00:45:20,650 --> 00:45:22,870 e facer as súas propias aplicacións Android. 623 00:45:22,870 --> 00:45:30,240 >> Alguén ten algunha pregunta antes de pechar con algo? 624 00:45:30,240 --> 00:45:34,410 Podo dicir que a resposta é 42. 625 00:45:34,410 --> 00:45:41,990 Ben, todo o mundo feliz, e boa sorte codificación. 626 00:45:41,990 --> 00:45:44,990 [CS50.TV]