[Powered by Google Translate] [Seminario] [Aplicaciones Android (Ahora con Jelly Beans!)]
[Jordania Jozwiak] [Universidad de Harvard]
[Este es CS50.] [CS50.TV]
>> Hola a todos, y bienvenidos a Apps Android (Ahora con Jelly Beans!) Seminario.
Se llama Ahora con Jelly Beans, por supuesto, porque
la última versión del sistema operativo se llama Jelly Bean.
Cuando hablé de Android el año pasado y lo hice básicamente mismo seminario
Yo estaba presentando los patrones de diseño y opciones de estilo de pan de jengibre,
a pesar de que Ice Cream Sandwich había salido en ese momento,
y esto es algo de lo que hablaremos en el futuro un poco.
Android, por supuesto, tiene algunos problemas con la fragmentación,
por lo que el último sistema operativo de Google es por lo general
en realidad no va a ser común entre los usuarios potenciales de hasta un año, por desgracia.
>> Pero sin tener en cuenta que, vamos a hablar de un montón de razones por las cuales
Android es mucho mejor que iOS.
Bueno, vamos a hablar de Android frente a iOS,
algunos paradigmas de diseño, cómo va a ponerse en marcha en una sola diapositiva,
y la gran diferencia entre este y el año pasado es sólo quiero
zoom a través de algunas cosas conceptuales que trabajan con
el sistema operativo y, a continuación entra en un ejemplo muy básico.
De hecho, sólo el ejemplo que Google describe para la construcción de su primera aplicación,
y vamos a ir a través de él juntos y simplemente describimos.
>> Sé que muchos de ustedes sólo han codificado en C, por lo que Java ya va a ser
una perspectiva diferente, y de esta manera podrás conseguir sus pies mojados
y sentirse un poco más cómodo con él esperamos.
Un resumen rápido, Android frente a iOS.
En Android hay esta tarifa desarrollador de una sola vez de $ 25,
nada de esto $ 100 por año.
No hay restricciones, lo que significa que si quiero presentar una aplicación,
Me presento, y no hay proceso de aprobación como lo hay para iOS.
Tienes la oportunidad de desarrollar en Java usando Eclipse,
que es multiplataforma, por lo que no importa si usted tiene un Mac,
Windows o una máquina Linux.
Por supuesto, con iOS tiene que utilizar XCode en un Mac,
y Android es utilizado por muchas más personas,
así que si usted quiere que su aplicación se ejecute algún tipo de visibilidad o tal vez
hacer un poco de dinero de los anuncios
usted está probablemente más probabilidades de beneficiarse de Android.
>> Y una cosa que siempre se ha conocido sobre Android
es la cantidad de personalización extrema, mientras que iOS es muy fija en sus formas
de manera que puedan mantener la seguridad y el control sobre cada pequeño aspecto
del diseño dentro de su sistema operativo y las aplicaciones individuales.
Android es la forma muy libre, y hay tantas más posibilidades.
Bueno, algunos paradigmas de diseño.
Nótese aquí al igual que iOS tiene tabletas y iPhones e iPod Touch
que tienen que soportar, por ejemplo, como una docena de dispositivos si quieres apoyar
cosas históricas también.
Con Android que tiene que soportar cientos de dispositivos,
así que hay algunas cosas que Google ha estado tratando de poner en práctica
para que el usuario experimente un poco más consistente,
pero también hablaremos de cómo esto significa que hay problemas de fragmentación
que constantemente tienen que ser conscientes de apoyo.
La fragmentación significa que hay muchos sistemas operativos diferentes,
muchos teléfonos diferentes con diferente hardware con Android, todo al mismo tiempo,
por lo que este gráfico aquí se remonta a cerca de 6 meses.
Sí, de 6 meses, y se puede ver como la banda más oscura
en el fondo es Jelly Bean, que salió en el verano,
y se puede ver en estos momentos probablemente alrededor de 2% de los teléfonos que lo tengamos.
>> Ice Cream Sandwich salió hace más de un año,
y una cuarta parte de los teléfonos que lo tengamos.
Todavía hay un montón de teléfonos que usan la versión del sistema operativo desde hace años.
Una cosa que Google ha tratado de hacer para que la experiencia del usuario
mucho más consistente a través de aplicaciones se inicia con Honeycomb,
que es la versión tablet, a continuación, Ice Cream Sandwich y Jelly Bean,
que realmente están tratando de hacer hincapié en el uso de esta barra de acciones,
que es lo que se puede ver en la parte superior aquí,
todo bien aquí, incluyendo este pequeño botón de configuración.
Es la opción de diseño.
Ahora, cada vez que vea los 3 puntos que significa hacer clic en este,
y habrá un menú desplegable, que tiene algún tipo de configuración.
Esto sólo aparece porque hice clic en este botón.
Esto es algo que ellos están tratando de utilizar para hacer que las aplicaciones un poco más consistente
en todos los ámbitos y para que el usuario tenga una mejor idea de la experiencia uniforme.
>> Bueno, por lo que en caso de que no haya hecho ya, o si usted está viendo en casa
entonces usted puede seguir estos pasos para configurar el entorno de codificación.
Esto implicará ir a la página web aquí.
Usted puede buscar en Google instalar SDK Android
y siga algunas descripciones allí.
Te dicen todo.
Tienen que instalar la, descarga Eclipse SDK versión Classic,
aunque, por supuesto, estamos codificación en Java.
Recomiendan éste, y entonces este ADT, las herramientas de desarrollo de Android,
es un plugin que se instala en Eclipse que permite
tener una experiencia mucho más ágil con Android en Eclipse.
Le dará algunas interfaces gráficas de usuario
para el diseño de los puntos de vista, y que le dará mucho más apoyo
y la capacidad para poner en marcha con el emulador y todo ese tipo de cosas.
Marco de aplicación.
>> Quiero hablar acerca de cómo se estructuran los proyectos dentro de Android,
y luego vamos a entrar en un ejemplo rápido, y es de esperar
usted puede hacer preguntas en cualquier momento y sentirse cómodo al final de la misma.
Tenemos primero la jerga.
Una actividad es como la pantalla que aparece al iniciar una aplicación.
Toda la experiencia es la misma actividad,
por lo que podría pensar en él como una pantalla o una vista,
pero en realidad es la parte del código fuente de la misma.
Todavía llamamos la parte real de la misma interfaz de una vista.
Es algo así como la forma en pset 7 tuvimos el controlador y la vista.
La actividad es más o menos el controlador,
y la vista es lo que estamos haciendo en términos de XML
que se asocia con esa actividad.
Los fragmentos son algo que está implementado en Ice Cream Sandwich en el futuro.
Es sólo una idea de tomar parte de la vista o de la actividad
y dividirlos en áreas separadas para que podamos
hacer nuestro código más útil para estos diferentes dispositivos
que tenemos que apoyar, y es sólo una manera de tratar de
También factorizar más código.
Los servicios son de fondo cosas como reproducir música o direcciones de navegación potencialmente.
Los proveedores de contenido, estas son las API dentro del sistema operativo
que le permiten acceder a los datos compartidos, tales como información de contacto,
y la intención es algo que vamos a utilizar cuando se quiere poner en marcha
una nueva actividad de nuestra actividad actual.
>> Hola Android, esto va a ser un proyecto que vamos a hablar.
Yo en realidad lo haga por ti, y luego haré una cosa en la que haga clic en un botón
con un poco de texto y poner en marcha una nueva actividad.
Muy sencillo, pero quiero pasar por
lo que voy a entrar en un proyecto como este.
Al realizar el nuevo proyecto verá dentro de Eclipse
hay este proyecto llamado Hola Android.
Luego hay un montón de carpetas aquí.
Los que usted está realmente preocupado con son la carpeta de origen,
la carpeta de recursos, la res, y en cierta medida la carpeta libs para las bibliotecas.
Y para que quede en la misma página con la
si usted fuera a crear un nuevo proyecto,
usted puede hacer esto aquí, así que si yo quiero llamarlo HelloAndroid,
y luego lo hace automáticamente un montón de información para nosotros.
El nombre del paquete se supone que es un identificador único
que normalmente se asocia con el sitio web, si usted tuviera una.
>> Por ejemplo, voy a llamar a este net.cs50.helloandroid.
Y ya he hecho este proyecto una vez.
Vale, lo siento. Llamémoslo HelloCS50.
Y entonces se le preguntará cosas como qué tipo de icono de qué queremos hacer.
Todo esto es debido a la interfaz Herramientas Desarrolladores de Android,
el plugin que hemos añadido a Eclipse, por lo que puede elegir cosas como
lo que el icono que queremos, y que íbamos a esa profundidad si queremos.
Pero al final, acaba de hacer el proyecto,
y todo lo que se presenta aquí.
Como mostré en la otra pantalla,
tenemos la carpeta de origen, y voy a hablar de lo que todo esto significa poco,
pero se puede ver que de inmediato nos lleva a la pantalla HelloCS50.
Hay algunos botones de aquí para agregar texto y diseños de campo de texto.
Es algo así como XCode, pero por desgracia no es tan eficiente.
Sin embargo, los clips serán su amigo y ADT, en particular, para hacer esto.
>> Bueno, la carpeta de origen es donde
los archivos Java se llevan a cabo, y esto es en realidad el lanzamiento de su programa.
Es básicamente como los controladores.
La carpeta de recursos o de la res es donde vamos a mantener diseños de pantalla,
imágenes, sonidos, texto, animación y todo lo demás, libs, obviamente, bibliotecas.
Y el Manifiesto, es la forma en que el sistema Android sabe
cómo interactuar con la aplicación.
Se dice que sobre los permisos y las actividades que en realidad se puede ejecutar.
Es toda la información esencial que es necesario para ejecutar la aplicación.
La carpeta de origen es-si ampliamos como se puede ver aquí.
Y un ejemplo de que un código sería-este es el código predeterminado.
Como lo llamamos, MainActivity.
De forma predeterminada, se obtiene onCreate, que es una función que se llama cuando se carga esta actividad,
por lo que desea llamar onCreate (savedInstanceState).
Esto restaurará los bits de información
en caso de que se detuvo la aplicación.
>> Hay una actividad gráfica ciclo de vida que se puede ver en
cuando usted consigue un poco más en profundidad en ella,
pero la más importante línea de código existe esta función setContentView
que se cargue el archivo de recursos para el diseño.
Entonces, ¿qué onCreate aquí está haciendo básicamente es que está diciendo
cuando creo esta actividad quiero cargar esta disposición.
Y vamos a hablar de lo que el diseño es de un segundo.
Si nos vamos a poner en marcha que aquí se ve exactamente como esta,
y por defecto porque hemos Eclipse haciendo esto y ADT haciendo por nosotros
Este es todo el código repetitivo que se crea para nosotros,
y podemos seguir adelante y cambiar las cosas que nos gusta.
La carpeta de recursos, como he dicho, aquí es donde tenemos todos los diseños,
dibujables en términos de cualquier tipo de imágenes-
se les llama dibujables-y luego los archivos de sonido, menús.
Es una forma de un montón de XML en una buena manera ordenada.
Como puedes ver, hay. IPAP, LDPI, MDPI y carpetas xhdpi para los dibujables.
Estas son las diferentes densidades de pantalla, los píxeles tan alta densidad por pulgada,
baja densidad, media densidad, alta densidad adicional.
>> Esto es, de nuevo, por lo que puede soportar todos estos diferentes dispositivos,
e idealmente, tendrá diferentes imágenes para cada resolución diferente.
Los diseños son donde incluimos todos los diferentes diseños que se utilizarán en las diferentes actividades.
También podrían incluir disposiciones para fragmentos,
lo que significa básicamente actividades parciales.
Si quieres hacer algo fresco como cuando gira el teléfono
usted desea que tenga un diseño diferente que usted puede hacer diseño-paisaje como una carpeta diferente,
Android y automáticamente tiene un montón de estas normas dentro de la carpeta de recursos,
por lo que saber buscar en diferentes carpetas en función de la configuración actual del teléfono,
qué tipo de hardware que esté utilizando.
Del mismo modo, este valor-v11 aquí y valores-v14
y los valores por defecto carpeta de esto es para-
así, los valores por sí mismo, esto serán los valores por defecto a través de todas las versiones del sistema operativo.
Por otro lado, v11 y v14 corresponden con Honeycomb
y Ice Cream Sandwich, respectivamente.
Una vez más, se trata de formas que-dentro de estas carpetas son diferentes cadenas
y estilos, para que pueda personalizar el aspecto de su aplicación
o posiblemente incluso su funcionalidad, a pesar de que probablemente sería una mala idea,
sobre la base de la versión del sistema operativo.
>> Y hablé de todo esto aquí.
Una vez más, pueden dibujar, primas, el diseño, los valores.
Los valores predeterminados, si entramos en Hola Hola Android o CS50 ahora
será un aspecto como este.
Se dirá hola mundo.
Como se puede ver aquí con el texto Android
el texto de este punto de vista el texto, que es básicamente sólo una etiqueta,
es lo que llamaríamos en iOS.
Tiene esta notación divertido @ string / hello_world.
Esto es lo que puede-que intentar extraer todas las cadenas,
todas las cadenas fijas en Android en una carpeta separada,
que pasa a ser en values.strings.
Si miramos aquí, podemos ver que tenemos una cadena fija guardada aquí
para hola mundo, y se llama hola mundo, y esto es una especie de
decisión de diseño común en muchas plataformas que desea-
cadenas son el tipo de cosas que queremos ser potencialmente capaz de cambiar.
No queremos controlar F en nuestro archivo de código fuente en nuestro XML.
Queremos ser capaces de cambiar esto cuando tenemos la oportunidad.
>> Este archivo XML, strings.xml, es una manera de extraer
cadenas fijas que de otro modo, en nuestros recursos de diseño
o en nuestro código fuente.
El Manifiesto es donde guardamos la información esencial acerca de la aplicación.
Incluye el nombre del paquete. Eso tiene que ser un identificador único.
A diferencia de la App Store para iOS los nombres de las aplicaciones
no tiene que ser único, y usted puede de hecho cambiar el nombre de la aplicación
después de enviar, así que si empiezo con Angry Birds,
y luego hago una actualización, y yo no quiero lanzar una nueva versión
Supongo que podría llamarlo Angry Birds 2 mientras estoy en el mismo ciclo de lanzamiento.
Se acaba de aparecer como una actualización.
Lo único que tiene que ser único es el nombre del paquete,
que no mucha gente va a ver.
Bueno, sólo verías si estuvieras mirando el código fuente o si hay algún tipo de error.
Los componentes incluirán actividades, así que tenemos que declarar
cualquier tipo de actividad que utilizamos.
Se trata de un permiso tipo de cosas.
>> Porque Android no tiene este riguroso proceso de aplicación
para la presentación de las aplicaciones sino que simplemente todo lo basan fuera de los permisos
y declarando las cosas en el Manifiesto.
La versión SDK también es importante.
Podemos establecer su uso como SDK versión mínima algo.
Obviamente, usted quiere crear código
y el diseño de los sistemas operativos más recientes.
Quizás no es el más nuevo, tal vez no Jelly Bean.
Tal vez usted quiere diseñar todo para Ice Cream Sandwich,
a pesar de que son más o menos lo mismo en cuanto a las decisiones de diseño
y las bibliotecas reales y API.
Pero en lugar de que la gente
de la original versión de Android-como Donut camino de regreso cuando-
que todavía se esté utilizando que intentan descargar la aplicación y luego decir
no funciona en mi teléfono puede establecer la versión mínima
y tienen que ser Gingerbread o Ice Cream Sandwich
o lo que usted se sienta cómodo presentando.
Y este es un ejemplo del Manifiesto. Podemos mirar a la real en un momento.
>> Bueno, vamos a seguir adelante con la demo.
Esta es la demostración si Google Android construir su primera aplicación o algo por el estilo.
Vamos a pasar por todo lo que está pasando ahí,
y lo siento, sólo por una referencia que aquí sabe Java en un grado?
Bien, Java es nuevo lenguaje de codificación para la mayoría de la gente que sale de CS50.
En pocas palabras, para ir de nuevo lo que dice aquí,
lo que queremos hacer es en lugar de ajustar esta aplicación hola mundo
que lo único que hace es que lanza y dice hola mundo
y dice hola CS50 en la parte superior, porque ese es el nombre de la actividad
vamos a tratar de hacer un campo de texto y un botón
de modo que cuando pulsamos este botón tomará el texto
desde el campo de texto y poner en marcha una nueva actividad, y dirá:
lo que sea que el texto dijo en la actividad, y esto es relativamente simple.
No es muy interesante. Usted no quiere lanzar cualquier aplicación como esta.
Pero demuestra algunas cosas importantes de diseño.
>> Vamos a tener que interactuar con el Manifiesto, con los archivos de diseño,
con el código fuente, y se puede ver cómo poner en marcha una actividad de otro.
Vamos a empezar con el diseño de nuestra primera actividad,
que yo sé que es un poco pequeña,
pero como se puede ver en este momento, todo lo que es es que tiene nuestro logotipo que creamos,
el nombre de la actividad, y dice hola mundo en el centro.
En cambio, yo estoy primero va a convertir esto en un diseño lineal,
una disposición relativa, y estas son todas las cosas
usted podría mirar hacia arriba y valen pasarse en algún momento, en términos de los diseños.
Es muy parecido a HTML.
Dijimos que no es realmente vale la pena conocer, en términos de un sentido programático,
pero hay tantos diseños diferentes que se pueden controlar,
y es como CSS en términos de estilos.
>> Hay mucho que hacer sólo en términos de la estética aquí,
y sí, es vale la pena aprender, pero es el tipo de cosa que usted debe mirar hacia arriba
mientras que usted va y usted siente que necesita algo nuevo.
Puedo tomar ventaja de algunas de las herramientas ADT aquí por lo menos para empezar.
Voy a hacer un campo de texto, y voy a hacer un botón.
Ponlos justo al lado de la otra.
Ya redimensionar adecuadamente.
Lo sentimos, una vez más, volviendo a la diferencia entre el diseño y el diseño lineal relativa,
un diseño lineal da un poco más de funcionalidad
en términos de espacio de relleno y de asegurarse
Nos posicionamos cosas horizontal o verticalmente.
La gran diferencia entre un diseño lineal y una disposición relativa
es la disposición relativa puestos todo en relación con otros puntos de vista,
y lo bueno de esto es que se necesita menos tiempo para dibujar
porque el sistema operativo mira a todo el código y dice que esto va
en relación con esto aquí, aquí.
Esto significa que tiene un menor número de mediciones que un montón de diseños lineales anidados,
lo que tendría que hacer si quería que las cosas van verticalmente aquí.
>> Ya he algunas cosas que van en horizontal, por lo que necesitaría una disposición lineal diferente
para anidar de forma vertical, pero si yo estuviera haciendo una presentación relativa podría decir
mantener este a la izquierda, esta a la derecha y por debajo de estas cosas.
Pero porque yo quiero que llenan ahora voy a utilizar un diseño lineal,
y se puede ver que ya hace un montón de estas cosas para nosotros.
Todas las visitas deben tener una propiedad de ancho y alto,
y este pasa a tener un peso de 1, y esto tiene un peso de 1
para que ocupe todo el espacio.
Sin embargo, la anchura y la altura son las más importantes.
Este campo ID aquí no es importante en el diseño actual
a menos que estemos usando un diseño relativa y decir que podemos referenciar
una posición vista en referencia a otro.
Si tuviéramos una disposición relativa podríamos decir esta posición por debajo de éste
o por encima de este ID, pero esta ID será importante
cuando estamos usando en nuestro código, ya que podemos referenciar
estos puntos de vista individuales de esta manera.
>> Y entonces usted puede ver el requestFocus etiqueta, que es algo que probablemente viste en pset 7.
Hubo una etiqueta enfoque automático o algo por el estilo de uno de los campos.
Y una cosa, por supuesto, podemos hacer lo mismo que en HTML,
y observe una de las cosas buenas de ADT es que autocompletes aquí.
Tal vez no tan bien como lo hizo en XCode, pero lo hace, sin embargo,
y podríamos decir indirecta y luego darle algún tipo de cadena
desea escribir un mensaje,
y si le doy un momento, también cuenta de que tengo un pequeño error aquí
diciendo que debemos utilizar un recurso de cadena para esto,
por lo que si lo dejo hacer algo del trabajo duro para mí
Puedo seleccionar esta cadena, haga refractor Android y el extracto de cadena Android.
Puedo darle un nombre, escribir un mensaje,
y lo que hizo ahora es reemplazado esa cadena codificada
con una referencia a la cadena en. xml de la cuerda,
lo que significa que ahora se trata aquí.
>> Y sé que parece un poco trivial y, como trabajo extra en este punto,
pero cuando usted tiene un montón de cosas, un montón de cuerdas,
eso es muy importante, y en particular para la localización
ya que como he mencionado antes, Android es un sistema operativo muy utilizado a nivel mundial
que sólo tiene que hacer-en los valores o los valores-sp
o algo de inglés o español o en otros idiomas.
Y entonces es probable que no haya tenido esta experiencia aún
ya que no hicimos mucho JavaScript en términos de programación web,
pero también podemos hacer esto campo denominado onClick del botón,
y esta es una manera de referencia dentro de nuestro diseño
que queremos una determinada función que se llamará en nuestro código fuente.
Voy a llamar a este sendMessage,
y con el fin de hacer este trabajo que significa en la actividad principal aquí
Voy a tener que crear una función que es público
de modo que se puede acceder por el diseño.
Es nula porque simplemente no quiere que se devuelve nada.
Lo llamaremos sendMessage, y se necesita un punto de vista,
que es una especie de contexto que podemos anclar este método
a la vista individual cuando estamos ejecutándolo.
>> Y yo no sé si te has dado cuenta, bueno, usted no ha notado,
pero en este momento aquí
este punto de vista es un tipo que aún no se ha incluido,
y por supuesto, todos ustedes saben acerca de CS50 sin incluir los tipos.
Lo bueno de como Eclipse IDE es que
si se olvida de incluir un tipo que subrayará con un poco de rojo squiggly
y luego le dan la opción de importar la vista.
Una forma rápida de hacerlo es control de cambios O, y se importará
todos los archivos que necesita para.
Ahora que tenemos esta función sendMessage,
que va a enviar el mensaje de la MainActivity a una nueva actividad,
vamos a tener que usar la intención de poner en marcha la nueva actividad de éste,
así que probablemente queremos crear una constante global o también en particular una constante pública
que le ayudará a saber cómo vamos a hacer referencia a la cadena de
porque cuando creamos un intento no sólo estamos llamando a una nueva actividad,
pero también podemos darle un paquete de información.
Un paquete es realmente el término que utiliza Android,
y es una manera de decir le dan datos adicionales, que no puede ser de un tipo de datos muy sofisticada,
pero definitivamente podemos incluir booleanos o cadenas o ints.
Ese tipo de cosas.
>> No dude en preguntar acerca de cualquiera de estos calificativos aquí,
pública, final, estática.
Público es el importante.
Esto significa que podemos acceder a esta variable de otros archivos de código fuente
por ejemplo, cuando se crea una nueva actividad.
Podemos hacer referencia a la cadena dentro de este archivo.
Si es privado, significa que está limitado a este archivo individual aquí.
Pero vamos a llamar a este algo como mensaje adicional.
Ahora hemos realizado esta función, y si hacemos clic en el botón, se llamará a esta función.
Pero no hemos hecho nada, obviamente, con la función.
Lo que queremos hacer ahora es crear una nueva actividad,
en realidad se puso en marcha la actividad.
En Eclipse podemos decir nueva, la actividad de Android, la actividad en blanco.
Podemos darle un nombre.
Digamos que es nuestra actividad resultado.
Y a continuación, este campo matriz jerárquica es una forma de especificar
cómo las actividades están relacionadas entre sí.
Porque éste se pondrá en marcha a partir de la otra actividad
debemos especificar que tiene la actividad principal.
>> Y yo podría haber hecho clic en el siguiente campo existe, lo que nos han dicho
algunos campos opcionales que también fue incluido,
pero lo bueno de ADT, una vez más, es que si me desplazo hasta aquí
en el Manifiesto que recordar que todo esto realmente fue incluido por defecto
cuando se creó originalmente el proyecto,
y ahora ya hemos utilizado este crea una nueva actividad y no sólo
añadiendo nuestro propio archivo de clase porque nos fuimos a través de su interfaz gráfica de usuario para hacer esto
ya todo esto añade al manifiesto para nosotros,
que simplemente significa que ahora el sistema operativo no se quejará
cuando tratamos de poner en marcha esta actividad.
Y también, por supuesto, que dio una etiqueta, que también se muestra en las cadenas.
Hace un montón de cosas en la parte de atrás para nosotros.
De todos modos, ahora que tenemos esta actividad resultado así,
el archivo de código fuente real de la carpeta de origen,
y se puede ver a referirme brevemente a esta-
porque nos dijeron que sobre esta matriz jerárquica
dio este campo android.r.ide.home en este onOption lo seleccionado.
>> Lo que está diciendo básicamente es que hay un botón de menú ahora
que en la esquina superior izquierda de la pantalla
si vuelvo a ir a la presentación de PowerPoint que hablamos por primera vez sobre la barra de acción
debido a que el padre jerárquica ahora hay una pequeña flecha de vuelta aquí
y esto se puede hacer clic, así que deberíamos ser capaces, después de que en realidad corre esta aplicación-
volver, y es una manera de salvarnos un poco de código allí.
Ahora, dentro de este, bueno, parece que se quejan de que por un momento.
Vamos a comentar eso.
Ahora, con el fin de interactuar efectivamente con estas actividades 2,
tenemos que crear una intención que incluye todos estos datos.
En sendMessage ahora me voy a navegar a través de algunos trozos de código
y explico que como voy.
La intención, como he dicho, es una manera de poner en marcha una actividad de otro.
Intención es el tipo. Estamos creando un myIntent variable.
>> Y esto es en realidad un objeto, por lo que tenemos que llamar a nueva.
Es común el uso de Java no, lo que podría tomar un poco de tiempo para acostumbrarse.
Esto significa que estamos utilizando la actividad o la MainActivity clase,
y la intención de esta manera toma la actividad que va a
y la actividad que va a, lo que llamamos ResultActivity,
y que es su propia clase.
Incluya eso.
Y entonces, como he mencionado antes, le dimos ese ID en el campo de edición de texto
y la vista de texto, por lo que con el fin de capturar mediante programación
el texto que existe en el EDITTEXT
usamos esta función llamada findViewById,
que es similar a algo que va a utilizar cuando se trata de obtener los campos de la DOM.
Tal vez David habla de esto en conferencia.
Pero es sólo una manera de conseguir los-por eso nos marcamos estas cosas con esos campos.
Id.editText1.
Ya está autocompletar para mí.
>> Y entonces también incluiremos-este EDITTEXT ahora que tenemos el campo
dentro de nuestro programa, lo único que hizo fue básicamente findViewById
usted podría pensar en él como nos dan una referencia a esa EDITTEXT.
Ahora queremos que la cadena o el mensaje
dentro de ese EDITTEXT que podemos hacer mediante el uso de la
usted podría pensar EDITTEXT como una estructura-
lo llamamos un objeto en Java, con un montón de diferentes métodos
o de los campos y los atributos que se le atribuye.
Cuando digo EDITTEXT. me da la oportunidad de acceder a
un método como getText, que conseguirá el texto actual
en ese EDITTEXT y luego convertir esa manera explícita
en una cadena, y hemos guardado el mensaje.
Ahora que realmente queremos hacer algo con esa intención se creó hace unos momentos.
Pondré adicional como se le llama en el intento,
que, de nuevo, como he dicho antes, esta es una manera de crear el paquete
con un montón de datos.
Mensaje Extra es nuestra etiqueta, así que sabemos lo que estamos ahorrando este bajo,
y estoy incluyendo el mensaje.
>> Y entonces podemos realmente empezar la actividad dándole el myIntent parámetro.
Y esto va a poner en marcha la actividad, por lo que ahora ya he actualizado a Windows 8
puede haber algunos errores que aparecen brevemente, pero tratar de ignorarlos.
Y este es el emulador de Android.
Esperemos que el código será hecho estallar para arriba en un momento.
Una vez más, haciendo caso omiso de todas esas pequeñas cosas.
Pero el emulador de Android que puede emular cualquier versión del sistema operativo
de los más antiguos, buñuelo, pan de jengibre.
Se trata de Jelly Bean 4.1.
Pero como se puede ver en este momento, esto es algo que tomamos.
Esto tiene la MainActivity, la EDITTEXT, el botón.
Puedo escribir algo aquí, pero lo que nos falta en este momento?
Hicimos el campo en el MainActivity que va a enviar el mensaje
a la otra actividad, pero en este momento
no hemos hecho nada en la otra actividad, por lo que no va a recibir nada.
Vamos a terminar hasta que la parte antes de seguir adelante.
>> Esta actividad resultado, lo que tendremos que hacer es que tendremos que hacer es que necesitaremos-
también podemos hacer referencia a la intención dentro de esta actividad,
así que tenemos que captar la intención, que es muy simple.
Es una función incluida en la clase de actividad,
así que sólo podemos decir "conseguir el mensaje de la intención."
"MyIntent Intento = getIntent."
Y esto nos dará, ahora myIntent es un objeto,
que es una referencia a la intención de que nos condujo a esta actividad.
MainActivity llama y da la información adicional que resulte actividad.
Resultado de la actividad ahora se ve en la intención que llevó aquí,
y podemos acceder al mensaje que hemos creado en el otro,
getStringExtra, y esto se autocomplete para mí.
Y a continuación, recordar, la manera en que etiquetamos esa pizca de datos
estaba dándole este campo aquí, esta cadena pública,
que es la etiqueta de la cadena que realmente incluido.
>> Si digo MainActivity.Extra_Message
es justo ahí, y esto es algo así como el nombre del parámetro
cuando pasamos código desde el controlador a la plantilla,
cuando decíamos título arrow algo.
Es el mismo tipo de idea allí.
Ahora, recuerde esto.
También tuvimos el auto creados o generados de código auto
para la actividad de resultado, que incluye la vista de texto en el medio
que dice hola mundo.
Potencialmente Podríamos hacer que más grande.
Vamos a hacer eso primero.
Podríamos hacerlo densidad 40 píxeles independientes.
Vamos a ver, que es super enorme. Eso estará bien.
Y luego para hacer referencia a esta vista de texto individual dentro de nuestro código
tendremos que darle una identificación,
y con el fin de hacer eso decimos @ + id, lo que significa que asignamos ID.
Si simplemente dijimos @ id asumiría estamos referencia a un ID que ya existe,
y vamos a llamar a este nuestro resultTextView.
Y observe que en XML que no hay necesidad de un punto y coma, ni nada.
Todo está dentro de estas etiquetas.
Es muy similar al HTML en muchos sentidos.
>> Toma un poco de tiempo para acostumbrarse, pero con el tiempo se sentirá muy cómodo con él.
Vamos a actualizar el texto de nuestro texto ver resultado,
y como lo hicimos cuando nos íbamos a ese campo de edición de texto en nuestra otra actividad
en MainActivity Aquí también lo mismo-
encontraremos el punto de vista de la identificación.
Y, R, en caso de que no lo mencioné antes, es la referencia a nuestra carpeta de recursos,
y luego ID es una referencia para todo lo que en la carpeta de recursos, todos los identificadores de,
y resultTextView.
Y al igual que antes, resultTextView es un objeto,
que significa que tiene todas estas propiedades asociados.
Cuando usamos getText para la edición de texto en este campo de texto o en la vista de texto
de que podamos usar setText,
y luego ya nos encontramos el mensaje de la intención,
por lo que puedo decir el mensaje, y esto va a configurar el mensaje.
>> Se toma un momento para poner en marcha, y entonces podemos ver si se bloquea,
pero alguna pregunta sobre ese proceso justo ahí, ese tipo de interacción?
En muchos sentidos, es sencillo.
La razón por la que estoy pasando por algo relativamente sencillo
es, de nuevo, porque se llega a ver la interacción entre el diseño,
El código fuente, la forma en que las cosas referencia
y tal vez un poco de la exposición a la forma en Java trabaja allí.
Si yo en realidad escribo algo aquí, como ohai, y luego haga clic en el botón,
pone en marcha una nueva actividad, y que vista de texto dice ohai.
Eso es muy simple, pero espero que después de que el ejemplo
que suerte de ver cómo funciona esta interacción, y ahora ese lío de archivos
en la parte izquierda de estas carpetas de proyecto, con suerte usted sabe dónde mirar.
Esta es su área de código fuente.
>> El diseño es realmente la única cosa que va a lidiar con hasta incluir imágenes
y los dibujables o lo que sea, y los valores, que incluirán cadenas,
como hemos mencionado, y estilos es algo que es algo así como CSS.
Dirección cuando quiera, pero hasta que se sienta cómodo con la adición de toque extra
a su solicitud, no hay necesidad de preocuparse demasiado.
Sólo para concluir otra cosa que sin duda desea incluir-
suponiendo que se desea integrar funciones interesantes y ahorrarse algunos extras coding-
sería incluir bibliotecas tercera parte.
Aquí está el pequeño androide con el sombrero de Sherlock Holmes.
Se trata de una barra de acciones biblioteca Sherlock,
lo que básicamente significa que la barra de acción que vimos antes,
que ahora es estándar en Ice Cream Sandwich y Jelly Bean,
si usted quiere traer ese tipo de experiencia de usuario para los usuarios de versiones anteriores
y ahorrarse de tener que preocuparse acerca de cómo el usuario va a navegar
en versiones anteriores, cuando eso no es allí puede incluir esta biblioteca
y luego sólo tienes que referencia en lugar del Android por defecto
bibliotecas de la barra de acciones, que hacen referencia a esta biblioteca de soporte.
>> Cosas como Scoreloop, es grande si usted va a incluir una partida.
Permite agregar tablas de clasificación y logros a los juegos.
AdMob es una forma de poner anuncios en sus aplicaciones
en caso de que quiera hacer un poco de dinero con él.
Por supuesto, no es Facebook y Twitter para la integración no
si usted quiere compartir cosas con facilidad, et cetera.
Dropbox, del mismo modo, y Google Analytics es esa carta busca nadie.
Eso será muy importante si usted realmente quiere ver quién está interactuando
con su aplicación o quién es, cómo interactúan, et cetera.
Google, por defecto, le dice un montón de estadísticas sobre quién ha instalado su aplicación
y lo que los teléfonos que tienen, qué versiones del sistema operativo que tenga.
Pero si usted quiere ver que lo está utilizando a diario y cómo lo utilizan
entonces usted querrá incluir algún tipo de sistema de seguimiento de esa manera.
>> Cuando esté listo para distribuir su aplicación
No necesito entrar en eso en demasiada profundidad.
Haz clic en el enlace de aquí, Google Play.
Lo que solía ser el mercado Android.
Ellos marcaron de nuevo todo con Google Play,
por lo que ahora se somete a eso.
Es muy sencillo.
Usted tiene que incluir una descripción, algunas capturas de pantalla.
Como he dicho, no hay proceso de aprobación como iOS.
¿Y dónde ir desde aquí?
Les mostré un ejemplo muy simple.
Esperemos que si parece terriblemente sencilla
entonces eso es probablemente una buena señal.
Si usted en todo sentido un poco confuso o inseguro sobre exactamente lo que estaba escribiendo
eso es también muy bien, pero a partir de aquí ir a Guías de Google.
Este es un gran lugar para comenzar.
Se va a hablar a través de lo que esperan en términos del diseño de la aplicación,
cómo los usuarios interactúan normalmente con ella.
Es mucho más de forma libre que iOS, yo diría,
que parece que las vistas de tabla son-no sé, ese es su pan y mantequilla.
Todo es una vista de tabla se deslice hacia arriba y hacia abajo.
Con Android definitivamente animar a la gente a mirar las cosas desde
un montón de diferentes perspectivas.
>> Cuando se incluye el kit de desarrollo de software en este ADT
por defecto tiene un montón de proyectos de ejemplo en Android.
Aquí, Android, Android proyecto de ejemplo.
Si hago clic en eso, entonces puedo elegir una versión para que la muestra se aplican los proyectos.
Hay un montón de cosas diferentes aquí.
Se comienza con la acción de compatibilidad bar,
juego acelerómetro, copia de seguridad y restauración, Bluetooth, constructor gesto.
Jetboy es un juego de muestras que te dan, como es LunarLander.
Hay un montón de aplicaciones de ejemplo aquí,
y todos ellos están dirigidos a diferentes aspectos de la API de Android,
y la idea es que mientras hace su aplicación
usted no tiene que aprender todo acerca de Android para hacer una aplicación para Android.
Sólo tienes que aprender sobre las partes que en realidad está pasando a utilizar.
Mira estas bibliotecas de la muestra.
Siéntase libre de copiar y pegar el código y vuelva a aplicarlo.
Es una gran cosa para mirar el código más difícil
y tratar de entender lo que es, por supuesto, ¿por qué en CS50
que a menudo le dan una gran cantidad de código fuente.
Mira algunos de estos si vas a utilizar las bibliotecas similares
y luego aplicarlo a su propio código.
Y por supuesto, hay tutoriales.
Búsqueda de tutoriales.
Me encontré con un montón de buenos en línea que le puede traer a la velocidad
con lo que en realidad son fragmentos y cómo puede utilizarlos.
>> Algunas de estas nuevas cosas de diseño, como fragmentos,
usted realmente no tiene que preocuparse a menos que usted está haciendo una
muy importante en el alcance del proyecto.
Son cosas que Google está tratando de eliminar pulg
Stackoverflow es, por supuesto, su amigo.
Espero que vendí un poco en Android,
darse cuenta que es mucho más fácil de abordar en términos de sólo el lenguaje de codificación.
Java es yo diría que mucho más fácil de entender que Objective-C.
Android está creciendo creo que mucho más que iOS.
Es decir, los datos están ahí también, al margen de lo que pienso.
Todo va a estar allí por un tiempo,
y son un par de años atrás en términos de sus ciclos de diseño,
por lo que es una especie de comprensible que todavía están trabajando a través de algunos de estos
cuestiones de coherencia, de esta barra de acciones es una cosa nueva para ellos todavía,
especie de la creación de experiencia de usuario similar a través de todas sus aplicaciones.
Esperemos que se puede ir hacia adelante ahora y abrir Eclipse
y hacer sus propias aplicaciones de Android.
>> ¿Alguien tiene alguna pregunta antes de que nos envolvemos en nada?
Te puedo decir que la respuesta es 42.
Bueno, feliz de codificación a todos, y buena suerte.
[CS50.TV]