1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Seminario] [Aplicaciones Android (Ahora con Jelly Beans!)] 2 00:00:02,610 --> 00:00:04,210 [Jordania Jozwiak] [Universidad de Harvard] 3 00:00:04,210 --> 00:00:06,780 [Este es CS50.] [CS50.TV] 4 00:00:06,780 --> 00:00:11,600 >> Hola a todos, y bienvenidos a Apps Android (Ahora con Jelly Beans!) Seminario. 5 00:00:11,600 --> 00:00:14,530 Se llama Ahora con Jelly Beans, por supuesto, porque 6 00:00:14,530 --> 00:00:17,310 la última versión del sistema operativo se llama Jelly Bean. 7 00:00:17,310 --> 00:00:22,950 Cuando hablé de Android el año pasado y lo hice básicamente mismo seminario 8 00:00:22,950 --> 00:00:29,150 Yo estaba presentando los patrones de diseño y opciones de estilo de pan de jengibre, 9 00:00:29,150 --> 00:00:31,250 a pesar de que Ice Cream Sandwich había salido en ese momento, 10 00:00:31,250 --> 00:00:33,680 y esto es algo de lo que hablaremos en el futuro un poco. 11 00:00:33,680 --> 00:00:35,720 Android, por supuesto, tiene algunos problemas con la fragmentación, 12 00:00:35,720 --> 00:00:40,240 por lo que el último sistema operativo de Google es por lo general 13 00:00:40,240 --> 00:00:44,710 en realidad no va a ser común entre los usuarios potenciales de hasta un año, por desgracia. 14 00:00:44,710 --> 00:00:49,960 >> Pero sin tener en cuenta que, vamos a hablar de un montón de razones por las cuales 15 00:00:49,960 --> 00:00:53,000 Android es mucho mejor que iOS. 16 00:00:53,000 --> 00:00:56,410 Bueno, vamos a hablar de Android frente a iOS, 17 00:00:56,410 --> 00:00:59,770 algunos paradigmas de diseño, cómo va a ponerse en marcha en una sola diapositiva, 18 00:00:59,770 --> 00:01:03,410 y la gran diferencia entre este y el año pasado es sólo quiero 19 00:01:03,410 --> 00:01:06,860 zoom a través de algunas cosas conceptuales que trabajan con 20 00:01:06,860 --> 00:01:09,950 el sistema operativo y, a continuación entra en un ejemplo muy básico. 21 00:01:09,950 --> 00:01:13,730 De hecho, sólo el ejemplo que Google describe para la construcción de su primera aplicación, 22 00:01:13,730 --> 00:01:17,070 y vamos a ir a través de él juntos y simplemente describimos. 23 00:01:17,070 --> 00:01:22,100 >> Sé que muchos de ustedes sólo han codificado en C, por lo que Java ya va a ser 24 00:01:22,100 --> 00:01:27,220 una perspectiva diferente, y de esta manera podrás conseguir sus pies mojados 25 00:01:27,220 --> 00:01:31,540 y sentirse un poco más cómodo con él esperamos. 26 00:01:31,540 --> 00:01:35,330 Un resumen rápido, Android frente a iOS. 27 00:01:35,330 --> 00:01:39,200 En Android hay esta tarifa desarrollador de una sola vez de $ 25, 28 00:01:39,200 --> 00:01:42,390 nada de esto $ 100 por año. 29 00:01:42,390 --> 00:01:45,440 No hay restricciones, lo que significa que si quiero presentar una aplicación, 30 00:01:45,440 --> 00:01:51,560 Me presento, y no hay proceso de aprobación como lo hay para iOS. 31 00:01:51,560 --> 00:01:53,890 Tienes la oportunidad de desarrollar en Java usando Eclipse, 32 00:01:53,890 --> 00:01:57,090 que es multiplataforma, por lo que no importa si usted tiene 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 Por supuesto, con iOS tiene que utilizar XCode en un Mac, 35 00:02:03,730 --> 00:02:06,930 y Android es utilizado por muchas más personas, 36 00:02:06,930 --> 00:02:11,580 así que si usted quiere que su aplicación se ejecute algún tipo de visibilidad o tal vez 37 00:02:11,580 --> 00:02:14,110 hacer un poco de dinero de los anuncios 38 00:02:14,110 --> 00:02:17,450 usted está probablemente más probabilidades de beneficiarse de Android. 39 00:02:17,450 --> 00:02:20,630 >> Y una cosa que siempre se ha conocido sobre Android 40 00:02:20,630 --> 00:02:25,100 es la cantidad de personalización extrema, mientras que iOS es muy fija en sus formas 41 00:02:25,100 --> 00:02:29,380 de manera que puedan mantener la seguridad y el control sobre cada pequeño aspecto 42 00:02:29,380 --> 00:02:34,180 del diseño dentro de su sistema operativo y las aplicaciones individuales. 43 00:02:34,180 --> 00:02:40,180 Android es la forma muy libre, y hay tantas más posibilidades. 44 00:02:40,180 --> 00:02:42,530 Bueno, algunos paradigmas de diseño. 45 00:02:42,530 --> 00:02:49,600 Nótese aquí al igual que iOS tiene tabletas y iPhones e iPod Touch 46 00:02:49,600 --> 00:02:53,840 que tienen que soportar, por ejemplo, como una docena de dispositivos si quieres apoyar 47 00:02:53,840 --> 00:02:55,450 cosas históricas también. 48 00:02:55,450 --> 00:02:58,410 Con Android que tiene que soportar cientos de dispositivos, 49 00:02:58,410 --> 00:03:01,240 así que hay algunas cosas que Google ha estado tratando de poner en práctica 50 00:03:01,240 --> 00:03:04,970 para que el usuario experimente un poco más consistente, 51 00:03:04,970 --> 00:03:08,560 pero también hablaremos de cómo esto significa que hay problemas de fragmentación 52 00:03:08,560 --> 00:03:11,700 que constantemente tienen que ser conscientes de apoyo. 53 00:03:11,700 --> 00:03:16,140 La fragmentación significa que hay muchos sistemas operativos diferentes, 54 00:03:16,140 --> 00:03:20,330 muchos teléfonos diferentes con diferente hardware con Android, todo al mismo tiempo, 55 00:03:20,330 --> 00:03:29,680 por lo que este gráfico aquí se remonta a cerca de 6 meses. 56 00:03:29,680 --> 00:03:36,460 Sí, de 6 meses, y se puede ver como la banda más oscura 57 00:03:36,460 --> 00:03:39,330 en el fondo es Jelly Bean, que salió en el verano, 58 00:03:39,330 --> 00:03:42,970 y se puede ver en estos momentos probablemente alrededor de 2% de los teléfonos que lo tengamos. 59 00:03:42,970 --> 00:03:45,520 >> Ice Cream Sandwich salió hace más de un año, 60 00:03:45,520 --> 00:03:47,770 y una cuarta parte de los teléfonos que lo tengamos. 61 00:03:47,770 --> 00:03:53,910 Todavía hay un montón de teléfonos que usan la versión del sistema operativo desde hace años. 62 00:03:53,910 --> 00:03:57,820 Una cosa que Google ha tratado de hacer para que la experiencia del usuario 63 00:03:57,820 --> 00:04:01,400 mucho más consistente a través de aplicaciones se inicia con Honeycomb, 64 00:04:01,400 --> 00:04:04,320 que es la versión tablet, a continuación, Ice Cream Sandwich y Jelly Bean, 65 00:04:04,320 --> 00:04:06,750 que realmente están tratando de hacer hincapié en el uso de esta barra de acciones, 66 00:04:06,750 --> 00:04:10,430 que es lo que se puede ver en la parte superior aquí, 67 00:04:10,430 --> 00:04:14,730 todo bien aquí, incluyendo este pequeño botón de configuración. 68 00:04:14,730 --> 00:04:16,079 Es la opción de diseño. 69 00:04:16,079 --> 00:04:18,000 Ahora, cada vez que vea los 3 puntos que significa hacer clic en este, 70 00:04:18,000 --> 00:04:21,880 y habrá un menú desplegable, que tiene algún tipo de configuración. 71 00:04:21,880 --> 00:04:28,900 Esto sólo aparece porque hice clic en este botón. 72 00:04:28,900 --> 00:04:32,040 Esto es algo que ellos están tratando de utilizar para hacer que las aplicaciones un poco más consistente 73 00:04:32,040 --> 00:04:39,210 en todos los ámbitos y para que el usuario tenga una mejor idea de la experiencia uniforme. 74 00:04:39,210 --> 00:04:42,640 >> Bueno, por lo que en caso de que no haya hecho ya, o si usted está viendo en casa 75 00:04:42,640 --> 00:04:50,210 entonces usted puede seguir estos pasos para configurar el entorno de codificación. 76 00:04:50,210 --> 00:04:52,630 Esto implicará ir a la página web aquí. 77 00:04:52,630 --> 00:04:56,260 Usted puede buscar en Google instalar SDK Android 78 00:04:56,260 --> 00:04:59,130 y siga algunas descripciones allí. 79 00:04:59,130 --> 00:05:01,310 Te dicen todo. 80 00:05:01,310 --> 00:05:05,160 Tienen que instalar la, descarga Eclipse SDK versión Classic, 81 00:05:05,160 --> 00:05:07,450 aunque, por supuesto, estamos codificación en Java. 82 00:05:07,450 --> 00:05:12,190 Recomiendan éste, y entonces este ADT, las herramientas de desarrollo de Android, 83 00:05:12,190 --> 00:05:17,300 es un plugin que se instala en Eclipse que permite 84 00:05:17,300 --> 00:05:20,550 tener una experiencia mucho más ágil con Android en Eclipse. 85 00:05:20,550 --> 00:05:24,070 Le dará algunas interfaces gráficas de usuario 86 00:05:24,070 --> 00:05:29,610 para el diseño de los puntos de vista, y que le dará mucho más apoyo 87 00:05:29,610 --> 00:05:34,840 y la capacidad para poner en marcha con el emulador y todo ese tipo de cosas. 88 00:05:34,840 --> 00:05:36,090 Marco de aplicación. 89 00:05:36,090 --> 00:05:41,590 >> Quiero hablar acerca de cómo se estructuran los proyectos dentro de Android, 90 00:05:41,590 --> 00:05:44,830 y luego vamos a entrar en un ejemplo rápido, y es de esperar 91 00:05:44,830 --> 00:05:48,820 usted puede hacer preguntas en cualquier momento y sentirse cómodo al final de la misma. 92 00:05:48,820 --> 00:05:50,090 Tenemos primero la jerga. 93 00:05:50,090 --> 00:05:55,330 Una actividad es como la pantalla que aparece al iniciar una aplicación. 94 00:05:55,330 --> 00:05:57,840 Toda la experiencia es la misma actividad, 95 00:05:57,840 --> 00:06:00,790 por lo que podría pensar en él como una pantalla o una vista, 96 00:06:00,790 --> 00:06:04,540 pero en realidad es la parte del código fuente de la misma. 97 00:06:04,540 --> 00:06:12,680 Todavía llamamos la parte real de la misma interfaz de una vista. 98 00:06:12,680 --> 00:06:17,230 Es algo así como la forma en pset 7 tuvimos el controlador y la vista. 99 00:06:17,230 --> 00:06:20,690 La actividad es más o menos el controlador, 100 00:06:20,690 --> 00:06:23,360 y la vista es lo que estamos haciendo en términos de XML 101 00:06:23,360 --> 00:06:25,260 que se asocia con esa actividad. 102 00:06:25,260 --> 00:06:29,340 Los fragmentos son algo que está implementado en Ice Cream Sandwich en el futuro. 103 00:06:29,340 --> 00:06:36,380 Es sólo una idea de tomar parte de la vista o de la actividad 104 00:06:36,380 --> 00:06:39,990 y dividirlos en áreas separadas para que podamos 105 00:06:39,990 --> 00:06:45,030 hacer nuestro código más útil para estos diferentes dispositivos 106 00:06:45,030 --> 00:06:51,890 que tenemos que apoyar, y es sólo una manera de tratar de 107 00:06:51,890 --> 00:06:54,290 También factorizar más código. 108 00:06:54,290 --> 00:07:01,090 Los servicios son de fondo cosas como reproducir música o direcciones de navegación potencialmente. 109 00:07:01,090 --> 00:07:05,640 Los proveedores de contenido, estas son las API dentro del sistema operativo 110 00:07:05,640 --> 00:07:09,070 que le permiten acceder a los datos compartidos, tales como información de contacto, 111 00:07:09,070 --> 00:07:12,790 y la intención es algo que vamos a utilizar cuando se quiere poner en marcha 112 00:07:12,790 --> 00:07:17,210 una nueva actividad de nuestra actividad actual. 113 00:07:17,210 --> 00:07:20,980 >> Hola Android, esto va a ser un proyecto que vamos a hablar. 114 00:07:20,980 --> 00:07:25,410 Yo en realidad lo haga por ti, y luego haré una cosa en la que haga clic en un botón 115 00:07:25,410 --> 00:07:27,650 con un poco de texto y poner en marcha una nueva actividad. 116 00:07:27,650 --> 00:07:30,110 Muy sencillo, pero quiero pasar por 117 00:07:30,110 --> 00:07:34,480 lo que voy a entrar en un proyecto como este. 118 00:07:34,480 --> 00:07:39,260 Al realizar el nuevo proyecto verá dentro de Eclipse 119 00:07:39,260 --> 00:07:41,900 hay este proyecto llamado Hola Android. 120 00:07:41,900 --> 00:07:43,470 Luego hay un montón de carpetas aquí. 121 00:07:43,470 --> 00:07:46,760 Los que usted está realmente preocupado con son la carpeta de origen, 122 00:07:46,760 --> 00:07:54,540 la carpeta de recursos, la res, y en cierta medida la carpeta libs para las bibliotecas. 123 00:07:54,540 --> 00:08:00,070 Y para que quede en la misma página con la 124 00:08:00,070 --> 00:08:03,240 si usted fuera a crear un nuevo proyecto, 125 00:08:03,240 --> 00:08:08,270 usted puede hacer esto aquí, así que si yo quiero llamarlo HelloAndroid, 126 00:08:08,270 --> 00:08:11,100 y luego lo hace automáticamente un montón de información para nosotros. 127 00:08:11,100 --> 00:08:14,110 El nombre del paquete se supone que es un identificador único 128 00:08:14,110 --> 00:08:16,710 que normalmente se asocia con el sitio web, si usted tuviera una. 129 00:08:16,710 --> 00:08:24,430 >> Por ejemplo, voy a llamar a este net.cs50.helloandroid. 130 00:08:24,430 --> 00:08:30,070 Y ya he hecho este proyecto una vez. 131 00:08:30,070 --> 00:08:40,059 Vale, lo siento. Llamémoslo HelloCS50. 132 00:08:40,059 --> 00:08:42,929 Y entonces se le preguntará cosas como qué tipo de icono de qué queremos hacer. 133 00:08:42,929 --> 00:08:48,840 Todo esto es debido a la interfaz Herramientas Desarrolladores de Android, 134 00:08:48,840 --> 00:08:53,350 el plugin que hemos añadido a Eclipse, por lo que puede elegir cosas como 135 00:08:53,350 --> 00:08:58,320 lo que el icono que queremos, y que íbamos a esa profundidad si queremos. 136 00:08:58,320 --> 00:09:04,360 Pero al final, acaba de hacer el proyecto, 137 00:09:04,360 --> 00:09:07,040 y todo lo que se presenta aquí. 138 00:09:07,040 --> 00:09:10,030 Como mostré en la otra pantalla, 139 00:09:10,030 --> 00:09:14,070 tenemos la carpeta de origen, y voy a hablar de lo que todo esto significa poco, 140 00:09:14,070 --> 00:09:19,090 pero se puede ver que de inmediato nos lleva a la pantalla HelloCS50. 141 00:09:19,090 --> 00:09:24,690 Hay algunos botones de aquí para agregar texto y diseños de campo de texto. 142 00:09:24,690 --> 00:09:28,910 Es algo así como XCode, pero por desgracia no es tan eficiente. 143 00:09:28,910 --> 00:09:37,790 Sin embargo, los clips serán su amigo y ADT, en particular, para hacer esto. 144 00:09:37,790 --> 00:09:40,920 >> Bueno, la carpeta de origen es donde 145 00:09:40,920 --> 00:09:43,820 los archivos Java se llevan a cabo, y esto es en realidad el lanzamiento de su programa. 146 00:09:43,820 --> 00:09:45,990 Es básicamente como los controladores. 147 00:09:45,990 --> 00:09:49,020 La carpeta de recursos o de la res es donde vamos a mantener diseños de pantalla, 148 00:09:49,020 --> 00:09:54,110 imágenes, sonidos, texto, animación y todo lo demás, libs, obviamente, bibliotecas. 149 00:09:54,110 --> 00:10:01,700 Y el Manifiesto, es la forma en que el sistema Android sabe 150 00:10:01,700 --> 00:10:03,130 cómo interactuar con la aplicación. 151 00:10:03,130 --> 00:10:07,980 Se dice que sobre los permisos y las actividades que en realidad se puede ejecutar. 152 00:10:07,980 --> 00:10:12,350 Es toda la información esencial que es necesario para ejecutar la aplicación. 153 00:10:12,350 --> 00:10:17,990 La carpeta de origen es-si ampliamos como se puede ver aquí. 154 00:10:17,990 --> 00:10:23,920 Y un ejemplo de que un código sería-este es el código predeterminado. 155 00:10:23,920 --> 00:10:27,930 Como lo llamamos, MainActivity. 156 00:10:27,930 --> 00:10:33,230 De forma predeterminada, se obtiene onCreate, que es una función que se llama cuando se carga esta actividad, 157 00:10:33,230 --> 00:10:37,150 por lo que desea llamar onCreate (savedInstanceState). 158 00:10:37,150 --> 00:10:40,440 Esto restaurará los bits de información 159 00:10:40,440 --> 00:10:44,910 en caso de que se detuvo la aplicación. 160 00:10:44,910 --> 00:10:48,790 >> Hay una actividad gráfica ciclo de vida que se puede ver en 161 00:10:48,790 --> 00:10:50,380 cuando usted consigue un poco más en profundidad en ella, 162 00:10:50,380 --> 00:10:56,210 pero la más importante línea de código existe esta función setContentView 163 00:10:56,210 --> 00:11:00,290 que se cargue el archivo de recursos para el diseño. 164 00:11:00,290 --> 00:11:03,590 Entonces, ¿qué onCreate aquí está haciendo básicamente es que está diciendo 165 00:11:03,590 --> 00:11:07,010 cuando creo esta actividad quiero cargar esta disposición. 166 00:11:07,010 --> 00:11:12,030 Y vamos a hablar de lo que el diseño es de un segundo. 167 00:11:12,030 --> 00:11:16,230 Si nos vamos a poner en marcha que aquí se ve exactamente como esta, 168 00:11:16,230 --> 00:11:22,880 y por defecto porque hemos Eclipse haciendo esto y ADT haciendo por nosotros 169 00:11:22,880 --> 00:11:28,210 Este es todo el código repetitivo que se crea para nosotros, 170 00:11:28,210 --> 00:11:34,630 y podemos seguir adelante y cambiar las cosas que nos gusta. 171 00:11:34,630 --> 00:11:38,190 La carpeta de recursos, como he dicho, aquí es donde tenemos todos los diseños, 172 00:11:38,190 --> 00:11:41,150 dibujables en términos de cualquier tipo de imágenes- 173 00:11:41,150 --> 00:11:46,360 se les llama dibujables-y luego los archivos de sonido, menús. 174 00:11:46,360 --> 00:11:51,170 Es una forma de un montón de XML en una buena manera ordenada. 175 00:11:51,170 --> 00:11:58,030 Como puedes ver, hay. IPAP, LDPI, MDPI y carpetas xhdpi para los dibujables. 176 00:11:58,030 --> 00:12:02,220 Estas son las diferentes densidades de pantalla, los píxeles tan alta densidad por pulgada, 177 00:12:02,220 --> 00:12:05,710 baja densidad, media densidad, alta densidad adicional. 178 00:12:05,710 --> 00:12:08,900 >> Esto es, de nuevo, por lo que puede soportar todos estos diferentes dispositivos, 179 00:12:08,900 --> 00:12:15,100 e idealmente, tendrá diferentes imágenes para cada resolución diferente. 180 00:12:15,100 --> 00:12:20,740 Los diseños son donde incluimos todos los diferentes diseños que se utilizarán en las diferentes actividades. 181 00:12:20,740 --> 00:12:24,150 También podrían incluir disposiciones para fragmentos, 182 00:12:24,150 --> 00:12:26,670 lo que significa básicamente actividades parciales. 183 00:12:26,670 --> 00:12:29,610 Si quieres hacer algo fresco como cuando gira el teléfono 184 00:12:29,610 --> 00:12:33,900 usted desea que tenga un diseño diferente que usted puede hacer diseño-paisaje como una carpeta diferente, 185 00:12:33,900 --> 00:12:39,000 Android y automáticamente tiene un montón de estas normas dentro de la carpeta de recursos, 186 00:12:39,000 --> 00:12:44,690 por lo que saber buscar en diferentes carpetas en función de la configuración actual del teléfono, 187 00:12:44,690 --> 00:12:46,740 qué tipo de hardware que esté utilizando. 188 00:12:46,740 --> 00:12:52,350 Del mismo modo, este valor-v11 aquí y valores-v14 189 00:12:52,350 --> 00:12:55,460 y los valores por defecto carpeta de esto es para- 190 00:12:55,460 --> 00:13:01,730 así, los valores por sí mismo, esto serán los valores por defecto a través de todas las versiones del sistema operativo. 191 00:13:01,730 --> 00:13:06,390 Por otro lado, v11 y v14 corresponden con Honeycomb 192 00:13:06,390 --> 00:13:08,780 y Ice Cream Sandwich, respectivamente. 193 00:13:08,780 --> 00:13:12,800 Una vez más, se trata de formas que-dentro de estas carpetas son diferentes cadenas 194 00:13:12,800 --> 00:13:17,550 y estilos, para que pueda personalizar el aspecto de su aplicación 195 00:13:17,550 --> 00:13:22,660 o posiblemente incluso su funcionalidad, a pesar de que probablemente sería una mala idea, 196 00:13:22,660 --> 00:13:25,890 sobre la base de la versión del sistema operativo. 197 00:13:25,890 --> 00:13:28,760 >> Y hablé de todo esto aquí. 198 00:13:28,760 --> 00:13:35,870 Una vez más, pueden dibujar, primas, el diseño, los valores. 199 00:13:35,870 --> 00:13:41,380 Los valores predeterminados, si entramos en Hola Hola Android o CS50 ahora 200 00:13:41,380 --> 00:13:43,310 será un aspecto como este. 201 00:13:43,310 --> 00:13:45,800 Se dirá hola mundo. 202 00:13:45,800 --> 00:13:58,430 Como se puede ver aquí con el texto Android 203 00:13:58,430 --> 00:14:04,420 el texto de este punto de vista el texto, que es básicamente sólo una etiqueta, 204 00:14:04,420 --> 00:14:06,900 es lo que llamaríamos en iOS. 205 00:14:06,900 --> 00:14:11,580 Tiene esta notación divertido @ string / hello_world. 206 00:14:11,580 --> 00:14:16,200 Esto es lo que puede-que intentar extraer todas las cadenas, 207 00:14:16,200 --> 00:14:19,740 todas las cadenas fijas en Android en una 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 Si miramos aquí, podemos ver que tenemos una cadena fija guardada aquí 210 00:14:29,300 --> 00:14:33,910 para hola mundo, y se llama hola mundo, y esto es una especie de 211 00:14:33,910 --> 00:14:39,230 decisión de diseño común en muchas plataformas que desea- 212 00:14:39,230 --> 00:14:41,780 cadenas son el tipo de cosas que queremos ser potencialmente capaz de cambiar. 213 00:14:41,780 --> 00:14:48,050 No queremos controlar F en nuestro archivo de código fuente en nuestro XML. 214 00:14:48,050 --> 00:14:50,760 Queremos ser capaces de cambiar esto cuando tenemos la oportunidad. 215 00:14:50,760 --> 00:14:53,640 >> Este archivo XML, strings.xml, es una manera de extraer 216 00:14:53,640 --> 00:14:56,710 cadenas fijas que de otro modo, en nuestros recursos de diseño 217 00:14:56,710 --> 00:15:03,530 o en nuestro código fuente. 218 00:15:03,530 --> 00:15:08,190 El Manifiesto es donde guardamos la información esencial acerca de la aplicación. 219 00:15:08,190 --> 00:15:11,050 Incluye el nombre del paquete. Eso tiene que ser un identificador único. 220 00:15:11,050 --> 00:15:16,020 A diferencia de la App Store para iOS los nombres de las aplicaciones 221 00:15:16,020 --> 00:15:19,980 no tiene que ser único, y usted puede de hecho cambiar el nombre de la aplicación 222 00:15:19,980 --> 00:15:23,570 después de enviar, así que si empiezo con Angry Birds, 223 00:15:23,570 --> 00:15:26,840 y luego hago una actualización, y yo no quiero lanzar una nueva versión 224 00:15:26,840 --> 00:15:34,230 Supongo que podría llamarlo Angry Birds 2 mientras estoy en el mismo ciclo de lanzamiento. 225 00:15:34,230 --> 00:15:36,780 Se acaba de aparecer como una actualización. 226 00:15:36,780 --> 00:15:39,790 Lo único que tiene que ser único es el nombre del paquete, 227 00:15:39,790 --> 00:15:41,280 que no mucha gente va a ver. 228 00:15:41,280 --> 00:15:44,680 Bueno, sólo verías si estuvieras mirando el código fuente o si hay algún tipo de error. 229 00:15:44,680 --> 00:15:47,580 Los componentes incluirán actividades, así que tenemos que declarar 230 00:15:47,580 --> 00:15:49,070 cualquier tipo de actividad que utilizamos. 231 00:15:49,070 --> 00:15:53,430 Se trata de un permiso tipo de cosas. 232 00:15:53,460 --> 00:15:58,150 >> Porque Android no tiene este riguroso proceso de aplicación 233 00:15:58,150 --> 00:16:02,210 para la presentación de las aplicaciones sino que simplemente todo lo basan fuera de los permisos 234 00:16:02,210 --> 00:16:04,300 y declarando las cosas en el Manifiesto. 235 00:16:04,300 --> 00:16:06,380 La versión SDK también es importante. 236 00:16:06,380 --> 00:16:10,330 Podemos establecer su uso como SDK versión mínima algo. 237 00:16:10,330 --> 00:16:16,010 Obviamente, usted quiere crear código 238 00:16:16,010 --> 00:16:18,570 y el diseño de los sistemas operativos más recientes. 239 00:16:18,570 --> 00:16:20,840 Quizás no es el más nuevo, tal vez no Jelly Bean. 240 00:16:20,840 --> 00:16:23,610 Tal vez usted quiere diseñar todo para Ice Cream Sandwich, 241 00:16:23,610 --> 00:16:27,120 a pesar de que son más o menos lo mismo en cuanto a las decisiones de diseño 242 00:16:27,120 --> 00:16:30,550 y las bibliotecas reales y API. 243 00:16:30,550 --> 00:16:36,250 Pero en lugar de que la gente 244 00:16:36,250 --> 00:16:40,050 de la original versión de Android-como Donut camino de regreso cuando- 245 00:16:40,050 --> 00:16:43,420 que todavía se esté utilizando que intentan descargar la aplicación y luego decir 246 00:16:43,420 --> 00:16:46,160 no funciona en mi teléfono puede establecer la versión mínima 247 00:16:46,160 --> 00:16:48,620 y tienen que ser Gingerbread o Ice Cream Sandwich 248 00:16:48,620 --> 00:16:53,300 o lo que usted se sienta cómodo presentando. 249 00:16:53,300 --> 00:16:57,170 Y este es un ejemplo del Manifiesto. Podemos mirar a la real en un momento. 250 00:16:57,170 --> 00:17:00,900 >> Bueno, vamos a seguir adelante con la demo. 251 00:17:00,900 --> 00:17:08,900 Esta es la demostración si Google Android construir su primera aplicación o algo por el estilo. 252 00:17:08,900 --> 00:17:12,089 Vamos a pasar por todo lo que está pasando ahí, 253 00:17:12,089 --> 00:17:17,690 y lo siento, sólo por una referencia que aquí sabe Java en un grado? 254 00:17:17,690 --> 00:17:28,310 Bien, Java es nuevo lenguaje de codificación para la mayoría de la gente que sale de CS50. 255 00:17:28,310 --> 00:17:31,850 En pocas palabras, para ir de nuevo lo que dice aquí, 256 00:17:31,850 --> 00:17:35,580 lo que queremos hacer es en lugar de ajustar esta aplicación hola mundo 257 00:17:35,580 --> 00:17:38,620 que lo único que hace es que lanza y dice hola mundo 258 00:17:38,620 --> 00:17:43,580 y dice hola CS50 en la parte superior, porque ese es el nombre de la actividad 259 00:17:43,580 --> 00:17:47,190 vamos a tratar de hacer un campo de texto y un botón 260 00:17:47,190 --> 00:17:50,680 de modo que cuando pulsamos este botón tomará el texto 261 00:17:50,680 --> 00:17:53,660 desde el campo de texto y poner en marcha una nueva actividad, y dirá: 262 00:17:53,660 --> 00:17:58,380 lo que sea que el texto dijo en la actividad, y esto es relativamente simple. 263 00:17:58,380 --> 00:18:00,650 No es muy interesante. Usted no quiere lanzar cualquier aplicación como esta. 264 00:18:00,650 --> 00:18:03,880 Pero demuestra algunas cosas importantes de diseño. 265 00:18:03,880 --> 00:18:07,030 >> Vamos a tener que interactuar con el Manifiesto, con los archivos de diseño, 266 00:18:07,030 --> 00:18:12,440 con el código fuente, y se puede ver cómo poner en marcha una actividad de otro. 267 00:18:19,740 --> 00:18:23,060 Vamos a empezar con el diseño de nuestra primera actividad, 268 00:18:23,060 --> 00:18:27,320 que yo sé que es un poco pequeña, 269 00:18:27,320 --> 00:18:32,660 pero como se puede ver en este momento, todo lo que es es que tiene nuestro logotipo que creamos, 270 00:18:32,660 --> 00:18:36,310 el nombre de la actividad, y dice hola mundo en el centro. 271 00:18:36,310 --> 00:18:40,400 En cambio, yo estoy primero va a convertir esto en un diseño lineal, 272 00:18:40,400 --> 00:18:42,350 una disposición relativa, y estas son todas las cosas 273 00:18:42,350 --> 00:18:45,870 usted podría mirar hacia arriba y valen pasarse en algún momento, en términos de los diseños. 274 00:18:45,870 --> 00:18:47,310 Es muy parecido a HTML. 275 00:18:47,310 --> 00:18:52,640 Dijimos que no es realmente vale la pena conocer, en términos de un sentido programático, 276 00:18:52,640 --> 00:18:55,840 pero hay tantos diseños diferentes que se pueden controlar, 277 00:18:55,840 --> 00:18:57,970 y es como CSS en términos de estilos. 278 00:18:57,970 --> 00:19:01,590 >> Hay mucho que hacer sólo en términos de la estética aquí, 279 00:19:01,590 --> 00:19:08,930 y sí, es vale la pena aprender, pero es el tipo de cosa que usted debe mirar hacia arriba 280 00:19:08,930 --> 00:19:11,810 mientras que usted va y usted siente que necesita algo nuevo. 281 00:19:11,810 --> 00:19:17,030 Puedo tomar ventaja de algunas de las herramientas ADT aquí por lo menos para empezar. 282 00:19:17,030 --> 00:19:21,930 Voy a hacer un campo de texto, y voy a hacer un botón. 283 00:19:21,930 --> 00:19:24,100 Ponlos justo al lado de la otra. 284 00:19:24,100 --> 00:19:28,200 Ya redimensionar adecuadamente. 285 00:19:28,200 --> 00:19:31,320 Lo sentimos, una vez más, volviendo a la diferencia entre el diseño y el diseño lineal relativa, 286 00:19:31,320 --> 00:19:34,830 un diseño lineal da un poco más de funcionalidad 287 00:19:34,830 --> 00:19:38,720 en términos de espacio de relleno y de asegurarse 288 00:19:38,720 --> 00:19:42,790 Nos posicionamos cosas horizontal o verticalmente. 289 00:19:42,790 --> 00:19:46,130 La gran diferencia entre un diseño lineal y una disposición relativa 290 00:19:46,130 --> 00:19:50,250 es la disposición relativa puestos todo en relación con otros puntos de vista, 291 00:19:50,250 --> 00:19:52,630 y lo bueno de esto es que se necesita menos tiempo para dibujar 292 00:19:52,630 --> 00:19:56,120 porque el sistema operativo mira a todo el código y dice que esto va 293 00:19:56,120 --> 00:19:58,270 en relación con esto aquí, aquí. 294 00:19:58,270 --> 00:20:03,170 Esto significa que tiene un menor número de mediciones que un montón de diseños lineales anidados, 295 00:20:03,170 --> 00:20:06,840 lo que tendría que hacer si quería que las cosas van verticalmente aquí. 296 00:20:06,840 --> 00:20:10,510 >> Ya he algunas cosas que van en horizontal, por lo que necesitaría una disposición lineal diferente 297 00:20:10,510 --> 00:20:14,560 para anidar de forma vertical, pero si yo estuviera haciendo una presentación relativa podría decir 298 00:20:14,560 --> 00:20:18,140 mantener este a la izquierda, esta a la derecha y por debajo de estas cosas. 299 00:20:18,140 --> 00:20:21,850 Pero porque yo quiero que llenan ahora voy a utilizar un diseño lineal, 300 00:20:21,850 --> 00:20:24,510 y se puede ver que ya hace un montón de estas cosas para nosotros. 301 00:20:24,510 --> 00:20:28,890 Todas las visitas deben tener una propiedad de ancho y alto, 302 00:20:28,890 --> 00:20:33,410 y este pasa a tener un peso de 1, y esto tiene un peso de 1 303 00:20:33,410 --> 00:20:36,050 para que ocupe todo el espacio. 304 00:20:36,050 --> 00:20:38,460 Sin embargo, la anchura y la altura son las más importantes. 305 00:20:38,460 --> 00:20:45,880 Este campo ID aquí no es importante en el diseño actual 306 00:20:45,880 --> 00:20:49,060 a menos que estemos usando un diseño relativa y decir que podemos referenciar 307 00:20:49,060 --> 00:20:52,990 una posición vista en referencia a otro. 308 00:20:52,990 --> 00:20:56,170 Si tuviéramos una disposición relativa podríamos decir esta posición por debajo de éste 309 00:20:56,170 --> 00:20:59,390 o por encima de este ID, pero esta ID será importante 310 00:20:59,390 --> 00:21:01,660 cuando estamos usando en nuestro código, ya que podemos referenciar 311 00:21:01,660 --> 00:21:05,610 estos puntos de vista individuales de esta manera. 312 00:21:05,610 --> 00:21:10,350 >> Y entonces usted puede ver el requestFocus etiqueta, que es algo que probablemente viste en pset 7. 313 00:21:10,350 --> 00:21:15,370 Hubo una etiqueta enfoque automático o algo por el estilo de uno de los campos. 314 00:21:15,370 --> 00:21:22,100 Y una cosa, por supuesto, podemos hacer lo mismo que en HTML, 315 00:21:22,100 --> 00:21:25,660 y observe una de las cosas buenas de ADT es que autocompletes aquí. 316 00:21:25,660 --> 00:21:29,930 Tal vez no tan bien como lo hizo en XCode, pero lo hace, sin embargo, 317 00:21:29,930 --> 00:21:32,860 y podríamos decir indirecta y luego darle algún tipo de cadena 318 00:21:32,860 --> 00:21:37,070 desea escribir un mensaje, 319 00:21:37,070 --> 00:21:41,300 y si le doy un momento, también cuenta de que tengo un pequeño error aquí 320 00:21:41,300 --> 00:21:44,610 diciendo que debemos utilizar un recurso de cadena para esto, 321 00:21:44,610 --> 00:21:48,820 por lo que si lo dejo hacer algo del trabajo duro para mí 322 00:21:48,820 --> 00:21:57,320 Puedo seleccionar esta cadena, haga refractor Android y el extracto de cadena Android. 323 00:21:57,320 --> 00:22:00,570 Puedo darle un nombre, escribir un mensaje, 324 00:22:00,570 --> 00:22:04,180 y lo que hizo ahora es reemplazado esa cadena codificada 325 00:22:04,180 --> 00:22:07,980 con una referencia a la cadena en. xml de la cuerda, 326 00:22:07,980 --> 00:22:10,200 lo que significa que ahora se trata aquí. 327 00:22:10,200 --> 00:22:15,560 >> Y sé que parece un poco trivial y, como trabajo extra en este punto, 328 00:22:15,560 --> 00:22:17,840 pero cuando usted tiene un montón de cosas, un montón de cuerdas, 329 00:22:17,840 --> 00:22:20,750 eso es muy importante, y en particular para la localización 330 00:22:20,750 --> 00:22:26,920 ya que como he mencionado antes, Android es un sistema operativo muy utilizado a nivel mundial 331 00:22:26,920 --> 00:22:35,950 que sólo tiene que hacer-en los valores o los valores-sp 332 00:22:35,950 --> 00:22:44,320 o algo de inglés o español o en otros idiomas. 333 00:22:44,320 --> 00:22:50,210 Y entonces es probable que no haya tenido esta experiencia aún 334 00:22:50,210 --> 00:22:53,030 ya que no hicimos mucho JavaScript en términos de programación web, 335 00:22:53,030 --> 00:22:56,850 pero también podemos hacer esto campo denominado onClick del botón, 336 00:22:56,850 --> 00:23:02,350 y esta es una manera de referencia dentro de nuestro diseño 337 00:23:02,350 --> 00:23:06,570 que queremos una determinada función que se llamará en nuestro código fuente. 338 00:23:06,570 --> 00:23:09,420 Voy a llamar a este sendMessage, 339 00:23:09,420 --> 00:23:13,390 y con el fin de hacer este trabajo que significa en la actividad principal aquí 340 00:23:13,390 --> 00:23:19,180 Voy a tener que crear una función que es público 341 00:23:19,180 --> 00:23:22,250 de modo que se puede acceder por el diseño. 342 00:23:22,250 --> 00:23:25,930 Es nula porque simplemente no quiere que se devuelve nada. 343 00:23:25,930 --> 00:23:37,760 Lo llamaremos sendMessage, y se necesita un punto de vista, 344 00:23:37,760 --> 00:23:43,690 que es una especie de contexto que podemos anclar este método 345 00:23:43,690 --> 00:23:47,160 a la vista individual cuando estamos ejecutándolo. 346 00:23:47,160 --> 00:23:50,090 >> Y yo no sé si te has dado cuenta, bueno, usted no ha notado, 347 00:23:50,090 --> 00:24:02,370 pero en este momento aquí 348 00:24:02,370 --> 00:24:06,930 este punto de vista es un tipo que aún no se ha incluido, 349 00:24:06,930 --> 00:24:10,630 y por supuesto, todos ustedes saben acerca de CS50 sin incluir los tipos. 350 00:24:10,630 --> 00:24:13,120 Lo bueno de como Eclipse IDE es que 351 00:24:13,120 --> 00:24:17,520 si se olvida de incluir un tipo que subrayará con un poco de rojo squiggly 352 00:24:17,520 --> 00:24:19,680 y luego le dan la opción de importar la vista. 353 00:24:19,680 --> 00:24:23,130 Una forma rápida de hacerlo es control de cambios O, y se importará 354 00:24:23,130 --> 00:24:27,070 todos los archivos que necesita para. 355 00:24:27,070 --> 00:24:33,670 Ahora que tenemos esta función sendMessage, 356 00:24:33,670 --> 00:24:46,560 que va a enviar el mensaje de la MainActivity a una nueva actividad, 357 00:24:46,560 --> 00:24:55,230 vamos a tener que usar la intención de poner en marcha la nueva actividad de éste, 358 00:24:55,230 --> 00:25:02,240 así que probablemente queremos crear una constante global o también en particular una constante pública 359 00:25:02,240 --> 00:25:06,240 que le ayudará a saber cómo vamos a hacer referencia a la cadena de 360 00:25:06,240 --> 00:25:09,090 porque cuando creamos un intento no sólo estamos llamando a una nueva actividad, 361 00:25:09,090 --> 00:25:11,520 pero también podemos darle un paquete de información. 362 00:25:11,520 --> 00:25:14,720 Un paquete es realmente el término que utiliza Android, 363 00:25:14,720 --> 00:25:21,470 y es una manera de decir le dan datos adicionales, que no puede ser de un tipo de datos muy sofisticada, 364 00:25:21,470 --> 00:25:24,510 pero definitivamente podemos incluir booleanos o cadenas o ints. 365 00:25:24,510 --> 00:25:29,750 Ese tipo de cosas. 366 00:25:29,750 --> 00:25:34,230 >> No dude en preguntar acerca de cualquiera de estos calificativos 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úblico es el importante. 369 00:25:38,610 --> 00:25:47,090 Esto significa que podemos acceder a esta variable de otros archivos de código fuente 370 00:25:47,090 --> 00:25:49,590 por ejemplo, cuando se crea una nueva actividad. 371 00:25:49,590 --> 00:25:52,190 Podemos hacer referencia a la cadena dentro de este archivo. 372 00:25:52,190 --> 00:25:57,160 Si es privado, significa que está limitado a este archivo individual aquí. 373 00:25:57,160 --> 00:26:02,430 Pero vamos a llamar a este algo como mensaje adicional. 374 00:26:16,260 --> 00:26:23,300 Ahora hemos realizado esta función, y si hacemos clic en el botón, se llamará a esta función. 375 00:26:23,300 --> 00:26:27,970 Pero no hemos hecho nada, obviamente, con la función. 376 00:26:27,970 --> 00:26:33,130 Lo que queremos hacer ahora es crear una nueva actividad, 377 00:26:33,130 --> 00:26:35,350 en realidad se puso en marcha la actividad. 378 00:26:35,350 --> 00:26:44,330 En Eclipse podemos decir nueva, la actividad de Android, la actividad en blanco. 379 00:26:44,330 --> 00:26:46,530 Podemos darle un nombre. 380 00:26:46,530 --> 00:26:57,050 Digamos que es nuestra actividad resultado. 381 00:26:57,050 --> 00:27:04,430 Y a continuación, este campo matriz jerárquica es una forma de especificar 382 00:27:04,430 --> 00:27:08,180 cómo las actividades están relacionadas entre sí. 383 00:27:08,180 --> 00:27:11,020 Porque éste se pondrá en marcha a partir de la otra actividad 384 00:27:11,020 --> 00:27:27,520 debemos especificar que tiene la actividad principal. 385 00:27:27,520 --> 00:27:31,220 >> Y yo podría haber hecho clic en el siguiente campo existe, lo que nos han dicho 386 00:27:31,220 --> 00:27:33,830 algunos campos opcionales que también fue incluido, 387 00:27:33,830 --> 00:27:38,800 pero lo bueno de ADT, una vez más, es que si me desplazo hasta aquí 388 00:27:38,800 --> 00:27:45,740 en el Manifiesto que recordar que todo esto realmente fue incluido por defecto 389 00:27:45,740 --> 00:27:48,930 cuando se creó originalmente el proyecto, 390 00:27:48,930 --> 00:27:53,090 y ahora ya hemos utilizado este crea una nueva actividad y no sólo 391 00:27:53,090 --> 00:27:58,610 añadiendo nuestro propio archivo de clase porque nos fuimos a través de su interfaz gráfica de usuario para hacer esto 392 00:27:58,610 --> 00:28:01,930 ya todo esto añade al manifiesto para nosotros, 393 00:28:01,930 --> 00:28:06,020 que simplemente significa que ahora el sistema operativo no se quejará 394 00:28:06,020 --> 00:28:09,400 cuando tratamos de poner en marcha esta actividad. 395 00:28:09,400 --> 00:28:14,620 Y también, por supuesto, que dio una etiqueta, que también se muestra en las cadenas. 396 00:28:14,620 --> 00:28:17,340 Hace un montón de cosas en la parte de atrás para nosotros. 397 00:28:17,340 --> 00:28:20,140 De todos modos, ahora que tenemos esta actividad resultado así, 398 00:28:20,140 --> 00:28:23,810 el archivo de código fuente real de la carpeta de origen, 399 00:28:23,810 --> 00:28:33,540 y se puede ver a referirme brevemente a esta- 400 00:28:33,540 --> 00:28:37,790 porque nos dijeron que sobre esta matriz jerárquica 401 00:28:37,790 --> 00:28:46,640 dio este campo android.r.ide.home en este onOption lo seleccionado. 402 00:28:46,640 --> 00:28:49,020 >> Lo que está diciendo básicamente es que hay un botón de menú ahora 403 00:28:49,020 --> 00:28:53,110 que en la esquina superior izquierda de la pantalla 404 00:28:53,110 --> 00:29:02,220 si vuelvo a ir a la presentación de PowerPoint que hablamos por primera vez sobre la barra de acción 405 00:29:02,220 --> 00:29:05,380 debido a que el padre jerárquica ahora hay una pequeña flecha de vuelta aquí 406 00:29:05,380 --> 00:29:10,610 y esto se puede hacer clic, así que deberíamos ser capaces, después de que en realidad corre esta aplicación- 407 00:29:10,610 --> 00:29:15,360 volver, y es una manera de salvarnos un poco de código allí. 408 00:29:26,220 --> 00:29:40,180 Ahora, dentro de este, bueno, parece que se quejan de que por un momento. 409 00:29:40,180 --> 00:29:43,910 Vamos a comentar eso. 410 00:29:43,910 --> 00:29:48,260 Ahora, con el fin de interactuar efectivamente con estas actividades 2, 411 00:29:48,260 --> 00:29:55,020 tenemos que crear una intención que incluye todos estos datos. 412 00:29:55,020 --> 00:29:58,950 En sendMessage ahora me voy a navegar a través de algunos trozos de código 413 00:29:58,950 --> 00:30:00,700 y explico que como voy. 414 00:30:00,700 --> 00:30:06,280 La intención, como he dicho, es una manera de poner en marcha una actividad de otro. 415 00:30:06,280 --> 00:30:10,000 Intención es el tipo. Estamos creando un myIntent variable. 416 00:30:10,000 --> 00:30:13,980 >> Y esto es en realidad un objeto, por lo que tenemos que llamar a nueva. 417 00:30:13,980 --> 00:30:18,500 Es común el uso de Java no, lo que podría tomar un poco de tiempo para acostumbrarse. 418 00:30:18,500 --> 00:30:23,900 Esto significa que estamos utilizando la actividad o la MainActivity clase, 419 00:30:23,900 --> 00:30:28,630 y la intención de esta manera toma la actividad que va a 420 00:30:28,630 --> 00:30:36,060 y la actividad que va a, lo que llamamos ResultActivity, 421 00:30:36,060 --> 00:30:38,170 y que es su propia clase. 422 00:30:38,170 --> 00:30:41,720 Incluya eso. 423 00:30:41,720 --> 00:30:47,370 Y entonces, como he mencionado antes, le dimos ese ID en el campo de edición de texto 424 00:30:47,370 --> 00:30:53,710 y la vista de texto, por lo que con el fin de capturar mediante programación 425 00:30:53,710 --> 00:31:01,860 el texto que existe en el EDITTEXT 426 00:31:01,860 --> 00:31:06,710 usamos esta función llamada findViewById, 427 00:31:06,710 --> 00:31:13,660 que es similar a algo que va a utilizar cuando se trata de obtener los campos de la DOM. 428 00:31:13,660 --> 00:31:17,560 Tal vez David habla de esto en conferencia. 429 00:31:17,560 --> 00:31:26,600 Pero es sólo una manera de conseguir los-por eso nos marcamos estas cosas con esos campos. 430 00:31:26,600 --> 00:31:31,110 Id.editText1. 431 00:31:31,110 --> 00:31:35,220 Ya está autocompletar para mí. 432 00:31:35,220 --> 00:31:42,010 >> Y entonces también incluiremos-este EDITTEXT ahora que tenemos el campo 433 00:31:42,010 --> 00:31:47,640 dentro de nuestro programa, lo único que hizo fue básicamente findViewById 434 00:31:47,640 --> 00:31:50,870 usted podría pensar en él como nos dan una referencia a esa EDITTEXT. 435 00:31:50,870 --> 00:31:54,570 Ahora queremos que la cadena o el mensaje 436 00:31:54,570 --> 00:32:00,670 dentro de ese EDITTEXT que podemos hacer mediante el uso de la 437 00:32:00,670 --> 00:32:03,360 usted podría pensar EDITTEXT como una estructura- 438 00:32:03,360 --> 00:32:07,600 lo llamamos un objeto en Java, con un montón de diferentes métodos 439 00:32:07,600 --> 00:32:10,650 o de los campos y los atributos que se le atribuye. 440 00:32:10,650 --> 00:32:15,510 Cuando digo EDITTEXT. me da la oportunidad de acceder a 441 00:32:15,510 --> 00:32:19,770 un método como getText, que conseguirá el texto actual 442 00:32:19,770 --> 00:32:23,990 en ese EDITTEXT y luego convertir esa manera explícita 443 00:32:23,990 --> 00:32:26,520 en una cadena, y hemos guardado el mensaje. 444 00:32:26,520 --> 00:32:32,730 Ahora que realmente queremos hacer algo con esa intención se creó hace unos momentos. 445 00:32:32,730 --> 00:32:40,250 Pondré adicional como se le llama en el intento, 446 00:32:40,250 --> 00:32:43,330 que, de nuevo, como he dicho antes, esta es una manera de crear el paquete 447 00:32:43,330 --> 00:32:45,980 con un montón de datos. 448 00:32:45,980 --> 00:32:50,920 Mensaje Extra es nuestra etiqueta, así que sabemos lo que estamos ahorrando este bajo, 449 00:32:50,920 --> 00:32:56,700 y estoy incluyendo el mensaje. 450 00:32:56,700 --> 00:33:04,870 >> Y entonces podemos realmente empezar la actividad dándole el myIntent parámetro. 451 00:33:04,870 --> 00:33:10,630 Y esto va a poner en marcha la actividad, por lo que ahora ya he actualizado a Windows 8 452 00:33:10,630 --> 00:33:15,870 puede haber algunos errores que aparecen brevemente, pero tratar de ignorarlos. 453 00:33:28,010 --> 00:33:30,310 Y este es el emulador de Android. 454 00:33:30,310 --> 00:33:33,540 Esperemos que el código será hecho estallar para arriba en un momento. 455 00:33:33,540 --> 00:33:36,680 Una vez más, haciendo caso omiso de todas esas pequeñas cosas. 456 00:33:36,680 --> 00:33:42,290 Pero el emulador de Android que puede emular cualquier versión del sistema operativo 457 00:33:42,290 --> 00:33:45,180 de los más antiguos, buñuelo, pan de jengibre. 458 00:33:45,180 --> 00:33:49,640 Se trata de Jelly Bean 4.1. 459 00:33:49,640 --> 00:33:53,150 Pero como se puede ver en este momento, esto es algo que tomamos. 460 00:33:53,150 --> 00:33:55,780 Esto tiene la MainActivity, la EDITTEXT, el botón. 461 00:33:55,780 --> 00:34:01,550 Puedo escribir algo aquí, pero lo que nos falta en este momento? 462 00:34:01,550 --> 00:34:05,190 Hicimos el campo en el MainActivity que va a enviar el mensaje 463 00:34:05,190 --> 00:34:08,570 a la otra actividad, pero en este momento 464 00:34:08,570 --> 00:34:12,330 no hemos hecho nada en la otra actividad, por lo que no va a recibir nada. 465 00:34:12,330 --> 00:34:18,800 Vamos a terminar hasta que la parte antes de seguir adelante. 466 00:34:18,800 --> 00:34:25,760 >> Esta actividad resultado, lo que tendremos que hacer es que tendremos que hacer es que necesitaremos- 467 00:34:25,760 --> 00:34:30,070 también podemos hacer referencia a la intención dentro de esta actividad, 468 00:34:30,070 --> 00:34:33,580 así que tenemos que captar la intención, que es muy simple. 469 00:34:33,580 --> 00:34:40,780 Es una función incluida en la clase de actividad, 470 00:34:40,780 --> 00:34:47,610 así que sólo podemos decir "conseguir el mensaje de la intención." 471 00:34:47,610 --> 00:34:56,260 "MyIntent Intento = getIntent." 472 00:34:56,260 --> 00:35:00,030 Y esto nos dará, ahora myIntent es un objeto, 473 00:35:00,030 --> 00:35:05,380 que es una referencia a la intención de que nos condujo a esta actividad. 474 00:35:05,380 --> 00:35:10,130 MainActivity llama y da la información adicional que resulte actividad. 475 00:35:10,130 --> 00:35:14,070 Resultado de la actividad ahora se ve en la intención que llevó aquí, 476 00:35:14,070 --> 00:35:23,540 y podemos acceder al mensaje que hemos creado en el otro, 477 00:35:23,540 --> 00:35:26,370 getStringExtra, y esto se autocomplete para mí. 478 00:35:26,370 --> 00:35:31,190 Y a continuación, recordar, la manera en que etiquetamos esa pizca de datos 479 00:35:31,190 --> 00:35:38,400 estaba dándole este campo aquí, esta cadena pública, 480 00:35:38,400 --> 00:35:42,080 que es la etiqueta de la cadena que realmente incluido. 481 00:35:42,080 --> 00:35:48,450 >> Si digo MainActivity.Extra_Message 482 00:35:48,450 --> 00:35:52,200 es justo ahí, y esto es algo así como el nombre del parámetro 483 00:35:52,200 --> 00:35:55,330 cuando pasamos código desde el controlador a la plantilla, 484 00:35:55,330 --> 00:35:57,680 cuando decíamos título arrow algo. 485 00:35:57,680 --> 00:36:01,140 Es el mismo tipo de idea allí. 486 00:36:01,140 --> 00:36:07,130 Ahora, recuerde esto. 487 00:36:07,130 --> 00:36:12,230 También tuvimos el auto creados o generados de código auto 488 00:36:12,230 --> 00:36:16,410 para la actividad de resultado, que incluye la vista de texto en el medio 489 00:36:16,410 --> 00:36:19,690 que dice hola mundo. 490 00:36:19,690 --> 00:36:27,510 Potencialmente Podríamos hacer que más grande. 491 00:36:27,510 --> 00:36:33,980 Vamos a hacer eso primero. 492 00:36:33,980 --> 00:36:39,550 Podríamos hacerlo densidad 40 píxeles independientes. 493 00:36:39,550 --> 00:36:42,670 Vamos a ver, que es super enorme. Eso estará bien. 494 00:36:42,670 --> 00:36:48,180 Y luego para hacer referencia a esta vista de texto individual dentro de nuestro código 495 00:36:48,180 --> 00:36:53,890 tendremos que darle una identificación, 496 00:36:53,890 --> 00:36:58,350 y con el fin de hacer eso decimos @ + id, lo que significa que asignamos ID. 497 00:36:58,350 --> 00:37:02,480 Si simplemente dijimos @ id asumiría estamos referencia a un ID que ya existe, 498 00:37:02,480 --> 00:37:07,760 y vamos a llamar a este nuestro resultTextView. 499 00:37:07,760 --> 00:37:10,570 Y observe que en XML que no hay necesidad de un punto y coma, ni nada. 500 00:37:10,570 --> 00:37:12,380 Todo está dentro de estas etiquetas. 501 00:37:12,380 --> 00:37:15,530 Es muy similar al HTML en muchos sentidos. 502 00:37:15,530 --> 00:37:22,760 >> Toma un poco de tiempo para acostumbrarse, pero con el tiempo se sentirá muy cómodo con él. 503 00:37:22,760 --> 00:37:31,320 Vamos a actualizar el texto de nuestro texto ver resultado, 504 00:37:31,320 --> 00:37:35,650 y como lo hicimos cuando nos íbamos a ese campo de edición de texto en nuestra otra actividad 505 00:37:35,650 --> 00:37:46,630 en MainActivity Aquí también lo mismo- 506 00:37:46,630 --> 00:37:54,890 encontraremos el punto de vista de la identificación. 507 00:37:54,890 --> 00:37:59,640 Y, R, en caso de que no lo mencioné antes, es la referencia a nuestra carpeta de recursos, 508 00:37:59,640 --> 00:38:05,350 y luego ID es una referencia para todo lo que en la carpeta de recursos, todos los identificadores de, 509 00:38:05,350 --> 00:38:10,060 y resultTextView. 510 00:38:10,060 --> 00:38:13,010 Y al igual que antes, resultTextView es un objeto, 511 00:38:13,010 --> 00:38:15,780 que significa que tiene todas estas propiedades asociados. 512 00:38:15,780 --> 00:38:20,610 Cuando usamos getText para la edición de texto en este campo de texto o en la vista de texto 513 00:38:20,610 --> 00:38:23,980 de que podamos usar setText, 514 00:38:23,980 --> 00:38:26,960 y luego ya nos encontramos el mensaje de la intención, 515 00:38:26,960 --> 00:38:35,760 por lo que puedo decir el mensaje, y esto va a configurar el mensaje. 516 00:38:35,760 --> 00:38:41,820 >> Se toma un momento para poner en marcha, y entonces podemos ver si se bloquea, 517 00:38:41,820 --> 00:38:48,670 pero alguna pregunta sobre ese proceso justo ahí, ese tipo de interacción? 518 00:38:48,670 --> 00:38:51,490 En muchos sentidos, es sencillo. 519 00:38:51,490 --> 00:38:53,960 La razón por la que estoy pasando por algo relativamente sencillo 520 00:38:53,960 --> 00:38:57,330 es, de nuevo, porque se llega a ver la interacción entre el diseño, 521 00:38:57,330 --> 00:38:59,520 El código fuente, la forma en que las cosas referencia 522 00:38:59,520 --> 00:39:07,680 y tal vez un poco de la exposición a la forma en Java trabaja allí. 523 00:39:07,680 --> 00:39:16,500 Si yo en realidad escribo algo aquí, como ohai, y luego haga clic en el botón, 524 00:39:16,500 --> 00:39:22,260 pone en marcha una nueva actividad, y que vista de texto dice ohai. 525 00:39:22,260 --> 00:39:27,640 Eso es muy simple, pero espero que después de que el ejemplo 526 00:39:27,640 --> 00:39:32,310 que suerte de ver cómo funciona esta interacción, y ahora ese lío de archivos 527 00:39:32,310 --> 00:39:36,870 en la parte izquierda de estas carpetas de proyecto, con suerte usted sabe dónde mirar. 528 00:39:36,870 --> 00:39:38,700 Esta es su área de código fuente. 529 00:39:38,700 --> 00:39:41,760 >> El diseño es realmente la única cosa que va a lidiar con hasta incluir imágenes 530 00:39:41,760 --> 00:39:46,370 y los dibujables o lo que sea, y los valores, que incluirán cadenas, 531 00:39:46,370 --> 00:39:51,960 como hemos mencionado, y estilos es algo que es algo así como CSS. 532 00:39:51,960 --> 00:39:56,410 Dirección cuando quiera, pero hasta que se sienta cómodo con la adición de toque extra 533 00:39:56,410 --> 00:40:02,520 a su solicitud, no hay necesidad de preocuparse demasiado. 534 00:40:02,520 --> 00:40:07,410 Sólo para concluir otra cosa que sin duda desea incluir- 535 00:40:07,410 --> 00:40:13,010 suponiendo que se desea integrar funciones interesantes y ahorrarse algunos extras coding- 536 00:40:13,010 --> 00:40:16,460 sería incluir bibliotecas tercera parte. 537 00:40:16,460 --> 00:40:19,840 Aquí está el pequeño androide con el sombrero de Sherlock Holmes. 538 00:40:19,840 --> 00:40:23,040 Se trata de una barra de acciones biblioteca Sherlock, 539 00:40:23,040 --> 00:40:25,390 lo que básicamente significa que la barra de acción que vimos antes, 540 00:40:25,390 --> 00:40:29,590 que ahora es estándar en Ice Cream Sandwich y Jelly Bean, 541 00:40:29,590 --> 00:40:33,100 si usted quiere traer ese tipo de experiencia de usuario para los usuarios de versiones anteriores 542 00:40:33,100 --> 00:40:39,290 y ahorrarse de tener que preocuparse acerca de cómo el usuario va a navegar 543 00:40:39,290 --> 00:40:42,490 en versiones anteriores, cuando eso no es allí puede incluir esta biblioteca 544 00:40:42,490 --> 00:40:46,770 y luego sólo tienes que referencia en lugar del Android por defecto 545 00:40:46,770 --> 00:40:50,250 bibliotecas de la barra de acciones, que hacen referencia a esta biblioteca de soporte. 546 00:40:50,250 --> 00:40:53,090 >> Cosas como Scoreloop, es grande si usted va a incluir una partida. 547 00:40:53,090 --> 00:40:57,280 Permite agregar tablas de clasificación y logros a los juegos. 548 00:40:57,280 --> 00:41:00,900 AdMob es una forma de poner anuncios en sus aplicaciones 549 00:41:00,900 --> 00:41:02,900 en caso de que quiera hacer un poco de dinero con él. 550 00:41:02,900 --> 00:41:05,730 Por supuesto, no es Facebook y Twitter para la integración no 551 00:41:05,730 --> 00:41:08,170 si usted quiere compartir cosas con facilidad, et cetera. 552 00:41:08,170 --> 00:41:15,120 Dropbox, del mismo modo, y Google Analytics es esa carta busca nadie. 553 00:41:15,120 --> 00:41:19,070 Eso será muy importante si usted realmente quiere ver quién está interactuando 554 00:41:19,070 --> 00:41:25,800 con su aplicación o quién es, cómo interactúan, et cetera. 555 00:41:25,800 --> 00:41:30,650 Google, por defecto, le dice un montón de estadísticas sobre quién ha instalado su aplicación 556 00:41:30,650 --> 00:41:35,020 y lo que los teléfonos que tienen, qué versiones del sistema operativo que tenga. 557 00:41:35,020 --> 00:41:38,080 Pero si usted quiere ver que lo está utilizando a diario y cómo lo utilizan 558 00:41:38,080 --> 00:41:42,860 entonces usted querrá incluir algún tipo de sistema de seguimiento de esa manera. 559 00:41:42,860 --> 00:41:44,990 >> Cuando esté listo para distribuir su aplicación 560 00:41:44,990 --> 00:41:46,930 No necesito entrar en eso en demasiada profundidad. 561 00:41:46,930 --> 00:41:49,090 Haz clic en el enlace de aquí, Google Play. 562 00:41:49,090 --> 00:41:51,080 Lo que solía ser el mercado Android. 563 00:41:51,080 --> 00:41:53,470 Ellos marcaron de nuevo todo con Google Play, 564 00:41:53,470 --> 00:41:55,230 por lo que ahora se somete a eso. 565 00:41:55,230 --> 00:41:57,140 Es muy sencillo. 566 00:41:57,140 --> 00:42:01,070 Usted tiene que incluir una descripción, algunas capturas de pantalla. 567 00:42:01,070 --> 00:42:05,660 Como he dicho, no hay proceso de aprobación como iOS. 568 00:42:05,660 --> 00:42:07,270 ¿Y dónde ir desde aquí? 569 00:42:07,270 --> 00:42:09,450 Les mostré un ejemplo muy simple. 570 00:42:09,450 --> 00:42:13,270 Esperemos que si parece terriblemente sencilla 571 00:42:13,270 --> 00:42:15,740 entonces eso es probablemente una buena señal. 572 00:42:15,740 --> 00:42:20,080 Si usted en todo sentido un poco confuso o inseguro sobre exactamente lo que estaba escribiendo 573 00:42:20,080 --> 00:42:26,160 eso es también muy bien, pero a partir de aquí ir a Guías de Google. 574 00:42:26,160 --> 00:42:28,330 Este es un gran lugar para comenzar. 575 00:42:28,330 --> 00:42:31,460 Se va a hablar a través de lo que esperan en términos del diseño de la aplicación, 576 00:42:31,460 --> 00:42:33,380 cómo los usuarios interactúan normalmente con ella. 577 00:42:33,380 --> 00:42:36,450 Es mucho más de forma libre que iOS, yo diría, 578 00:42:36,450 --> 00:42:41,330 que parece que las vistas de tabla son-no sé, ese es su pan y mantequilla. 579 00:42:41,330 --> 00:42:44,690 Todo es una vista de tabla se deslice hacia arriba y hacia abajo. 580 00:42:44,690 --> 00:42:48,160 Con Android definitivamente animar a la gente a mirar las cosas desde 581 00:42:48,160 --> 00:42:51,720 un montón de diferentes perspectivas. 582 00:42:51,720 --> 00:42:56,000 >> Cuando se incluye el kit de desarrollo de software en este ADT 583 00:42:56,000 --> 00:43:03,010 por defecto tiene un montón de proyectos de ejemplo en Android. 584 00:43:03,010 --> 00:43:05,470 Aquí, Android, Android proyecto de ejemplo. 585 00:43:05,470 --> 00:43:11,870 Si hago clic en eso, entonces puedo elegir una versión para que la muestra se aplican los proyectos. 586 00:43:11,870 --> 00:43:13,300 Hay un montón de cosas diferentes aquí. 587 00:43:13,300 --> 00:43:16,690 Se comienza con la acción de compatibilidad bar, 588 00:43:16,690 --> 00:43:24,610 juego acelerómetro, copia de seguridad y restauración, Bluetooth, constructor gesto. 589 00:43:24,610 --> 00:43:28,930 Jetboy es un juego de muestras que te dan, como es LunarLander. 590 00:43:28,930 --> 00:43:31,250 Hay un montón de aplicaciones de ejemplo aquí, 591 00:43:31,250 --> 00:43:35,290 y todos ellos están dirigidos a diferentes aspectos de la API de Android, 592 00:43:35,290 --> 00:43:41,520 y la idea es que mientras hace su aplicación 593 00:43:41,520 --> 00:43:44,110 usted no tiene que aprender todo acerca de Android para hacer una aplicación para Android. 594 00:43:44,110 --> 00:43:47,300 Sólo tienes que aprender sobre las partes que en realidad está pasando a utilizar. 595 00:43:47,300 --> 00:43:49,340 Mira estas bibliotecas de la muestra. 596 00:43:49,340 --> 00:43:51,510 Siéntase libre de copiar y pegar el código y vuelva a aplicarlo. 597 00:43:51,510 --> 00:43:53,850 Es una gran cosa para mirar el código más difícil 598 00:43:53,850 --> 00:43:57,060 y tratar de entender lo que es, por supuesto, ¿por qué en CS50 599 00:43:57,060 --> 00:44:01,510 que a menudo le dan una gran cantidad de código fuente. 600 00:44:01,510 --> 00:44:04,620 Mira algunos de estos si vas a utilizar las bibliotecas similares 601 00:44:04,620 --> 00:44:08,630 y luego aplicarlo a su propio código. 602 00:44:08,630 --> 00:44:10,430 Y por supuesto, hay tutoriales. 603 00:44:10,430 --> 00:44:12,690 Búsqueda de tutoriales. 604 00:44:12,690 --> 00:44:17,020 Me encontré con un montón de buenos en línea que le puede traer a la velocidad 605 00:44:17,020 --> 00:44:20,080 con lo que en realidad son fragmentos y cómo puede utilizarlos. 606 00:44:20,080 --> 00:44:22,240 >> Algunas de estas nuevas cosas de diseño, como fragmentos, 607 00:44:22,240 --> 00:44:26,840 usted realmente no tiene que preocuparse a menos que usted está haciendo una 608 00:44:26,840 --> 00:44:30,560 muy importante en el alcance del proyecto. 609 00:44:30,560 --> 00:44:32,510 Son cosas que Google está tratando de eliminar pulg 610 00:44:32,510 --> 00:44:35,570 Stackoverflow es, por supuesto, su amigo. 611 00:44:35,570 --> 00:44:37,930 Espero que vendí un poco en Android, 612 00:44:37,930 --> 00:44:41,640 darse cuenta que es mucho más fácil de abordar en términos de sólo el lenguaje de codificación. 613 00:44:41,640 --> 00:44:45,970 Java es yo diría que mucho más fácil de entender que Objective-C. 614 00:44:45,970 --> 00:44:50,780 Android está creciendo creo que mucho más que iOS. 615 00:44:50,780 --> 00:44:54,890 Es decir, los datos están ahí también, al margen de lo que pienso. 616 00:44:54,890 --> 00:44:56,920 Todo va a estar allí por un tiempo, 617 00:44:56,920 --> 00:45:00,880 y son un par de años atrás en términos de sus ciclos de diseño, 618 00:45:00,880 --> 00:45:04,690 por lo que es una especie de comprensible que todavía están trabajando a través de algunos de estos 619 00:45:04,690 --> 00:45:09,080 cuestiones de coherencia, de esta barra de acciones es una cosa nueva para ellos todavía, 620 00:45:09,080 --> 00:45:16,010 especie de la creación de experiencia de usuario similar a través de todas sus aplicaciones. 621 00:45:16,010 --> 00:45:20,650 Esperemos que se puede ir hacia adelante ahora y abrir Eclipse 622 00:45:20,650 --> 00:45:22,870 y hacer sus propias aplicaciones de Android. 623 00:45:22,870 --> 00:45:30,240 >> ¿Alguien tiene alguna pregunta antes de que nos envolvemos en nada? 624 00:45:30,240 --> 00:45:34,410 Te puedo decir que la respuesta es 42. 625 00:45:34,410 --> 00:45:41,990 Bueno, feliz de codificación a todos, y buena suerte. 626 00:45:41,990 --> 00:45:44,990 [CS50.TV]